    function domAtual() {        

        if(document.layers) {

             return "layers";

        }

        if(document.all) {

             return "all";

        }

        if(document.getElementById && !document.all){

            return "getElementById";

        }

    }

    

    function areaVisualBrowserW() {

        dom = domAtual();

        

        //IE

        if(dom == "all") {

             return window.document.body.offsetWidth

        }

        //Netscape4

        if(dom == "layers") {

             return window.outerWidth

        }

        //Netscape6 ou +

        if(dom == "getElementById") {

             return window.outerWidth

        }

    }

    

    function areaVisualBrowserH() {

        dom = domAtual();

        

        //IE

        if(dom == "all") {

             return window.document.body.offsetHeight

        }

        //Netscape4

        if(dom == "layers") {

             return window.innerHeight

        }

        //Netscape6 ou +

        if(dom == "getElementById") {

             return window.innerHeight

        }

    }

    

    function posicionaLayer(layerId, w, h) {

        dom = domAtual();

        areaVisualW = areaVisualBrowserW();

        areaVisualH = areaVisualBrowserH();

        larguraSite = 779;

        alturaSite = 0;

        y = 0;

        x = 0;

    

        y = (areaVisualH - areaVisualH)/2;

        x = (areaVisualW - larguraSite)/2;

        

        if(dom == "layers") {

            eval("document."+dom+"['"+layerId+"'].top = "+ (y+h) +"");

            eval("document."+dom+"['"+layerId+"'].left = "+ (x+w) +"");

        } else {

            eval("document."+dom+"('"+layerId+"').style.top = "+ (y+h) +"");

            eval("document."+dom+"('"+layerId+"').style.left = "+ (x+w) +"");

        }

    }



function MM_findObj(n, d) { //v4.0

  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];

  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

  if(!x && document.getElementById) x=document.getElementById(n); return x;

}



function MM_validateForm() { //v3.0

  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;

  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);

    if (val) { nm=val.name; if ((val=val.value)!="") {

      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');

        if (p<1 || p==(val.length-1)) errors+='- O Campo ['+nm+'] deve conter um e-mail válido.\n';

      } else if (test!='R') { num = parseFloat(val);

        if (val!=''+num) errors+='- O Campo ['+nm+'] deve conter um número.\n';

        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');

          min=test.substring(8,p); max=test.substring(p+1);

          if (num<min || max<num) errors+='- O Campo ['+nm+'] deve conter um número entre '+min+' and '+max+'.\n';

    } } } else if (test.charAt(0) == 'R') errors += '- O Campo ['+nm+'] deve ser preenchido.\n'; }

  } if (errors) alert('Os seguintes erros ocorreram:\n'+errors);

  document.MM_returnValue = (errors == '');

}



function MM_openBrWindow(theURL,winName,features) { //v2.0

  window.open(theURL,winName,features);

}



function Trocastring(input, from, to) {

  var output='';

  while(input.length >= from.length && input.length > 0 && from.length > 0){

  if(input.substring(0,from.length) == from){

   output += to;

   input = input.substring(from.length);

  }else{

   output += input.substring(0,1);

   input = input.substring(1);

  }

 }

 return output + input;

}



function MM_openBrWindow(theURL,winName,features) { //v2.0

  window.open(theURL,winName,features);

}



function LimpaString(parNumero)

{

	// Deixa so os digitos no numero

	var l_js_Digitos = "0123456789";

	var l_js_Retorno = "";

	var l_js_Digito = "";

	for (var l_js_Contador=0; l_js_Contador < parNumero.length; l_js_Contador++) {

    l_js_Digito = parNumero.charAt(l_js_Contador);

    if (l_js_Digitos.indexOf(l_js_Digito) >= 0) {

			l_js_Retorno = l_js_Retorno + l_js_Digito

		}

  }

  return l_js_Retorno

}



function formatCurrency(num) {

	num = num.toString().replace(/\$|\,/g,'');

	if(isNaN(num))

	num = "0";

	sign = (num == (num = Math.abs(num)));

	num = Math.floor(num*100+0.50000000001);

	cents = num%100;

	num = Math.floor(num/100).toString();

	if(cents<10)

	cents = "0" + cents;

	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)

	num = num.substring(0,num.length-(4*i+3))+','+

	num.substring(num.length-(4*i+3));

	return (((sign)?'':'-') + num + '.' + cents);

}



function Soma(valor,checkbox)

{

	var form  = document.f;

	if (checkbox.checked == true)

	{

		total = Trocastring(form.total_geral.value, '.', '');

		total = Trocastring(total, ',', '.');

		total = eval(total) + eval(valor);

	}



	if (checkbox.checked == false)

	{	

		total = Trocastring(form.total_geral.value, '.', '');

		total = Trocastring(total, ',', '.');

		total = eval(total) - eval(valor);

	}

	

	total = formatCurrency(total);

	total = Trocastring(total, ',', '-');

	total = Trocastring(total, '.', ',');

	total = Trocastring(total, '-', '.');



	document.f.total_geral.value = total;

}



function isValidDate(dateStr) 

{

	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

	var matchArray = dateStr.match(datePat); 

	if (matchArray == null) 

	{

		alert("Data fora do formato correto DD/MM/AAAA")

		return false;

	}



	day = matchArray[1]; 

	month = matchArray[3];

	year = matchArray[4];



	if (month < 1 || month > 12) 

	{ 

		alert("Mês de ser entre 1 e 12.");

		return false;

	}

	if (day < 1 || day > 31) 

	{

		alert("Dia deve ser entre 1 e 31.");

		return false;

	}

	if ((month==4 || month==6 || month==9 || month==11) && day==31)

	{

		alert("Mês "+month+" não possue 31 dias!")

		return false

	}

	if (month == 2) 

	{ 

		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));

		if (day>29 || (day==29 && !isleap)) 

		{

			alert("Fevereiro " + year + " não tem " + day + " dias!");

			return false;

	   }

	}



	return true;

}



 function valida_cnpj(valor) {
				
				  
                 CNPJ = valor;

                 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){

                       return false;

               } 

               return true;

       }





function valida_cnpj2(valor)

{

			valor = valor.replace(/^\s*|\s*$/g,"");

	 		CNPJ = valor;

			erro = new String;

            if (CNPJ.length < 18) erro = "O Campo [CNPJ] deve ser preenchido corretamente, com todos seus caracteres (.),(/) e (-). 1"; 

            if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")){

            if (erro.length == 0) erro = "O Campo [CNPJ] deve ser preenchido corretamente, com todos seus caracteres (.),(/) e (-). 2";

            }

            //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 = "O Campo [CNPJ] deve ser preenchido corretamente, com todos seus caracteres (.),(/) e (-). 3"; 

            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 ="O Campo [CNPJ] deve ser preenchido corretamente, com todos seus caracteres (.),(/) e (-). 4";

               }

           if (erro.length > 0){

                       alert(erro);

                       return false;

               } 



}





function valida_cpf(valor)

{



		var l_js_Contador;

		parNumero = LimpaString(valor);

		var l_js_Corpo = parNumero.substr(0, 9);

		var l_js_DV = parNumero.substr(9, 2);

		var d1 = 0;

		for (l_js_Contador = 0; l_js_Contador < 9; l_js_Contador++) {

			d1 += l_js_Corpo.charAt(l_js_Contador)*(10 - l_js_Contador);

		}

		if (d1 == 0) {

			return false;

		}

		d1 = 11 - (d1 % 11);

		if (d1 > 9) 

			d1 = 0;

		if (l_js_DV.charAt(0) != d1) {

			return false;

		}

	

		d1 *= 2;

		for (l_js_Contador = 0; l_js_Contador < 9; l_js_Contador++)	{

			d1 += l_js_Corpo.charAt(l_js_Contador)*(11 - l_js_Contador);

		}

		d1 = 11 - (d1 % 11);

		if (d1 > 9) 

			d1 = 0;

		if (l_js_DV.charAt(1) != d1) 

		{

			return false;

		}



		return true;

}



function valida_telefone(strString)

   //  check for valid numeric strings	

   {

   var strValidChars = "() -0123456789";

   var strChar;

   var blnResult = true;



   if (strString.length == 0) return false;



   //  test strString consists of valid characters listed above

   for (i = 0; i < strString.length && blnResult == true; i++)

      {

      strChar = strString.charAt(i);

      if (strValidChars.indexOf(strChar) == -1)

         {

         blnResult = false;

         }

      }

   return blnResult;

   }



function valida_cep(strString)

   //  check for valid numeric strings	

   {

   var strValidChars = "-0123456789";

   var strChar;

   var blnResult = true;



   if (strString.length == 0) return false;

   if (strString.length != 8) return false;



   //  test strString consists of valid characters listed above

   for (i = 0; i < strString.length && blnResult == true; i++)

      {

      strChar = strString.charAt(i);

      if (strValidChars.indexOf(strChar) == -1)

         {

         blnResult = false;

         }

      }

   return blnResult;

   }



function IsNumeric(sText)

{

		alert (sText);

   var ValidChars = "0123456789.";

   var IsNumber=true;

   var Char;



	alert (sText.length);

   if (sText.length != 8) return false;



   for (i = 0; i < sText.length && IsNumber == true; i++) 

      { 

      Char = sText.charAt(i); 

      if (ValidChars.indexOf(Char) == -1) 

         {

         IsNumber = false;

         }

      }

   return IsNumber;

   

}





function valida_rg(strString)

   //  check for valid numeric strings	

   {

   var strValidChars = "-.0123456789QWERTYUIOPASDFGHJKLÇZXCVBNM qwertyuiopasdfghjklçzxcvbnm";

   var strChar;

   var blnResult = true;



   if (strString.length == 0) return false;

   if (strString.length < 11) return false;



   //  test strString consists of valid characters listed above

   for (i = 0; i < strString.length && blnResult == true; i++)

      {

      strChar = strString.charAt(i);

      if (strValidChars.indexOf(strChar) == -1)

         {

         blnResult = false;

         }

      }

   return blnResult;

   }







function valida_email(str)

{

	  	if  ( /[(#%&$,;^=:<>*+{}()!)?]/.test(str) )

		{

    	alert ("O Campo E-mail contem caracteres inválidos.");

		return false;

  		}

		

		var at="@"

		var dot="."

		var lat=str.indexOf(at)

		var lstr=str.length

		var ldot=str.indexOf(dot)

		var the_length=str.length;

		var last_char=str.charAt(the_length-1);



		

		if (last_char == "@"){

		   return false;

		}

	

		if (last_char == "."){

		   return false;

		}

		

		if (str.indexOf(at)==-1){

		   return false;

		}



		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){

		   return false;

		}



		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){

		   return false;

		}



		 if (str.indexOf(at,(lat+1))!=-1){

		   return false;

		 }



		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){

		   return false;

		 }



		 if (str.indexOf(dot,(lat+2))==-1){

		   return false;

		 }

		

		 if (str.indexOf(" ")!=-1){

		   return false;

		 }



 		 return true;

	

}





function formata(val)

{

   	var pass = val.value;

	var expr = /[0123456789]/;

		

	for(i=0; i<pass.length; i++){

		// charAt -> retorna o caractere posicionado no índice especificado

		var lchar = val.value.charAt(i);

		var nchar = val.value.charAt(i+1);

	

		if(i==0){

		   // search -> retorna um valor inteiro, indicando a posição do inicio da primeira

		   // ocorrência de expReg dentro de instStr. Se nenhuma ocorrencia for encontrada o método retornara -1

		   // instStr.search(expReg);

		   if ((lchar.search(expr) != 0) || (lchar>3)){

			  val.value = "";

		   }

		   

		}else if(i==1){

			   

			   if(lchar.search(expr) != 0){

				  // substring(indice1,indice2)

				  // indice1, indice2 -> será usado para delimitar a string

				  var tst1 = val.value.substring(0,(i));

				  val.value = tst1;				

 				  continue;			

			   }

			   

			   if ((nchar != '/') && (nchar != '')){

				 	var tst1 = val.value.substring(0, (i)+1);

				

					if(nchar.search(expr) != 0) 

						var tst2 = val.value.substring(i+2, pass.length);

					else

						var tst2 = val.value.substring(i+1, pass.length);

	

					val.value = tst1 + '/' + tst2;

			   }



		 }else if(i==4){

			

				if(lchar.search(expr) != 0){

					var tst1 = val.value.substring(0, (i));

					val.value = tst1;

					continue;			

				}

		

				if	((nchar != '/') && (nchar != '')){

					var tst1 = val.value.substring(0, (i)+1);



					if(nchar.search(expr) != 0) 

						var tst2 = val.value.substring(i+2, pass.length);

					else

						var tst2 = val.value.substring(i+1, pass.length);

	

					val.value = tst1 + '/' + tst2;

				}

   		  }

		

		  if(i>=6){

			  if(lchar.search(expr) != 0) {

					var tst1 = val.value.substring(0, (i));

					val.value = tst1;			

			  }

		  }

	 }

	

     if(pass.length>10)

		val.value = val.value.substring(0, 10);

	 	return true;

}



function Replace_virg(Campo)

{

var virg

virg = Campo.value;

virg = virg.replace(",",".");

Campo.value = virg;

}



function IsNumeric(sText)

{

   var ValidChars = "0123456789";

   var IsNumber=true;

   var Char;



 

   for (i = 0; i < sText.length && IsNumber == true; i++) 

      { 

      Char = sText.charAt(i); 

      if (ValidChars.indexOf(Char) == -1) 

         {

         IsNumber = false;

         }

      }

   return IsNumber;

}





function IsCurrency(sText)

{

   var ValidChars = "0123456789.";

   var IsNumber=true;

   var Char;



 

   for (i = 0; i < sText.length && IsNumber == true; i++) 

      { 

      Char = sText.charAt(i); 

      if (ValidChars.indexOf(Char) == -1) 

         {

         IsNumber = false;

         }

      }

   return IsNumber;

}



function formatar_geral(src, mask) 

{

	var i = src.value.length;

	var saida = "#";

	var texto = mask.substring(i);



	if (texto.substring(0,1) != saida) 

	{

		src.value += texto.substring(0,1);

  	}

}



function formatoMoeda(fld, milSep, decSep, 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);

  if (strCheck.indexOf(key) == -1) return false;

  len = fld.value.length;

  for(i = 0; i < len; i++)

  if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;

  aux = '';

  for(; i < len; i++)

  if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);

  aux += key;

  len = aux.length;

  if (len == 0) fld.value = '';

  if (len == 1) fld.value = '0'+ decSep + '0' + aux;

  if (len == 2) fld.value = '0'+ decSep + aux;

  if (len > 2)

	{

   aux2 = '';

	   for (j = 0, i = len - 3; i >= 0; i--) 

		 {

		   if (j == 3)

			 {

			 	aux2 += milSep;

				j = 0;

		   }

			 aux2 += aux.charAt(i);

			 j++;

		 }

		 fld.value = '';

		 len2 = aux2.length;

		 for (i = len2 - 1; i >= 0; i--)

		 fld.value += aux2.charAt(i);

		 fld.value += decSep + aux.substr(len - 2, len);

  }

  return false;

}



function LimpaPonto(parNumero)

{

	// Deixa so os digitos no numero

	var l_js_Digitos = "0123456789,";

	var l_js_Retorno = "";

	var l_js_Digito = "";

	for (var l_js_Contador=0; l_js_Contador < parNumero.length; l_js_Contador++) {

    l_js_Digito = parNumero.charAt(l_js_Contador);

    if (l_js_Digitos.indexOf(l_js_Digito) >= 0) {

			l_js_Retorno = l_js_Retorno + l_js_Digito

		}

  }

  return l_js_Retorno

}



function Grava_Valor(val)

{

var virg;

virg = LimpaPonto(val);

virg = virg.replace(",",".");

return virg;

}



function MM_jumpMenu_delete(targ,selObj,restore){ //v3.0



	doyou = confirm("Tem certeza que deseja apagar ? Todas as informações serão apagadas. (OK = Sim   Cancel = Não)"); //Your question.

	if (doyou == true){

		eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");

		if (restore) selObj.selectedIndex=0;

	}else{

		return false;

	}

}



function MM_jumpMenuBlank(targ,selObj,restore){ //v3.0



	end = selObj.options[selObj.selectedIndex].value;

 	window.open(end,'windw','location=yes,width=710,height=700,scrollbars=yes,menubar=yes,resizable=yes,top=20,left=50');

	if (restore) selObj.selectedIndex=0;

}