//alert('java-Padrão');
//===========================================
//    FUNCOES_PADRAO.JS       18/10/2000
//===========================================
// IsEmpty(Campo)
// Dias_Fevereiro(ano)
// Validar_Campo_Data(campo,obrigatorio)
// Validar_Campo_Numerico(campo,char_valido)
// ValidaHora(Hora)
// ValidaHoraFim(HoraIni,HoraFim)
// Enabled_Radio_Campo(Campo,CampoFocus,Radio,i)
// Enabled_CBox_Campo(Campo,CampoFocus,CBox)
// SubstituiCaracter(str,atual,novo)
// valida_CPF(rcpf1,rcpf2,c)
// ValidaCGC(CGCaux)
// Valida_Email(Campo)
// abre_janela(mylink, windowname,largura,altura,ajustavel)
//ajustar_cpf(input, evento)
//ajustar_cnpj(input, evento)
//ajustar_data(input, evento)
//ajustar_hota(input, evento)
//RetiraCaracteresInvalidos(strCampo,tam) 
//Valida_Periodo(campo_dt_Ini,campo_dt_fim)
// radio_checado(radio)
//========================================================
// Verifica se o campo passado como parâmetro está vazio
//========================================================
 function IsEmpty(campo){
   if  (campo.type == "select-one") var field = campo.options[campo.selectedIndex].value
   else var field = campo.value;
   for (var i = 0; i < field.length; i++) {
      var valor = field.charAt(i);
      if (valor != " ") return false;
   }
   return true;
 }

//==============================================
//retorna o numero de dias em fevereiro.
//==============================================
function Dias_Fevereiro(ano){
   if ( ano%4==0 && ( ano%100!=0  || ano%400==0) ) return 29;
   else return 28; 
}

//===============================================================================
// Verifica se o campo data passado como parâmetro está preenchido corretamente 
// (dd/mm/aaaa).
//===============================================================================
function Validar_Campo_Data(campo,obrigatorio){
   if (IsEmpty(campo) && (obrigatorio)) return false;
   
   var data = campo.value + '/';
   var part_data = "";
   var caracter = "";
   var dia = ""; var mes = ""; var ano = "";
   
  if (!IsEmpty(campo)){
    for (var i=0; i < data.length; i++) {
      if (data.charAt(i) != "/" ){  //joga o caracter que se encontra na posicao "i" da string "valor"
        part_data = part_data + data.charAt(i);
      } else { 
        if (dia == ""){
           dia = part_data;
           part_data = "";
        } else {
          if (mes == ""){
             mes = part_data;
             part_data = "";
          } else{
            if(ano == ""){
               ano = part_data;
               part_data = ""; 
			}
          }
        }
      }
    }
    if ((ano >= 1900) && (ano <= 3000)){
       if ((mes=="01") || (mes=="03") || (mes=="05") || (mes=="07") || (mes=="08") || (mes=="10") || (mes=="12")) {
          if((dia >= 01) && (dia <= 31)){
             return true;
          }
       } else{
          if ((mes=="04") || (mes=="06") || (mes=="09") || (mes=="11")) {
             if((dia >= 01) && (dia <= 30)){
               return true;
             }
          } else {
             if(mes=="02"){
               if ((dia >= 01) && (dia <= Dias_Fevereiro(ano))){
                 return true;
               }
             }
          }
       }
    } else {return false; }
  } else { return true; }
}

//===================================================================================
// Verifica se o campo passado como parâmetro é numérico, caso ele esteja preenchido.
//===================================================================================
    function Validar_Campo_Numerico(campo,char_valido) { 
      var validchars = "0123456789"+char_valido;
      if (!IsEmpty(campo)){
         var valor = campo.value;
         for (var i=0; i < valor.length; i++) {
           var numero = valor.charAt(i); //joga o caracter que se encontra na posicao "i" da string "valor"
           //verifico se eh um caracter valido (numerico)
           if(validchars.indexOf(numero) != -1) {  //retorna -1 quando nao encontra o caracter
             continue
           }
           else {
             return false;
           }
         }
         return true;
      }
      else
         return true;
    }

//==============================================
// Valida uma determinada hora no formato HH:MM
//==============================================
function ValidaHora(Hora){
 var i;
 var DoisPontos = "N";
 var PString    = "";
 var sHora      = ""; 
 var sMinuto    = "";
 var ValorHora  = Hora.value;		
 var SizeHora   = ValorHora.length;
	
 if (SizeHora > 5 || SizeHora  == 3) { 	
  return false;
 }
 for (i = 0; i<=SizeHora; i++) {	
  PString = ValorHora.substr(i,1);  
	if (PString == ":") {  
   if (i == 0 || i == SizeHora-1 || (SizeHora==4&&(i==2||PString=="0")) 
    || (SizeHora==5&&(i==1||i==3||PString=="0")) ) {
    return false;
   }   
   DoisPontos = "S";
  } 
  else {
   if (DoisPontos == "N"){
    sHora = sHora+PString;  
   }
   else{
   sMinuto = sMinuto+PString; 
   }
  }   
 }
 if (parseInt(sHora)>24 || parseInt(sMinuto)>59 ){
  return false;
 }	
 return true;	
}

//===========================================================================
// Valida se uma hora final e Menor ou Igual a uma hora inicio formato HH:MM
//===========================================================================
function ValidaHoraFim(HoraIni,HoraFim){  
 var i; 
 var ValHoraIni  = HoraIni.value;
 var ValHoraFim  = HoraFim.value;
 var SizeHoraIni = ValHoraIni.length;
 var SizeHoraFim = ValHoraFim.length;
 var DoisPontosI = "N";
 var DoisPontosF = "N"; 
 var sHoraIni    = "";
 var sHoraFim    = ""; 

 for (i= 0 ;i<=SizeHoraIni; i++) {
  pString = ValHoraIni.substr(i,1);
  if (pString==":"){
   DoisPontosI = "S";  
  }
 }
 for (i= 0 ;i<=SizeHoraFim; i++) {
  pString = ValHoraFim.substr(i,1);
  if (pString==":"){
   DoisPontosF = "S";      
  }
 }	
 
 //========================== Se Hora Inicial tem 2 pontos e Hora Final sem 2 pontos
 if (DoisPontosI=="S"&&DoisPontosF=="N"){		
   for (i = 0 ;i<=SizeHoraIni; i++) {
     pString = ValHoraIni.substr(i,1);
    if (pString != ":") {
     sHoraIni = sHoraIni+pString;
    } 
    else {
     break;
    } 
   }
	 for (i = 0 ;i<=SizeHoraFim; i++) {
     pString = ValHoraFim.substr(i,1);
    if (pString != ":") {
     sHoraFim = sHoraFim+pString;
    } 
   }
	 if (parseInt(sHoraFim) <= parseInt(sHoraIni)){
    return false;
   }
	return true;	
 }

 //===================================== Se Hora Inicial e Hora Final com 2 pontos
 if (DoisPontosI=="S"&&DoisPontosF=="S"){	
   for (i = 0 ;i<=SizeHoraIni; i++) {
     pString = ValHoraIni.substr(i,1);
    if (pString != ":"&&i!=0) {
     sHoraIni = sHoraIni+pString;
    }     	 	
   }	
	 if (sHoraIni.substr(0,1)=="0"){
		 SizeHoraIni = sHoraIni.length;
		 for (i = 1 ;i<=SizeHoraIni; i++) {
      pString = sHoraIni.substr(i,1);		
      sHoraIni = sHoraIni+pString;			
     } 
		}			
		
   for (i = 0 ;i<=SizeHoraFim; i++) {
     pString = ValHoraFim.substr(i,1);		
    if (pString != ":") {
     sHoraFim = sHoraFim+pString;			
    } 
	 }	
		if (sHoraFim.substr(0,1)=="0"){
		 SizeHoraFim = sHoraFim.length;
		 for (i = 1 ;i<=SizeHoraFim; i++) {
      pString = sHoraFim.substr(i,1);		
      sHoraFim = sHoraFim+pString;			
     } 
		}   			
		
   if (parseInt(sHoraFim) <= parseInt(sHoraIni)){
		return false;
   }
	return true;	
 } 

//================================= Se Hora Inicial e Hora Final com 2 pontos ou não
 for (i = 0 ;i<= SizeHoraIni; i++) {	
  pString = ValHoraIni.substr(i,1); 
  if (pString != ":"){
   sHoraIni = sHoraIni+pString;	 
  } 
 }
	
 for (i = 0; i<= SizeHoraFim; i++) {
  pString = ValHoraFim.substr(i,1);
  if (pString != ":"){
    sHoraFim = sHoraFim+pString;				
   }
 }

 ValHoraFim = sHoraFim;	
 if (DoisPontosF = "S"){	
  if (ValHoraFim.length > 2){
   sHoraIni = sHoraIni+"00";
  }
 }
 else{
	if (ValHoraFim.length > 2){
   sHoraIni = sHoraIni+"0";
  }
 }	

 if (parseInt(sHoraFim) <= parseInt(sHoraIni)) {	
  return false;
 }
 return true;	
}

//==================================================================
// Se checou um Radio, habilita e desabilita um determinado campo
//   Campo é o campo a ser desab./hab.
//   CampoFocus é o campo desejado a ter o focu
//   Radio é o nome do radiobutton e "i" o seu indice(0,1,2..)
//==================================================================
function Enabled_Radio_Campo(Campo,CampoFocus,Radio,i){
 if (Radio[i].checked == true){
  Campo.value = "";
  Campo.style.backgroundColor = "#eeeeee";  //cinza
  CampoFocus.focus();
 } 
 else {
  Campo.style.backgroundColor = "#ffffff"; //branco
  Campo.focus();
 }     
} 

//==================================================================
// Se checou um CheckBox, habilita e desabilita um determinado campo
//   Campo é o campo a ser desab./hab.
//   CampoFocus é o campo desejado a ter o focu
//   CBox é o nome do checkbox 
//==================================================================
function Enabled_CBox_Campo(Campo,CampoFocus,CBox){
 if (CBox.checked == true){
  Campo.value = "";
  Campo.style.backgroundColor = "#eeeeee";  //cinza
  CampoFocus.focus();
 } 
 else {
  Campo.style.backgroundColor = "#ffffff"; //branco
  Campo.focus();
 }     
}

//****************************************************************************************
// substitui a string atual pela string novo na string str -- Jaricia
//****************************************************************************************
function SubstituiCaracter(str,atual,novo){ 
   posicao=str.indexOf(atual);
   pular=atual.length;
   while(posicao!=-1){
     str=str.substring(0,posicao)+novo+str.substring(posicao+pular,str.length);
     posicao=str.indexOf(atual);
   }
   return str
}


//==============================================================================================
// Elaine
//==============================================================================================
function isDigit (c) {return ((c >= "0") && (c <= "9"))}

//==============================================================================================
// Para Retirar caracteres inválidos
// Elaine
//==============================================================================================
function RetiraCaracteresInvalidos(strCampo,tam) {
     nTamanho = strCampo.length;
     szCampo = "";
     j=0;
     for (i = nTamanho-1;i>=0;i--) {
        if (isDigit(strCampo.charAt(i))) {
           szCampo = strCampo.charAt(i) + szCampo;
           j++;
           if (j > tam) break;
        }
     }
     if (szCampo.length < tam) {
        for (i = szCampo.length;i<tam;i++) {
           szCampo = "0" + szCampo;
        }
     }
     return szCampo;
}

//==============================================================================================
// Para Validar o Número do CPF
// Elaine
//==============================================================================================
function valida_CPF(CPFaux) { 
    CPFaux = RetiraCaracteresInvalidos(CPFaux,11);
    
	var rcpf1 = CPFaux.substr(0,9);
    var rcpf2  = CPFaux.substr(9,2);
	
	if((CPFaux == "00000000000") || (CPFaux == "11111111111")  || (CPFaux == "22222222222") || (CPFaux == "33333333333") || (CPFaux == "44444444444") || (CPFaux == "55555555555") || (CPFaux == "66666666666") || (CPFaux == "77777777777") || (CPFaux == "88888888888") || (CPFaux == "99999999999") ){
		return false;
	}
	
	 d1 = 0;
     for (i=0;i<9;i++)
        d1 += rcpf1.charAt(i)*(10-i);
        d1 = 11 - (d1 % 11);
        if (d1>9) d1 = 0;
        if (rcpf2.charAt(0) != d1)
           return false;
        d1 *= 2;
        for (i=0;i<9;i++)
            d1 += rcpf1.charAt(i)*(11-i);
            d1 = 11 - (d1 % 11);
            if (d1>9) d1 = 0;
            if (rcpf2.charAt(1) != d1)
               return false;
        return true;
}

//==============================================================================================
// Para Validar o Número do CGC
// Elaine
//==============================================================================================
function ValidaCGC(CGCaux) {

   CGCaux = RetiraCaracteresInvalidos(CGCaux,14);

   var wD = new Array(14);
   for (i=0;i<14;i++)  wD[i] = CGCaux.charAt(i);

   //Calcula 1o.Digito
   wTotal = (5*CGCaux.charAt(0))+(4*CGCaux.charAt(1))+(3*CGCaux.charAt(2))+(2*CGCaux.charAt(3))+
            (9*CGCaux.charAt(4))+(8*CGCaux.charAt(5))+(7*CGCaux.charAt(6))+(6*CGCaux.charAt(7))+
            (5*CGCaux.charAt(8))+(4*CGCaux.charAt(9))+(3*CGCaux.charAt(10))+(2*CGCaux.charAt(11));

   wPriDig = ( wTotal*10 ) % 11;
   if ( wPriDig == 10 ) wPriDig = 0;

   //Calcula 2o.Digito
   wTotal = (6*CGCaux.charAt(0))+(5*CGCaux.charAt(1))+(4*CGCaux.charAt(2))+(3*CGCaux.charAt(3))+
            (2*CGCaux.charAt(4))+(9*CGCaux.charAt(5))+(8*CGCaux.charAt(6))+(7*CGCaux.charAt(7))+
            (6*CGCaux.charAt(8))+(5*CGCaux.charAt(9))+(4*CGCaux.charAt(10))+(3*CGCaux.charAt(11))+
            (2*wPriDig);

   wSegDig = ( wTotal*10 ) % 11;
   if ( wSegDig == 10 ) wSegDig = 0;

   if ((wPriDig != CGCaux.charAt(12)) || (wSegDig != CGCaux.charAt(13)))
       return false
   else if (CGCaux == '00000000000000')
       return false
   else
      return true;
}

// Valida o Email
function Valida_Email(Campo){
caracter = ([" ","/",":",";","=",",","#","%","&","*"]);
  for (a=0;a < caracter.length;a++){
	if (Campo.indexOf(caracter[a]) > 0) {
	  return false;
    }
  }
  if (Campo.length > 5){
     if( (Campo.indexOf("@") < 2) || (Campo.length == Campo.indexOf("@")-1) ) {
			   return false;
	 }	   
     else {
       i= Campo.substring(Campo.indexOf("@")+2,Campo.length);
       if (i.indexOf(".") < 1){
		 return false;
	   } 
     }
  }
  else {
	 return false
  }
return  true;
}
// abre_janela
function abre_janela(mylink, windowname,largura,altura,ajustavel){ 
   if (! window.focus)return true;
   var href;
   if (typeof(mylink) == 'string')
      href=mylink;
   else
      href=mylink.href;

   opcoes='width=';
   if (largura!='')
    opcoes+=largura;
   else
     opcoes+=500;
	 
   opcoes+=','+'height=';
   if (altura!='')
    opcoes+=altura;
   else
     opcoes+=300;   
   if (ajustavel!='')
     opcoes+='resizable='+ajustavel;
   else
     opcoes='';   
   
/*   if ((largura=='')&&(altura=='')&&()
     window.open(href, windowname, 'width=500,height=300,scrollbars=yes');
   else
     window.open(href, windowname, 'width='+largura+',height='+altura+',scrollbars=yes,resizable=yes');
   */
   window.open(href, windowname, opcoes);
   return false;
   
}   

function so_valor(input, evento){
        var BACKSPACE=  8; 
        var PONTO=  46;  
        var VIRGULA=  44; 
        var FRENTE=  39; 
        var TRAS=  37;    
		var TAB=  9;       
        var tecla= (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode);
         if (( tecla == BACKSPACE )||(tecla == PONTO)||(tecla == VIRGULA)||(tecla == FRENTE)||(tecla == TRAS)||(tecla == TAB))  return true; 
         if ( tecla == 13 ) return false; 
		 if ((tecla<48)||(tecla>57)){
			evento.returnValue =false;
			return false;
		 } 
 return true;		
}

function ajustar_cpf(input, evento){
        var BACKSPACE=  8; 
        var DEL=  46; 
        var FRENTE=  39; 
        var TRAS=  37;  
		var TAB=  9;        
        var tecla= (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode)
//         if (( tecla == BACKSPACE )||(tecla == DEL)||(tecla == FRENTE)||(tecla == TRAS))  return true; 
         if (( tecla == BACKSPACE )||(tecla == FRENTE)||(tecla == TRAS)||(tecla == TAB))  return true; 
         if ( tecla == 13 ) return false; 
		 if ((tecla<48)||(tecla>57)){
			evento.returnValue =false;
			return false;
		 } else { 
			if((input.value.length==3)||(input.value.length==7))  input.value=input.value + "." 
		    else if(input.value.length==11) input.value=input.value + "-" ; 
		 }
 return true;		
}

function ajustar_cnpj(input, evento){
        var BACKSPACE=  8; 
        var DEL=  46; 
        var FRENTE=  39; 
        var TRAS=  37;   
		var TAB=  9;        
        var tecla= (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode)
         if (( tecla == BACKSPACE )||(tecla == FRENTE)||(tecla == TRAS)||(tecla == TAB))  return true; 
         if ( tecla == 13 ) return false; 
		 if ((tecla<48)||(tecla>57)){
			evento.returnValue =false;
			return false;
		 } else { 
			if((input.value.length==2)||(input.value.length==6))  input.value=input.value + "." 
			else if(input.value.length==10) input.value=input.value + "/" 
			else if(input.value.length==15) input.value=input.value + "-" ; 
		 }
 return true;		
}

function ajustar_data(input, evento){
        var BACKSPACE=  8; 
        var DEL=  46; // acho que esta equivocado esse é o ponto
        var FRENTE=  39; 
        var TRAS=  37;          
		var TAB=  9;          
        var tecla= (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode)
         if (( tecla == BACKSPACE )||(tecla == FRENTE)||(tecla == TRAS)||(tecla == TAB))  return true; 
         if ( tecla == 13 ) return false; 
		 if ((tecla<48)||(tecla>57)){ 
		    evento.returnValue =false;
			return false;
		 } else { 
			if ((input.value.length==2)||(input.value.length==5)) input.value=input.value + "/" ;
		 }
 return true;		
}

function ajustar_hora(input, evento){
        var BACKSPACE=  8; 
        var DEL=  46; // acho que esta equivocado esse é o ponto
        var FRENTE=  39; 
        var TRAS=  37;   
		var TAB=  9;       
        var tecla= (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode)
         if (( tecla == BACKSPACE )||(tecla == FRENTE)||(tecla == TRAS)||(tecla == TAB))  return true; 
         if ( tecla == 13 ) return false; 
		 if ((tecla<48)||(tecla>57)){ 
		    evento.returnValue =false;
			return false;
		 } else { 
			if ((input.value.length==2)||(input.value.length==5)) input.value=input.value + ":" ;
		 }
 return true;		
}

function editaforma(strCampo,tam,tipo) {
    var i;
    var j;
    var nTamanho;
    var szCampo;
    j=0;
	nTamanho = strCampo.length;
	szCampo = "";
	for (i = nTamanho-1;i>=0;i--) 
	{
		if (isDigit(strCampo.charAt(i)))	{
			szCampo = strCampo.charAt(i) + szCampo;
			j++;
			if (j > tam) break;
        }
	}
	if (szCampo.length < tam) {
		for (i = szCampo.length;i<tam;i++) 
		{
			szCampo = "0" + szCampo;
		}
	}
	if (j==0) return "";
	if (tipo=="cpf")
      return (szCampo.substr(0,3)+"."+szCampo.substr(3,3)+"."+szCampo.substr(6,3)+"-"+szCampo.substr(9,2))
	else if (tipo=="cnpj")
      return (szCampo.substr(0,2)+"."+szCampo.substr(2,3)+"."+szCampo.substr(5,3)+"/"+szCampo.substr(8,4)+"-"+szCampo.substr(12,2))
	else if (tipo=="data")    
      return (szCampo.substr(0,2)+"/"+szCampo.substr(2,2)+"/"+szCampo.substr(4,4));
  	else if (tipo=="hora")    
      return (szCampo.substr(0,2)+":"+szCampo.substr(2,2));
}

//==============================================================================================
// Para Validar se a data final é menor que a inicial
// Jarícia
// retorna true se data final maior que inicial
//==============================================================================================
  function Valida_Periodo(campo_dt_Ini,campo_dt_fim){
	 
    if ((IsEmpty(campo_dt_Ini)) || (IsEmpty(campo_dt_fim)))
        return true;
    var digitos = '';
    var inicio = '';
    var fim = '';
    var barra = 0;
    for (i=campo_dt_Ini.value.length-1;i >= 0;i--){
      if (campo_dt_Ini.value.charAt(i) == '/'){
        if (barra == 0)
           inicio = digitos;
        else {
          if (digitos.length < 2)
             inicio = inicio+'0'+digitos
          else
             inicio = inicio+digitos;
        }
        digitos = '';
        barra = barra + 1;
      }
      else digitos = campo_dt_Ini.value.charAt(i) + digitos;
    }
    if (digitos.length < 2)
       inicio = inicio+'0'+digitos
    else
       inicio = inicio+digitos;

    digitos = '';
    barra = 0;

    for (i=campo_dt_fim.value.length-1;i>=0;i--){
      if (campo_dt_fim.value.charAt(i) == '/'){
        if (barra == 0)
           fim = digitos;
        else {
          if (digitos.length < 2)
             fim = fim+'0'+digitos
          else
             fim = fim+digitos;
        }
        digitos = '';
        barra = barra + 1;
      }
      else digitos = campo_dt_fim.value.charAt(i) + digitos;
    }

    if (digitos.length < 2)
       fim = fim+'0'+digitos
    else
       fim = fim+digitos;

    if (!(inicio > fim))
       return true
	else
	   return false;
  }

function radio_checado(radio){
 	for (i=0;i<=radio.length-1;i++) 
	    if (radio[i].checked == true)
		   return true;
    return false;   
}