	String.prototype.trim = trim; //Implementa o método trim() no objeto String.
	function trim() { return(this.replace(/^\s+|\s+$/gi,"").replace(/\s{2,}/gi," " )) }

	function isEmpty (campo){	return (campo.value.trim().length == 0);	}
	
	function isName (campo) {	return (campo.value.trim().indexOf(' ') > 0);  }	

	function isNotChecked (campo){	return (!(campo.checked));	}

	function isNotSelected (campo){	return (campo.selectedIndex == 0 || campo.selectedIndex == null) }

	function isEmail(campo){
		reEmail3 = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
		str = campo.value;
		//return (str.indexOf('.') > 2) && (str.indexOf('@') > 0);
		return reEmail3.test(str);
	}
	
	function validaEmail(campo){
		if (!isEmail(campo)){
			alert("Endereço de e-mail inválido");
			campo.value = "";
//			campo.focus();
		}
	}
	
	function isValidDateField (campo){
		//loadJS("../includes/js/date_compact.js");
		var campoData = document.getElementById(campo);
		if (campoData.value!=""){
			var d= isDate(campoData.value,'dd/MM/yyyy'); //parseDate(campoData.value,true); // parse return null
			if(d==false){
					alert('Formato de data inválida! \n\nFormato : dd/mm/aaaa');
			campoData.focus();
			campoData.value = "";
			}
		} 
	}
	
	function unMaskCPFField (campo){
		var valorCPF = document.getElementById(campo).value;
		if(valorCPF!=""){
			//var unMaskCPF = valorCPF.split(".");
			//var unMaskCPF2 = unMaskCPF[2].split("-");
			//valorCPF = unMaskCPF[0]+unMaskCPF[1]+unMaskCPF2[0]+unMaskCPF2[1];
			valorCPF = valorCPF +'';
		}
		return valorCPF;
	}
	
	function isValidCPFField(campo){
		var cpf = unMaskCPFField(campo);
		//var cpf = campo;
		if (cpf!= "") {
			var checkCPF = isValidCPF(cpf);
			if (!(checkCPF)){
				alert('Formato de CPF inválido!');
				var campocpf = document.getElementById(campo);
				campocpf.value = "";
				campocpf.focus();
				
			}
		}
	}
	function isValidCNPJField(campo){
		var cnpj = document.getElementById(campo).value;
		if (cnpj!= "") {
			var checkCNPJ = isValidCNPJ(cnpj);
			if (!(checkCNPJ)){
				alert('Formato de CNPJ inválido!');
				var campocpf = document.getElementById(campo);
				campocpf.value = "";
				campocpf.focus();
			}
		}
	}
	
	function isValidCPF(RecebeCPF) {
		retorno = 0
		var Numero = new Array()
		var temp = RecebeCPF;
		var RecebeCPFx = new String(temp)
		var ch = new String('')
		var monta = new String('')
		for (var x=0; x<RecebeCPFx.length; x++){
			ch=RecebeCPFx.charAt(x)
			if ( !isNaN(ch) ) { monta = monta + ch }
		}
		RecebeCPFx = monta
		testeCpfInvalido = ((RecebeCPFx == '00000000000') ||
						(RecebeCPFx == '11111111111') ||
						(RecebeCPFx == '22222222222') ||
						(RecebeCPFx == '33333333333') ||
						(RecebeCPFx == '44444444444') || 
						(RecebeCPFx == '55555555555') ||
						(RecebeCPFx == '66666666666') ||
						(RecebeCPFx == '77777777777') ||
						(RecebeCPFx == '88888888888') ||
						(RecebeCPFx == '99999999999')
						);
		testeCpfInvalido = false; // habilita cpf´s invalidos
		if ( (RecebeCPFx.length != 11) || testeCpfInvalido ) { 
			retorno = 0
		}else{
			Numero[1] = RecebeCPFx.charAt(0)
			Numero[2] = RecebeCPFx.charAt(1)
			Numero[3] = RecebeCPFx.charAt(2)
			Numero[4] = RecebeCPFx.charAt(3)
			Numero[5] = RecebeCPFx.charAt(4)
			Numero[6] = RecebeCPFx.charAt(5)
			Numero[7] = RecebeCPFx.charAt(6)
			Numero[8] = RecebeCPFx.charAt(7)
			Numero[9] = RecebeCPFx.charAt(8)
			Numero[10] = RecebeCPFx.charAt(9)
			Numero[11] = RecebeCPFx.charAt(10)
			soma = 10 * Numero[1] + 9 * Numero[2] + 8 * Numero[3] + 7 * Numero[4] + 6 * Numero[5] + 5 * Numero[6] + 4 * Numero[7] + 3 * Numero[8] + 2 * Numero[9]
			soma = soma - (11 * (Math.floor(soma / 11)))
			if ( (soma == 0) || (soma == 1) ) { resultado1 = 0 }
			else { resultado1 = 11 - soma }
			if (resultado1 == Numero[10]){
				soma = Numero[1] * 11 + Numero[2] * 10 + Numero[3] * 9 + Numero[4] * 8 + Numero[5] * 7 + Numero[6] * 6 + Numero[7] * 5 + Numero[8] * 4 + Numero[9] * 3 + Numero[10] * 2
				soma = soma -(11 * (Math.floor(soma / 11)))
				if ( (soma == 0) || (soma == 1) ) { resultado2 = 0 }
				else { resultado2 = 11 - soma }
				if (resultado2 == Numero[11]){ retorno = -1 }
				else { retorno = 2 }
			}else { retorno = 2	}
		}
		if (retorno == -1){ return true } 
		else{ return false }
	}
	
	function isValidCNPJ(cnpj) { 
		var i; 
		cnpj = cnpj.replace(".", ""); 
		cnpj = cnpj.replace(".", ""); 
		cnpj = cnpj.replace("/", ""); 
		cnpj = cnpj.replace("-", ""); 
		var c = cnpj.substr(0,12); 
		var dv = cnpj.substr(12,2); 
		
		if (cnpj == "00000000000000") { return false; } 
		var d1 = 0; 
		var ms = "543298765432"; 
		
		for (i = 0; i < 12; i++) { 
			d1 += c.charAt(i)*ms.charAt(i); 
		} 
		
		d1 = (d1 % 11); 
		if (d1 == 0 || d1 == 1) { 
			d1 = 0; 
		} else { 
			d1 = 11 - d1; 
		} 
		
		var d1 = 0;
		var ms = "543298765432"; 
		
		for (i = 0; i < 12; i++) { 
			d1 += c.charAt(i)*ms.charAt(i); 
		} 
		
		d1 = (d1 % 11); 
		
		if (d1 == 0 || d1 == 1) { 
			d1 = 0; 
		} else { 
			d1 = 11 - d1; 
		} 
		
		var c = c + d1; 
		var d2 = 0; 
		var ms = "6543298765432"; 
		
		for (i = 0; i < 13; i++) { 
			d2 += c.charAt(i)*ms.charAt(i); 
		}
		
		d2 = (d2 % 11); 
		
		if (d2 == 0 || d2 == 1) { 
			d2 = 0; 
		} else { 
			d2 = 11 - d2; 
		} 
		
		if (dv.charAt(0) != d1 || dv.charAt(1) != d2) { return false; } 
		
		return true;
	}
	
		
	function validaForm(){
		var args=validaForm.arguments, ok = 0;
		for (i=0; i<args.length;i++){
			obj = document.getElementById(args[i]);
			obj.className = "textfield";
			switch (obj.type) {
				case "text" :
					if (isEmpty (obj)) 
						{
						obj.className = "HighLightFormField";
						ok = 1;
						}
					else
						{
						if (obj.alt=="email")
							{
							if (!(isEmail(obj)))
								{
								obj.className = "HighLightFormField";
								ok = 1;
								}
							}
						else if (obj.alt=="nome")
							{
							if (!(isName(obj)))
								{
								obj.className = "HighLightFormField";
								ok = 1;
								}							
							}
						}
					break;
				case "radio" :
					if (isNotChecked(obj)){
						obj.className = "HighLightFormField";
						ok = 1;
					}
					break;
				case "checkbox" :
					if (isNotChecked(obj)){
						obj.className = "HighLightFormField";
						ok = 1;
					}
					break;
				case "select-one" :
					if (isNotSelected(obj)){
						obj.className = "HighLightFormField";
						ok = 1;
					}
					break;
				default :
			}
		}
		
		if (ok) {
			alert("Por Favor, Verifique os Campos.");
			return false;
		} else return true;
	}
	
	function validarSenha(campo1, campo2){
		campo1 = document.getElementById(campo1)
		campo2 = document.getElementById(campo2)

		if (campo1.value != campo2.value){
			alert('As senhas não conferem.');
			campo1.value = '';
			campo2.value = '';
			campo1.focus();
		}
	}