/*	-------------------------------------------------
	NUMERO
	-------------------------------------------------*/
	function checaNumero(numero)
	{
		if (numero.length == 0) return false;
		for (var n = 0; n < numero.length; n++)
			if (numero.substring(n, n+1) < "0" || numero.substring(n, n+1) > "9")
				return false;

		return true;
	}
	
	/*	-------------------------------------------------
	VALIDACAO NOME COM SOBRENOME
	-------------------------------------------------*/
	function isName(str)
	{
		var spacePos, strLastName;

		spacePos = str.indexOf(" ");
		strLastName = str.substring(spacePos+1);

		if (spacePos == 0)
		{
			str = strLastName;
			spacePos = str.indexOf(" ");
			strLastName = str.substring(spacePos+1);
		}

		if(spacePos == -1)
		{
			return false;
		}
		else 
		{
			if (strLastName.length >= 2)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
	}

/*
	-------------------------------------------------
	VALIDACAO RADIO
	-------------------------------------------------
*/
	function isRadio(radio){
		var obj, ok
		obj = eval(radio)
		ok = false
		for(i=0;i < eval(radio + '.length');i++){
			if(obj[i].checked){
				ok = true;
				break;
			}
		}

		if(!ok){
			return false;
		}
		return ok;
	}

/*
	-------------------------------------------------
	VALIDACAO DATA
	-------------------------------------------------
*/
	function isDate(dateStr){
		var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year
		var matchArray = dateStr.match(datePat); // is the format ok?
		if (matchArray == null){
			alert("Preencha a data corretamente (dd/mm/aaaa)")
			return false;
		}

		month = matchArray[3]; // parse date into variables
		day = matchArray[1];
		year = matchArray[4];
		if (month < 1 || month > 12){ // check month range
			alert("Preencha a data corretamente (dd/mm/aaaa)");
			return false;
		}
		if (day < 1 || day > 31){
			alert("Preencha a data corretamente (dd/mm/aaaa)");
			return false;
		}
		if ((month==4 || month==6 || month==9 || month==11) && day==31){
			alert(month + " não tem 31 dias!")
			return false;
		}
		if (month == 2){ // check for february 29th
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day>29 || (day==29 && !isleap)){
				alert("Fevereiro de " + year + " não tem " + day + " dias!");
				return false;
			}
		}
			return true;
	}

/*
	-------------------------------------------------
	VALIDACAO CPF
	-------------------------------------------------
*/
	function isCpf(valor) {
		if (valor.length==11){
			var aux = 0;
			for (var i=0; i<9; i++){
				aux = aux + parseInt(valor.substr(i,1)) * parseInt(i+1);
			} 

			var resto = aux%11
			if (resto==10) resto=0;
			
			if(resto==valor.substr(9,1)){
				var aux = 0;
				for (var i=1; i<10; i++){
					aux = aux + parseInt(valor.substr(i,1)) * parseInt(i);
				} 

				var resto = aux%11
				if (resto==10) resto=0;
				if(resto==valor.substr(10,1)){
					return true;
				} else {
					return false;
				}
			} else {
				return false;
			}
		}
	}

/*
	-------------------------------------------------
	VALIDACAO EMAIL
	-------------------------------------------------
*/
	function isEmail(str) {
		var supported = 0;
		if (window.RegExp) {
			var tempStr = "a";
			var tempReg = new RegExp(tempStr);
			if (tempReg.test(tempStr)) supported = 1;
		}

		if (!supported) 
			return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
		
		var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)|( )|(\\.@)");
		var r2 = new RegExp("^.[a-zA-Z0-9\\-\\.\\_]+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");

		return (!r1.test(str) && r2.test(str));
	}


/*
	-------------------------------------------------
	NUMERO
	-------------------------------------------------
*/
	function isNum(field,evt){
		var NUMBER='0123456789';
		var key=evt.keyCode||evt.which||evt.charCode;
        
		if( key==null||key==0||key==8||key==9|| key==13||key==27||key==33||key==34||key==35||key==36||key==37||key==38||key==39||key==40||key==45||key==46){
			return true;
		}
		else{        
			if(NUMBER.indexOf(String.fromCharCode(key))==-1){
				return false;
			}
		}
	}

/*
	-------------------------------------------------
	VALIDACAO TIPO DE DADO DOS CAMPOS DO FORMULARIO
	Funcao utilizada no submit do formulario
	-------------------------------------------------
*/
function ValidateField(type, field){
	switch(type) {
		case "EMAIL": {
			if (field.value!=''){
				if(!isEmail(field.value)){
					alert('Digite o seu E-MAIL corretamente');
					field.focus();
					return false;
				}
			}
			break;
		}
		case "DATE":{
			if (field.value!=''){
				if(!isDate(field.value)){
					field.focus();
					return false;
				}
			}
			break;		    
		}
		case "NAME":{
			if (field.value!=''){
				if(!isName(field.value)){
					alert('Digite o seu nome completo');
					field.focus();
					return false;
				}
			}
			break;		    
		}
		case "CPF":{
			if (field.value!=''){
				if(!isCpf(field.value)){
					alert('Digite o seu CPF corretamente');
					field.focus();
					return false;
				}
			}
			break;		    
		}
	}
	return true;
}

/*
	-------------------------------------------------
	VALIDACAO TIPO DE DADO
	Funcao utilizada no evento keypress
	-------------------------------------------------
*/
	function ValidateKeyPressed(type, field, key){
		var evt = (evt) ? evt : ((key) ? key : null);
		var valid = true;
		switch(evt.type) {
			case "keypress":{
				switch(type) {
					case "NUMBER":{
						valid = isNum(field.value, evt);
						return valid;
						break;
					}
					case "DATE": {
						valid = FormatDate(field, evt);
						return valid;
						break;                    
					}
					case "TELEFONE": {
						valid = FormatTelNumber(field, evt);
						return valid;
						break;                    
					}
				}
			break;
			}
		}
	}
