function checkMail(mail){var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);if(er.test(mail)){ return true;}else{return false;}}
function checkReturnValue(evt){
	if(window.event){if(!window.event.returnValue){return false;}}
	else {if(!evt.returnValue){return false;}}
}
function charLimit(el,max_len,evt) {
	if (el.value.length > max_len-1) {
		var BACKSPACE=8;var DEL=46;var FRENTE=39;var TRAS=37; TAB=9;
		if(!evt){evt = window.event;}
		if(evt.keyCode){code = evt.keyCode;}
		else if (evt.which){code = evt.which;}
		var tecla = code;
		if((tecla != BACKSPACE )&&(tecla != DEL)&&(tecla != FRENTE)&&(tecla != TRAS)&&(tecla != TAB)) {
			el.value = el.value.substr(0, max_len-1);
			return false;
		}
	}
	else {
		return true;
	}
}
function formatCurr(e) {
	var fld = this;var milSep = '.';
	var decSep = ',';  var sep = 0;  
	var key = '';  
	var i = 0;
	var j = 0;  
	var len = 0;
	var len2 = 0;  
	var strCheck = '0123456789';  
	var aux = '';
	var aux2 = '';  
	var whichCode = '';
	if(!e){e = window.event;}
	if(e.keyCode){whichCode = e.keyCode;}
	else if (e.which){whichCode = e.which;}
	
	if (whichCode == 13){
		return true;
	}
	if (whichCode == 8){
		key = String.fromCharCode(whichCode);
		return true;
	}
	if (strCheck.indexOf(key) == -1) {
		len = fld.value.length;
		for(i = 0; i < len; i++){
		if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) { break; }
		aux = '';
		}
		for(; i < len; i++){
			if (strCheck.indexOf(fld.value.charAt(i))!=-1) {
				aux += fld.value.charAt(i);
			}
			aux += key;
			len = aux.length;
		}
		return false;
	}
	if (len === 0) { fld.value = ''; }
	if (len == 1) { fld.value = '0'+ decSep + '0' + aux; }
	if (len == 2) { fld.value = '0'+ decSep + aux; }
	if (len > 2) {
		aux2 = '';
		for (j = 0, i = len - 3; i >= 0; i--) {
			if (j == 3) {
				aux2 += milSep;
				j = 0;
			}
			aux2 += aux.charAt(i);
			j++;
		}
		fld.value = '';
		len2 = aux2.length;
		for (i = len2 - 1; i >= 0; i--){
			fld.value += aux2.charAt(i);
			fld.value += decSep + aux.substr(len - 2, len);
		}
	}
		return checkReturnValue(e);	
	}
	
	function validateKey(evt) {
		var BACKSPACE=8;var DEL=46;var FRENTE=39;var TRAS=37; TAB=9;
		if(!evt){evt = window.event;}
		if(evt.keyCode){code = evt.keyCode;}
		else if (evt.which){code = evt.which;}
		var tecla = code;
		//alert(tecla);
		if((tecla == BACKSPACE )||(tecla == DEL)||(tecla == FRENTE)||(tecla == TRAS)||(tecla == TAB)) {
			evt.returnValue = true;
			return false; 
		}
		if ( tecla == 13 ) { evt.returnValue = true; return true; }
		if((tecla<48)||(tecla>57)){evt.returnValue = false;return false;}
		else{evt.returnValue=true;return true;} 
		return false;
	}
	function adjustPhone(evt){
		var input = this;
		charLimit(this, 14, evt);
		if(validateKey(evt)) { 
			if (input.value.length===0) {
				input.value=input.value + "(";
			}
			if(input.value.length==3){
				input.value=input.value + ") ";
			}
			if ((input.value.length==9)) {
				input.value=input.value + "-" ;
			}
		}
		return checkReturnValue(evt);			
	}
	function adjustTxt(evt){
		var input = this;
		//charLimit(this, 255);
		return checkReturnValue(evt);			
	}
	function adjustCEP(evt){	
		var input = this;	
		charLimit(this, 9, evt);
		if(validateKey(evt)) { 
			if ((input.value.length==5)) {
				input.value=input.value + "-" ;
			}
		}
		return checkReturnValue(evt);				
	}
	function adjustDate(evt){
		var input = this;
		charLimit(this, 10, evt);
		if(validateKey(evt)) { 
			if((input.value.length==2)||(input.value.length==5)) {
				input.value=input.value + "/";
			}
		}
		return checkReturnValue(evt);			
	}
	function adjustCPF(evt){
		var input = this;
		charLimit(this, 14, evt);
		if(validateKey(evt)) { 
			if((input.value.length==3)||(input.value.length==7)) {
				input.value=input.value + ".";
			}
			if ((input.value.length==11)) {
				input.value=input.value + "-" ;
			}
		}
		return checkReturnValue(evt);			
	}
	function adjustCNPJ(evt){
		var input = this;
		charLimit(this, 18, evt);
		if(validateKey(evt)) { 
			if((input.value.length==2)||(input.value.length==6)) {
				input.value=input.value + ".";
			}
			if ((input.value.length==10)) {
				input.value=input.value + "/" ;
			}
			if ((input.value.length==15)) {
				input.value=input.value + "-" ;
			}
		}
		return checkReturnValue(evt);			
	}
	function adjustRG(evt){
		var input = this;
		charLimit(this, 13, evt);
		if(validateKey(evt)){ 
			if((input.value.length==2)||(input.value.length==6)) {
				input.value=input.value + ".";
			}
			if ((input.value.length==10)) {
				input.value=input.value + "-" ;
			}
		}
		return checkReturnValue(evt);			
	}
	function isValidCPF(cpf){
		exp = /\.|\-/g;
		cpf = cpf.toString().replace( exp, "" ); 
		var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));
		var soma1=0, soma2=0;
		var vlr =11;
		
		for(i=0;i<9;i++){
			soma1+=eval(cpf.charAt(i)*(vlr-1));
			soma2+=eval(cpf.charAt(i)*vlr);
			vlr--;
		}       
		soma1 = (((soma1*10)%11)==10 ? 0:((soma1*10)%11));
		soma2=(((soma2+(2*soma1))*10)%11);
		
		var digitoGerado=(soma1*10)+soma2;
		if(cpf.toString().length > 1){
			if(digitoGerado!=digitoDigitado){
				return false;
			}
			else{
				return true;
			}
		}
		else{
			return true;
		}
	}
	function validateCPF(el){
		if(!isValidCPF(el.value.replace('-','').replace('.',''))){
			alert("CPF Inválido!");
			el.focus();
		}
	}
	function isValidCNPJ(cnpj){
		var valida = [6,5,4,3,2,9,8,7,6,5,4,3,2];
		var dig1= Number();var dig2= Number();
		exp = /\.|\-|\//g;
		cnpj = cnpj.toString().replace( exp, "" );
		var digito = Number(eval(cnpj.charAt(12)+cnpj.charAt(13)));
		if(cnpj.toString().length > 1){
			for(i = 0; i<valida.length; i++){dig1 += (i>0? (cnpj.charAt(i-1)*valida[i]):0);dig2 += cnpj.charAt(i)*valida[i];}
			dig1 = (((dig1%11)<2)? 0:(11-(dig1%11)));dig2 = (((dig2%11)<2)? 0:(11-(dig2%11)));
			if(((dig1*10)+dig2) != digito) {
				return false;
			}
			else {
				return true;
			}
		}
		else {
			return true;
		}
	}

	function validateCNPJ(el){
		if(!isValidCNPJ(el.value.replace('-','').replace('.','').replace('/',''))){
			alert("CNPJ Inválido!");
			el.focus();
		}
	}
	
	
	
	function vForm(form) {
		var In = form.getElementsByTagName('input');
		var Sl = form.getElementsByTagName('select');
		var Err = false;
		Ignored = /submit|radio|reset|checkbox/gi;
		for(i=0;i<In.length;i++){
			In[i].style.borderColor = '';
			In[i].style.backgroundColor = '';
			if((In[i].title.indexOf(';') > 0)&&(!Ignored.exec(In[i].type))) {
				if(In[i].title.split(';')[1].toLowerCase() === 'requerido'){
					if((In[i].value.length === 0)||(In[i].value === ' ')){
						In[i].style.borderColor = '#F00';
						In[i].style.backgroundColor = '#FFCCCC';
						Err = true;
					}
				}
				if((In[i].title.split(';')[0].toLowerCase() == 'email')&&(In[i].title.split(';')[1].toLowerCase() === 'requerido')){
					//alert(checkMail(In[i]));
					if(checkMail(In[i].value) === false){
						In[i].style.borderColor = '#F00';
						In[i].style.backgroundColor = '#FFCCCC';
						Err = true;
					}
				}
				if(In[i].title.split(';')[0].toLowerCase() == 'cnpj'){
					el =In[i];
					if(isValidCNPJ(el.value.replace('-','').replace('.','').replace('/','')) === false){
						el.style.borderColor = '#F00';
						el.style.backgroundColor = '#FFCCCC';
						Err = true;
					}
				}
			}
		}
		for(j=0;j<Sl.length;j++){
			if((Sl[j].title.indexOf(';') > 0)&&(!Ignored.exec(Sl[j].type))) {
				if(Sl[j].title.split(';')[1].toLowerCase() === 'requerido'){
					if((Sl[j].value.selectedIndex === 0)||(Sl[j].value === ' ')||(Sl[j].value === '')){
						//alert((Sl[j].value.selectedIndex === 0)+'/'+(Sl[j].value == ' ')+'/'+(Sl[j].value == ''));
						Sl[j].style.borderColor = '#F00';
						Sl[j].style.backgroundColor = '#FFCCCC';
						Err = true;
					}
				}
			} 
		}
		if(Err){alert('Corrija os campos.');return false;}
	}
	function addInputsEvents(){
		var In = document.getElementsByTagName('input');
		var Txt = document.getElementsByTagName('textarea');
		for(j=0;j<Txt.length;j++){
			Txt[j].onkeyup = adjustTxt;
		}
		for(i=0;i<In.length;i++){
			if(In[i].title.indexOf(';') > 0) {
				if(In[i].title.split(';')[0].toLowerCase().indexOf('data') > -1) {
					In[i].onkeypress = adjustDate;
				}
				else {
					
					switch (In[i].title.split(';')[0].toLowerCase()){
						case 'nome': 
							In[i].onkeyup = function() { this.value=this.value.replace(/[\(\)\.\-\\\/\|\'\"\!\@\#\$\%\¨\&\*\+\=\?\;\:\^\~\´\`\{\}\[\],]/g,"");};
							break;
						case 'email': 
							In[i].onkeyup = function() { this.value=this.value.replace(/[\(\)\\\/\|\'\"\!\#\$\%\¨\&\*\+\=\?\;\:\^\~\´\`\{\}\[\],]/g,""); };
							break;
						case 'telefone':
							In[i].onkeypress = adjustPhone;
							break;			
						case 'cep':
							In[i].onkeypress = adjustCEP;
							break;			
						case 'cpf':
							In[i].onkeypress = adjustCPF;
							In[i].onblur = function() { validateCPF(this); };
							break;
						case 'cnpj':
							In[i].onkeypress = adjustCNPJ;
							In[i].onblur = function() { validateCNPJ(this); };
							break;
						case 'valor r$':
							In[i].onkeypress = formatCurr;
							In[i].style.textAlign = 'right';
							break;								
						case 'drg':
							In[i].onkeypress = adjustRG;
							break;			
					}
				}
			}
		}
		
	}
//window.onload = function(){addInputsEvents();};
