/*
Funcoes:

fPopData(campo)
		Abre popup do calendário
		
fAbrePopup(endereco)
		Abre popup
		
destacaLinha
		Coloca em destaque a linha da tabela na cor cinza

normalizaLinha
		Devolve a cor da tabela para branco
		
ConsisteCampoBranco(valor)
		Consiste se foi preenchido o campo
		
LimpaEspacoBranco(valor)
		Limpa os espaços em branco na string tanto inicial quanto final

LimpaEspacoBrancoAll(valor)
		Limpa os espaços em branco, caracter de return e quebar de linha
		
ConsisteNumero(valor)
      Recebe um valor e verifica se é numero ou nao

ConsisteString(valor)
      Recebe um valor e verifica se é string ou nao

ConsisteTelefone(valor)
      Recebe uma string no formato de telefone (XX [X]XXX-XXXX) e valida

ConsisteDecimal(valor)
			Recebe um valor e verifica se é um decimal ou não
			
ConsisteData(valor)
			Recebe uma string no format dd/mm/yyyy e verifica se é uma data válida ou não
		
ConsisteEmail(valor)
      Recebe uma string e valida se é email ou não

ConsisteCPFCNPJ(valor)
      Recebe uma string e valida se é CPF ou CNPJ

ConsisteCEP(valor)
      Recebe um valor com 8 digitos e valida

Arredonda(valor)
      Arredonda um valor no formato #####.##### para baixo e 2 casas

RetornaData()
			Retorna a data corrente no formato dd/mm/yyyy
			
SomaData(Campo,Soma)
			Retorna a data passada no formato dd/mm/yyyy acrescentado da quantidade de dias a serem somados			

SubtraiData(Campo,Valor)
			Retorna a data passada no formato dd/mm/yyyy diminuindo a quantidade de dias a serem subtraidos

ComparaData(DataIni,DataFin)
			Retorna true se a data inicial for menor que a data final, caso contrario, retorna false

ConsisteHora(Valor)
			Retorna true se a hora for válida

FormataHora(Valor, teclapress)
			Retorna a hora formatada hh:mm

FormataData(Valor, teclapress)
	Retorna a data formatada dd/MM/yyyy

FormataPeriodo(Valor, teclapress)
	Retorna o periodo formatado MM/yyyy

ComparaHora(HoraIni,HoraFim)
			Retorna true se a hora inicial for menor que a hora final

ConsisteValorDigitado(Valor)
			Verifica se exite algum dos carecters não permitidos no campo ".,-_/ "

FormataTelaBanco(Valor)
			Formata valor para ser enviado ao banco de dados, troca a virgula por ponto

FormataBancoTela(Balor)
			Formata valor para ser enviado a tela, troca ponto por virgula
			
FormataValor(tam, fld,milSep, decSep, e)
			Formata o valor digitado para decimal

TirarZerosEsquerda(STR)

FormataVlr(OBJ,tammax,teclapres)
			Formata o valor digitado, colocando , e .

DateFormat(vDateName, vDateValue, e, dateCheck, dateType)
			Formata a data digitada, coloca as barras automaticamente.

FormataStr(str, tam)
			Limita o numero de caracteres digitados (Usado em campos textarea)

fMarcaTodos(nome_cb,checado)
            Marca todos os checkboxes se checado = true

fValidaCb(nome_cb)
            Verifica se existe alguma opção de checkbox marcada

fEnviarPlanilha(nome_cb)
            Abre uma tela que gera uma planilha excel com os dados marcados e envia por e-mail
*/

// Check browser version
var isNav4 = false, isNav5 = false, isIE4 = false
var strSeperator = "/"; 
var vDateType = 3; 
var vYearType = 4; 
var vYearLength = 2; 
var err = 0; 
if(navigator.appName == "Netscape") {
	if (navigator.appVersion < "5") {
		isNav4 = true;
		isNav5 = false;
	}
	else
		if (navigator.appVersion > "4") {
			isNav4 = false;
			isNav5 = true;
   	}
}
else {
	isIE4 = true;
}

function DateFormat(vDateName, vDateValue, e, dateCheck, dateType) {
vDateType = 3;
if (vDateValue == "~") {
	alert("AppVersion = "+navigator.appVersion+" \nNav. 4 Version = "+isNav4+" \nNav. 5 Version = "+isNav5+" \nIE Version = "+isIE4+" \nYear Type = "+vYearType+" \nDate Type = "+vDateType+" \nSeparator = "+strSeperator);
	vDateName.value = "";
	vDateName.focus();
	return true;
}
var whichCode = (window.Event) ? e.which : e.keyCode;
if (vDateValue.length > 8 && isNav4) {
	if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
		return true;
}
var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
if (alphaCheck.indexOf(vDateValue) >= 1) {
	if (isNav4) {
		vDateName.value = "";
		vDateName.focus();
		vDateName.select();
		return false;
	}
	else {
		vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
		return false;
  }
}
if (whichCode == 8)
	return false;
else {
	var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
	if (strCheck.indexOf(whichCode) != -1) {
		if (isNav4) {
			if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 7 && dateCheck)) && (vDateValue.length >=1)) {
				alert("Data Inválida\nFavor entrar com uma data válida");
				vDateName.value = "";
				vDateName.focus();
				vDateName.select();
				return false;
			}
			if (vDateValue.length == 6 && dateCheck) {
				var mDay = vDateName.value.substr(2,2);
				var mMonth = vDateName.value.substr(0,2);
				var mYear = vDateName.value.substr(4,4)
				if (mYear.length == 2 && vYearType == 4) {
					var mToday = new Date();
					var checkYear = mToday.getFullYear() + 30; 
					var mCheckYear = '20' + mYear;
					if (mCheckYear >= checkYear)
						mYear = '19' + mYear;
					else
						mYear = '20' + mYear;
				}
				var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
				if (!dateValid(vDateValueCheck)) {
					alert("Data Inválida\nFavor entrar com uma data válida");
					vDateName.value = "";
					vDateName.focus();
					vDateName.select();
					return false;
				}
				return true;
			}
			else {
				if (vDateValue.length >= 8  && dateCheck) {
					if (vDateType == 1){
						var mDay = vDateName.value.substr(2,2);
						var mMonth = vDateName.value.substr(0,2);
						var mYear = vDateName.value.substr(4,4)
						vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
					}
					if (vDateType == 2){
						var mYear = vDateName.value.substr(0,4)
						var mMonth = vDateName.value.substr(4,2);
						var mDay = vDateName.value.substr(6,2);
						vDateName.value = mYear+strSeperator+mMonth+strSeperator+mDay;
					}
					if (vDateType == 3){
						var mMonth = vDateName.value.substr(2,2);
						var mDay = vDateName.value.substr(0,2);
						var mYear = vDateName.value.substr(4,4)
						vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
					}
					var vDateTypeTemp = vDateType;
					vDateType = 1;
					var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
					if (!dateValid(vDateValueCheck)) {
						alert("Data Inválida\nFavor entrar com uma data válida");
						vDateType = vDateTypeTemp;
						vDateName.value = "";
						vDateName.focus();
						vDateName.select();
						return false;
					}
					vDateType = vDateTypeTemp;
					return true;
				}
				else {
				if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
					alert("Data Inválida\nFavor entrar com uma data válida");
					vDateName.value = "";
					vDateName.focus();
					vDateName.select();
					return false;
        }
			}
		}
	}
	else {
		if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
			alert("Data Inválida\nFavor entrar com uma data válida");
			vDateName.value = "";
			vDateName.focus();
			return true;
		}
		if (vDateValue.length >= 8 && dateCheck) {
			if (vDateType == 1){
				var mMonth = vDateName.value.substr(0,2);
				var mDay = vDateName.value.substr(3,2);
				var mYear = vDateName.value.substr(6,4)
			}
			if (vDateType == 2){
				var mYear = vDateName.value.substr(0,4)
				var mMonth = vDateName.value.substr(5,2);
				var mDay = vDateName.value.substr(8,2);
			}
			if (vDateType == 3){
				var mDay = vDateName.value.substr(0,2);
				var mMonth = vDateName.value.substr(3,2);
				var mYear = vDateName.value.substr(6,4)
			}
			if (vYearLength == 4) {
				if (mYear.length < 4) {
					alert("Data Inválida\nFavor entrar com uma data válida");
					vDateName.value = "";
					vDateName.focus();
					return true;
   			}
			}
			var vDateTypeTemp = vDateType;
			vDateType = 1;
			var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
			if (mYear.length == 2 && vYearType == 4 && dateCheck) {
				var mToday = new Date();
				var checkYear = mToday.getFullYear() + 30; 
				var mCheckYear = '20' + mYear;
				if (mCheckYear >= checkYear)
					mYear = '19' + mYear;
				else
					mYear = '20' + mYear;
				vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
				if (vDateTypeTemp == 1) // mm/dd/yyyy
					vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
				if (vDateTypeTemp == 3) // dd/mm/yyyy
					vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
			} 
			if (!dateValid(vDateValueCheck)) {
				alert("Data Inválida\nFavor entrar com uma data válida");
				vDateType = vDateTypeTemp;
				vDateName.value = "";
				vDateName.focus();
				return true;
			}
			vDateType = vDateTypeTemp;
			return true;
		}
		else {
			if (vDateType == 1) {
				if (vDateValue.length == 2) {
					vDateName.value = vDateValue+strSeperator;
				}
				if (vDateValue.length == 5) {
					vDateName.value = vDateValue+strSeperator;
   			}
			}
			if (vDateType == 2) {
				if (vDateValue.length == 4) {
					vDateName.value = vDateValue+strSeperator;
				}
				if (vDateValue.length == 7) {
					vDateName.value = vDateValue+strSeperator;
   			}
			} 
			if (vDateType == 3) {
				if (vDateValue.length == 2) {
					vDateName.value = vDateValue+strSeperator;
				}
				if (vDateValue.length == 5) {
					vDateName.value = vDateValue+strSeperator;
   			}
			}
			return true;
		}
	}
	if (vDateValue.length == 10&& dateCheck) {
		if (!dateValid(vDateName)) {
			alert("Data Inválida\nFavor entrar com uma data válida");
			vDateName.focus();
			vDateName.select();
   	}
	}
	return false;
}
else {
	if (isNav4) {
		vDateName.value = "";
		vDateName.focus();
		vDateName.select();
		return false;
	}
	else{
		vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
		return false;
	}
}
}
}

function dateValid(objName) {
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var booFound = false;
var datefield = objName;
var strSeparatorArray = new Array("-"," ","/",".");
var intElementNr;
// var err = 0;
var strMonthArray = new Array(12);
strMonthArray[0] = "Jan";
strMonthArray[1] = "Feb";
strMonthArray[2] = "Mar";
strMonthArray[3] = "Apr";
strMonthArray[4] = "May";
strMonthArray[5] = "Jun";
strMonthArray[6] = "Jul";
strMonthArray[7] = "Aug";
strMonthArray[8] = "Sep";
strMonthArray[9] = "Oct";
strMonthArray[10] = "Nov";
strMonthArray[11] = "Dec";
//strDate = datefield.value;
strDate = objName;
if (strDate.length < 1) {
return true;
}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
strDateArray = strDate.split(strSeparatorArray[intElementNr]);
if (strDateArray.length != 3) {
err = 1;
return false;
}
else {
strDay = strDateArray[0];
strMonth = strDateArray[1];
strYear = strDateArray[2];
}
booFound = true;
   }
}
if (booFound == false) {
if (strDate.length>5) {
strDay = strDate.substr(0, 2);
strMonth = strDate.substr(2, 2);
strYear = strDate.substr(4);
   }
}
//Adjustment for short years entered
if (strYear.length == 2) {
strYear = '20' + strYear;
}
strTemp = strDay;
strDay = strMonth;
strMonth = strTemp;
intday = parseInt(strDay, 10);
if (isNaN(intday)) {
err = 2;
return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
for (i = 0;i<12;i++) {
if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
intMonth = i+1;
strMonth = strMonthArray[i];
i = 12;
   }
}
if (isNaN(intMonth)) {
err = 3;
return false;
   }
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear)) {
err = 4;
return false;
}
if (intMonth>12 || intMonth<1) {
err = 5;
return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
err = 6;
return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
err = 7;
return false;
}
if (intMonth == 2) {
if (intday < 1) {
err = 8;
return false;
}
if (LeapYear(intYear) == true) {
if (intday > 29) {
err = 9;
return false;
   }
}
else {
if (intday > 28) {
err = 10;
return false;
      }
   }
}
return true;
}

function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else {
if ((intYear % 4) == 0) { return true; }
}
return false;
}
//  End -->


//muda o src da imagem
function moveover(p_Over,p_Name)
{
document.images[p_Name].src = p_Over;
}

function moveback(p_Out,p_Name)
{
document.images[p_Name].src = p_Out;
}

function trocaVirgulaPonto(valor)
{
  var sStr=valor;
//  sStr = sStr.replace(".","")
  while(sStr.indexOf(".") != -1)
	  sStr = sStr.replace(".","")
  sStr = sStr.replace(",",".")
  return sStr;
}

function trocaPontoVirgula(valor)
{
	var sStr=valor;
  sStr = sStr.replace(".",",")
  return sStr;
}


function TirarZerosEsquerda(STR)
{
  var sAux='';
  var i=0;
  STR=new String(STR);
  while (i < STR.length )
  {
    if ((STR.charAt(i)!='.') && (STR.charAt(i)!=','))
    {
	  	sAux += STR.charAt(i);
    }
		i++
  }
  STR = new String(sAux);
  sAux = '';
  i=0;
  while (i < STR.length )
  {
    if (STR.charAt(i) != '0')
    {
      sAux = STR.substring(i,STR.length)
	  	i = STR.length;
		}
    i++;
  }
  return  sAux;
}

function FormataVlr(OBJ,tammax,teclapres){
  var decimal,inteiro;
  var i,count;
  STR = new String(OBJ.value);

  inteiro='';
  if (isIE4) {

	if (OBJ.maxLength > STR.length){
	  STR = TirarZerosEsquerda(STR); //ESTA FUNCAO TIRA TAMBEM PONTO E VIRGULA
	  if ( ((event.keyCode > 47) && (event.keyCode < 59)) || ((event.keyCode > 95) && (event.keyCode < 106))   ){

			if (STR.length == 0){
			  inteiro  = '0';
			  decimal = '0' + STR;
			}
			else {
			  if (STR.length == 1){
			    inteiro  = '0';
			    decimal = STR;
			  }
			  else{
			    decimal = STR.substring(STR.length-1,STR.length);
			    i=2;
			    count=0;
			    while (i<=STR.length){
			 		if (count==3) {
			  	  inteiro = '.' + inteiro;
			  	  count = 0;
			  	}
			      inteiro = STR.charAt(STR.length-i) + inteiro;
			  	count++;
			  	i++;
			    }
			  }
			}

	  }
	  else{
	    if (event.keyCode == 8){

	      if (STR.length == 0){
			  inteiro  = '0';
			  decimal = '000';
			}
			else {
			  if (STR.length == 1){
			    inteiro  = '0';
			    decimal = '00' + STR;
			  }
			  else {
			    if (STR.length == 2){
		          inteiro  = '0';
			      decimal = '0' + STR;
			     }
		         else{
	 			   decimal = STR.substring(STR.length-3,STR.length);
				   i=4;
				   count=0;
				   while (i<=STR.length){
			 		 if (count==3) {
					   inteiro = '.' + inteiro;
					   count = 0;
					  }
				      inteiro = STR.charAt(STR.length-i) + inteiro;
					  count++;
					  i++;
				    }
			     }
			  }
	      }
	    }
	    else {

	      if (STR.length == 1){
		 	  inteiro  = '0';
		      decimal = '0' + STR;
			}
			else {
			  if (STR.length == 2){
				  inteiro  = '0';
				  decimal = STR;
				}
				else{
				  decimal = STR.substring(STR.length-2,STR.length);
				  i=3;
				  count=0;
				  while (i<=STR.length){
			 		if (count==3) {
					  inteiro = '.' + inteiro;
					  count = 0;
					}
				    inteiro = STR.charAt(STR.length-i) + inteiro;
					count++;
					i++;
				  }
				}
			}
	    }
	  }

	  if (inteiro == '') {
	    inteiro = '0';
	  }

	  if (decimal == '') {
	    decimal = '00';
	  }
	  OBJ.value = inteiro+','+decimal;
	}
  }
  else
  {
	var tecla = teclapres.keyCode;
	valorSemFormato = OBJ.value;
	valorSemFormato = valorSemFormato.replace( ",", "" );
	valorSemFormato = valorSemFormato.replace( ".", "" );
	valorSemFormato = valorSemFormato.replace( ".", "" );
	valorSemFormato = valorSemFormato.replace( ".", "" );
	valorSemFormato = valorSemFormato.replace( ".", "" );
	tamanho = valorSemFormato.length;

	if (tecla == 46) {
	     OBJ.value = OBJ.value;

	}if (tamanho < tammax && tecla != 8) {
	    tamanho = valorSemFormato.length + 1;

	}if (tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ) {
	     if (tecla == 8) {
	         tamanho = tamanho - 1;
	     }

	     if (tamanho <= 2) {
	 		 OBJ.value = valorSemFormato;

	 	 }else if ((tamanho > 2) && (tamanho <= 5)) {
	 		 OBJ.value = valorSemFormato.substr(0, tamanho - 2) + ',' +
	 		               valorSemFormato.substr(tamanho - 2, tamanho);

	 	 }else if ((tamanho >= 6) && (tamanho <= 8)) {
	 	 	 OBJ.value = valorSemFormato.substr(0, tamanho - 5) + '.' +
	 	 	               valorSemFormato.substr(tamanho - 5, 3) + ',' +
	 		               valorSemFormato.substr(tamanho - 2, tamanho);

	 	 }else if ((tamanho >= 9) && (tamanho <= 11)) {
	 		 OBJ.value = valorSemFormato.substr(0, tamanho - 8) + '.' +
	 		               valorSemFormato.substr(tamanho - 8, 3) + '.' +
	 		               valorSemFormato.substr(tamanho - 5, 3) + ',' +
	 		               valorSemFormato.substr(tamanho - 2, tamanho);

	 	 }else if ((tamanho >= 12) && (tamanho <= 14)) {
	 	 	 OBJ.value = valorSemFormato.substr(0, tamanho - 11) + '.' +
	 		               valorSemFormato.substr(tamanho - 11, 3) + '.' +
	 		               valorSemFormato.substr(tamanho - 8, 3)  + '.' +
	 		               valorSemFormato.substr(tamanho - 5, 3)  + ',' +
	 		               valorSemFormato.substr(tamanho - 2, tamanho);

	 	 }else if ((tamanho >= 15) && (tamanho <= 17)) {
	 	 	 OBJ.value = valorSemFormato.substr(0, tamanho - 14) + '.' +
	 		               valorSemFormato.substr(tamanho - 14, 3) + '.' +
	 		               valorSemFormato.substr(tamanho - 11, 3) + '.' +
	 		               valorSemFormato.substr(tamanho - 8, 3)  + '.' +
	 		               valorSemFormato.substr(tamanho - 5, 3)  + ',' +
	 		               valorSemFormato.substr(tamanho - 2, tamanho);
	    }
	}
  }
}


function FormataValor(tam, 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;  // Enter
key = String.fromCharCode(whichCode);  // Get key value from key code
if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
//len = fld.value.length;
len = tam;
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 destacaLinha(){
	var tr,td;
	tr = event.srcElement.parentElement;
	for(i=0;i<tr.children.length;i++){
		td = tr.children[i];
		td.style.backgroundColor='#C0C0C0';
		td.style.cursor='hand';
		td.title='Clique aqui para visualizar este item';
	}
}

function normalizaLinha(){
	var tr,td;
	tr = event.srcElement.parentElement;
	for(i=0;i<tr.children.length;i++){
		td = tr.children[i];
		td.style.backgroundColor='white';
	}
}

function ConsisteCampoBranco(str) {
	str = LimpaEspacoBrancoAll(str);
  if (str==null || str=="")
    return true;
  return false;
}

function LimpaEspacoBranco(str) {
  if (str!=null) {
    while (str.charAt(str.length - 1)==" ")
      str = str.substring(0, str.length - 1);
    while (str.charAt(0)==" ")
      str = str.substring(1, str.length);
  }
  return str;
}

function LimpaEspacoBrancoAll(str) {
  if (str!=null) {
    while (str.length > 0 &&
      "\n\r\t ".indexOf(str.charAt(str.length - 1)) != -1)
      str = str.substring(0, str.length - 1);
    while (str.length > 0 &&
      "\n\r\t ".indexOf(str.charAt(0)) != -1)
      str = str.substring(1, str.length);
  }
  return str;
}

function ConsisteNumero(str) {
  var pattern = "0123456789"
  var i = 0;
  do {
    var pos = 0;
    for (var j=0; j<pattern.length; j++)
      if (str.charAt(i)==pattern.charAt(j)) {
        pos = 1;
        break;
      }
    i++;
  } while (pos==1 && i<str.length)  
  if (pos==0) 
    return true;
  return false;
} 

function ConsisteString(str) {
  var pattern = "ABCDEFGHIJKLMNOPQRSTUYXWZabcdefghijklmnopqrstuyxwz"
  var i = 0;
  do {
    var pos = 0;
    for (var j=0; j<pattern.length; j++)
      if (str.charAt(i)==pattern.charAt(j)) {
        pos = 1;
        break;
      }
    i++;
  } while (pos==1 && i<str.length)  
  if (pos==0) 
    return true;
  return false;
} 

function ConsisteTelefone(str) {
  var pattern = "0123456789( )-"
  var i = 0;
  do {
    var pos = 0;
    for (var j=0; j<pattern.length; j++)
      if (str.charAt(i)==pattern.charAt(j)) {
				pos = 1;
      	break;
      }
    	i++;
  } 	
  while (pos==1 && i<str.length)  
  if (pos==0) 
    return true;
  return false;
}

function ConsisteCep(str) {
  var pattern = "0123456789-"
  var i = 0;
  do {
    var pos = 0;
    for (var j=0; j<pattern.length; j++)
      if (str.charAt(i)==pattern.charAt(j)) {
				pos = 1;
      	break;
      }
    	i++;
  } 	
  while (pos==1 && i<str.length)  
  if (pos==0) 
    return true;
  return false;
}

function ConsisteDecimal(str) {
  var pattern = "0123456789,.-"
  var i = 0;
  do {
    var pos = 0;
    for (var j=0; j<pattern.length; j++)
      if (str.charAt(i)==pattern.charAt(j)) {
				pos = 1;
      	break;
      }
    	i++;
  } 	
  while (pos==1 && i<str.length)  
  if (pos==0) 
    return false;
  return true;
}

function ConsisteData(str) {

  if (str.length!=10 || str.charAt(2)!="/" || str.charAt(5)!="/" )
    return false;
  if (ConsisteNumero(str.substring(0,2) + str.substring(3,5) + str.substring(6,10))==true)
    return false;


  var d = str.substring(0,2);
  var m = str.substring(3,5);
  var y = str.substring(6,10);
  
  if (d==0 || m==0 || y==0)
    return false;

  if (m>12) return false;
  if (m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12) 
    var dmax = 31;
  else
    if (m==4 || m==6 || m==9 || m==11) dmax = 30;
    else 
      if ((y%400==0) || (y%4==0 && y%100!=0)) dmax = 29;
      else dmax = 28;
  if (d>dmax) return false;
  if (y<1900) return false;
  return true;
}

function validateEmail(email)
        {
            if (typeof(email) != "string")
                return false;
            else if (!email.match(/^[A-Za-z0-9]+([_.-][A-Za-z0-9]+)*@[A-Za-z0-9]+([_.-][A-Za-z0-9]+)*\.[A-Za-z0-9]{2,4}$/))
                return false;
            return true;
        }

function ConsisteEmail(valor) {
	return  validateEmail(valor)
    var reg = /\w{1,}[@]\w{1,}[.]\w{1,}/
    return reg.test(valor);
}



function Arredonda(valor) {
    var s = new String(valor);
    var a,b,c,result;
    if (s.indexOf('.') >= 0)
	{
        a = parseInt(s.substring(0,s.indexOf('.')));
	}
    else
        return s;
    b = s.substr(s.indexOf('.') + 1,2);
    c = parseInt(s.substr(s.indexOf('.') + 3));
    if (!isNaN(b) && !isNaN(c)) {
        if ((parseInt(b) + 1) >= 100) {
            a = a + 1;
            b = 0;
            c = 0;
        } else {
            b = b + 1;
            c = 0;
        }
    }
    result = a;
    if (b != 0) result = result + '.' + b;
    return result;
}

function RetornaData(){
	dt = new Date();
	dd = dt.getDate();
	mm = dt.getMonth() + 1;
	yy = dt.getYear();
	
	if (dd < 10) dd = '0' + dd;
	if (mm < 10) mm = '0' + mm;

	dtFinal = dd + '/' + mm + '/' + yy
	
	return  dtFinal;
}

function SomaData(Campo, Soma){
  var dia = '', mes = '', ano = '';
	var dtInicial = '';
	var dtFinal = '';
	var str = Campo;
	var soma = Soma;
  i = 0;
  while (i < str.length && str.charAt(i) != '/') dia = dia + str.charAt(i++);
  if (dia.length == 1) dia = '0' + dia;
  i++;
  while (i < str.length && str.charAt(i) != '/') mes = mes+str.charAt(i++);
	if (mes.length == 1) mes = '0' + mes;
	ano = str.substring(i+1,str.length);
	dtInicial = mes + '/' + dia + '/' + ano;
	dt = new Date(dtInicial);
	dt.setDate(dt.getDate()+parseInt(soma));
	dd = dt.getDate();
	mm = dt.getMonth() + 1;
	yy = dt.getYear();
	dtFinal = dd + '/' + mm + '/' + yy
  return  dtFinal;
}

function SubtraiData(Campo, Soma){
  var dia = '', mes = '', ano = '';
	var dtInicial = '';
	var dtFinal = '';
	var str = Campo;
	var soma = Soma;

  i = 0;
  while (i < str.length && str.charAt(i) != '/') dia = dia + str.charAt(i++);
  if (dia.length == 1) dia = '0' + dia;
  i++;
  while (i < str.length && str.charAt(i) != '/') mes = mes+str.charAt(i++);
	if (mes.length == 1) mes = '0' + mes;
	ano = str.substring(i+1,str.length);
	dtInicial = mes + '/' + dia + '/' + ano;

	dt = new Date(dtInicial);
	dt.setDate(dt.getDate()-parseInt(soma));
	dd = dt.getDate();
	mm = dt.getMonth() + 1;
	yy = dt.getYear();
	
	if (dd < 10) dd = '0' + dd;
	if (mm < 10) mm = '0' + mm;

	dtFinal = dd + '/' + mm + '/' + yy
	
	return  dtFinal;
}

function ComparaData(sDataIni,sDataFim){
	var DataIni = '';
  var DataFim = '';
  DataIni = sDataIni.substring(6,10)+sDataIni.substring(3,5)+sDataIni.substring(0,2);
  DataFim = sDataFim.substring(6,10)+sDataFim.substring(3,5)+sDataFim.substring(0,2);
  if (parseInt(DataIni)>parseInt(DataFim)){
  	return false;
  }
  else{  
    return true;
  }
}

function ConsisteHora(campo){
	tam = campo.value.length;
	HoraInvalida = false;
	if (tam < 5 ){
		HoraInvalida = true;
	  alert('Hora inválida, digite no formato hh:mm.');	
  }
	else{ 
		if  ( (parseInt(campo.value.substring(0,2)) > 23) || (parseInt(campo.value.substring(3,5))>59) ){
			HoraInvalida = true;
	    alert('As horas devem ser digitadas entre 00:00 e 23:59.');	
     }
  }

	if (HoraInvalida){
		campo.value = '';
	  campo.focus();
	  return false;
	}
	else{
	  return true;
  }
}

function FormataHora(Campo, teclapres){
	var tecla = teclapres.keyCode;
	var vr = new String(Campo.value);
	vr = vr.replace("", "");
	tam = vr.length + 1;
	if (tecla != 9 && tecla != 8){
		if (tam > 2 && tam < 5)
			Campo.value = vr.substr(0, 2) + ':' + vr.substr(2, tam);
	}
}


function FormataData(Campo, teclapres)
{
	var tecla = teclapres.keyCode;
	var vr = new String(Campo.value);
	vr = vr.replace("/", "");
	vr = vr.replace("/", "");
	tam = vr.length + 1;
		
	if (tecla != 9 && tecla != 8) 
	{
		if (tam > 2 && tam < 5)
			Campo.value = vr.substr(0, 2) + '/' + vr.substr(2, tam);
		if (tam >= 5 && tam <=10)
			Campo.value = vr.substr(0,2) + '/' + vr.substr(2,2) + '/' + vr.substr(4,4);
	
	}
}

function FormataPeriodo(Campo, teclapres)
{
	var tecla = teclapres.keyCode;
	var vr = new String(Campo.value);
	vr = vr.replace("/", "");
	tam = vr.length + 1;
		
	if (tecla != 9 && tecla != 8) 
	{
		if (tam > 2 && tam < 5)
			Campo.value = vr.substr(0, 2) + '/' + vr.substr(2, tam);
		if (tam >= 5 && tam <=10)
			Campo.value = vr.substr(0,2) + '/'  + vr.substr(2,4);
	
	}
}


function ComparaHora(sHoraIni,sHoraFim){
	var HoraIni = '';
  var HoraFim = '';
	HoraIni = sHoraIni.substring(0,2)+sHoraIni.substring(3,5);
  HoraFim = sHoraFim.substring(0,2)+sHoraFim.substring(3,5);
  if (sHoraIni.substring(0,2) == sHoraFim.substring(0,2)){
    if (parseInt(sHoraIni.substring(3,5))>=parseInt(sHoraFim.substring(3,5))){
    	return false;
    }
    else{  
      return true;
    }
  }
  else{
    if ((eval(HoraIni)-(HoraFim))>0){
    	return false;
    }
    else{  
      return true;
    }
  }
}

function ConsisteValorDigitado(str) {
  var pattern = ".,-_/"
  var i = 0;
  do {
    var pos = 0;
    for (var j=0; j<pattern.length; j++)
      if (str.charAt(i)==pattern.charAt(j)) {
        pos = 1;
        break;
      }
    i++;
  } while (pos==1 && i<str.length)  
  if (pos==0) 
    return false;
  return true;
} 

function FormataTelaBanco(valor)
{
	out = "."; // replace this
	add = ""; // with this
	temp = "" + valor; // temporary holder
	while (temp.indexOf(out)>-1) {
		pos= temp.indexOf(out);
		temp = "" + (temp.substring(0, pos) + add + 
		temp.substring((pos + out.length), temp.length));
	}

	out = ","; // replace this
	add = "."; // with this
	valor = "" + temp; // temporary holder
	while (valor.indexOf(out)>-1) {
		pos= valor.indexOf(out);
		valor = "" + (valor.substring(0, pos) + add + 
		valor.substring((pos + out.length), valor.length));
	}
  return valor;
}

function FormataBancoTela(valor)
{
	out = "."; // replace this
	add = ","; // with this
	temp = "" + valor; // temporary holder
	while (temp.indexOf(out)>-1) {
		pos= temp.indexOf(out);
		temp = "" + (temp.substring(0, pos) + add + 
		temp.substring((pos + out.length), temp.length));
	}
	return temp;
}

function ConsiteCGCCPF(p_NomeCampo){
 BASE = p_NomeCampo.value;
 if (BASE.length < 11){
	p_NomeCampo.value="";
	p_NomeCampo.focus();
	return false;
 }
 		BASE = BASE.replace( ".", "" );
		BASE = BASE.replace( ".", "" );
		BASE = BASE.replace( "-", "" );
		BASE = BASE.replace( "/", "" );
        var start_format = " +-0123456789";
        var number_format = "  0123456789";
        var check_char;
        var decimal = false;
        var trailing_blank = false;
        var digits = false;
		var verify = false;

        check_char = start_format.indexOf(BASE.charAt(0))
        if (check_char == 1)
            	decimal = true;
        else if (check_char < 1)
                return false;
        for (var i = 1; i < BASE.length; i++)
        {
                check_char = number_format.indexOf(BASE.charAt(i))
                if (check_char < 0)
                        return false;
                else if (check_char == 1)
                {
                        if (decimal)            // Second decimal.
                                return false;
                        else
                                decimal = true;
                }
                else if (check_char == 0)
                {
                        if (decimal || digits)  
                                trailing_blank = true;

                }
                else if (trailing_blank)
                        return false;
                else
                        digits = true;
						//return false;
        }       
    verify = true;
if (verify) {
	if (BASE.length > 11) {
	
        var CGC = BASE.substring(0,12);
		var DAC = BASE.substring(12,14);
		digito = "0";
		var DF1 = 0;
		var DF2 = 0;
		var DF3 = 0;
		var DF4 = 0;
		var DF5 = 0;
		var DF6 = 0;
		var resto1 = 0;
		var resto2 = 0;
		var DIG1 = 0;
		var DIG2 = 0;
		var n1=  BASE.substring(0,1);
		var n2=  BASE.substring(1,2);
		var n3=  BASE.substring(2,3);
		var n4=  BASE.substring(3,4);
		var n5=  BASE.substring(4,5);
		var n6=  BASE.substring(5,6);
		var n7=  BASE.substring(6,7);
		var n8=  BASE.substring(7,8);
		var n9=  BASE.substring(8,9);
		var n10= BASE.substring(9,10);
		var n11= BASE.substring(10,11);
		var n12= BASE.substring(11,12);
		DF1 = eval((5 * n1) + (4 * n2) + (3 * n3) + (2 * n4) + (9 * n5) + (8 * n6) + (7 * n7) + (6 * n8) + (5 * n9) + (4 * n10) + (3 * n11) + (2 * n12));
		DF2 = eval(DF1 / 11);
		DF3 = eval(parseInt(DF2) * 11);
		resto1 = eval(DF1 - DF3);
		if ((resto1 == 0) || (resto1 == 1))	{
				DIG1 = 0}
		else {
		        DIG1 = eval(11 - resto1)};
		DF4 = eval((6 * n1) + (5 * n2) + (4 * n3) + (3 * n4) + (2 * n5) + (9 * n6) + (8 * n7) + (7 * n8) + (6 * n9) + (5 * n10) + (4 * n11) + (3 * n12) + (2 * DIG1));
		DF5 = eval(DF4 / 11);
		DF6 = eval(parseInt(DF5) * 11);
		resto2 = eval(DF4 - DF6);
		if ((resto2 == 0) || (resto2 == 1))	{
		        DIG2 = 0}
		else {
		        DIG2 = eval(11 - resto2)};
				
		digito = eval((DIG1*10) + DIG2);
			
		if  (digito != DAC ) {
				//p_NomeCampo.value="";
				p_NomeCampo.focus();
		     	return false
			}
		else{
		    	return true;
			}
			
	}
	else{		
		var CPF = BASE.substring(0,9);
		var DAC1 = BASE.substring(9,11);
		var controle  = 0;
		var controle1 = 0;
		var digito1 = 0;
        var inicio = 2;
        var fim = 10;
		var soma = 0;		
		for (j=1; j<3;j++){
             soma = 0;
			 for (i=inicio; i<=fim;i++){	 
              		soma = eval(soma + ((CPF.substring(i-1 - j,i-1-j+1)) * (fim + 1 + j - i)))
			 }
        	if (j == 2){ soma = eval(soma + (2 * digito1))}
		        digito1 = eval((soma * 10)-((parseInt((soma * 10)/11))* 11)
			)
    	    if (digito1 == 10) {
            	digito1 = 0
			}
			if (j == 1){
	        controle =  digito1
			}
			else{
			controle1 =  digito1
			}			
        	inicio = 3;
        	fim = 11;
		}			
		digito1 = eval((controle*10) + controle1);
		if  (digito1 != DAC1 ) {
			//alert("O CNPJ/CPF não é válido.")
		     	return false
			}
		else{
				return true
		}
	  }		
	}
	else{
		return false;
	}
}


//*****Validar se período(mês/ano) são válidos******

function fValidaPeriodoMes(base)
{
  Periodo = base.value;
  if (Periodo != '')
   { 
    if (!fValidaFormatoPeriodo(base.value)){
  		alert("O período deve estar no formato mm/aaaa. "+
		"Exemplo: 09/2001")
		base.value = "";
		base.focus();
       }
    else {
	pos1 = Periodo.indexOf('/');
	mes = Periodo.slice(0,pos1);
	ano = Periodo.slice(pos1+1);
	if ((ano < 1900 || ano > 9999) ||(mes < 1 || mes > 12))
	 {
           alert("Período Inválido!");
	   base.value = "";
	   base.focus();
	  }
      }
   }
}

function fValidaFormatoPeriodo(p_Data)
{
  bRetorno = true;
  if (p_Data.length != 7){
   bRetorno = false;
  }
  pos1 = p_Data.indexOf('/');
  if (pos1 != 2)
  {
	bRetorno=false;
  }
  return bRetorno;
}

//******************************
function fValidaData(base)
{
  vAux = 0;
  if (base.value != ''){  
   if (!fValidaFormatoData(base.value)){
  		alert("A data deve estar no formato dd/mm/aaaa. "+
		"Exemplo: 27/09/2001")
		base.value = "";
		base.focus();
		vAux = 1;
   }
   else if (!_checkeurodate(base.value)){
        alert("Data Inválida!");
		base.value = "";
		base.focus();
		vAux = 1;
   }
  }
}

function fValidaFormatoData(p_Data)
{
  bRetorno = true;
  if (p_Data.length != 10){
   bRetorno = false;
  }
  pos1 = p_Data.indexOf('/');
  pos2 = p_Data.indexOf("/",3); 
  if ((pos1 != 2) || (pos2 != 5))
  {
	bRetorno=false;
  }
  return bRetorno;
}

function _checkeurodate(object_value)
    {
    //Returns true if value is a eurodate format or is NULL
    //otherwise returns false	

    if (object_value.length == 0)
        return true;

    //Returns true if value is a date in the dd/mm/yyyy format
	isplit = object_value.indexOf('/');

	if (isplit == -1)
	{
		isplit = object_value.indexOf('.');
	}

	if (isplit == -1 || isplit == object_value.length)
		return false;

    sDay = object_value.substring(0, isplit);

	monthSplit = isplit + 1;

	isplit = object_value.indexOf('/', monthSplit);

	if (isplit == -1)
	{
		isplit = object_value.indexOf('.', monthSplit);
	}

	if (isplit == -1 ||  (isplit + 1 )  == object_value.length)
		return false;

    sMonth = object_value.substring((sDay.length + 1), isplit);

	sYear = object_value.substring(isplit + 1);

	if (!_checkinteger(sMonth)) //check month
		return false;
	else
	if (!_checkrange(sMonth, 1, 12)) // check month
		return false;
	else
	if (!_checkyear(sYear)) //check year
		return false;
	else
	if (!_checkrange(sYear, 0, null)) //check year
		return false;
	else
	if (!_checkinteger(sDay)) //check day
		return false;
	else
	if (!_checkday(sYear, sMonth, sDay)) //check day
		return false;
	else
		return true;
    }

function _checkday(checkYear, checkMonth, checkDay)
    {

	maxDay = 31;

	if (checkMonth == 4 || checkMonth == 6 ||
			checkMonth == 9 || checkMonth == 11)
		maxDay = 30;
	else
	if (checkMonth == 2)
	{
		if (checkYear % 4 > 0)
			maxDay =28;
		else
		if (checkYear % 100 == 0 && checkYear % 400 > 0)
			maxDay = 28;
		else
			maxDay = 29;
	}

	return _checkrange(checkDay, 1, maxDay); //check day
    }

function _checkyear(object_value)
    {
    if (object_value.length == 0)
        return true;

    if (object_value.length != 4)
        return false;
		
	var decimal_format = ".";
	var check_char;

    //The first character can be + -  blank or a digit.
	check_char = object_value.indexOf(decimal_format)
    //Was it a decimal?
    if (check_char < 1)
	 return _checknumber(object_value);
    else
	 return false;
}

function _numberrange(object_value, min_value, max_value)
    {
    // check minimum
    if (min_value != null)
	{
        if (object_value < min_value)
		return false;
	}

    // check maximum
    if (max_value != null)
	{
	if (object_value > max_value)
		return false;
	}
	
    //All tests passed, so...
    return true;
}


function _checkinteger(object_value)
    {
    //Returns true if value is a number or is NULL
    //otherwise returns false	

    if (object_value.length == 0)
        return true;

    //Returns true if value is an integer defined as
    //   having an optional leading + or -.
    //   otherwise containing only the characters 0-9.
	var decimal_format = ".";
	var check_char;

    //The first character can be + -  blank or a digit.
	check_char = object_value.indexOf(decimal_format)
    //Was it a decimal?
    if (check_char < 1)
	return _checknumber(object_value);
    else
	return false;
}

function _checknumber(object_value)
    {
    //Returns true if value is a number or is NULL
    //otherwise returns false	

    if (object_value.length == 0)
        return true;

    //Returns true if value is a number defined as
    //   having an optional leading + or -.
    //   having at most 1 decimal point.
    //   otherwise containing only the characters 0-9.
	var start_format = " ,+-0123456789";
	var number_format = " .0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;

    //The first character can be + - .  blank or a digit.
	check_char = start_format.indexOf(object_value.charAt(0))
    //Was it a decimal?
	if (check_char == 1)
	    decimal = true;
	else if (check_char < 1)
		return false;
        
	//Remaining characters can be only . or a digit, but only one decimal.
	for (var i = 1; i < object_value.length; i++)
	{
		check_char = number_format.indexOf(object_value.charAt(i))
		if (check_char < 0)
			return false;
		else if (check_char == 1)
		{
			if (decimal)		// Second decimal.
				return false;
			else
				decimal = true;
		}
		else if (check_char == 0)
		{
			if (decimal || digits)	
				trailing_blank = true;
        // ignore leading blanks

		}
	        else if (trailing_blank)
			return false;
		else
			digits = true;
	}	
    //All tests passed, so...
    return true
    }

function _checkrange(object_value, min_value, max_value)
    {
    //if value is in range then return true else return false

    if (object_value.length == 0)
        return true;


    if (!_checknumber(object_value))
	{
	return false;
	}
    else
	{
	return (_numberrange((eval(object_value)), min_value, max_value));
	}
	
    //All tests passed, so...
    return true;
    }


//********************************************************************
function isDate(dia, mes, ano) {
// Checa se eh uma data valida
if ((isNaN(parseInt(dia)) || isNaN(parseInt(mes)) || isNaN(parseInt(ano))) 
 ||(ano < 1900 || ano > 9999) ||(mes < 1 || mes > 12) ||(dia < 1 
 || dia > 31) ||(mes == 2 && dia > 28 && (ano % 4 != 0)) 
 ||(mes == 2 && dia > 29 && (ano % 4 == 0)) ||(dia > 30 
 && (mes == 4 || mes == 6 || mes == 9 || mes== 11)))
 return false;
else
 return true;
}

function fNumDiasMes(p_nMes,p_nAno){
 if (p_nMes == 1 || p_nMes == 3 || p_nMes == 5 || p_nMes == 7 || p_nMes == 8 || p_nMes == 10 || p_nMes == 12)
  return 31;
 if (p_nMes == 4 || p_nMes == 6 || p_nMes == 9 || p_nMes == 11)
  return 30;
 if (p_nMes ==2){
  if (p_nAno % 4 != 0) return 28
  else return 29;
 }
}

function fValidaIntDt(p_DtIni,p_DtFim)
{
 if ((p_DtIni.value != '') && (p_DtFim.value != ''))
  {
  v_DiaIni = p_DtIni.value.slice(0,2);
  v_MesIni = p_DtIni.value.slice(3,5);
  v_AnoIni = p_DtIni.value.slice(6);
  v_DiaFim = p_DtFim.value.slice(0,2);
  v_MesFim = p_DtFim.value.slice(3,5);
  v_AnoFim = p_DtFim.value.slice(6);
  if (!isDate(v_DiaIni,v_MesIni,v_AnoIni))
   {
   alert('Data Inicial Inválida');
   p_DtIni.focus;
   return false;
   }
  if (!isDate(v_DiaFim,v_MesFim,v_AnoFim))
   {
   alert('Data Final Inválida');
   p_DtFim.focus;
   return false;
   }
  vDataIni = v_AnoIni + v_MesIni + v_DiaIni
  vDataFim = v_AnoFim + v_MesFim + v_DiaFim
  if (vDataIni > vDataFim)
    {
        alert("A data inicial deve ser menor que a final!");
		p_DtIni.focus;
		return false;
    }
  }
}

function fValidaPeriodo(p_DtIni,p_DtFim)
{
 if ((p_DtIni.value != '') && (p_DtFim.value != ''))
  {
  v_DiaIni = p_DtIni.value.slice(0,2);
  v_MesIni = p_DtIni.value.slice(3,5);
  v_AnoIni = p_DtIni.value.slice(6);
  v_DiaFim = p_DtFim.value.slice(0,2);
  v_MesFim = p_DtFim.value.slice(3,5);
  v_AnoFim = p_DtFim.value.slice(6);
  if (!isDate(v_DiaIni,v_MesIni,v_AnoIni))
   {
   alert('Data Inicial Inválida');
   p_DtIni.focus;
   return false;
   }
  if (!isDate(v_DiaFim,v_MesFim,v_AnoFim))
   {
   alert('Data Final Inválida');
   p_DtFim.focus;
   return false;
   }
  vDataIni = v_AnoIni + v_MesIni + v_DiaIni
  vDataFim = v_AnoFim + v_MesFim + v_DiaFim
  if (vDataIni > vDataFim)
   {
        alert("A data inicial deve ser menor que a final!");
		p_DtIni.focus;
		return false;
	}
   vbIntValido = true
   vQtdeDiasMesIni = fNumDiasMes(v_MesIni,v_AnoIni);
   vQtdeDiasPeriodo = 0;
   vDifAno = v_AnoFim - v_AnoIni;
   vDifMes = v_MesFim - v_MesIni;
   if ((vDifAno > 1) || (vDifAno == 1 && (v_MesIni != 12 || v_MesFim != 1))){
     vbIntValido = false
     
   }
   else if ((vDifAno == 0 && vDifMes == 1)||(vDifAno == 1 && v_MesIni == 12 && v_MesFim == 1)){
    vQtdeDiasPeriodo = (vQtdeDiasMesIni - v_DiaIni)+ parseInt(1) + parseInt(v_DiaFim)
    if (vQtdeDiasPeriodo > 65)
      vbIntValido = false 
   }

   if (vDifAno == 0 && vDifMes > 1)
	{
	 vDifMes_aux = 1;
	 ContaDias = vQtdeDiasMesIni - v_DiaIni;
	 if ((v_MesIni.indexOf('0') != -1) && (v_MesIni.indexOf('0') == 0))
		vMesAux = v_MesIni.slice(1);
	 else
		vMesAux = v_MesIni;
	 MesAux = parseInt(vMesAux) + parseInt(1);
	 while ((vDifMes_aux <= vDifMes) && ContaDias <= 65)
	  {
	   vNumDias = fNumDiasMes(MesAux ,v_AnoIni)
	   if (vDifMes_aux == vDifMes)
	     {
	      ContaDias = parseInt(ContaDias) + parseInt(v_DiaFim);
	     }
	   else
	     {
	      ContaDias = parseInt(ContaDias) + parseInt(vNumDias);	
	     }
	   vDifMes_aux = vDifMes_aux + 1;
	   MesAux = MesAux + 1;
	 }
	 if ( ContaDias > 65 )
	   vbIntValido = false 
	}

    if (!vbIntValido)
     {
      alert("O número de dias do período não pode ultrapassar 65 dias!")
      p_DtFim.value=""
      return false;
     }
   
  }
  return true;
}

function fAbrePopup(endereco)
{
	if (endereco.indexOf("http://") == -1)
		endereco = "http://"+endereco;
	window.open(endereco,"");
}

function fPopData(campo)
{
	window.open("Calendario_popup.asp?campo="+campo,"Calendario","height=120,width=130,left=600,screenX=600,top=190,screenY=190");
}

function fLimpaFrameCorpo()
{
	parent.corpo.location.href = "../sistema/corpo.asp";
}

function FormataStr(c_str, tam, textocont){
	var str_tam = c_str.value.substr(0,tam);
	var c_str_tam= c_str.value.length;
	
	if (c_str_tam > tam){
		alert("Campo limitado em "+tam+" caracteres.")
		c_str.value = str_tam;
		textocont.innerText = 0;
	}
	else
	textocont.innerText = tam-c_str_tam;	
}


 function fMarcaTodos(nome_cb,checado)
 {
   if (checado)
   {
    if (eval(form1.elements[nome_cb]))
	{
      if (eval(form1.elements[nome_cb].length))
      {
        for (i=0; i<form1.elements[nome_cb].length; i++)
	     form1.elements[nome_cb][i].checked = true
      }
      else 
        form1.elements[nome_cb].checked = true
     }
   }
 }


 function fValidaCb(nome_cb)
 {
   var n=0;
   if (eval(form1.elements[nome_cb]))
	{
     if (eval(form1.elements[nome_cb].length))
     {
      for (i=0; i<form1.elements[nome_cb].length; i++)
	  {
	    if (form1.elements[nome_cb][i].checked)
	    {
	     n++;
		 i=form1.elements[nome_cb].length;
	    }
	  }
    }
    else
     {
   	   if (form1.elements[nome_cb].checked)
	   {
	    n++;
	   }
    }
   }
   if (n>0) return true;
   else return false;
 }

 function fEnviarPlanilha(nome_cb)
 {
	 var sCodigos = "";
	 if (fValidaCb(nome_cb))
	 {
	   for (i=0; i<form1.elements[nome_cb].length; i++)
	   {
	    if (form1.elements[nome_cb][i].checked)
	    {
		 sCodigos += form1.elements[nome_cb][i].value+",";
	    }
	   }
	   window.open("../mktnovo/geraPlanilha.asp?codigos="+sCodigos,"Impressão","left=50, top=10, width=780, height=590, resizable=yes, scrollbars=yes, menubar=no");
	 }
	 else
	 {
	    alert("É necessário selecionar pelo menos um registro para geração.");
		return;
	 }
 }


 function TrataParametro(str) {
  var aux="";
  if (str!=null && str!='') {
	for (i=0;i<str.length;i++)
	{
	   if (str.charAt(i)!=" " && str.charAt(i)!="'")
	   {
		   aux = aux+str.charAt(i);
	   }
	}
  }
  return aux;
}


function fTrataParametro(str) {
  var aux="";
  if (str!=null && str!='') {
	for (i=0;i<str.length;i++)
	{
	   if (str.charAt(i)!=" " && str.charAt(i)!="'")
	   {
		   aux = aux+str.charAt(i);
	   }
	}
  }
  return aux;
}


function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function IEHoverPseudo() { 
 var navItems;
 if (eval(document.getElementById("navmenu")))
	{
 if (eval(document.getElementById("navmenu").length))
 {
   for (var n=0; n<eval(document.getElementById("navmenu").length); n++ )
   {
       navItems = document.getElementById("navmenu")[n].getElementsByTagName("li"); 	    
	 for (var i=0; i<navItems.length; i++) { 
		if(navItems[i].className == "menuparent") { 
			navItems[i].onmouseover=function() { this.className += "menu"; } 
			navItems[i].onmouseout=function() { this.className = "menuparent"; } 
		} 
	 } 

   }
 }
 else
	{
	  navItems = document.getElementById("navmenu").getElementsByTagName("li"); 
	 for (var i=0; i<navItems.length; i++) { 
		if(navItems[i].className == "menuparent") { 
			navItems[i].onmouseover=function() { this.className += "menu"; } 
			navItems[i].onmouseout=function() { this.className = "menuparent"; } 
		} 
	 } 
	}
	}

	if (screenResolution=screen.width == '1024' )
	{
		if (eval(document.getElementById("col_cata")))
		{
			document.getElementById("col_cata").style.display="inline";
		}

	}

} 


//*****************************************************************************************************************************
function validarCampos(formulario){
			for (i=0;i<formulario.length;i++) {
				var tempobj = formulario.elements[i];
				obrigatorio = eval(tempobj.getAttribute('obrigatorio'));
				nome_campo  = tempobj.getAttribute('nome_exibicao');
				campo = tempobj.getAttribute('name');
				if (nome_campo=='profissão')
				{
				 if (!ConsisteCampoBranco(formulario.outra.value)){
						obrigatorio = false;
					}
				}
				if(obrigatorio == null) { obrigatorio = false }
				if(obrigatorio==true){
					if (ConsisteCampoBranco(tempobj.value) == true){
						alert("Você esqueceu de informar o campo \""+ nome_campo +"\".");
						tempobj.focus();
						return false;
					}
				}
				if (campo.indexOf("email") != -1){
					     if (ConsisteEmail(tempobj.value) == false) {
						   alert("O e-mail digitado no campo \"" + nome_campo + "\" não é válido.");
					       tempobj.focus();
						   return false;
						 }
					}	
			}
			return true;
}

/******************************************************************************************************************************/
// JavaScript MASCARAS
Mascaras = {
IsIE: navigator.appName.toLowerCase().indexOf('microsoft')!=-1,
AZ: /[A-Z]/i,
Acentos: /[À-ÿ]/i,
Num: /[0-9]/,
carregar: function(parte){
 var Tags = ['input','textarea'];
 if (typeof parte == "undefined") parte = document;
 for(var z=0;z<Tags.length;z++){
  Inputs=parte.getElementsByTagName(Tags[z]);
  for(var i=0;i<Inputs.length;i++)
   if(('button,image,hidden,submit,reset').indexOf(Inputs[i].type.toLowerCase())==-1)
    this.aplicar(Inputs[i]);
 }
},
aplicar: function(campo){
 tipo = campo.getAttribute('tipo');
 if (!tipo || campo.type == "select-one") return;
 orientacao = campo.getAttribute('orientacao');
 mascara = campo.getAttribute('mascara');
 
  if(tipo.toLowerCase() == "numerico" && eval(campo.getAttribute('negativo'))){
	orientacao = "esquerda";
	tamanho = campo.getAttribute('maxLength');
	if (!tamanho || tamanho > 50)
	 tamanho = 10;

	if(!mascara)
	campo.setAttribute("mascara", this.geraMascaraNumerico(tamanho));
	campo.setAttribute("orientacao", orientacao);
 }
 if (tipo.toLowerCase() == "decimal"){
  orientacao = "esquerda";
  casasdecimais = campo.getAttribute('casasdecimais');
  tamanho = campo.getAttribute('maxLength');
  if (!tamanho || tamanho > 50)
   tamanho = 10;
  if (!casasdecimais)
   casasdecimais = 2;

  campo.setAttribute("mascara", this.geraMascaraDecimal(tamanho, casasdecimais));
  campo.setAttribute("orientacao", orientacao);
 }
 if (orientacao && orientacao.toLowerCase() == "esquerda") campo.style.textAlign = "right";
 if (mascara) campo.setAttribute("maxLength", mascara.length);
 if (tipo){
//  campo.onkeypress 	= function(e){ return Mascaras.onkeypress(e?e:event); };
  campo.onkeydown 	= function(e){ return Mascaras.onkeydown(e?e:event); };
  campo.onkeyup 	= function(e){ Mascaras.onkeyup(e?e:event, campo) };
  campo.onfocus		= function(e){ Mascaras.onfocus(e?e:event, campo) };
  campo.onfocusout 	= function(e){ Mascaras.onfocusout(e?e:event, campo) };
 }
 campo.setAttribute("snegativo", ((campo.value).substr(0,1) == "-" ? "s" : "n"));
},
onkeydown: function(e){
 KeyCode = this.IsIE ? event.keyCode : e.which;
 if (KeyCode == 9) return true;
 campo =  this.IsIE ? event.srcElement : e.target;

 campo.setAttribute("snegativo", ((campo.value).substr(0,1) == "-" ? "s" : "n"));
 readonly = campo.getAttribute('readonly');
 tipo = campo.getAttribute('tipo').toLowerCase();
 
 if (readonly) return;
 maxlength = campo.getAttribute('maxlength');
 selecao = this.selecao(campo);
 if (selecao.length > 0 && KeyCode != 0){
  campo.value = ""; return true;
 }
 if (KeyCode == 0) return true;
 var Char = "";

 if(KeyCode < 96 || KeyCode > 105){
 Char = String.fromCharCode(KeyCode);
 }
 else{
	 switch(KeyCode){ 
	 case 96: 
		Char = "0";
		break;
	 case 97: 
	 	Char = "1";
		break;
	 case 98: 
	 	Char = "2";
		break;
	 case 99: 
	 	Char = "3";
		break;
	 case 100: 
	 	Char = "4";
		break;
	 case 101: 
	 	Char = "5";
		break;
	 case 102: 
	 	Char = "6";
		break;
	 case 103: 
	 	Char = "7";
		break;
	 case 104: 
	 	Char = "8";
		break;
	 case 105: 
	 	Char = "9";
		break;
	 }
 }

 valor = campo.value;
 mascara = campo.getAttribute('mascara');
 if (KeyCode != 8){
  negativo = eval(campo.getAttribute('negativo'));
  if(negativo && KeyCode == 45){
   snegativo = campo.getAttribute('snegativo');
   snegativo = (snegativo == "s" ? "n" : "s");
   campo.setAttribute("snegativo", snegativo);
  }else{
   valor += Char
   if ((tipo == "numerico" || tipo == "decimal") && Char.search(this.Num) == -1) return false;
   if (KeyCode != 32 && tipo == "caracter" && Char.search(this.AZ) == -1 && Char.search(this.Acentos) == -1) return false;
  }
 }
 if (tipo == "decimal"){
		this.formatValue(campo, valor);
		valor = campo.value;
		this.aplicarMascara(campo, valor);
		return false;
 }else{
	 if (mascara){
	  this.aplicarMascara(campo, valor);
	  return false;
	 }
 }
 return true;
},
onkeyup: function(e, campo){
 KeyCode = this.IsIE ? event.keyCode : e.which;
 if (KeyCode != 9 && KeyCode != 16 && KeyCode != 109){
	  valor = campo.value;
	
	  if (KeyCode == 8) valor = valor.substr(0,valor.length-1);
	
	  if (tipo == "decimal" && campo.value !=""){
	   this.formatValue(campo, valor);
	   valor = campo.value;
	  } 
	  
	  this.aplicarMascara(campo, valor);
 }
},
onfocus: function(e, campo){
  cpfcnpj = eval(campo.getAttribute('cpfcnpj'));
  if(cpfcnpj){
	valor = campo.value;
	valor = ReplaceAll(valor,".","");
	valor = ReplaceAll(valor,"-","");
	valor = ReplaceAll(valor,"/","");

	campo.setAttribute("mascara","##############");
	this.aplicarMascara(campo, valor);
	campo.focus();
  }
  cpf = eval(campo.getAttribute('cpf'));
  if(cpf){
	valor = campo.value;
	valor = ReplaceAll(valor,".","");
	valor = ReplaceAll(valor,"-","");
	campo.setAttribute("mascara","###########");
	this.aplicarMascara(campo, valor);
	campo.focus();
  }
},
onfocusout: function(e, campo){
  cpfcnpj = eval(campo.getAttribute('cpfcnpj'));
  if(cpfcnpj){
	  tamanho = campo.getAttribute('maxLength');
		if(valor.length == 11){
		  campo.setAttribute("mascara","###.###.###-##");
		}
		if(valor.length == 14){
		  campo.setAttribute("mascara","##.###.###/####-##");
		}
		this.aplicarMascara(campo, valor);
  }
  cpf = eval(campo.getAttribute('cpf'));
  if(cpf){
	  tamanho = campo.getAttribute('maxLength');
		if(valor.length == 11){
		  campo.setAttribute("mascara","###.###.###-##");
		}
		this.aplicarMascara(campo, valor);
  }
},
aplicarMascara: function(campo, valor){
 mascara = campo.getAttribute('mascara');
 if (!mascara) return;

 negativo = eval(campo.getAttribute('negativo'));
 snegativo = campo.getAttribute('snegativo');

 if (negativo && valor.substr(0,1) == "-") 
  valor = valor.replace("-","");
  
 orientacao = campo.getAttribute('orientacao');
 var i = 0;
 for(i=0;i<mascara.length;i++){
  caracter = mascara.substr(i,1);
  if (caracter != "#") valor = valor.replace(caracter, "");
 }
 retorno = "";
 if (orientacao != "esquerda"){
  contador = 0;
  for(i=0;i<mascara.length;i++){
   caracter = mascara.substr(i,1);
   if (caracter == "#"){
    retorno += valor.substr(contador,1);
    contador++;
   }else
    retorno += caracter;
   if(contador >= valor.length) break;
  }
 }else{
  contador = valor.length-1;
  for(i=mascara.length-1;i>=0;i--){
   if(contador < 0) break;
   caracter = mascara.substr(i,1);
   if (caracter == "#"){
    retorno = valor.substr(contador,1) + retorno;
    contador--;
   }else
    retorno = caracter + retorno;
  }
 }
 if (negativo && snegativo == "s")
  retorno = "-" + retorno;
 campo.value = retorno;
},
geraMascaraDecimal: function(tam, decimais){
 var retorno = ""; var contador = 0; var i = 0;
 decimais = parseInt(decimais);
 for (i=0;i<(tam-(decimais+1));i++){
  retorno = "#" + retorno;
  contador++;
  if (contador == 3){
   retorno = "." + retorno;
   contador=0;
  }
 }
 retorno = retorno + ",";
 for (i=0;i<decimais;i++) retorno += "#";
 return retorno;
},
geraMascaraNumerico: function(tam){
 var retorno = ""; var i = 0;
 for (i=0;i<tam;i++){
  retorno = "#" + retorno;
 }
 return retorno;
},
selecao: function(campo){
 if (this.IsIE)
  return document.selection.createRange().text;
 else
  return (campo.value).substr(campo.selectionStart, (campo.selectionEnd - campo.selectionStart));
},
formatValue: function(campo, num) {
decimal = campo.getAttribute("casasdecimais");
fator = "1"
for (var i=0; i<decimal; i++){
fator = fator + "0";
}

while(num.indexOf(".") != -1)
  num = num.replace(".","")
num = num.replace(",","")
num = (num/fator)
	
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*fator+0.50000000001);
cents = num%fator;
num = Math.floor(num/fator).toString();
cents = cents.toString()

for (var i=0; i<=decimal; i++)
	if(cents.length < decimal) 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));

campo.value = (((sign)?'':'-') + num + ',' + cents);
}

};


function fAmpliar(imagem)
{
	 window.open('pop_imagem.asp?imagem='+imagem,'','width=500,height=370,left=250,top=250,border=no,margin=no');
			
}


function fAmpliar2(imagem,largura,altura)
{
  window.open('pop_imagem.asp?imagem='+imagem,'','width='+largura+',height='+altura+',left=250,top=250,border=no,margin=no');
}



function fProxDestaque()
{
	 dest = document.formDestaque.DestaqueAtual.value;
	 total = document.formDestaque.QtdDestaque.value;
	 //document.getElementById('destaque_'+dest).style.display='none'; 
	// if (eval(document.getElementById('destaque_'+dest).))
	 if (dest == total)
	 {
		 dest = 0;
	 }
	 dest++;
     document.getElementById('destaque').innerHTML = aDestaques[dest];

	 //document.getElementById('destaque_'+dest).style.display='inline'; 
	 document.formDestaque.DestaqueAtual.value = dest;

}


 function ReplaceAll(str,de,para)
 {
  var sStr=str;
  while(sStr.indexOf(de) != -1)
	  sStr = sStr.replace(de,para);
  return sStr;
 }






