
/*
------------------------------------------------------------------------------------------
Autor:		Thiago Xavier
Cliente: 	Coats
------------------------------------------------------------------------------------------
*/
var fgNs4 				= (navigator.appName == 'Netscape') ? 1:0;

function dynamicSimpleValidate(objForm){
	var objElements 	= objForm.elements
	var nmElements 		= objForm.elements.length
	var objField;

	for(var nmInc = 0; nmInc < nmElements; nmInc++){
		try{
			var objField	= objElements[nmInc]

			var boValidate	= new Boolean(objField.getAttribute('boValidate'))
			var stValidate	= new String(objField.getAttribute('boValidate'))
			var stMsgError	= new String(objField.getAttribute('stMsgError'))
			var stFieldType	= new String(objField.getAttribute('stFieldType'))
			var stValue		= new String(objField.value)
		}
		
		catch(stError){
			//alert(stError)
		}

		/* Validação Simples */
		if(stFieldType == 'null' || stFieldType == ''){
			if(stValidate == 'true' && stValue == ''){
				alert(stMsgError);
				objField.focus();
				return false;
			}
			
		/* Date */
		}else if(stFieldType == 'date'){
			if(CheckDate(stValue) == false){
				alert(stMsgError);
				objField.focus();
				return false;
			}
			
		/* E-mail */
		}else if(stFieldType == 'email'){
			if(validateRegexEmail(stValue) == false){
				alert(stMsgError);
				objField.focus();
				return false;
			}

		/* Numbers */
		}else if(stFieldType == 'number'){
			if(isNaN(stValue) || stValue == ''){
				alert(stMsgError);
				objField.focus();
				return false;
			}
	
		/* Select Multiple (Only for PHP) */
		}else if(stFieldType == 'select_multiple'){
			/* Check all fields. */
			selectElements(objField)
			
		/* CPF */
		}else if(stFieldType == 'cpf'){
			if(validaCpf(stValue) == false){
				alert(stMsgError);
				objField.focus();
				return false;
			}
		}
		/* Hora */
		else if(stFieldType	== 'time'){
			if(validaHora(stValue) == false){
				alert(stMsgError);
				objField.focus();
				return false;
			}
		}
	   	else if(stFieldType == 'radio'){
			if(verificaRadio(objForm, stNome) == false){
				alert(stMsgError);
				objField.focus();
				return false;
			}
		}
	   	else if(stFieldType == 'cnpj'){
	   		if(validaCNPJ(stValue) == false){
	   			alert(stMsgError);
	   			objField.focus();
	   			return false;
	   		}
	   	}
	}
}

function BlockChars(){
	evt				= window.event
	var key_code 	= 	evt.keyCode  ? evt.keyCode  : evt.charCode ? evt.charCode : evt.which    ? evt.which    : void 0;

	if(!fgNs4){
		if(key_code < 45 || key_code > 57) window.event.returnValue = false;
		
	}else{
		if(key_code < 45 || key_code > 57) return false;
	}
}

function BlockSpecialChars(){
	if(!fgNs4){
		if ((window.event.keyCode > 32 && window.event.keyCode < 48) || (window.event.keyCode > 57 && window.event.keyCode < 65) || (window.event.keyCode > 90 && window.event.keyCode < 97)) window.event.returnValue = false;
	}else{
		if((window.event.which > 32 && window.event.which < 48) || (window.event.which > 57 && window.event.which < 65) || (window.event.which > 90 && window.event.which < 97)) return false;
	}
}

function DataChars(){
	if(!fgNs4){
		if(window.event.keyCode < 48 || window.event.keyCode > 57){
			window.event.returnValue = false;
		}
	}
}

function CheckDate(stDate){
	var arrayDate		= stDate.split("/");
	var stCheck 		= '0123456789';
	var stDateTemp 		= '';
	var stSeparator 	= '/';
	var nmDay			= arrayDate[0];
	var nmMonth			= arrayDate[1];
	var nmYear			= arrayDate[2];
	var nmLoop 			= 0;
	var nmError 		= 0;
	var nmInc;
	var nmData			= new Date();
	nmData				= nmData.getFullYear();
	nmData				= nmData + 3;

	for (nmInc = 0; nmInc < stDate.length; nmInc++) {
		if (stCheck.indexOf(stDate.substr(nmInc,1)) >= 0) {
			stDateTemp = stDateTemp + stDate.substr(nmInc,1);
		}
	}
	
	stDate = stDateTemp;
	
	if (stDate.length == 6)					stDate = stDate.substr(0,4) + '20' + stDate.substr(4,2);
	nmYear 	= stDate.substr(4,4);

	if (nmYear == 0) 						nmError = 1;

	if ((nmMonth < 1) || (nmMonth > 12)) 	nmError = 1;

	if (nmDay < 1) 							nmError = 1;
	if ((nmYear % 4 == 0) || (nmYear % 100 == 0) || (nmYear % 400 == 0)) 	nmLoop = 1;
	if ((nmMonth == 2) && (nmLoop == 1) && (nmDay > 29)) 					nmError = 1;
	if ((nmMonth == 2) && (nmLoop != 1) && (nmDay > 28)) 					nmError = 1;
	if ((nmDay > 31) && ((nmMonth == 1) || (nmMonth == 3) || (nmMonth == 5) || (nmMonth == 7) || (nmMonth == 8) || (nmMonth == 10) || (nmMonth == 12))) nmError = 1;
	if ((nmDay > 30) && ((nmMonth == 4) || (nmMonth == 6) || (nmMonth == 9) || (nmMonth == 11))) nmError = 1;
if (nmYear > nmData) nmError = 1;
	if ((nmDay == 0) && (nmMonth == 0) && (nmYear == 00)) nmError = 0; nmDay = ''; nmMonth = ''; nmYear = ''; stSeparator = '';

	if(stDate.length != 8 && stDate.length != 7) nmError = 1;

	if (nmError == 0) {
		return true;
	}else{
		return false;
	}
}

function mascaraData(objField){
	var stDate = objField.value;
	if (stDate.length == 2){
		stDate = stDate + '/';
		objField.value = stDate;
		return true;
	}
	if (stDate.length == 5){
		stDate = stDate + '/';
		objField.value = stDate;
	return true;
	}
}

function resetForm(objForm){
	objForm.reset();
}

function DeleteItem(stParameters){
	if(confirm('Deseja realmente deletar o ítem selecionado?')){
		location.href=(stParameters)
	}
}

function Timer(nmSeconds, stAction){
	window.setTimeout(stAction, nmSeconds);	
}

function teste(objField){
	if(objField.value) Timer(2000, 'Resgate();');
}

function Resgate(){
	alert(1)
	var objField
	var stCpf
	var stValue = objField.value
	
	alert(stValue)

	objField 		= document.frmDados.nmCpf
	stValue			= objField.value
	alert(stValue)

	objField.value	= stValue.replace(".", "");
}



function moveSelectItem(fbox, tbox){
	var arrFbox = new Array();
	var arrTbox = new Array();
	var arrLookup = new Array();
	var i;
	for (i = 0; i < tbox.options.length; i++){
		arrLookup[tbox.options[i].text] = tbox.options[i].value;
		arrTbox[i] = tbox.options[i].text;
	}

	var fLength = 0;
	var tLength = arrTbox.length;
	for(i = 0; i < fbox.options.length; i++) {
		arrLookup[fbox.options[i].text] = fbox.options[i].value;
		if (fbox.options[i].selected && fbox.options[i].value != "") {
			arrTbox[tLength] = fbox.options[i].text;
			tLength++;
		}else{
			arrFbox[fLength] = fbox.options[i].text;
			fLength++;
	   }
	}
	
	arrFbox.sort();
	arrTbox.sort();

	fbox.length = 0;
	tbox.length = 0;
	
	var c;
	for(c = 0; c < arrFbox.length; c++) {
		var no = new Option();
		no.value = arrLookup[arrFbox[c]];
		no.text = arrFbox[c];
		fbox[c] = no;
	}

	for(c = 0; c < arrTbox.length; c++){
		var no = new Option();
		no.value = arrLookup[arrTbox[c]];
		no.text = arrTbox[c];
		tbox[c] = no;
	}
}

function validaCpf(stCpf) {
	stCpf 	= stCpf.replace(".", "");
	stCpf 	= stCpf.replace(".", "");
	stCpf 	= stCpf.replace("-", "");
	nmErro 	= new Number;
	nmErro	= 0;

	if (stCpf.length < 11) nmErro ++;
	var nonNumbers = /\D/;
	if (nonNumbers.test(stCpf)) nmErro ++;
	if (stCpf == "00000000000" || stCpf == "11111111111" || stCpf == "22222222222" || stCpf == "33333333333" || stCpf == "44444444444" || stCpf == "55555555555" || stCpf == "66666666666" || stCpf == "77777777777" || stCpf == "88888888888" || stCpf == "99999999999"){
			nmErro ++;
	}
	var a = [];
	var b = new Number;
	var c = 11;
	for (i=0; i<11; i++){
		a[i] = stCpf.charAt(i);
		if (i < 9) b += (a[i] *  --c);
	}
	if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
	b = 0;
	c = 11;
	for (y=0; y<10; y++) b += (a[y] *  c--); 
	if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
	if ((stCpf.charAt(9) != a[9]) || (stCpf.charAt(10) != a[10])){
		nmErro ++;
	}

	if (nmErro > 0){
		return false
	}
}

function upperCase(stParameter){
	return stParameter.toUpperCase();
}



function mascaraHora(objField){
	var nHora;
	nmHora	= objField.value;
	if (nmHora.length == 2){
		nmHora = nmHora + ':';
		objField.value = nmHora;
	}
}

function validaHora(stValue){
	var nmHora	= (stValue.substring(0,2));
	var nmMin	= (stValue.substring(3,5));
	var nmErro 	= 0;
	if ((nmHora < 00 || nmHora > 23) || (nmMin < 00 || nmMin > 59)){
		nmErro 	= 1;
	}else if(stValue.length  != 5){
		nmErro 	= 1;
	}
	if (nmErro == 1){
		return false;
	}
}

function verificaRadio(objForm, stNome){
	var nmCount = 0, nmErro = 0;
	//validacao de radio buttons sem saber quantos sao
	for(nmInc = 0; nmInc < objForm.length; nmInc++){ // loop de elementos do formulário
		if(objForm.elements[nmInc].type == 'radio' && objForm.elements[nmInc].name == stNome){ // verifica se é do tipo radio e o nome é igual ao enviado
			nmCount++; // conta o número de radios com o mesmo nome
			if(objForm.elements[nmInc].checked == false){ // verifica se está checkado
				nmErro += 1;
			}
		}
	}
	if(nmCount == nmErro){
		return false;
	}else{
		//return true;
	}
}


function VerificaForm(objForm){
		if(dynamicSimpleValidate(objForm) != false){
				objForm.submit();
		}
	}		 	

function validateRegexEmail(stEmail){
	if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(stEmail)){
		return false;
	}
}


/* 
	Criado por Clube da Informática & Thiago Prado 
	Alterações: Lincon Ribeiro

*/
function validaCNPJ(stCnpj) {
	CNPJ = stCnpj
    erro = new String;
    if (CNPJ.length < 18) erro += "É necessario preencher corretamente o número do CNPJ! \n\n"; 
    if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")){
    	if (erro.length == 0) erro += "É necessário preencher corretamente o número do CNPJ! \n\n";
    }
    //substituir os caracteres que não são números
    if(document.layers && parseInt(navigator.appVersion) == 4){
    	x = CNPJ.substring(0,2);
    	x += CNPJ. substring (3,6);
    	x += CNPJ. substring (7,10);
    	x += CNPJ. substring (11,15);
    	x += CNPJ. substring (16,18);
    	CNPJ = x; 
    }else {
    	CNPJ = CNPJ. replace (".","");
    	CNPJ = CNPJ. replace (".","");
    	CNPJ = CNPJ. replace ("-","");
    	CNPJ = CNPJ. replace ("/","");
    }
    var nonNumbers = /\D/;
   	if (nonNumbers.test(CNPJ)) erro += "A verificação de CNPJ suporta apenas números! \n\n"; 
   	var a = [];
   	var b = new Number;
   	var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
   	for (i=0; i<12; i++){
   		a[i] = CNPJ.charAt(i);
   		b += a[i] * c[i+1];
   	}
   	if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
   		b = 0;
   		for (y=0; y<13; y++) {
   			b += (a[y] * c[y]); 
   		}
   		if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
   		if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
   			erro +="Dígito verificador com problema!";
   		}
   		if (erro.length > 0){
   			//alert(erro);
   			return false;
   		}else{
   			//alert("CNPJ valido!");
   		}
   		return true;
}

