var borderColor = "#888888";
var bgColor = "F5F3F1";

function avalia(form) {
	var frm = document.getElementById(form);

	if(avalia.arguments[1]) {
		borderColor = avalia.arguments[1];
	}
	if(avalia.arguments[2]) {
		bgColor = avalia.arguments[2];
	}
	if (document.getElementById('divErro')) {
		frm.removeChild(document.getElementById('divErro'));
	}
	
	if (document.getElementById('sombraErro')) {
		frm.removeChild(document.getElementById('sombraErro'));
	}
	
	if (document.getElementById('iframeErro')) {
		frm.removeChild(document.getElementById('iframeErro'));
	}
	
	for (i = 0; i < frm.elements.length; i++) {
		var elemento = frm.elements[i];
		elemento.style.backgroundColor = "";
		//elemento.style.borderColor = "";
	}
	
	for (i = 0; i < frm.elements.length; i++) {
		var elemento = frm.elements[i];
		if ((!document.all)&&(document.getElementById)){
			verifica = elemento.getAttribute('disabled') == null;
		}    
		
		if ((document.all)&&(document.getElementById)){
			verifica = !elemento.getAttribute('disabled');
		}
		
		if (elemento.getAttribute('obrigatorio') && (verifica)) {
			//alert(elemento.type)
			switch(elemento.type) {
				case "radio" :
					//alert(elemento.getAttribute('disabled'));
					if (navigator.userAgent.indexOf('Opera') < 0) {
						if (trim(elemento.value).indexOf(":") == -1 || trim(elemento.value).indexOf("\\") == -1) {
							marcados =-1;
							//alert(elemento.name)
							for (i=0; i<frm.elements[elemento.name].length; i++) {
								if (frm.elements[elemento.name][i].checked) {
									marcados = i
								}
							}
							//alert(marcados)
							if(marcados == -1){
								if (elemento.getAttribute('erro')) {
									mostraErro(frm,elemento,elemento.getAttribute('erro'));
								} else {
									mostraErro(frm,elemento,"Por favor, selecione uma das opções");
								}
							}else{
								elemento.removeAttribute('obrigatorio');
								avalia(frm);
							}
							return false;							
						}
					}
					break;

			
				case "file" :
					if (navigator.userAgent.indexOf('Opera') < 0) {
						if (trim(elemento.value).indexOf(":") == -1 || trim(elemento.value).indexOf("\\") == -1) {
							if (elemento.getAttribute('erro')) {
								mostraErro(frm,elemento,elemento.getAttribute('erro'));
							} else {
								mostraErro(frm,elemento,"Por favor, selecione um arquivo válido");
							}
							return false;
						}
					}
					break;
				
				case "text" :
					
					if (elemento.getAttribute('email')){
						if (trim(elemento.value).indexOf("@") == -1 || trim(elemento.value).indexOf(".") == -1) {
							if (elemento.getAttribute('erro')){
								mostraErro(frm,elemento,elemento.getAttribute('erro'));
							} else {
								mostraErro(frm,elemento,"Por favor, digite um email válido");
							}
							return false;
						}
						
						if (elemento.getAttribute('compara')){
							var campo = elemento.getAttribute('compara');
							if(elemento.value != frm.elements[campo].value){
								mostraErro(frm,elemento,"E-mails não coincidem");					
								return false;							
							}
						}
					}else if (elemento.getAttribute('cpf')) {
						//////////////////////////
						if(trim(elemento.value) == ""){
							mostraErro(frm,elemento,"Por favor, digite um CPF válido");
							return false;
						}		
						
						var cpf_ = trim(elemento.value);
						var cpfV = cpf_.replace(/\./g,"");
						var cpf = cpfV.replace(/\-/g,"");
				
						if (cpf.length < 11) { 
							if(cpf.length == 10){ 
								cpf = "0"+cpf; 
							}else if (cpf.length == 9) { 
								cpf = "00"+cpf; 
							}else{ 
								mostraErro(frm,elemento,"Por favor, digite um CPF válido");
								return false; 
							} 
						} 
						
						if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){ 
							mostraErro(frm,elemento,"Por favor, digite um CPF válido");
							return false; 
						} 
							
						var soma = 0;
						for (x=0; x < 9; x ++){
							soma += parseInt(cpf.charAt(x)) * (10 - x);
								resto = 11 - (soma % 11);
							}
							if (resto == 10 || resto == 11){
								resto = 0;
							}
							if (resto != parseInt(cpf.charAt(9))){
								mostraErro(frm,elemento,"Por favor, digite um CPF válido");
								return false;
							}
		
						var soma = 0;
						for (y = 0; y < 10; y ++){
							soma += parseInt(cpf.charAt(y)) * (11 - y);
								resto = 11 - (soma % 11);
							}
							if (resto == 10 || resto == 11){
								resto = 0;
							}
							if (resto != parseInt(cpf.charAt(10))){
								mostraErro(frm,elemento,"Por favor, digite um CPF válido");
								return false;
							}
							
					}else if (elemento.getAttribute('min')){
						if(elemento.value.length < elemento.getAttribute('min')){
							
							if (elemento.getAttribute('erro')) {
								mostraErro(frm,elemento,elemento.getAttribute('erro'));
							} else {
								mostraErro(frm,elemento,"Por favor, preencha o campo");
							}							
							return false;
						}
					}else{
						if (trim(elemento.value) == "") {
							if (elemento.getAttribute('erro')) {
								mostraErro(frm,elemento,elemento.getAttribute('erro'));
							} else {
								mostraErro(frm,elemento,"Por favor, preencha o campo");
							}
							return false;
						}
					}
					break;
				case "textarea" :
					if (trim(elemento.value) == "") {
						if (elemento.getAttribute('erro')) {
							mostraErro(frm,elemento,elemento.getAttribute('erro'));
						} else {
							mostraErro(frm,elemento,"Por favor, preencha o campo");
						}
						return false;
					}
					break;	
				default :
					if (trim(elemento.value) == "") {
						if (elemento.getAttribute('erro')) {
							mostraErro(frm,elemento,elemento.getAttribute('erro'));
						} else {
							mostraErro(frm,elemento,"Campo obrigatório");
						}
						return false;
					}
					break;
			}
		}
	}
	sent(form);
}

function trim(str) {
	while(str.charAt(0) == (" ") ) {
		str = str.substring(1);
	}
	while(str.charAt(str.length-1) == " " ) {
		str = str.substring(0,str.length-1);
	}
	return str;
}	

function mostraErro(frm,elemento,msg) {
	//elemento.style.backgroundColor = bgColorErro;
	//elemento.style.borderColor = bgColor;
	
	if(elemento.getAttribute('editor')){
		element = document.getElementById('mce_editor_1');
		calculaWidHei(element);
	}else{
		calculaWidHei(elemento);
	}
	elemento.focus();
	
	mostraDiv(frm,msg);


	if(elemento.type == "select-one"){
		if ((!document.all)&&(document.getElementById)){
			atrib = elemento.getAttribute("onchange");
			if(atrib != null){
				elemento.setAttribute("onchange",atrib+"hideDiv(event.keyCode);");
			}else{
				elemento.setAttribute("onchange","hideDiv(event.keyCode);");				
			}
		}    
		if ((document.all)&&(document.getElementById)){
			atrib = elemento.getAttribute("onchange");
			atribute = elemento.getAttributeNode('onChange').value;
			if(atrib != null){
				elemento["onchange"] = new Function(atribute+"hideDiv(event.keyCode);");
			}else{
				elemento["onchange"] = new Function("hideDiv(event.keyCode);");				
			}

		}
	}else if(elemento.type == "radio"){
		if ((!document.all)&&(document.getElementById)){
			//atrib = elemento.getAttribute("onclick");
			for (i=0; i<frm.elements[elemento.name].length; i++) {
				atrib = frm.elements[elemento.name][i].getAttribute("onclick");
				
				if(atrib == null){
					atrib = "";	
				}
				
				frm.elements[elemento.name][i].setAttribute("onclick",atrib+"hideDiv(event.keyCode);RadioButtons("+frm.name+",'"+elemento.name+"');");
			}
		}    
		if ((document.all)&&(document.getElementById)){
			//atribute = elemento.getAttributeNode('onclick').value;
			for (i=0; i<frm.elements[elemento.name].length; i++) {
				atrib = elemento.getAttribute("onclick");
				
				if(atrib != null){
					atribute = frm.elements[elemento.name][i].getAttributeNode("onclick").value;	
					//alert("atribute = "+atribute);
					if(atribute == null){
						atribute='';	
					}
					frm.elements[elemento.name][i]["onclick"] = new Function(atribute+"hideDiv(event.keyCode);");
					//alert(frm.elements[elemento.name][i]["onclick"]);

				}else{
					frm.elements[elemento.name][i]["onclick"] = new Function("hideDiv(event.keyCode);RadioButtons("+frm.name+",'"+elemento.name+"');");
				}
				
			}
		}
	}else{
		if ((!document.all)&&(document.getElementById)){
			elemento.setAttribute("onkeyup",";hideDiv(event.keyCode);");
		}    
		if ((document.all)&&(document.getElementById)){
			elemento["onkeyup"] = new Function(";hideDiv(event.keyCode);");
		}
	}

}

function mostraDiv(frm,msg) {
	var mensagem = document.createTextNode(msg);

	var divErro = document.createElement('div');
	divErro.setAttribute('id','divErro');
	frm.appendChild(divErro);
	divErro.style.left = Math.floor(pos_l + (wid / 2))+"px";//pos_l = frm.offsetWidth;
	divErro.style.position = "absolute";
	divErro.style.zIndex = "1003";
	
	
	
	var conteudoDivErro = document.createElement("div");
	conteudoDivErro.style.float = 'left';
	
	var divMsg = document.createElement('div');
	divMsg.id = 'divMsg';
	divMsg.style.padding = '3px';
	divMsg.style.borderRight = '1px solid ' + borderColor;
	divMsg.style.borderBottom = '1px solid ' + borderColor;
	divMsg.style.color = '#333333';
	divMsg.style.fontWeight = 'bold';
	divMsg.style.backgroundColor = "#"+bgColor;
	divMsg.style.fontFamily = 'Verdana, Tahoma, Arial';
	divMsg.style.fontSize = '10px';
	divMsg.style.borderTop = '1px solid ' + borderColor;	
	divMsg.style.borderLeft = '1px solid ' + borderColor;	
	if(wid/2 > 200){
		divMsg.style.width =  Math.floor(wid/2)+"px";
	}else{
		divMsg.style.width = "200px";			
	}

	divMsg.appendChild(mensagem);
	conteudoDivErro.appendChild(divMsg);
	divErro.appendChild(conteudoDivErro);

	larguraDivErro = divErro.offsetWidth;
	alturaDivErro = divErro.offsetHeight;

	alturaDivMsg = divMsg.offsetHeight;	

	larguraDivMsg = divMsg.offsetWidth;
	
	divErro.style.top = (pos_t - alturaDivMsg - 5)+"px";
	mostrarSombra(frm,msg);
	//alert(navigator.userAgent.indexOf('MSIE'));
	if (navigator.userAgent.indexOf('MSIE') > 0) {
		mostraIframe(frm,msg);
	}
}

function mostrarSombra(frm,msg) {
	var sombraErro = document.createElement('div');
	frm.appendChild(sombraErro);
	sombraErro.setAttribute('id','sombraErro');
	frm.appendChild(sombraErro);
	
	if (navigator.userAgent.indexOf('MSIE') > 0) {
		sombraErro.style.width = larguraDivMsg;
		sombraErro.style.height = alturaDivMsg;
	}else{
		sombraErro.style.width = larguraDivMsg-5
		sombraErro.style.height = alturaDivMsg-3;
	}
	
	sombraErro.style.left =  Math.floor((pos_l + (wid / 2) + 4))+"px";
	sombraErro.style.top =  Math.floor((pos_t - alturaDivMsg -5) + 7)+"px";
	sombraErro.style.position = "absolute";
	sombraErro.style.filter = "alpha(opacity = 30)";
	sombraErro.style.mozOpacity = "0.30";
	sombraErro.style.opacity = "0.30";
	sombraErro.style.backgroundColor = "#000000";
	sombraErro.style.khtmlOpacity = "0.30";
	sombraErro.style.zIndex = "1002";
		
}

function mostraIframe(frm,msg) {
	var iframeErro = document.createElement('iframe');
	iframeErro.name= "iframeErro";
	iframeErro.id= "iframeErro";
	iframeErro.width = larguraDivMsg + 4 + "px";
	iframeErro.height = alturaDivMsg + 10 + "px";
	iframeErro.frameborder= "no";
	frm.appendChild(iframeErro);
	
	iframeErro.style.left =  Math.floor(pos_l + (wid / 2))+"px"; // Posicionando iframe ao centro do elemento
	iframeErro.style.top = pos_t - alturaDivMsg - 5; // Posicionando Div acima do elemento
	iframeErro.style.position = "absolute"; // Iframe flutuante
	iframeErro.style.filter = "alpha(opacity = 0)"; // Transparência para não mostrar o iframe
	iframeErro.style.zIndex = "1020"; // Iframe nivel 1
}

// Função para calcular a Largura e Altura do elemento e seu Left: e Top:
function calculaWidHei(elemento) {
	if (elemento.offsetParent) {
		wid = elemento.offsetWidth;
		hei = elemento.offsetHeight;
		pos_l = elemento.offsetLeft;
		pos_t = elemento.offsetTop;
		while (elemento = elemento.offsetParent) {
			pos_l += elemento.offsetLeft;
			pos_t += elemento.offsetTop;
		}
	}	
}
function RadioButtons(frm,element){
	for (i=0; i<frm.elements[element].length; i++) {
//		if(frm.elements[element][i].getAttribute("obrigatorio")){
			frm.elements[element][i].removeAttribute("obrigatorio")
//		}
	}
	/*   
	//document.form[frm].eleme
	alert(frm.elements[element].length);
	
	frm.elements[element].removeAttribute('obrigatorio');
	*/
}

function hideDiv(event){
	if(event != 13){
		var divErro = document.getElementById('divErro');
		var sombraErro = document.getElementById('sombraErro');
		var iframeErro = document.getElementById('iframeErro');
		
		if (divErro) {
			divErro.style.display = "none";
		}
		
		if (sombraErro) {
			sombraErro.style.display = 'none';
		}
		
		if (iframeErro) {
			iframeErro.style.display = 'none';
		}
	}
}


//////////////////////////////

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

//////////////////////////////////////////

	

function Mascara (formato, keypress, objeto){
	campo = document.getElementById(objeto);
//onlynum(objeto);
//campo = eval (objeto);

// CEP
if (formato=='CEP'){
	cep = campo.value.replace(/[-]/g, "");
	ini = cep.substring(0,5);
	fim = cep.substring(5,8);
	campo.value = ini+"-"+fim;
}

// DATA
if (formato=='DATA'){
	data = campo.value.replace(/[/]/g, "");
	dia = data.substring(0,2);
	mes = data.substring(2,4);
	ano = data.substring(4,10);
	campo.value = dia+"/"+mes+"/"+ano;
}

// TELEFONE
if (formato=='TELEFONE'){
	tel = campo.value.replace(/[-]/g, "");
	ini = tel.substring(0,4);
	fim = tel.substring(4,8);
	campo.value = ini+"-"+fim;
}


}


function avaliaTrabalhe(form) {
	
	var frm = document.getElementById(form);

	if(avaliaTrabalhe.arguments[1]) {
		borderColor = avaliaTrabalhe.arguments[1];
	}
	if(avaliaTrabalhe.arguments[2]) {
		bgColor = avaliaTrabalhe.arguments[2];
	}
	if (document.getElementById('divErro')) {
		frm.removeChild(document.getElementById('divErro'));
	}
	
	if (document.getElementById('sombraErro')) {
		frm.removeChild(document.getElementById('sombraErro'));
	}
	
	if (document.getElementById('iframeErro')) {
		frm.removeChild(document.getElementById('iframeErro'));
	}
	
	for (i = 0; i < frm.elements.length; i++) {
		var elemento = frm.elements[i];
		elemento.style.backgroundColor = "";
		//elemento.style.borderColor = "";
	}
	
	for (i = 0; i < frm.elements.length; i++) {
		var elemento = frm.elements[i];
		if ((!document.all)&&(document.getElementById)){
			verifica = elemento.getAttribute('disabled') == null;
		}    
		
		if ((document.all)&&(document.getElementById)){
			verifica = !elemento.getAttribute('disabled');
		}
		
		if (elemento.getAttribute('obrigatorio') && (verifica)) {
			//alert(elemento.type)
			switch(elemento.type) {
				case "radio" :
					//alert(elemento.getAttribute('disabled'));
					if (navigator.userAgent.indexOf('Opera') < 0) {
						if (trim(elemento.value).indexOf(":") == -1 || trim(elemento.value).indexOf("\\") == -1) {
							marcados =-1;
							//alert(elemento.name)
							for (i=0; i<frm.elements[elemento.name].length; i++) {
								if (frm.elements[elemento.name][i].checked) {
									marcados = i
								}
							}
							//alert(marcados)
							if(marcados == -1){
								if (elemento.getAttribute('erro')) {
									mostraErro(frm,elemento,elemento.getAttribute('erro'));
								} else {
									mostraErro(frm,elemento,"Por favor, selecione uma das opções");
								}
							}else{
								elemento.removeAttribute('obrigatorio');
								avalia(frm);
							}
							return false;							
						}
					}
					break;

			
				case "file" :
					if (navigator.userAgent.indexOf('Opera') < 0) {
						if (trim(elemento.value).indexOf(":") == -1 || trim(elemento.value).indexOf("\\") == -1) {
							if (elemento.getAttribute('erro')) {
								mostraErro(frm,elemento,elemento.getAttribute('erro'));
							} else {
								mostraErro(frm,elemento,"Por favor, selecione um arquivo válido");
							}
							return false;
						}
					}
					break;
				
				case "text" :
					
					if (elemento.getAttribute('email')){
						if (trim(elemento.value).indexOf("@") == -1 || trim(elemento.value).indexOf(".") == -1) {
							if (elemento.getAttribute('erro')){
								mostraErro(frm,elemento,elemento.getAttribute('erro'));
							} else {
								mostraErro(frm,elemento,"Por favor, digite um email válido");
							}
							return false;
						}
						
						if (elemento.getAttribute('compara')){
							var campo = elemento.getAttribute('compara');
							if(elemento.value != frm.elements[campo].value){
								mostraErro(frm,elemento,"E-mails não coincidem");					
								return false;							
							}
						}
					}else if (elemento.getAttribute('cpf')) {
						//////////////////////////
						if(trim(elemento.value) == ""){
							mostraErro(frm,elemento,"Por favor, digite um CPF válido");
							return false;
						}		
						
						var cpf_ = trim(elemento.value);
						var cpfV = cpf_.replace(/\./g,"");
						var cpf = cpfV.replace(/\-/g,"");
				
						if (cpf.length < 11) { 
							if(cpf.length == 10){ 
								cpf = "0"+cpf; 
							}else if (cpf.length == 9) { 
								cpf = "00"+cpf; 
							}else{ 
								mostraErro(frm,elemento,"Por favor, digite um CPF válido");
								return false; 
							} 
						} 
						
						if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){ 
							mostraErro(frm,elemento,"Por favor, digite um CPF válido");
							return false; 
						} 
							
						var soma = 0;
						for (x=0; x < 9; x ++){
							soma += parseInt(cpf.charAt(x)) * (10 - x);
								resto = 11 - (soma % 11);
							}
							if (resto == 10 || resto == 11){
								resto = 0;
							}
							if (resto != parseInt(cpf.charAt(9))){
								mostraErro(frm,elemento,"Por favor, digite um CPF válido");
								return false;
							}
		
						var soma = 0;
						for (y = 0; y < 10; y ++){
							soma += parseInt(cpf.charAt(y)) * (11 - y);
								resto = 11 - (soma % 11);
							}
							if (resto == 10 || resto == 11){
								resto = 0;
							}
							if (resto != parseInt(cpf.charAt(10))){
								mostraErro(frm,elemento,"Por favor, digite um CPF válido");
								return false;
							}
							
					}else if (elemento.getAttribute('min')){
						if(elemento.value.length < elemento.getAttribute('min')){
							
							if (elemento.getAttribute('erro')) {
								mostraErro(frm,elemento,elemento.getAttribute('erro'));
							} else {
								mostraErro(frm,elemento,"Por favor, preencha o campo");
							}							
							return false;
						}
					}else{
						if (trim(elemento.value) == "") {
							if (elemento.getAttribute('erro')) {
								mostraErro(frm,elemento,elemento.getAttribute('erro'));
							} else {
								mostraErro(frm,elemento,"Por favor, preencha o campo");
							}
							return false;
						}
					}
					break;
				case "textarea" :
					if (trim(elemento.value) == "") {
						if (elemento.getAttribute('erro')) {
							mostraErro(frm,elemento,elemento.getAttribute('erro'));
						} else {
							mostraErro(frm,elemento,"Por favor, preencha o campo");
						}
						return false;
					}
					break;	
				default :
					if (trim(elemento.value) == "") {
						if (elemento.getAttribute('erro')) {
							mostraErro(frm,elemento,elemento.getAttribute('erro'));
						} else {
							mostraErro(frm,elemento,"Campo obrigatório");
						}
						return false;
					}
					break;
			}
		}
	}
	
}
