
   /* navegação entre campos dos formularios do sistema */
   function formNavigate(evt, obj, prox) {
      var indice = 0;
      var next   = 0;
      var charCode = (evt.which) ? evt.which : event.keyCode;
      if (charCode == 13) {
         if (prox == '') {
            for (var x=0; x < obj.form.elements.length; x++) {
               if (obj.name == obj.form.elements[x].name) {
                  indice = x;
               }
            }
            indice++;
            if (indice < obj.form.elements.length) {
               obj.form.elements[indice].focus();
            }
         }
         else {
            document.getElementById(prox).focus();
         }
         return false;

      }
      else {
         return true;
      }
   }
   

   function closeWinProd() {
      document.getElementById('divImgProd').style.display = 'none';
      document.getElementById('imgProd').src = '';
   }
   
   function showWinProd(img) {
      document.getElementById('imgProd').src = img;
      var w = document.getElementById('imgProd').width;
      var h = document.getElementById('imgProd').height;
      document.getElementById('divImgProd').style.width = w + 10;
      document.getElementById('divImgProd').style.height = h + 10;
      document.getElementById('divImgProd').style.display = '';
   }

   /* valida submit do formulario e os campos obrigatórios */   
   function validaForm(form) {
      var msg = '';
      var elementos = form.elements;
      for (var i=0; i< elementos.length; i++) {
         if ((elementos[i].getAttribute("required") == "S") && (elementos[i].value == "")) {
            alert(elementos[i].getAttribute("msg"));
            elementos[i].focus();
            return false;
         }
      }
      form.submit();
   }
   
   /* valida submit do formulario e os campos obrigatórios sem dar submit */   
   function validaFormulario(form) {
      var msg = '';
      var elementos = form.elements;
      for (var i=0; i< elementos.length; i++) {
         if ((elementos[i].getAttribute("req") == "S") && (elementos[i].value == "")) {
            alert(elementos[i].getAttribute("msg"));
            elementos[i].focus();
            return false;
         }
      }
      return true;
   }

   /* valida submit do formulario e os campos obrigatórios sem dar submit */   
   function vForm(form) {
      var msg = '';
      var elementos = form.elements;
      for (var i=0; i< elementos.length; i++) {
         if ((elementos[i].getAttribute("req") == "S") && (elementos[i].value == "")) {
            alert(elementos[i].getAttribute("msg"));
            elementos[i].focus();
            return false;
         }
      }
      return true;
   }

   /* valida busca de produtos */
   function validaBusca(form) {
      var min = 2;
      var msg = "Por favor, realize uma busca com pelo menos 2 caracteres!";
      var obj = form.string;
      if (obj.value.length < min) {
         alert(msg);
         return false;
      }
      if (obj.value == 'Digite aqui o que você procura!') {
         alert(msg);
         return false;
      }
   }

   /* mascara : somente numeros */
   function keyNum(evt, obj) {
      var charCode = (evt.which) ? evt.which : event.keyCode;
      if ((charCode < 46 || charCode > 57) && (charCode != 8)) {
         return false;
      }
   }

   /* mascara : somente numeros */
   function keyNumOnly(evt, obj) {
      var charCode = (evt.which) ? evt.which : event.keyCode;
      if ((charCode < 48 || charCode > 57) && (charCode != 8)) {
         return false;
      }
   }
   
   /* mascara : campo CEP */
   function maskCep(evt, obj)
   {
      var charCode = (evt.which) ? evt.which : event.keyCode;
      if ((charCode < 46 || charCode > 57) && (charCode != 8)) {
         return false;
      }
      else {
         if (obj.value.length == 5) obj.value += '-';
      }
      return true;
   }
   
   /* mascara : campo Data */
   function maskData(evt, obj)
   {
      var charCode = (evt.which) ? evt.which : event.keyCode;
      if ((charCode < 46 || charCode > 57) && (charCode != 8)) {
         return false;
      }
      else {
         if ((obj.value.length == 2) || (obj.value.length == 5)) obj.value += '/';
      }
      return true;
   }

   /* mascara : campo Hora */
   function maskHora(evt, obj)
   {
      var charCode = (evt.which) ? evt.which : event.keyCode;
      if ((charCode < 46 || charCode > 57) && (charCode != 8)) {
         return false;
      }
      else {
         if ((obj.value.length == 2) || (obj.value.length == 5)) obj.value += ':';
      }
      return true;
   }

   /* mascara : campo Data e Hora */
   function maskDataHora(evt, obj)
   {
      var charCode = (evt.which) ? evt.which : event.keyCode;
      if ((charCode < 46 || charCode > 57) && (charCode != 8)) {
         return false;
      }
      else {
         if ((obj.value.length == 2) || (obj.value.length == 5)) obj.value += '/';
         if (obj.value.length == 10) obj.value += ' ';
         if ((obj.value.length == 13) || (obj.value.length == 16)) obj.value += ':';
      }
      return true;
   }

   /* mascara : campo CPF */
   function maskCPF(evt, obj)
   {
      var charCode = (evt.which) ? evt.which : event.keyCode
      /* backspace || delete */
      if ((charCode == 46) || (charCode == 8)) {
         return true;         
      }
      /* NaN */
      if ((charCode > 31) && (charCode < 48 || charCode > 57) && (charCode < 95 || charCode > 105)) {
         return false;
      }
      else {
         if ((obj.value.length == 3) || (obj.value.length == 7)) obj.value += '.';
         if (obj.value.length == 11) obj.value += '-';
      }
      return true;
   }

   /* mascara : campo CNPJ */
   function maskCNPJ(evt, obj)
   {
      var charCode = (evt.which) ? evt.which : event.keyCode
      /* backspace || delete */
      if ((charCode == 46) || (charCode == 8)) {
         return true;         
      }
      /* NaN */
      if ((charCode > 31) && (charCode < 48 || charCode > 57) && (charCode < 95 || charCode > 105)) {
         return false;
      }
      else {
         if ((obj.value.length == 2) || (obj.value.length == 6)) obj.value += '.';
         if (obj.value.length == 10) obj.value += '/';
         if (obj.value.length == 15) obj.value += '-';
      }
      return true;   }
   
   /* mascara : campo Telefone/Fax/celular */
   function maskFone(evt, obj)
   {
      var charCode = (evt.which) ? evt.which : event.keyCode;
      if ((charCode < 46 || charCode > 57) && (charCode != 8)) {
         return false;
      }
      else {
         if (obj.value.length == 0) obj.value += '(';
         if (obj.value.length == 3) obj.value += ') ';
         if (obj.value.length == 9) obj.value += '-';
      }
      return true;
   }

   /* mascara : campo Telefone/Fax/celular Somente último 8 digitos */
   function maskFoneSufNum(evt, obj)
   {
      var charCode = (evt.which) ? evt.which : event.keyCode;
      if ((charCode < 46 || charCode > 57) && (charCode != 8)) {
         return false;
      }
      else {
         if (obj.value.length == 4) obj.value += '-';
      }
      return true;
   }
   

   
   
   
   
      
   documentall = document.all;
   /*
   * função para formatação de valores monetários retirada de
   * http://jonasgalvez.com/br/blog/2003-08/egocentrismo
   */
   
   function formatamoney(c) {
       var t = this; if(c == undefined) c = 2;		
       var p, d = (t=t.split("."))[1].substr(0, c);
       for(p = (t=t[0]).length; (p-=3) >= 1;) {
   	        t = t.substr(0,p) + "." + t.substr(p);
       }
       return t+","+d+Array(c+1-d.length).join(0);
   }
   
   String.prototype.formatCurrency=formatamoney
   
   function demaskvalue(valor, currency){
   /*
   * Se currency é false, retorna o valor sem apenas com os números. Se é true, os dois últimos caracteres são considerados as 
   * casas decimais
   */
   var val2 = '';
   var strCheck = '0123456789';
   var len = valor.length;
   	if (len== 0){
   		return 0.00;
   	}
   
   	if (currency ==true){	
   		/* Elimina os zeros à esquerda 
   		* a variável  <i> passa a ser a localização do primeiro caractere após os zeros e 
   		* val2 contém os caracteres (descontando os zeros à esquerda)
   		*/
   		
   		for(var i = 0; i < len; i++)
   			if ((valor.charAt(i) != '0') && (valor.charAt(i) != ',')) break;
   		
   		for(; i < len; i++){
   			if (strCheck.indexOf(valor.charAt(i))!=-1) val2+= valor.charAt(i);
   		}
   
   		if(val2.length==0) return "0.00";
   		if (val2.length==1)return "0.0" + val2;
   		if (val2.length==2)return "0." + val2;
   		
   		var parte1 = val2.substring(0,val2.length-2);
   		var parte2 = val2.substring(val2.length-2);
   		var returnvalue = parte1 + "." + parte2;
   		return returnvalue;
   		
   	}
   	else{
   			/* currency é false: retornamos os valores COM os zeros à esquerda, 
   			* sem considerar os últimos 2 algarismos como casas decimais 
   			*/
   			val3 ="";
   			for(var k=0; k < len; k++){
   				if (strCheck.indexOf(valor.charAt(k))!=-1) val3+= valor.charAt(k);
   			}			
   	return val3;
   	}
   }
   
   function reais(obj,event){
   
   var whichCode = (window.Event) ? event.which : event.keyCode;
   /*
   Executa a formatação após o backspace nos navegadores !document.all
   */
   if (whichCode == 8 && !documentall) {	
   /*
   Previne a ação padrão nos navegadores
   */
   	if (event.preventDefault){ //standart browsers
   			event.preventDefault();
   		}else{ // internet explorer
   			event.returnValue = false;
   	}
   	var valor = obj.value;
   	var x = valor.substring(0,valor.length-1);
   	obj.value= demaskvalue(x,true).formatCurrency();
   	return false;
   }
   /*
   Executa o Formata Reais e faz o format currency novamente após o backspace
   */
   FormataReais(obj,'.',',',event);
   } // end reais
   
   
   function backspace(obj,event){
   /*
   Essa função basicamente altera o  backspace nos input com máscara reais para os navegadores IE e opera.
   O IE não detecta o keycode 8 no evento keypress, por isso, tratamos no keydown.
   Como o opera suporta o infame document.all, tratamos dele na mesma parte do código.
   */
   
   //var whichCode = (window.Event) ? event.which : event.keyCode;
   if (event.preventDefault){ //standart browsers
   		var whichCode = (window.Event) ? event.which : event.keyCode;
   	}else{ // internet explorer
         var whichCode = event.keyCode;
   }
   
   if (whichCode == 8 && documentall) {	
   	var valor = obj.value;
   	var x = valor.substring(0,valor.length-1);
   	var y = demaskvalue(x,true).formatCurrency();
   
   	obj.value =""; //necessário para o opera
   	obj.value += y;
   	
   	if (event.preventDefault){ //standart browsers
   			event.preventDefault();
   		}else{ // internet explorer
   			event.returnValue = false;
   	}
   	return false;
   
   	}// end if		
   }// end backspace
   
   function FormataReais(fld, milSep, decSep, e) {
   var sep = 0;
   var key = '';
   var i = j = 0;
   var len = len2 = 0;
   var strCheck = '0123456789';
   var aux = aux2 = '';

   if (e.preventDefault){ //standart browsers
   		var whichCode = (window.Event) ? e.which : e.keyCode;
   	}else{ // internet explorer
         var whichCode = e.keyCode;
   }
   
//   var whichCode = (window.Event) ? e.which : e.keyCode;

   //if (whichCode == 8 ) return true; //backspace - estamos tratando disso em outra função no keydown
   if (whichCode == 0 ) return true;
   if (whichCode == 9 ) return true; //tecla tab
   if (whichCode == 13) return true; //tecla enter
   if (whichCode == 16) return true; //shift internet explorer
   if (whichCode == 17) return true; //control no internet explorer
   if (whichCode == 27 ) return true; //tecla esc
   if (whichCode == 34 ) return true; //tecla end
   if (whichCode == 35 ) return true;//tecla end
   if (whichCode == 36 ) return true; //tecla home
   
   /*
   O trecho abaixo previne a ação padrão nos navegadores. Não estamos inserindo o caractere normalmente, mas via script
   */
   
   if (e.preventDefault){ //standart browsers
   		e.preventDefault()
   	}else{ // internet explorer
   		e.returnValue = false
   }
   
   var key = String.fromCharCode(whichCode);  // Valor para o código da Chave
   if (strCheck.indexOf(key) == -1) return false;  // Chave inválida
   
   /*
   Concatenamos ao value o keycode de key, se esse for um número
   */
   fld.value += key;
   
   var len = fld.value.length;
   var bodeaux = demaskvalue(fld.value,true).formatCurrency();
   fld.value=bodeaux;
   
   /*
   Essa parte da função tão somente move o cursor para o final no opera. Atualmente não existe como movê-lo no konqueror.
   */
     if (fld.createTextRange) {
       var range = fld.createTextRange();
       range.collapse(false);
       range.select();
     }
     else if (fld.setSelectionRange) {
       fld.focus();
       var length = fld.value.length;
       fld.setSelectionRange(length, length);
     }
     return false;
   
   }


   
  
  

