	
	function ValidaDadosPedidoDeRessarcimento(chkBox1,chkBox2)
	{
		var errorMsg = "";
		var flag = false;	
		
		// Verifica se foi selecionado um dos dois checkboxes de tipos de bens avariados
		if(!getObj(chkBox1).checked && !getObj(chkBox2).checked)
		{
			flag = true;
			errorMsg += "Pelo menos um dos dois tipos de bens avariados deve ser escolhido: \n";
			errorMsg += "      - Check Box Bens Elétricos \n      - Check Bens Não Elétricos\n\n";	
		}
		
		if (flag == true)
		{
			alert ("Ocorreram os seguintes erros:\n\n   "+errorMsg);
			return false;
		}

		return true;
	}
	
	
	// Validação do Pedido de Desligamento Definitivo
	function validaTudo(idTelefone,idEmail,chkBox1,chkBox2,chkBox4,chkBox5,inpContaNoEmail)
	{
			var errorMsg = ""
			var flag = false;
			
			
			//if(getObj(inpFaxEnviado).value == "")
			//{
			//	flag = true;
			//	errorMsg += "O campo Fax Enviado é obrigatório. \n";	
			//}

			if (!getObj(chkBox1).checked && !getObj(chkBox2).checked)
			{
				flag = true;
				errorMsg += "Pelo menos um dos dois dados para Faturamento é obrigatório: \n";
				errorMsg += "      - Check Box Faturar a conta final pela média dos últimos três faturamentos \n      - Check Box Faturar pela leitura real\n\n";
			}
			
			if (!getObj(chkBox4).checked && !getObj(chkBox5).checked && !getObj(inpContaNoEmail).checked)
			{
				flag = true;
				errorMsg += "   Pelo menos um dos três dados para Endereço de entrega de conta é obrigatório: \n";
				errorMsg += "      - Check Box Quero receber a conta no mesmo endereço \n      - Check Box Quero receber a conta em outro endereço \n      - Check Box Receber conta pelo email informado \n\n";
			}
			
			if(getObj(inpContaNoEmail).checked && getObj(idEmail).value == "" )
			{
					flag = true;
					errorMsg += "   Dado de contato (E-MAIL) é obrigatório.\n      - Email para contato é um campo obrigatório quando a opção \"Quero receber a conta no e-mail informado\" é marcada.\n";
			}
			else
			{
				if(getObj(idTelefone).value == "" && getObj(idEmail).value == "")
				{
					errorMsg += "   Pelo menos um dado para contato é de preenchimento obrigatório.\n      - (Código de Área) N° Telefone\n      - E-mail \n\n";
					flag = true;
				}
			}
			
			if(getObj(idEmail).value!="") 
			{
				if(!vEmail(getObj(idEmail).value))
				{
					flag = true;
					errorMsg += "O campo \"E-MAIL\" não é um endereço de e-mail válido. \n";
				}
			}
			
			if (flag == true)
			{
				alert ("Ocorreram os seguintes erros:\n\n   "+errorMsg);
				return false;
			}

			return true;
	}
	
	function validateContact(idTelefone,idEmail) {

		if(getObj(idTelefone).value == "" && getObj(idEmail).value == "") {

			alert("Ocorreram os seguintes erros:\n   Pelo menos um dado para contato é de preenchimento obrigatório.\n      - (Código de Área) N° Telefone\n      - E-mail");
			getObj(idTelefone).focus();
			return false;

		}
		if(getObj(idEmail).value!="") {
			if(!vEmail(getObj(idEmail).value)) {
				alert("Ocorreram os seguintes erros:\n   O campo \"E-MAIL\" não é um endereço de e-mail válido.");
				return false;
			}
		}
		return true;
	}

	function validate() {
	

	
		var form = document.frm;
		var i,j;
		var chk;
		var opt = "";
		var ret = "";
		var o;
		var test;
		for (i = 0; i < form.elements.length; i ++) {
			var field = form.elements[i];			
			
			test = true;
			
			
			o = field.parentNode;
			if(o.nodeName.toUpperCase()=="TD" || o.nodeName.toUpperCase()=="P") {
				while(o!=null && (o.nodeName.toUpperCase()!="TABLE" && o.nodeName.toUpperCase()!="DIV")) {
					o = o.parentNode;
				}
				if(o!=null && o.style.display=="none") {
					test = false;
				}
			}
			
			var required = field.getAttribute("required");
			if(test && required!=null && required!=undefined && required!="false") {
				label = "";
				//try{
				label = field.getAttribute("label");
				//}catch{}
				if(label==null || label==undefined || label=="")  {
					if(field.parentNode.nodeName.toUpperCase()=="TD") 
					{
						// Modificado por Renan Rosa da Silva - 14/07/2009 - Motivo: Cross-Over de Navegadores 
						if((field.parentNode.cellIndex - 1) >= 0)
							if (field.parentNode.parentNode.cells[field.parentNode.cellIndex - 1] != undefined)
								label = field.parentNode.parentNode.cells[field.parentNode.cellIndex - 1].innerHTML;
					}
				}
				
				
				if(field.type=='text' ||
				field.type=='select-one' ||
				field.type=='textarea' ||
				field.type=='password'
				) {
				
					var required = field.getAttribute("required");
					var minlength = field.getAttribute("minlength");
					var maxlength = field.getAttribute("maxlength");
					var vltype =  field.getAttribute("vltype");
					
					if(required!=null && required!=undefined && required!="false") {
						if(field.value=="") {
							ret+= vMsgRequired(label);
						}
					}

					if(minlength!=null && minlength!=undefined) {			
						
						if(field.value.length<minlength) {
							ret+= vMsgMinlength(label, minlength)
						}
					}

					if(maxlength!=null && maxlength!=undefined) {			
						if(field.value.length>maxlength) {
							ret+= vMsgMaxlength(label, maxlength)
						}
					}

					if(vltype!=null && vltype!=undefined) {			
						if(vltype=="data") {	
							if(!vData(field.value)) 
								ret+= vMsgData(label)
						}else if((vltype=="mail" || vltype=="email") && field.value!="") {	
							if(!vEmail(field.value)) 
								ret+= vMsgEmail(label)
						}else if(vltype=="CEP") {	
							if(!vCEP(field.value)) 
								ret+= vMsgCEP(label)
						}else if(vltype=="CPF") {	
							if(!vCPF(field.value))
								ret+= vMsgCPF(label)
						}else if(vltype=="CNPJ") {	
							if(!vCNPJ(field.value))
								ret+= vMsgCNPJ(label)
						}						
					}
				}else if(field.type=='checkbox' ||
					field.type=='radio') {
					if(opt.indexOf(field.name)<0) {
						opt+= "," + field.name
						var option = document.all(field.name)
						if(option.length!=null && option.length!=undefined) {
							if(option[0].required!=null && option[0].required!="undefined") {
								chk = false;
								for(j=0;j<option.length;j++) {
									if(option[j].checked) {
										chk = true;	
									}
								}
								if(!chk) {						
									ret+= vMsgRequired(label)
								}
							}
						}else {
							if(option.required!=null && option.required!="undefined") {
								if(!option.checked) {
									ret+= vMsgRequired(label)
								}
							}
						}	
					}
				}
			}
		}

		if(ret!="") {
			ret = "Ocorreram os seguintes erros:\n" + ret;
			alert(ret);
			return false;
		}else {
			return true;
		}
	
	}


	function vMsgRequired(name) {
		return "   O campo \"" + name + "\" é de preenchimento obrigatório.\n";
	}

	function vMsgMinlength(name, min) {
		return "   O campo \"" + name + "\" deve possuir, no mínimo, " + min + " caracteres.\n";
	}

	function vMsgMaxlength(name, max) {
		return "   O campo \"" + name + "\" deve possuir, no máximo, " + max + " caracteres.\n";
	}

	function vMsgEmail(name) {
		return "   O campo \"" + name + "\" não é um endereço de e-mail válido.\n";
	}

	function vMsgCPF(name) {
		return "   O campo \"" + name + "\" não é um número de CPF válido.\n";
	}
	
	function vMsgCNPJ(name) {
		return "   O campo \"" + name + "\" não é um número de CNPJ válido.\n";
	}

	function vMsgCEP(name) {
		return "   O campo \"" + name + "\" não é um número de CEP válido.\n";
	}
	
	function vMsgData(name) {
		return "   O campo \"" + name + "\" não é uma data válida.\n";
	}

	function vEmail(v) {		
		var reg = new RegExp("^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$");
		return reg.test(v);
	}
	
	function vCEP(v) {
		var reg = new RegExp("(^[0-9]{5}\-[0-9]{3}$)")
		return reg.test(v);
	}

	
	function vCNPJ(v) {
		var reg = new RegExp("(^[0-9]{2,3}\.[0-9]{3}\.[0-9]{3}\/[0-9]{4}-[0-9]{2}$)")
		return reg.test(v);
	}


	function vInstalacao(v) {
		//var reg = new RegExp("(^[0-9]{7}\-[0-9]{1}$)")
		//return reg.test(v);
		return true;
	}

	function vData(v) {
		var temp = String(data);
		if (temp.length == 0) return true;		
		if (temp.length == "undefined")return true;		
		if (temp.length != 10) return false;		
		if (temp.charAt(2)!="/" || temp.charAt(5)!="/") return false
		
		//Pega o dia		
		var dia
		if (temp.substr(0, 2)=="08" || temp.substr(0, 2)=="09")
			dia = parseInt(temp.substr(1, 1));
		else
			dia = parseInt(temp.substr(0, 2));

		//pega o mes
		var mes
		if (temp.substr(3, 2)=="08" || temp.substr(3, 2)=="09")
			mes = parseInt(temp.substr(4, 1));
		else
			mes = parseInt(temp.substr(3, 2));
		
		//pega o ano
		var ano = parseInt(temp.substr(6, 4));

		if (ano < 1900) return false;	
		if (mes < 1 || mes > 12) return false;
		if (dia < 1) return false;

		if (mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12) {
			//meses com 31 dias
			return dia <= 31;
		} else {
			if (mes==4 || mes==6 || mes==9 || mes==11) {
				//meses com 30 dias
				return dia <= 30 && dia >=1;
			} else {
				//fevereiro				
				if (ano%4==0) {					
				//ano bissexto
					return dia <= 29 && dia >=1;
				} else {
					//ano normal
					return dia <= 28 && dia >=1;				
				}
			}
		}		
	}
	
	function vCPF(CPF) {
		CPF = CPF.replace('.','');
		CPF = CPF.replace('.','');
		CPF = CPF.replace('.','');
		CPF = CPF.replace('-','');
	
		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;
		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;
		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;
		return true;
	}
	
	
	function vMask(objForm, evtKeyPress, sMask) {

		
		var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

		sValue = objForm.value;
//alert(evtKeyPress.keyCode)
		if(evtKeyPress.keyCode ==8 ||evtKeyPress.keyCode ==46 ) 
				return;
				
		//alert(evtKeyPress.keyCode);
		// Limpa todos os caracteres de formatação que
		// já estiverem no campo.
		sValue = sValue.toString().replace( ":", "" );
		sValue = sValue.toString().replace( "-", "" );
		sValue = sValue.toString().replace( "-", "" );
		sValue = sValue.toString().replace( ".", "" );
		sValue = sValue.toString().replace( ".", "" );
		sValue = sValue.toString().replace( "/", "" );
		sValue = sValue.toString().replace( "/", "" );
		sValue = sValue.toString().replace( "(", "" );
		sValue = sValue.toString().replace( "(", "" );
		sValue = sValue.toString().replace( ")", "" );
		sValue = sValue.toString().replace( ")", "" );
      		sValue = sValue.toString().replace( " ", "" );
      		sValue = sValue.toString().replace( " ", "" );
      		fldLen = sValue.length;
      		mskLen = sMask.length;


      		i = 0;
      		nCount = 0;
      		sCod = "";
      		mskLen = fldLen;

      		while (i <= mskLen) {
        		bolMask = ((sMask.charAt(i) == ":") ||(sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
        		bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

        		if (bolMask) {
          			sCod += sMask.charAt(i);
          			mskLen++; }
        		else {
          			sCod += sValue.charAt(nCount);
          			nCount++;
        		}

        		i++;
      		}

      		objForm.value = sCod;

		nTecla = evtKeyPress.keyCode;
		
      		if (nTecla != 8 && nTecla != 9 && nTecla!=39 && nTecla!=37 && nTecla!=46) { // backspace, tab,
        		if (sMask.charAt(i-1) == "9") { // apenas números...
				if(((nTecla > 47) && (nTecla < 58)) || ((nTecla > 95) && (nTecla < 106)))
	          			return true; 
				else {
					
					evtKeyPress.returnValue=false
				}
			} 
        		else { // qualquer caracter...
          			return true;
        		} 
		}
      		else {
        		return true;
      		}	
	}
	
	function formatMoney(input,evt){
	nTecla = event.keyCode;
	//	alert(nTecla)
	if(((nTecla > 47) && (nTecla < 58)) )
	          	{
			var num = input.value.replace(/\./g,'');
			if(!isNaN(num)){
			num = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1.');
			num = num.split('').reverse().join('').replace(/^[\.]/,'');
			input.value = num;
			}

	} else{
		 evt.returnValue=false;
		return false;
		}
 }  