/**
* @autor Anderson de Oliveira Contreira
* @file cmex.val.js
*/
//mascaras
function put_mask( campo, formato, event ) {
	var texto = formato.substring( campo.value.length );
	var tecla = window.event ? event.keyCode : event.which;
	var compr = campo.value.length;  
	if(texto.substring(0,1) == "("){		
		if(compr == 0){
				campo.value = "(";
		}
	}else if(texto.substring(0,1) == "$"){
		if(isNaN(campo.value.substring((compr-1),compr))){
			campo.value = campo.value.substring(0,(compr-1)); 
		}
	}		
	//(32)espaço (8)backspace (46)delete
	if ( tecla!=8 && tecla!=32 && tecla!=46 ) {
		if ( texto.substring(0,1) != formato.substring(0,1) ){
			if(texto.substring(0,1) == "$"){
					if(isNaN(campo.value.substring((compr-1),compr))){
						campo.value = campo.value.substring(0,(compr-1)); 
					}
				}	
			else if(texto.substring(0,1) == ")"){
				campo.value += texto.substring(0,1);		
				campo.value += " ";		
			}else{
			//alert("nao");
			campo.value += texto.substring(0,1);
			}
		}
		
	}
}

//validação
function is_correct(campo, option ,sub_option){
/*
*****************
* option values:
*****************
* null, numeric, email, alpha, phone 
*****************
* sub_option values:
*****************
* 1,2,'1','2','1-5','5-65'
*
*/
if((option == undefined) || (option == null)){
	option = "null"; 
	sub_option  = "null";
	var metodo = 1;
}
if((sub_option === undefined) || (sub_option === null)){
	sub_option  = "null";
	var metodo = 1;
}
//variaveis
var valor = campo.value;

//expressoes 
var phone = /^\(\d{2}\)?[\s-]?\d{4}-?\d{4}$/;
var range = /^\d{1,2}?\-?\d{1,3}$/;
var email = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;

switch(option){
	case "null":
	default:
		if((valor == '')||( valor == ' ')){
			campo.style.border='1px solid #F00';
		}else{
			campo.style.border='1px solid #BBB';
		}
	break;
	case "numeric":
		if((valor == '')||( valor == ' ')){
			campo.style.border='1px solid #F00';
		}else if(isNaN(valor)){
			campo.style.border='1px solid #F00';
		}else{
			campo.style.border='1px solid #BBB';
		}	
	break;
	case "alpha":
		//alert(sub_option);
		ereg =  new RegExp(range);
		if(isNaN(sub_option)){
			if(sub_option === "null"){
				sub_option = 5;
				metodo = 1;
			}
			else if(ereg.exec(sub_option)){
				var divisor  = sub_option.indexOf("-");
				var tamanho  = sub_option.length;
				var opt_menor = sub_option.substring(0,divisor);
				var opt_maior = sub_option.substring((divisor+1),tamanho);
				metodo = 2;
				//alert("ok "+ divisor + ": menor= " + opt_menor +", maior = "+ opt_maior);
			}
			else{
				sub_option = parseInt(sub_option);
				metodo = 1;
			}	
		}
		if((valor == '')||( valor == ' ')){
			campo.style.border='1px solid #F00';
		}else if(!isNaN(valor)){
			campo.style.border='1px solid #F00';
		}else{
			//alert(valor.length);
			if(metodo == 1){
				if(valor.length < sub_option){
					campo.style.border='1px solid #F00';
				}else{
					campo.style.border='1px solid #BBB';
				}
			}else if(metodo == 2){			
				if(valor.length < opt_menor){
					campo.style.border='1px solid #F00';
				}
				else if(valor.length > opt_maior){
					campo.style.border='1px solid #F00';
				}
				else{
					campo.style.border='1px solid #BBB';
				}
			}	
		}	
	break;
	case "phone":
		ereg =  new RegExp(phone);
		if((valor == '')||( valor == ' ')){
			campo.style.border='1px solid #F00';
		}else if(!ereg.exec(valor)){
			campo.style.border='1px solid #F00';
		}else{
			campo.style.border='1px solid #BBB';
		}	
	break;
	case "email":
		ereg =  new RegExp(email);
		if((valor == '')||( valor == ' ')){
			campo.style.border='1px solid #F00';
		}else if(!ereg.exec(valor)){
			campo.style.border='1px solid #F00';
		}else{
			campo.style.border='1px solid #BBB';
		}	
	break;
}

}
