// Classe: Validação de Campos 1.2
// Descrição: Classe verifica tags inputs para sua validação
// Desenvolvido por : Kleber Oliveira , kleber.oliveira@live.com
// Exemplo : <input type="text" validate="true|false" vlength="numero_de_caracteres" vtype="tipo_de_verificação" vmensage="mensagem_de_erro" />





// variaveis de configuração





// caminho da imagem 

var caminho 	 	= "img/setdica.jpg";

// borda,cor de fundo e da fonte da caixa de dica
var BordaDica 		= "none";
var corFundoDica	= "url(img/bg_input.jpg)";
var corFonteDica	= "#eee";

// fonte e borda dos inputs quando nao validado
var classErro	= "inputsErro";
var classNormal = "inputs";




var vformularios	= ['form_contato','news_form','trabalhe_form'];

var isDOM = (navigator.appName.match("Microsoft Internet Explorer") || navigator.appName.match("MSIE")) ? false : true;


function addEvento(obj, evento, funcao) {

	var resultado = false;

	if (window.addEventListener) {

		obj.addEventListener(evento, funcao, false);

		resultado = true;

	} else if (window.attachEvent) {

		resultado = obj.attachEvent('on' + evento, funcao);

	}

	return resultado;

}



function procuraPosX(obj){

	var curleft = 0;

	if(obj.offsetParent){

		while(1){

		  curleft += obj.offsetLeft;

		  if(!obj.offsetParent){break;}

		  obj = obj.offsetParent;

		}

	}else if(obj.x){

		curleft += obj.x;

	}

	return curleft;

}



function procuraPosY(obj){

	var curtop = 0;

	if(obj.offsetParent){

		while(1){

		  curtop += obj.offsetTop;

		  if(!obj.offsetParent){break;}

		  obj = obj.offsetParent;

		}

	}else if(obj.y){

		curtop += obj.y;

	}

	return curtop;

}







function existeObjeto(id){

	var verificador = document.getElementById(id);

	verificador = verificador==null?false:true;	

	return verificador;

}





function adicionaDocumento(obj){

	var corpo = document.getElementsByTagName("body")[0]; 

	corpo.appendChild(obj);	

}



function removeDocumento(obj){

	var corpo = document.getElementsByTagName("body")[0]; 

	corpo.removeChild(obj);	

}







function definePosicao(dica,obj){

	with(dica.style){

		left 	= (procuraPosX(obj)+obj.offsetWidth+10)+"px";

		top	 	= (procuraPosY(obj)-10)+"px";

	}

}



function removerDica(){

	if(existeObjeto("dica")){

		var dica = document.getElementById('dica');

		removeDocumento(dica);

	}

}



function inserirDica(obj,texto){

	

	if(!existeObjeto("dica")){		

		var dica = document.createElement("div");

		dica.setAttribute("id","dica");

		dica.setAttribute("pai",obj.id);		

			with(dica.style){

				position 	= "absolute";

				border	 	= BordaDica;

				background	= corFundoDica;

				color		= corFonteDica;

				width		= "auto";

				padding		= "2px";

				marginRight = "5px";

			}

		definePosicao(dica,obj);

		var setDica = document.createElement("span");

			with(setDica.style){

				position	= "relative";

				marginLeft	= "-17px";

			}

			

		var texDica = document.createElement("span");

			with(texDica.style){

				padding		= "10px";

			}

		texDica.setAttribute("id","texDica");



		setDica.innerHTML = "<img src=\""+caminho+"\" alt=\"set\" />";

		texDica.innerHTML = texto;

		dica.appendChild(setDica);

		dica.appendChild(texDica);



	}else{

		var dica = document.getElementById("dica");

		dica.setAttribute("pai",obj.id);

		var texDica = document.getElementById("texDica");

		texDica.innerHTML = texto;

	}

	definePosicao(dica,obj)

	adicionaDocumento(dica);		

}



function listaInputs(tipo,form,val){

	

	var	valtipo	=tipo=="todos"?false:true;

	

	if(form!='document'){
		var formulario = document.getElementById(form);
	}else{
		var formulario = document;
	}	

	var inputs =  formulario.getElementsByTagName("input");
	var campos = new Array();
	var p = 0;
	for (i=0;i<inputs.length;i++){
		if(valtipo){
			validador = val?eval(inputs[i].getAttribute('validate')):true;
			if(inputs[i].type==tipo && validador){
				campos[p] = inputs[i];
				p++;
			}

		}else{
			validador = val?eval(inputs[i].getAttribute('validate')):true;
			if(validador){
				campos[p] = inputs[i];
				p++;
			}
		}
	}
	return campos;
}



function validacaracter(obj){
	if(obj.value.length <= eval(obj.getAttribute('vlength')) || obj.value == obj.title){
		inserirDica(obj,obj.getAttribute('vmensage'));
		obj.focus();
		obj.className = classErro;
		obj.onkeydown = obj.onblur = function(){
			obj.className = classNormal;
		}
		return true;
	}else{
		obj.className = classNormal;
		return false;
	}
}





function verificaCampos(formulario){

	validado = false;

	var inputVal = listaInputs('todos',formulario,true);

	for(i=0;i<inputVal.length;i++){

		var vtype = inputVal[i].getAttribute('vtype');
		if(eval('valida'+vtype+'(inputVal[i]);')){

			validado = false;
			break;		

		}else{
			removerDica();
			validado = true;
		}
	}
	return validado;
}


function adicionaMascara(formulario){
	var inputs 	= listaInputs('text',formulario,true);
	for(m=0;m<inputs.length;m++){
		if(inputs[m].title == inputs[m].value){
			inputs[m].onfocus = function(){
				this.value = "";
			}
			inputs[m].onblur = function(){
				if(this.value == ""){
					this.value = this.title;
				}
			}
		}
	}
}

function verificaFormulario(){
	var valform = vformularios!=undefined?true:false;
	if(valform){
		for(j=0;j<vformularios.length;j++){			
			var button 	= listaInputs('submit',vformularios[j],false);
			adicionaMascara(vformularios[j]);
			button[0].setAttribute('formPai',vformularios[j]);
			button[0].onclick = function(){
				return verificaCampos(this.getAttribute('formPai'));
			}
		}

	}else{
		var button 	= listaInputs('submit','document',false);
		adicionaMascara('document');		
		button[0].onclick = function(){
			return verificaCampos('document');
		}
	}
}



function seguePai(){

	if(existeObjeto("dica")){
		var dica = document.getElementById("dica");
		var obj  = document.getElementById(dica.getAttribute("pai"));
		definePosicao(dica,obj)

	}

}







function validaemail(obj) {
	regex=/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
	
	var value = obj.value;

	if(value.length <= eval(obj.getAttribute('vlength')) || value == obj.title || !regex.test(value)){		
		inserirDica(obj,obj.getAttribute('vmensage'));
		obj.focus();
		obj.className = classErro;
		obj.onkeydown = obj.onblur = function(){
			obj.className = classNormal;
		}		
		return true;
	}else{
		obj.className = classNormal;
		return false;
	}
}




addEvento(window,"load",verificaFormulario);
addEvento(window,"resize",seguePai);