/*
 Padawan's JavaScript-Mega-Validator 3000+
 Todos os direitos reservados para Diego Pires Plentz
 Voce pode usar esse código nas suas paginas desde que mantenha os creditos ;-)
*/
 
 //Verifica qual o browser do visitante e armazena na variavel púbica clientNavigator,
 //Caso Internet Explorer(IE) outros (Other)
 if (navigator.appName.indexOf('Microsoft') != -1){
 	clientNavigator = "IE";
 }else{
 	clientNavigator = "Other";
 }

 function Verifica_Data(data, obrigatorio){
    //Se o parâmetro obrigatório for igual à zero, significa que ele pode estar vazio, caso contrario, nao
    var data = document.getElementById(data);
 	var strdata = data.value;
 	if((obrigatorio == 1) || (obrigatorio == 0 && strdata != "" && strdata != "__/__/____"))
 	{
 		//Verifica a quantidade de digitos informada esta correta.
 		if (strdata.length != 10){
 			alert("Formato da data nao e valido. Formato correto: - dd/mm/aaaa.");
 			data.focus();
 			data.select();
 			return false
 		}
 		//Verifica mascara da data
 		if ("/" != strdata.substr(2,1) || "/" != strdata.substr(5,1)){
 			alert("Formato da data nao e valido. Formato correto: - dd/mm/aaaa.");
 			data.focus();
 			data.select();
 			return false
 		}
 		dia = strdata.substr(0,2)
 		mes = strdata.substr(3,2);
 		ano = strdata.substr(6,4);
 		//Verifica o dia
 		if (isNaN(dia) || dia > 31 || dia < 1){
 			alert("Dia invalido.");
 			data.focus();
 			data.select();
 			return false
 		}
 		if (mes == 4 || mes == 6 || mes == 9 || mes == 11){
 			if (dia == "31"){
 				alert("O mes informado nao possui 31 dias.");
 				data.focus();
 				data.select();
 				return false
 			}
 		}
 		if (mes == "02"){
 			bissexto = ano % 4;
 			if (bissexto == 0){
 				if (dia > 29){
 					alert("O mes informado possui somente 29 dias.");
 					data.focus();
 					data.select();
 					return false
 				}
 			}else{
 				if (dia > 28){
 					alert("O mes informado possui somente 28 dias.");
 					data.focus();
 					data.select();
 					return false
 				}
 			}
 		}
 	    //Verifica o mes
 		if (isNaN(mes) || mes > 12 || mes < 1){
 			alert("Mes invalido.");
 			data.focus();
 			data.select();
 			return false
 		}
 		
 		//Verifica o ano
 		dataAtual = new Date()
        anoAtual = dataAtual.getYear()
 		if (isNaN(ano))
 		{
 		    alert("Ano invalido.");
 		    data.focus();
 		    data.select();
 			return false
 		}
 		if (ano < 1900)
 		{
 			alert("O ano deve ser superior a 1900.");
 			data.focus();
 			data.select();
 			return false
 	    }
 	    /*
		if (ano > anoAtual){
 		    alert("O ano deve ser inferior ao ano atual.");
 			data.focus();
 			data.select();
 			return false
 		}
 		*/
 	}
 }
 
 function Verifica_Data_MesAno(data, obrigatorio){
    //Se o parâmetro obrigatório for igual à zero, significa que ele pode estar vazio, caso contrario, nao
    var data = document.getElementById(data);
 	var strdata = data.value;
 	if((obrigatorio == 1) || (obrigatorio == 0 && strdata != "" && strdata != "__/____"))
 	{
 		//Verifica a quantidade de digitos informada esta correta.
 		if (strdata.length != 7){
 			alert("Formato do periodo nao e valido. Formato correto: - mm/aaaa.");
 			data.focus();
 			return false
 		}
 		//Verifica mascara da data
 		if ("/" != strdata.substr(2,1)){
 			alert("Formato da data nao e valido. Formato correto: - mm/aaaa.");
 			data.focus();
 			return false
 		}
 		mes = strdata.substr(0,2)
 		ano = strdata.substr(3,4);

 	    //Verifica o mes
 		if (isNaN(mes) || mes > 12 || mes < 1){
 			alert("Mes invalido.");
 			data.focus();
 			return false
 		}
 		
 		//Verifica o ano
 		if (isNaN(ano) || ano < 1900){
 			if (ano < 1900)
 			    alert("O ano deve ser superior a 1900");
 			else
 			    alert("Ano invalido.");
 			data.focus();
 			return false
 		}
 	}
 }
 
 function Compara_Datas(data_inicial, data_final){
 	//Verifica se a data inicial e maior que a data final
 	var data_inicial = document.getElementById(data_inicial);
 	var data_final   = document.getElementById(data_final);
 	str_data_inicial = data_inicial.value;
 	str_data_final   = data_final.value;
 	dia_inicial      = data_inicial.value.substr(0,2);
 	dia_final        = data_final.value.substr(0,2);
 	mes_inicial      = data_inicial.value.substr(3,2);
 	mes_final        = data_final.value.substr(3,2);
 	ano_inicial      = data_inicial.value.substr(6,4);
 	ano_final        = data_final.value.substr(6,4);
 	if(ano_inicial > ano_final){
 		alert("A data de atualizacao deve ser maior que a data inicial."); 
 		data_final.focus();
 		return false
 	}else{
  	if(ano_inicial == ano_final){
   	if(mes_inicial > mes_final){
    	alert("A data de atualizacao deve ser maior que a data inicial.");
 				data_final.focus();
 				return false
 			}else{
 				if(mes_inicial == mes_final){
 					if(dia_inicial > dia_final){
 						alert("A data de atualizacao deve ser maior que a data inicial.");
 						data_final.focus();
 						return false
 					}
 				}
 			}
 		}
 	}
 }
 
 function Verifica_Hora(hora, obrigatorio){
 //Se o parâmetro obrigatório for igual à zero, significa que ele pode estar vazio, caso contrario, nao
 	var hora = document.getElementById(hora);
 	if((obrigatorio == 1) || (obrigatorio == 0 && hora.value != "" && hora.value != "__:__"))
 	{
 		if(hora.value.length < 5){
 			alert("Formato da hora invalido. Por favor, informe a hora no formato correto: hh:mm");
 			hora.focus();
 			return false
 		}
 		if(hora.value.substr(0,2) > 23 || isNaN(hora.value.substr(0,2))){
 			alert("Formato da hora invalido.");
 			hora.focus();
 			return false
 		}
 		if(hora.value.substr(3,2) > 59 || isNaN(hora.value.substr(3,2))){
 			alert("Formato do minuto invalido.");
 			hora.focus();
 			return false
 		}
 	}
 }
 
 function Verifica_Email(email, obrigatorio){
 //Se o parâmetro obrigatório for igual à zero, significa que elepode estar vazio, caso contrario, nao
 	var email = document.getElementById(email);
 	if((obrigatorio == 1) || (obrigatorio == 0 && email.value != "")){
 		if(!email.value.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.[a-zA-Z0-9._-]+)/gi)){
 			alert("Informe um e-mail valido");
 			email.focus();
 			return false
 		}
 	}
 }

 function Verifica_Cep(cep, obrigatorio){
 //Se o parâmetro obrigatório for igual à zero, significa que elepode estar vazio, caso contrario, nao
 	var cep    = document.getElementById(cep);
 	var strcep = cep.value;
 	if((obrigatorio == 1) || (obrigatorio == 0 && strcep != "")){
 		if (strcep.length != 9){
 			alert("CEP informado invalido.");
 			cep.focus();
 			return false
 		}else{
 			if (strcep.indexOf("-") != 5){
 				alert("Formato de CEP informado invalido.");
 				cep.focus();
 				return false
 			}else{
 				if (isNaN(strcep.replace("-","0"))){
 					alert("CEP informado invalido.");
 					cep.focus();
 					return false
 				}
 			}
 		}
 	}	  
 }
 
function MaximoCaracteres(field,MaxLength) 
{ 
    obj = document.all(field); 
    if (MaxLength !=0) 
    { 
        if (obj.value.length > MaxLength) 
            {
            obj.value = obj.value.substring(0, MaxLength); 
            alert('Limite de ' + MaxLength + ' para esse campo!');
            obj.focus();
            return false
            }
    } 
 } 
 
 function Valida_Periodo(data_inicial, data_final, periodo){
 	//Verifica se o periodo esta entre as datas
 	var data_inicial = document.getElementById(data_inicial);
 	var data_final   = document.getElementById(data_final);
 	var periodo   = document.getElementById(periodo);
 	str_data_inicial = data_inicial.value;
 	str_data_final   = data_final.value;
 	str_periodo      = periodo.value; 

 	if (str_data_inicial=="" || str_data_final == "" || str_periodo == "")
 	    return false

 	mes_inicial      = data_inicial.value.substr(3,2);
 	mes_final        = data_final.value.substr(3,2);
 	mes_periodo      = periodo.value.substr(0,2);
 	ano_inicial      = data_inicial.value.substr(6,4);
 	ano_final        = data_final.value.substr(6,4);
 	ano_periodo      = periodo.value.substr(3,4);

 	if (ano_periodo < ano_inicial || ano_periodo > ano_final) 
 	    {
 		    alert("Mes-ano inicial de juros deve estar no periodo entre a data inicial e a data de atualizacao"); 
 		    periodo.focus();
 		    return false
 	    }
 	else
 	    {
            if(ano_inicial == ano_final)
            {  
   	                if (mes_periodo < mes_inicial || mes_periodo > mes_final)
   	                    {
    	                    alert("Mes-ano inicial de juros deve estar no periodo entre a data inicial e a data de atualizacao"); 
 		                    periodo.focus();
 		                    return false
 	                    }
 	        }
 	        else
 	        {   //anos diferentes
 	            if (ano_periodo == ano_inicial && mes_periodo < mes_inicial)
 	            {
    	            alert("Mes-ano inicial de juros deve estar no periodo entre a data inicial e a data de atualizacao"); 
 		            periodo.focus();
 		            return false
 	            }
 	            if (ano_periodo == ano_final && mes_periodo > mes_final)
 	            {
    	            alert("Mes-ano inicial de juros deve estar no periodo entre a data inicial e a data de atualizacao"); 
 		            periodo.focus();
 		            return false
 	            }
 	        }
 	     }//final do esle
}

function MascaraMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){
    var sep = 0;
    var key = '';
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = '0123456789';
    var aux = aux2 = '';
    var whichCode = (window.Event) ? e.which : e.keyCode;
    if (whichCode == 13) return true;
    key = String.fromCharCode(whichCode); // Valor para o código da Chave
    if (strCheck.indexOf(key) == -1) return false; // Chave inválida
    len = objTextBox.value.length;
    for(i = 0; i < len; i++)
        if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break;
    aux = '';
    for(; i < len; i++)
        if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i);
    aux += key;
    len = aux.length;
    if (len == 0) objTextBox.value = '';
    if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux;
    if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux;
    if (len > 2) {
        aux2 = '';
        for (j = 0, i = len - 3; i >= 0; i--) {
            if (j == 3) {
                aux2 += SeparadorMilesimo;
                j = 0;
            }
            aux2 += aux.charAt(i);
            j++;
        }
        objTextBox.value = '';
        len2 = aux2.length;
        for (i = len2 - 1; i >= 0; i--)
        objTextBox.value += aux2.charAt(i);
        objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);
    }
    return false;
}

function So_Numeros(e)
{
	if (document.all) // Internet Explorer
		var tecla = event.keyCode;
	else if(document.layers) // Nestcape
		var tecla = e.which;
		if (tecla > 47 && tecla < 58) // numeros de 0 a 9
			return true;
		else
			{
				if (tecla != 8) // backspace
					event.keyCode = 0;
					//return false;
				else
					return true;
			}
}

function So_Numeros_Datas(e)
{
	if (document.all) // Internet Explorer
		var tecla = event.keyCode;
	else if(document.layers) // Nestcape
		var tecla = e.which;
		if (tecla >= 47 && tecla < 58) // numeros de 0 a 9 e o /
			return true;
		else
			{
				if (tecla != 8) // backspace
					event.keyCode = 0;
					//return false;
				else
					return true;
			}
}

function So_Numeros_Decimal(e)
{
	if (document.all) // Internet Explorer
		var tecla = event.keyCode;
	else if(document.layers) // Nestcape
		var tecla = e.which;
		if ((tecla > 47 && tecla < 58) || tecla == 44) // numeros de 0 a 9
			return true;
		else
			{
				if (tecla != 8) // backspace
					event.keyCode = 0;
					//return false;
				else
					return true;
			}
}


function formatar(src, mask)
{
  var i = src.value.length;
  var saida = mask.substring(0,1);
  var texto = mask.substring(i)
if (texto.substring(0,1) != saida)
  {
        src.value += texto.substring(0,1);
  }
}