/*
function setLightboxTitle(obj, legenda, creditos);
function trocaImagem(obj, imgName);
function fillOnlyNumbers(evt);
function submitForm(action);
function openDoc(doc);
function isValidEmail(email);
autoTab(elmnt, e); // Depende de containsElement(arr, ele).
containsElement(arr, ele);
*/

function setLightboxTitle(obj, legenda, creditos){
	obj.title = "";
	if (legenda != "") obj.title = legenda+"<br>";
	if (creditos != "") obj.title += "<span class='creditos'>"+creditos+"</span>";
}

function trocaImagem(obj, imgName){
	obj.src = imgName;
}

function fillOnlyNumbers(evt){
	var charCode = (evt.which) ? evt.which : event.keyCode;
	if((/\D/).test(String.fromCharCode(charCode)) && charCode != 13)
		return false;

	return true;
}

function submitForm(action){
	var form = document.forms[0];
	form.method = "post";
	form.action = action;
	form.submit();
}

function openDoc(doc){
	window.open(doc, "_blank", "directories=no, location=no, resizable=yes, menubar=no, status=no, titlebar=no, toolbar=no");
}

function isValidEmail(email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   return reg.test(email);
}

function autoTab(elmnt, e){
	var isNN = (navigator.appName.indexOf("Netscape")!=-1);
	var keyCode = (isNN) ? e.which : e.keyCode; 
	var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
	if (elmnt.value.length==elmnt.maxLength && !containsElement(filter,keyCode)){
		next=elmnt.tabIndex;
		if (next < document.forms[0].elements.length){
			document.forms[0].elements[next].focus();
		}
	}
}

function containsElement(arr, ele) {
	var found = false, index = 0;
	while(!found && index < arr.length)
	if(arr[index] == ele)
	found = true;
	else
	index++;
	return found;
}

function FormataCgc(campo,tammax,teclapres) {
	/* Esta funcao formata um campo CNPJ. Mas nao valida, a funcao que formata e valida ? a Verifica_CGC().
	Deve ser passado como parametro o nome do campo, tamanho maximo e o 'event'. */

		var campoObj = document.getElementById(campo);

		var tecla = teclapres.keyCode;
		vr = campoObj.value;
		vr = vr.replace( "/", "" );
		vr = vr.replace( "/", "" );
		vr = vr.replace( "/", "" );
		vr = vr.replace( ",", "" );
		vr = vr.replace( ".", "" );
		vr = vr.replace( ".", "" );
		vr = vr.replace( ".", "" );
		vr = vr.replace( ".", "" );
		vr = vr.replace( ".", "" );
		vr = vr.replace( ".", "" );
		vr = vr.replace( ".", "" );
		vr = vr.replace( "-", "" );
		vr = vr.replace( "-", "" );
		vr = vr.replace( "-", "" );
		vr = vr.replace( "-", "" );
		vr = vr.replace( "-", "" );
		tam = vr.length;

		if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

		if (tecla == 8 ){	tam = tam - 1 ; }

		if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){
			if ( tam <= 2 ){
		 		document.form[campo].value = vr ; }
		 	if ( (tam > 2) && (tam <= 6) ){
		 		document.form[campo].value = vr.substr( 0, tam - 2 ) + '-' + vr.substr( tam - 2, tam ) ; }
		 	if ( (tam >= 7) && (tam <= 9) ){
		 		document.form[campo].value = vr.substr( 0, tam - 6 ) + '/' + vr.substr( tam - 6, 4 ) + '-' + vr.substr( tam - 2, tam ) ; }
		 	if ( (tam >= 10) && (tam <= 12) ){
		 		document.form[campo].value = vr.substr( 0, tam - 9 ) + '.' + vr.substr( tam - 9, 3 ) + '/' + vr.substr( tam - 6, 4 ) + '-' + vr.substr( tam - 2, tam ) ; }
		 	if ( (tam >= 13) && (tam <= 14) ){
		 		document.form[campo].value = vr.substr( 0, tam - 12 ) + '.' + vr.substr( tam - 12, 3 ) + '.' + vr.substr( tam - 9, 3 ) + '/' + vr.substr( tam - 6, 4 ) + '-' + vr.substr( tam - 2, tam ) ; }
		 	if ( (tam >= 15) && (tam <= 17) ){
		 		document.form[campo].value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + '-' + vr.substr( tam - 2, tam ) ;}
		}
	}

	function valida_CGC(campo){
	/* Esta funcao valida o CNPJ. Deve ser passado como parametro o nome do campo */

		var campoObj = document.getElementById(campo);
		aux_CGC = campoObj.value;
		CGC = "";
		if (aux_CGC != ''){
			for (i = 0; i<=17; i++){
				if (i != 2 && i != 6 && i != 10 && i != 15){
					CGC = CGC + aux_CGC.charAt(i);
				}
			}
			if (CGC.length != 14) {
			// tamanho invalido
	  			sim=false;
				//alert ("Tamanho de CNPJ inv?lido!");
				//document.form[campo].value ="";
				//document.form[campo].focus();
				return false;
			}
			else {
				sim=true;
			}
			if (sim)  // verfica se e numero
			{
				for (i=0;((i<=(CGC.length-1))&& sim); i++){
					val = CGC.charAt(i);
					if  ((val!="9")&&(val!="0")&&(val!="1")&&(val!="2")&&(val!="3")&&(val!="4")&&(val!="5")&&(val!="6")&&(val!="7")&&(val!="8")){
						sim=false;
						//alert ("CNPJ inv?lido!");
						//document.form[campo].value ="";
						//document.form[campo].focus();
						return false;
					}
				}
				if (sim)  // se for numero continua
				{
					m2 = 2;
					soma1 = 0;
					soma2 = 0;
					for (i=11;i>=0;i--){
						val = eval(CGC.charAt(i));
						//file://alert ("Valor do Val: "+val)
						m1 = m2;
						if (m2<9) {
							m2 = m2+1;
						}
						else {
							m2 = 2;
						}
						soma1 = soma1 + (val * m1);
						soma2 = soma2 + (val * m2);
					}  // fim do for de soma
					soma1 = soma1 % 11;
					if (soma1 < 2) {
						d1 = 0;
					}
					else {
						d1 = 11- soma1;
					}
					soma2 = (soma2 + (2 * d1)) % 11;
					if (soma2 < 2) {
						d2 = 0;
					}
					else {
						d2 = 11- soma2;
					}
				}
				if ((d1==CGC.charAt(12)) && (d2==CGC.charAt(13))){
					// alert("Valor Valido de CNPJ")
					return true;
				}
				else{
					//alert ("CNPJ inv?lido!");
					//document.form[campo].value ="";
					//document.form[campo].focus();
					return false;
				}
			}
		}
	}

	function formata_CPF_CGC(campo){
	/* Esta funcao formata e um campo que pode ser tanto o CPF ou o CNPJ.
	Deve ser passado como parametro o nome do campo */

		var campoObj = document.getElementById(campo);
		
		vr = campoObj.value;
		vr = vr.replace( "/", "" );
		vr = vr.replace( "-", "" );
		vr = vr.replace( ".", "" );
		vr = vr.replace( " ", "" );
		tam = vr.length;
		
		if (tam == 14){		
			campoObj.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 3 ) + '.' + vr.substr( 5, 3 ) + '/' + vr.substr( 8, 4 ) + '-' + vr.substr( 12, 2 ) ;
		}
		else if (tam == 11){		
			campoObj.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3, 3 ) + '.' + vr.substr( 6, 3 ) + '-' + vr.substr( 9, 2 ) ;
		}
	}


	function valida_CPF_CGC(campo){
	/* Esta funcao valida o campo que pode ser tanto CPF ou CNPJ. Deve ser passado como parametro o nome do campo */

	   var campoObj = document.getElementById(campo);

	   vr = campoObj.value;
	   tam = vr.length;

	   if (tam == 18){
		   return valida_CGC(campo);
	   }
	   else if (tam == 14){
		   return valida_CPF(campo);
	   }
	}

	function valida_CPF(campo){
	/* Esta funcao valida o CPF. Deve ser passado como parametro o nome do campo */

		var campoObj = document.getElementById(campo);
		aux_CPF = campoObj.value;

		CPF = "";
		for (i = 0; i<=13; i++){
			if (i != 3 && i != 7 && i != 11){
				CPF = CPF + aux_CPF.charAt(i);
			}
		}

		if (campoObj.value != '' ){
			if (CPF.length != 11 || CPF == "00000000000" || CPF == "11111111111" || CPF == "22222222222" || CPF == "33333333333" || CPF == "44444444444" || CPF == "55555555555" || CPF == "66666666666" || CPF == "77777777777" || CPF == "88888888888" || CPF == "99999999999"){
				return false;
			}
			else {
				soma = 0;
				for (i=0; i < 9; i ++)
					soma += parseInt(CPF.charAt(i)) * (10 - i);
				resto = 11 - (soma % 11);
				if (resto == 10 || resto == 11)
					resto = 0;
				if (resto != parseInt(CPF.charAt(9))){
	        			return false;
	     			}
				else {
					soma = 0;
					for (i = 0; i < 10; i ++)
						soma += parseInt(CPF.charAt(i)) * (11 - i);
					resto = 11 - (soma % 11);
					if (resto == 10 || resto == 11)
						resto = 0;
					if (resto != parseInt(CPF.charAt(10))){
						return false;
					}
					else{
					   return true;
					}
				}
			}
		}
	}


	function Verifica_CGC(campo){
	/* Esta funcao formata e o CPF/CNPJ e chama a funcao valida_CPF_CGC para ver se este ? valido.
	Deve ser passado como parametro o nome do campo */

	   var campoObj = document.getElementById(campo);

	   formata_CPF_CGC(campo);
	   if ((campoObj.value.length > 0) && (!valida_CPF_CGC(campo))){
		   alert ("CNPJ/CPF inválido!!!");
		   campoObj.focus();
	   }
	}


	function Verifica_CPF(campo){
	/* Esta funcao formata e o CPF/CNPJ e chama a funcao valida_CPF_CGC para ver se este ? valido.
	Deve ser passado como parametro o nome do campo */

	   var campoObj = document.getElementById(campo);

	   formata_CPF_CGC(campo);
	   if ((campoObj.value.length > 0) && (!valida_CPF_CGC(campo))){
		   alert ("CPF inválido!");
		   campoObj.focus();
	   }
	}
	
	function validaVerifica_CPF_CGC(campo){
		// valida e verifica o campo se for CPF ou CNPJ. Chamando tb a funcao que formata esses campos.
		   formata_CPF_CGC(campo);
		   if ((document.getElementById(campo).value.length > 0) && (!valida_CPF_CGC(campo))){
			   alert ("CNPJ/CPF inválido!");
			   document.getElementById(campo).value = '';
			   document.getElementById(campo).focus();
		   }
		}

	function isCPF(field){
		   var d = field.value.replace(/\D/g,"").split("");
		   if (d.length != 11 ||
				   field.value == "00000000000" || field.value == "11111111111" ||
				   field.value == "22222222222" || field.value == "33333333333" ||
				   field.value == "44444444444" || field.value == "55555555555" ||
				   field.value == "66666666666" || field.value == "77777777777" ||
				   field.value == "88888888888" || field.value == "99999999999"){
		   		return false;
		   }else{
			   var m1 = [d[0]*10,d[1]*9,d[2]*8,d[3]*7,d[4]*6,d[5]*5,d[6]*4,d[7]*3,d[8]*2];
			   var s1 = 0;
			   for(var i=0;i<m1.length;i++){ s1 += m1[i]; }
			   var d1 = (s1 % 11 < 2)?0:11-(s1 % 11);
			   var m2 = [d[0]*11,d[1]*10,d[2]*9,d[3]*8,d[4]*7,d[5]*6,d[6]*5,d[7]*4,d[8]*3,d1*2];
			   var s2 = 0;
			   for(var i=0;i<m2.length;i++){ s2 += m2[i]; }
			   var d2 = (s2%11<2)?0:11-(s2%11);
			   return (d1 == d[9] && d2 == d[10])? true: false;
		   }
		}
	
		function formatCPF(field){
		//frmata field em formato de CPF
			var value = field.value.replace(/\D/,'');
			if(value.length != 11) return
			field.value = value.substr(0,3) + '.' + value.substr(3,3) + '.' + value.substr(6,3) + '-' + value.substr(9);
		}



