var isNav = (navigator.appName.indexOf("Netscape")!=-1);

function getMenuDocument() {
   return top.menu;
}

function totalNumericFields(pcheckValue) {
   var total=0;
   for(var i=1;i<arguments.length; i++) {
      if (!isNull(arguments[i].value)) {
         if (!pcheckValue(arguments[i].value)) {
            arguments[i].select();
            arguments[i].focus();
            alert("Valor invalido");
            return false;
         }   
         else
            total += parseFloat(arguments[i].value);
     }
   }
   return total;
}

function loadRequiredFields() {
   var frm = arguments[0];
   
   if (frm.acao && frm.acao.value=='del')
      return;
   
   for (var i=1; i<arguments.length; i++) {
      var field_name = arguments[i];
      if (frm[field_name])
         frm[field_name].style.backgroundColor="#f6d300";
   }
}

function time_onkeypress(evt) {
   if (isIE) {
      evt = window.event;
      var source = evt.srcElement;
      var keyCode = evt.keyCode;
   }
   else {
      var source = evt.target;
      var keyCode = evt.which;
   }

   var keyChar = String.fromCharCode(keyCode);

   if ( ("0123456789:").indexOf(keyChar)==-1) {
      evt.returnValue=false;
      return false;
   }

   switch (source.value.length) {
      case 0 :
         if (keyChar==":") {
            evt.returnValue=false;
            return false;
         }

         break;

      case 1:
         if (keyChar==":") 
            source.value = "0" + source.value;
         else {
            if (source.value=="2") {
               if (("45").indexOf(keyChar)!=-1)
                  source.value = "0" + source.value + ":";   
               else if (("6789").indexOf(keyChar)!=-1) 
                  source.value = "0" + source.value + ":0";
            } 
            else if (source.value>="3") {
               if (keyChar<="5") 
                  source.value = "0" + source.value + ":";
               else 
                  source.value = "0" + source.value + ":0";
            }
            
         }   
         break;

      case 2 :
         if (keyChar!=":") {
            source.value+=":";
            if (keyChar>="6") 
               source.value+="0";
         }
            
         break;

      case 3 :
         if (keyChar==":") {
            source.value+="00";
         }
         else if (keyChar>="6") {
            source.value+="0";
         }
         break;

      case 4 :
         if (keyChar==":") 
            source.value=source.value.substring(0,3)+"0"+source.value.charAt(3) ;
         
         break;

      case 5 :
         if (keyChar!=":") {
            source.value+=":";
            if (keyChar>="6")
               source.value+="0";
         }

         break;

      case 6 :
         if (keyChar==":") {
            evt.returnValue=false;
            return false;
         }
         else if (keyChar>="6") {
            source.value+="0";
         }

         break;

      case 7 :
         if (keyChar==":") {
            evt.returnValue=false;
            return false;
         }
         break;
         
      default :
         evt.returnValue=false;
         return false;
   }

}

function shorttime_onkeypress(evt) {
   if (isIE) {
      evt = window.event;
      var source = evt.srcElement;
      var keyCode = evt.keyCode;
   }
   else {
      var source = evt.target;
      var keyCode = evt.which;
   }

   var keyChar = String.fromCharCode(keyCode);

   if ( ("0123456789:").indexOf(keyChar)==-1) {
      evt.returnValue=false;
      return false;
   }

   switch (source.value.length) {
      case 0 :
         if (keyChar==":") {
            evt.returnValue=false;
            return false;
         }

         break;

      case 1:
         if (keyChar==":") 
            source.value = "0" + source.value;
         else {
            if (source.value=="2") {
               if (("45").indexOf(keyChar)!=-1)
                  source.value = "0" + source.value + ":";   
               else if (("6789").indexOf(keyChar)!=-1) 
                  source.value = "0" + source.value + ":0";
            } 
            else if (source.value>="3") {
               if (keyChar<="5") 
                  source.value = "0" + source.value + ":";
               else 
                  source.value = "0" + source.value + ":0";
            }
            
         }   
         break;

      case 2 :
         if (keyChar!=":") {
            source.value+=":";
            if (keyChar>="6") 
               source.value+="0";
         }
            
         break;

      case 3 :
         if (keyChar==":") {
            evt.returnValue=false;
            return false;
         }
         else if (keyChar>="6") {
            source.value+="0";
         }
         break;

      case 4 :
         if (keyChar==":") {
            evt.returnValue=false;
            return false;
         }
         
         break;

      default :
         evt.returnValue=false;
         return false;
   }

}

function integer_onkeypress(evt) {
   if (isIE) {
      evt = window.event;
      var source = evt.srcElement;
      var keyCode = evt.keyCode;
   }
   else {
      var source = evt.target;
      var keyCode = evt.which;
   }

   var keyChar = String.fromCharCode(keyCode);

   if (!source.min_value || parseInt(source.min_value,10)<0)
      var char_input = "0123456789-";
   else
      var char_input = "0123456789";

   if (char_input.indexOf(keyChar)==-1) {
      evt.returnValue=false;
      return false;
   }
}

function get_integer_size(p_value) {
   p_value = trim(p_value);

   if (p_value.charAt(0)=="-")
      p_value == p_value.substr(1);

   var p = p_value.indexOf(".");

   if (p==-1) {
      var integer_size = p_value.length;
   }
   else
      var integer_size = ((p==0) ? 1 : p);

   return integer_size;
}

function formatNumberDecimal(p_value, p_decimal_size) {
// p_value deve ser um numero valido,
// em formato americano (somente um ponto como separador de decimais, se houver)
   p_decimal_size = parseInt(p_decimal_size,10);
   var p=p_value.indexOf(".");
   if (p==-1) {
      p_value+=".";
      p=p_value.length-1;
   }

   var decimals = get_decimal_size(p_value);

   // decimals eh maior que p_decimal_size
   if (decimals > p_decimal_size) {
      p_value = p_value.substring(0,1+p+p_decimal_size);
   }
   else if (decimals < p_decimal_size) {
      for(var i=decimals; i<p_decimal_size; i++)
         p_value+="0";
   }

   return p_value;
}

function isShortTime(ptexto) {
   ptexto = trim(ptexto);

   if (ptexto.length!=5 || ptexto.substring(2,3) != ":") {
      return false;
   }
   
   var hora = parseInt(ptexto.substring(0, 2),10);
   var minuto = parseInt(ptexto.substring(3, 5),10);
   
   if (isNaN(hora)||isNaN(minuto))
      return false;
      
   return (hora >= 0 && hora <= 23 && minuto >= 0 && minuto <= 59);
}

function isTime(ptexto) {
   ptexto = ltrim (ptexto);
   
   if (ptexto.length!=8 || ptexto.substring(2,3) != ":" || ptexto.substring(5,6) != ":") {
      return false;
   }
   
   var hora = parseInt(ptexto.substring(0, 2),10);
   var minuto = parseInt(ptexto.substring(3, 5),10);
   var segundo = parseInt(ptexto.substring(6, 8),10);
   
   if (isNaN(hora)||isNaN(minuto)||isNaN(segundo))
      return false;

   return (hora >= 0 && hora <= 23 && minuto >= 0 && minuto <= 59 &&
           segundo >= 0 && segundo <= 59);
      
}

function isYear(ptexto) {
   return (isNumeric(ptexto) && parseInt(ptexto,10)>1000 && parseInt(ptexto,10)<=9999);
}



function isPercent(ptexto) {
   ptexto = ltrim (ptexto);

   return (parseFloat(ptexto) >= 0 && parseFloat(ptexto) <= 100);
}

function checkIntegerSize(p_obj,p_msg) {
   if (p_obj.integer_size &&
       parseInt(p_obj.integer_size,10) < parseInt(get_integer_size(p_obj.value),10)) {
      alert(p_msg);
      p_obj.focus();
      p_obj.select();
      return false;
   }

   return true;
}

//faz dependencia de combos.
function loadSelectOptionsDependent(p_selected, p_obj_target, p_array_options, p_selected_value) {

   var opt0 = p_obj_target.options[0];
   
   p_obj_target.length=0;
   
   p_obj_target.options[0]=opt0;

   if (p_selected=='') 
      return;
  
  //Remove os itens.
  for(i=p_obj_target.options.length;i>=0;i--){
  	p_obj_target.remove(i);
  }

  //insere os novos
  for(i=0;i<p_array_options.length;i++) {
  	if(p_array_options[i][0] == p_selected){
		var elemento = document.createElement("OPTION");
		elemento.value = p_array_options[i][1];
		elemento.text = p_array_options[i][2];
		p_obj_target.add(elemento);
	}
  }

  if(p_selected_value != "")
  	p_obj_target.value = p_selected_value;
  
}
