// JavaScript Document
var valorCookie, idiomaAtual;
valorCookie = getCookie("conventus");

if( valorCookie.indexOf("idiomaAtual=English") != -1 ) { // Inglês selecionado
	idiomaAtual = "English"

	txt_branco = "The field ";
	txt_branco2 = " is required.";
	txt_email = "The e-mail address is invalid.";
	txt_data = "The date is invalid. (dd/mm/yyyy)";
	txt_numero1 = "The field ";
	txt_numero2 = " must contain only numbers.";
	txt_url1 = "The field ";
	txt_url2 = " contain an invalid URL.";
	txt_cartaoCredito = "The credit card number is invalid";
	txt_codSeguranca = "The security code must be 3 characters";
	txt_dataValidadeCartao = "Invalid expiration date";
} else {
	idiomaAtual = "Portugues"
	
	txt_branco = "O campo ";
	txt_branco2 = " dever ser preenchido.";
	txt_email = "O e-mail deve ser um endereço de e-mail válido.";
	txt_data = "O formato da data é invalido!";
	txt_numero1 = "O campo ";
	txt_numero2 = " deve conter apenas números.";
	txt_url1 = "O campo ";
	txt_url2 = " não contém um endereço válido.";
	txt_cartaoCredito = "O número do cartão de crédito é inválido";
	txt_codSeguranca = "O código de segurança deve ter 3 caracteres";
	txt_dataValidadeCartao = "Data de validade inválida."
}

// Validação de campo vazio. Param: campo, nome do campo para exibição
function validaBranco( campo, nome ) {	

	campo = document.getElementById( campo );

	if( trim( campo.value ) == "" ) {
		if( nome != null )
			alert( txt_branco + nome.toUpperCase() + txt_branco2 );
		else
			alert( txt_branco + campo.name.toUpperCase() + txt_branco2 );
		
		campo.focus();
		return false;
	}
	return true;
}

// Validação de campo vazio sem exibir alert
function validaBranco2( campo ){
	campo = document.getElementById( campo );

	if( trim( campo.value ) == "" )
		return false;
	return true;
}

//Validação de email
function validaEmail( campo )
{
	campoform = document.getElementById( campo );
	return validaEmailPorCampo( campoform );
}

function validaEmailPorCampo( campo ){
	campoform = campo;
	email = campoform.value;

    if ( email )
	{
		p = email.indexOf('@');
		pont = email.indexOf('.');
		if ( p < 1 || p == (email.length - 1) || pont < 1 || pont == (email.length - 1) )
		{
				alert ( txt_email );
	    		campoform.value = '';
	    		campoform.focus();
				return false;
		}
	} else {
		alert ( txt_email );
  		campoform.value = '';
	    campoform.focus();
		return false;
	}
	return true;
}

//Validação de Telefone
function validaTelefone( campoPar ) {
	campo = document.getElementById( campoPar );
	var valor='';
	var digito = false;
	a = campo.value;

	if ( a != "" ) {
		num = a.length;
		for (f=0;f<num;f++)
		{
			if (parseInt(a.substr(f,1)) || a.substr(f,1)=='0') 
			if ((a.substr(f,1) != '0') || digito) valor = valor + '' + a.substr(f,1);
			if (parseInt(a.substr(f,1)) && a.substr(f,1) != '0') digito = true;
		};
		num = valor.length;
		if (num < 9 || num > 10)
		{
			alert ('- Número de telefone inválido. \nEntre com o DDD e o número do telefone.\nExemplo: (11) 1234-5678');
			campo.focus();
			return false;
		}
		else
		{
			if (num == 9) valor = '(' + valor.substr(0, 2) + ') ' + valor.substr(num-7, 3) + '-' + valor.substr(num-4, 4);
			if (num == 10) valor = '(' + valor.substr(0, 2) + ') ' + valor.substr(num-8, 4) + '-' + valor.substr(num-4, 4);
			campo.value = valor;
		}
	}
	else{
		alert ('- Número de telefone inválido. \nEntre com o DDD e o número do telefone.\nExemplo: (11) 1234-5678');
		campo.focus();
		return false;
	}
	return true;
}

// validação de data
function validaData( campo ){
	var data = document.getElementById(campo);

	hoje = new Date();
    anoAtual = hoje.getFullYear();
   	barras = data.value.split("/");
    if (barras.length == 3){
		dia = barras[0];
        mes = barras[1];
   	    ano = barras[2];
        resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4) );
   	    if (!resultado) {
			alert( txt_data );
            data.focus();
            return false;
		}
	}
	else {
		alert( txt_data );
		data.focus();
        return false;
   	}
	return true;
}

//validação de números
function validaNumero( campo, nome ){
	var numero = document.getElementById( campo );
	var numeroValor = numero.value.replace( ",",".");
	
	if ( isNaN( numeroValor ) ) {

		if( nome != null )
			alert( txt_numero1 + nome.toUpperCase() + txt_numero2 );
		else
			alert( txt_numero1 + campo.name.toUpperCase() + txt_numero2 );

		numero.focus();
		return false;
	}
	return true;
}

// comparação de 2 datas
function comparaData( data1, data2 ){
	var data1 = document.getElementById( data1 );
	var data2 = document.getElementById( data2 );
		
	var dataArray1 = data1.value.split( "/" );
	var dataArray2 = data2.value.split( "/" );
	
	var dData1 = new Date( dataArray1[2], dataArray1[1] - 1, dataArray1[0] );
	var dData2 = new Date( dataArray2[2], dataArray2[1] - 1, dataArray2[0] );

	if ( dData1.getTime() > dData2.getTime() )
		return 1;
	else if ( dData1.getTime() < dData2.getTime() )
		return -1;
	else
		return 0;
}

// Valida um URL
function validaURL( campo, nome ){
	campo = document.getElementById( campo );

	if( campo.value.substr(0, 7) != "http://" || campo.value.length <= 12 ){
		if( nome != null )
			alert( txt_url1 + nome.toUpperCase() + txt_url2 );
		else
			alert( txt_url1 + campo.name.toUpperCase() + txt_url2 );
		
		campo.focus();
		return false;
	}
	return true;
}

// Validação de CPF
function validaCPF( campoform ) {
	num_cpf = '';
	campo = campoform.value;	

	if (campo == "00000000000" || campo == "11111111111" || campo == "22222222222" || campo == "33333333333" || campo == "44444444444" || campo == "55555555555" || campo == "66666666666" || campo == "77777777777"  || campo == "88888888888"  || campo == "99999999999"){
		return false;
	}
	if (campo == "000.000.000-00" || campo == "111.111.111-11" || campo == "222.222.222-22" || campo == "333.333.333-33" || campo == "444.444.444-44" || campo == "555.555.555-55" || campo == "666.666.666-66" || campo == "777.777.777-77"  || campo == "888.888.888-88"  || campo == "999.999.999-99"){
		return false;
	}
	if (!campo) return true;
	for (i=0;i<campo.length;i++) {
			resposta=campo.charAt(i) ;
			num = parseFloat(resposta);
			if (resposta==''+num) num_cpf=num_cpf+resposta; 
		}

	if (num_cpf.length == 11) {
		soma = 0;
		for (i=0; i < 9; i ++) soma += parseInt(num_cpf.charAt(i)) * (10 - i);
		resto = 11 - (soma % 11);
		if (resto == 10 || resto == 11)	resto = 0;
		soma = 0;
		for (i = 0; i < 10; i ++) soma += parseInt(num_cpf.charAt(i)) * (11 - i);
		resto2 = 11 - (soma % 11);
		if (resto2 == 10 || resto2 == 11) resto2 = 0;
		if ((resto != parseInt(num_cpf.charAt(9))) || (resto2 != parseInt(num_cpf.charAt(10)))) {
			return false;
		}
		else {
			campoform.value= num_cpf.substring(0,3) + '.' + num_cpf.substring(3,6) + '.'
			+ num_cpf.substring(6,9) + '-' + num_cpf.substring(9,11);
			return true;
		}
	}
	else {
		return false;
	}	
}

function trim(txt){  
	var retirar = ' ';
	var retorno = '';

	for(i=0;i<txt.length;i++){  
		if(retirar.indexOf(txt.substr(i,1)) == -1){  
			retorno += txt.substr(i,1);
		}
	}  
	return retorno;
}

//Função para validar CNPJ
function validaCNPJ( campoform ){
	num_cpf = '';
	campo = campoform.value;

	if (!campo) return true;
	
	for (i=0;i<campo.length;i++)
		{
		resposta=campo.charAt(i) ;
		num = parseFloat(resposta);
		if (resposta==''+num) num_cpf=num_cpf+resposta; 
		}

	if (num_cpf.length == 14)
		{
		d1= 0;
		d4= 0;
		xx= 1;
		for (nCount = 0;nCount< num_cpf.length-2;nCount++)
			{
			if (xx < 5) fator= 6 - xx; else fator= 14 - xx;
			d1 = d1 + num_cpf.charAt(nCount) * fator;
			if (xx < 6) fator = 7 - xx; else fator = 15 - xx;
			d4 = d4 + num_cpf.charAt(nCount) * fator;
	    	xx = xx+1;
			}
		resto = d1%11;
		if (resto < 2) digito1 = 0; else digito1 = 11 - resto;
		d4 = d4 + 2 * digito1;
		resto = d4%11;
		if (resto < 2) digito2 = 0; else digito2 = 11 - resto;
		Check = digito1+''+digito2;
        if (Check != num_cpf.substring(num_cpf.length-2,num_cpf.length))
			{
			alert ('- CNPJ inválido. \nEntre com o CNPJ correto.');
    		campoform.value = '';
    		campoform.focus();
			return false;
			}
		else 
			{
			campoform.value= num_cpf.substring(0,2)
			+ '.' + num_cpf.substring(2,5) + '.' + num_cpf.substring(5,8) + '/' + num_cpf.substring(8,12)
			+ '-' + num_cpf.substring(12,14);
			return true;
			};
		}
	else
		{
		alert ('- CNPJ inválido. \nEntre com o CNPJ correto.');
    	campoform.value = '';
    	campoform.focus();
		return false;
		}
}

//Exibe ou esconde pelo Id
function mostraDados( pri ) {
  var element = document.getElementById(pri);

  if (element.style.display == 'none') 
    element.style.display = '';
  else
    element.style.display = 'none';
}

// Validação de hora
function validaHora( nomeCampo ){
	var reTime = /^([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$/;
	
	var campoTempo = document.getElementById(nomeCampo);
	var valorCampoTempo = campoTempo.value;
	
	eval("reTime = reTime");
	
	if( !reTime.test(valorCampoTempo) && validaBranco2(nomeCampo) ){
		alert("O horário " + valorCampoTempo + " é inválido.");
		campoTempo.focus();
		return false;
	} 
	return true;
}

function getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

function verificaPais() {
	if( $("paisNatal").value == "Brasil" ) {
		$("campoCPF").style.display = '';
		$("cadastroRG").style.display = '';
		$("campoCadastroRG").style.display = '';
		$("cadastroPassaporte").style.display = 'none';
		$("cod_documento").value = 1;
		
	} else {
		$("campoCPF").style.display = 'none';
		$("boxCPFExistente").style.display = 'none';
		$("cadastroRG").style.display = 'none';
		$("campoCadastroRG").style.display = 'none';
		$("cadastroPassaporte").style.display = '';
		$("cod_documento").value = 3;
		$("cpf").value = '';
	}
}

//retorna o elemento
function $(nomeElemento) {
	return document.getElementById(nomeElemento);
}

function buscarCPF(){
	var ajax = XMLHTTPRequest();
	ajax.open("GET", ("ajax_buscaCPF.asp?cpf=" + $("cpf").value), true);
	
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 1) {
			$("loadingCPF").style.display = '';
			$("boxCPFExistente").style.display = 'none';
		}
		else if (ajax.readyState == 4) {
			var r = ajax.responseText, primeiroNome, ultimoNome, cod_usuario;
		
			primeiroNome = r.substring(0, (i = r.indexOf('|')));
			r = r.substring(++i);
			
			ultimoNome = r.substring(0, (i = r.indexOf('|')));
			r = r.substring(++i);
	
			cod_usuario = r.substring(0, (i = r.indexOf('|')));
			r = r.substring(++i);
			
			$("loadingCPF").style.display = 'none';
			
			if( cod_usuario != "" ) {
				$("cpf").value = '';
				$("boxCPFExistente").style.display = '';
			}
		}
	};
	ajax.send(null);
}

function buscaEndereco() {
	if( idiomaAtual != "English" ){
		var ajax = XMLHTTPRequest();
		ajax.open("GET", ("ajax_buscaCEP.asp?cep=" + $("cep").value), true);
		
		ajax.onreadystatechange = function() {
			if (ajax.readyState == 1) {
				$("loadingCEP").style.display = '';
			}
			else if (ajax.readyState == 4) {
				var r = ajax.responseText, endereco, bairro, cidade, uf;

				endereco = r.substring(0, (i = r.indexOf('|')));
				r = r.substring(++i);
		
				bairro = r.substring(0, (i = r.indexOf('|')));
				r = r.substring(++i);
			
				cidade = r.substring(0, (i = r.indexOf('|')));
				r = r.substring(++i);
	
				uf = r.substring(0, (i = r.indexOf('|')));
				r = r.substring(++i);			
				
				$("loadingCEP").style.display = 'none';
				
				$("endereco").value = endereco;
				$("bairro").value = bairro;
				$("cidade").value = cidade;
				$("UF").value = uf;
				$("pais").value = "Brasil";
			}
		};
		ajax.send(null);
	}
}

function buscaLogin() {
	var ajax = XMLHTTPRequest();
	ajax.open("GET", ("ajax_buscaLogin.asp?login=" + $("login").value), true);
	
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 1) {
			$("loadingLogin").style.display = '';
			$("boxLoginExistente").style.display = 'none';
		}
		else if (ajax.readyState == 4) {
			var r = ajax.responseText;
			
			$("loadingLogin").style.display = 'none';
			
			if( r > 0 ) {
				$("login").value = '';
				$("boxLoginExistente").style.display = '';
			}
		}
	};
	ajax.send(null);
}

function XMLHTTPRequest() {
  try {
    return new XMLHttpRequest(); // FF, Safari, Konqueror, Opera, ...
  } catch(ee) {
    try {
      return new ActiveXObject("Msxml2.XMLHTTP"); // activeX (IE5.5+/MSXML2+)
    } catch(e) {
      try {
        return new ActiveXObject("Microsoft.XMLHTTP"); // activeX (IE5+/MSXML1)
      } catch(E) {
        return false; // doesn't support
      }
    }
  }
}

var fadebgcolor="white"

var fadearray=new Array() //array to cache fadeshow instances
var fadeclear=new Array() //array to cache corresponding clearinterval pointers

var dom=(document.getElementById) //modern dom browsers
var iebrowser=document.all

function fadeshow(theimages, fadewidth, fadeheight, borderwidth, delay, pause, displayorder){
	this.pausecheck=pause
	this.mouseovercheck=0
	this.delay=delay
	this.degree=10 //initial opacity degree (10%)
	this.curimageindex=0
	this.nextimageindex=1
	fadearray[fadearray.length]=this
	this.slideshowid=fadearray.length-1
	this.canvasbase="canvas"+this.slideshowid
	this.curcanvas=this.canvasbase+"_0"
	if (typeof displayorder!="undefined")
	theimages.sort(function() {return 0.5 - Math.random();})
	this.theimages=theimages
	this.imageborder=parseInt(borderwidth)
	this.postimages=new Array() //preload images
	for (p=0;p<theimages.length;p++){
		this.postimages[p]=new Image()
		this.postimages[p].src=theimages[p][0]
	}

	var fadewidth=fadewidth+this.imageborder*2
	var fadeheight=fadeheight+this.imageborder*2

	if (iebrowser&&dom||dom) //if IE5+ or modern browsers (ie: Firefox)
	document.write('<div id="master'+this.slideshowid+'" style="position:relative;width:'+fadewidth+'px;height:'+fadeheight+'px;overflow:hidden;"><div id="'+this.canvasbase+'_0" style="position:absolute;width:'+fadewidth+'px;height:'+fadeheight+'px;top:0;left:0;filter:progid:DXImageTransform.Microsoft.alpha(opacity=10);opacity:0.1;-moz-opacity:0.1;-khtml-opacity:0.1;background-color:'+fadebgcolor+'"></div><div id="'+this.canvasbase+'_1" style="position:absolute;width:'+fadewidth+'px;height:'+fadeheight+'px;top:0;left:0;filter:progid:DXImageTransform.Microsoft.alpha(opacity=10);opacity:0.1;-moz-opacity:0.1;-khtml-opacity:0.1;background-color:'+fadebgcolor+'"></div></div>')
	else
	document.write('<div><img name="defaultslide'+this.slideshowid+'" src="'+this.postimages[0].src+'"></div>')

	if (iebrowser&&dom||dom) //if IE5+ or modern browsers such as Firefox
	this.startit()
	else{
		this.curimageindex++
		setInterval("fadearray["+this.slideshowid+"].rotateimage()", this.delay)
	}
}

function fadepic(obj){
	if (obj.degree<100){
		obj.degree+=10
		if (obj.tempobj.filters&&obj.tempobj.filters[0]){
			if (typeof obj.tempobj.filters[0].opacity=="number") //if IE6+
			obj.tempobj.filters[0].opacity=obj.degree
			else //else if IE5.5-
			obj.tempobj.style.filter="alpha(opacity="+obj.degree+")"
		}
		else if (obj.tempobj.style.MozOpacity)
		obj.tempobj.style.MozOpacity=obj.degree/101
		else if (obj.tempobj.style.KhtmlOpacity)
		obj.tempobj.style.KhtmlOpacity=obj.degree/100
		else if (obj.tempobj.style.opacity&&!obj.tempobj.filters)
		obj.tempobj.style.opacity=obj.degree/101
	}
	else{
		clearInterval(fadeclear[obj.slideshowid])
		obj.nextcanvas=(obj.curcanvas==obj.canvasbase+"_0")? obj.canvasbase+"_0" : obj.canvasbase+"_1"
		obj.tempobj=iebrowser? iebrowser[obj.nextcanvas] : document.getElementById(obj.nextcanvas)
		obj.populateslide(obj.tempobj, obj.nextimageindex)
		obj.nextimageindex=(obj.nextimageindex<obj.postimages.length-1)? obj.nextimageindex+1 : 0
		setTimeout("fadearray["+obj.slideshowid+"].rotateimage()", obj.delay)
	}
}

fadeshow.prototype.populateslide=function(picobj, picindex){
	var slideHTML=""
	if (this.theimages[picindex][1]!="") //if associated link exists for image
	slideHTML='<a href="'+this.theimages[picindex][1]+'" target="'+this.theimages[picindex][2]+'">'
	slideHTML+='<img src="'+this.postimages[picindex].src+'" border="'+this.imageborder+'px">'
	if (this.theimages[picindex][1]!="") //if associated link exists for image
	slideHTML+='</a>'
	picobj.innerHTML=slideHTML
}

fadeshow.prototype.rotateimage=function(){
	if (this.pausecheck==1) //if pause onMouseover enabled, cache object
	var cacheobj=this
	if (this.mouseovercheck==1)
	setTimeout(function(){cacheobj.rotateimage()}, 100)
	else if (iebrowser&&dom||dom){
		this.resetit()
		var crossobj=this.tempobj=iebrowser? iebrowser[this.curcanvas] : document.getElementById(this.curcanvas)
		crossobj.style.zIndex++
		fadeclear[this.slideshowid]=setInterval("fadepic(fadearray["+this.slideshowid+"])",50)
		this.curcanvas=(this.curcanvas==this.canvasbase+"_0")? this.canvasbase+"_1" : this.canvasbase+"_0"
	}
	else{
		var ns4imgobj=document.images['defaultslide'+this.slideshowid]
		ns4imgobj.src=this.postimages[this.curimageindex].src
	}
	this.curimageindex=(this.curimageindex<this.postimages.length-1)? this.curimageindex+1 : 0
}

fadeshow.prototype.resetit=function(){
	this.degree=10
	var crossobj=iebrowser? iebrowser[this.curcanvas] : document.getElementById(this.curcanvas)
	if (crossobj.filters&&crossobj.filters[0]){
		if (typeof crossobj.filters[0].opacity=="number") //if IE6+
		crossobj.filters(0).opacity=this.degree
		else //else if IE5.5-
		crossobj.style.filter="alpha(opacity="+this.degree+")"
	}
	else if (crossobj.style.MozOpacity)
	crossobj.style.MozOpacity=this.degree/101
	else if (crossobj.style.KhtmlOpacity)
	crossobj.style.KhtmlOpacity=this.degree/100
	else if (crossobj.style.opacity&&!crossobj.filters)
	crossobj.style.opacity=this.degree/101
}

fadeshow.prototype.startit=function(){
	var crossobj=iebrowser? iebrowser[this.curcanvas] : document.getElementById(this.curcanvas)
	this.populateslide(crossobj, this.curimageindex)
	if (this.pausecheck==1){ //IF SLIDESHOW SHOULD PAUSE ONMOUSEOVER
		var cacheobj=this
		var crossobjcontainer=iebrowser? iebrowser["master"+this.slideshowid] : document.getElementById("master"+this.slideshowid)
		crossobjcontainer.onmouseover=function(){cacheobj.mouseovercheck=1}
		crossobjcontainer.onmouseout=function(){cacheobj.mouseovercheck=0}
	}
	this.rotateimage()
}


// Validação de Cartão de Crédito
function validaCartaoCredito(cardNumber, cardType){
    var isValid = false;
    var ccCheckRegExp = /[^\d ]/;
    isValid = !ccCheckRegExp.test(cardNumber);
    if (isValid){
        var cardNumbersOnly = cardNumber.replace(/ /g,"");
        var cardNumberLength = cardNumbersOnly.length;
        var lengthIsValid = false;
        var prefixIsValid = false;
        var prefixRegExp;
    switch(cardType){
        case "mastercard":
            lengthIsValid = (cardNumberLength == 16);
            prefixRegExp = /^5[1-5]/;
        break;
        case "visa":
            lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
            prefixRegExp = /^4/;
        break;
        case "amex":
            lengthIsValid = (cardNumberLength == 15);
            prefixRegExp = /^3(4|7)/;
        break;
        default:
            prefixRegExp = /^$/;
            alert("Card type not found");
    }

    prefixIsValid = prefixRegExp.test(cardNumbersOnly);
    isValid = prefixIsValid && lengthIsValid;
	
    }
    if (isValid){
        var numberProduct;
        var numberProductDigitIndex;
        var checkSumTotal = 0;
        for (digitCounter = cardNumberLength - 1; digitCounter >= 0; digitCounter--){
            checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
            digitCounter--;
            numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
            for (var productDigitCounter = 0; productDigitCounter < numberProduct.length; productDigitCounter++){
                checkSumTotal += parseInt(numberProduct.charAt(productDigitCounter));
            }
        }
        isValid = (checkSumTotal % 10 == 0);
    }

    return isValid;
}