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) {
	if (el.value.length > max_len-1) {
		el.value = el.value.substr(0, max_len-1);
		return false;
	}
	else {
		return true;
	}
}
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);
	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);
	if(validateKey(evt)) { 
		if ((input.value.length==5)) {
		   input.value=input.value + "-" ;
		}
	}
	return checkReturnValue(evt);				
}
function adjustDate(evt){
	var input = this;
	charLimit(this, 10);
	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);
	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 adjustRG(evt){
	var input = this;
	charLimit(this, 13);
	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 vForm(form) {
	var els = Array();
	els[0] = form.getElementsByTagName('input');
	els[1] = form.getElementsByTagName('select');
	els[2] = form.getElementsByTagName('textarea');
	var Err = false;
	var ErrMsg = "Corrija os campos.\n...............................................\n";
	for(x = 0;x<els.length;x++){
		var el = els[x];
		for(i=0;i<el.length;i++){
			el[i].style.borderColor = '';
			el[i].style.backgroundColor = '';
			Ignored = /submit|radio|reset|checkbox/gi;
			if((el[i].title.indexOf(';') > 0)&&(!Ignored.exec(el[i].type))) {
				if(el[i].title.split(';')[1] === 'Requerido'){
					 if(el[i].title.split(';')[0].toLowerCase() == 'email'){
							if(checkMail(el[i].value) === false){
							//el[i].style.borderColor = '#F00';
							//el[i].style.backgroundColor = '#FFCCCC';
							Err = true;
							ErrMsg += el[i].title.split(';')[0]+"\n";
						}
					}
					else if((el[i].value.length === 0)||(el[i].value == ' ')){
						//el[i].style.borderColor = '#F00';
						//el[i].style.backgroundColor = '#FFCCCC';
						Err = true;
						ErrMsg += el[i].title.split(';')[0]+"\n";
					}
				}
			} 
		}
	}
	if(Err){alert(ErrMsg+"...............................................\n");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;
							break;			
					case 'drg':
							In[i].onkeypress = adjustRG;
							break;			
				}
			}
		}
	}
}
window.onload = function(){addInputsEvents();};

