function marcaTodos(ctrl, flag) { 
 if (ctrl.length) {
	 for (x = 0; x < ctrl.length; x++) {
		 ctrl[x].checked = flag;
	 }
 } else {
	 ctrl.checked = flag;
 }
}

function validaEmail(sEmail) {
  // Expressao regular para validacao de enderecos de e-mail
  sExpReg = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$/i;
  return sExpReg.test(sEmail);
}

function pegaSelecionado(ctrl) {
	wflag = "0";
	if (ctrl.length) {
		for (var x=0; x < ctrl.length; x++) {
			if (ctrl[x].checked) {
				wflag = ctrl[x].value;
				break;
			}
		}
	}
	
	return wflag;
}

function limpaLista(ctrl) {
	 while (ctrl.length) {
		 ctrl.options.remove(0);
	 }
}

function pegaQuantSelecionados(ctrl) {
	wflag = 0;
	if (ctrl.length > 1) {
		for (x = 0; x < ctrl.length; x++) {
			if (ctrl[x].checked) {
				wflag++;
			}
		}
	} else {
		wflag = ctrl.checked;
	}
	return wflag;
}

function validaCaracteres(ctrl) {
	wfrase_invalida = "<>#$'";
	wvar = ctrl.value;
	wflag = true;
	
	for (x = 0; x < wvar.length; x++) {
		for (y = 0; y < wfrase_invalida.length; y++) {
			if (wvar.charAt(x) == wfrase_invalida.charAt(y)) {
				wflag = false;
				break;
			}
		}
		
		if (!wflag) {
			break;
		}
	}
	
	return wflag;
}

function atuaBotao(bt, ctrl) {
 bt.disabled = !estaMarcado(ctrl);
}

function estaMarcado(ctrl) {
 wflag = false;
 if (ctrl.length) {
  for (x = 0; x <= ctrl.length - 1; x++) {
   if (ctrl[x].checked) {
	wflag = true;
	break;
   }
  }
 } else {
  wflag = ctrl.checked; 
 }
 
 return wflag;
}

function habBoxes(cb, ctrl) {
  if (ctrl.length) { 
   for (x = 0; x <= ctrl.length - 1; x++) {
    ctrl[x].checked = cb.checked;
   }
  } else { ctrl.checked = cb.checked; } 
 }

function formataCEP(wData) {
	var kData = "";
	if (wData.length == 8) {
		kData += (wData.substr(0, 2) + ".");
		kData += (wData.substr(2, 3) + "-");
		kData += wData.substr(5, 3);
		return kData;
	} else {
		return wData;
	}
}

function mascaraCEP(valor, evt) {
 var wtam = valor.value.length;
 var tecla = (evt.which)?evt.which:event.keyCode;
 
 if (((tecla >= 48)&&(tecla <= 57))||((tecla >= 96)&&(tecla <= 105))) {
	if (wtam == 2) {
		valor.value += "."; 
		return true;
	} else if (wtam == 6) {
		valor.value += "-"; 
		return true;
	}
 }
}

function formataData(wData) {
	var kData = "";
	if (wData.length == 8) {
		kData += (wData.substr(0, 2) + "/");
		kData += (wData.substr(2, 2) + "/");
		kData += wData.substr(4, 4);
		return kData;
	} else {
		return wData;
	}
}

/**
 * Funcao
 *   validaData
 *
 * Descricao
 *   Funcao para validacao de datas no formato dd/mm/aaaa.
 *
 * Parametros
 *   sData: String que representa a data a ser validada.
 *
 * Retorno
 *   Verdadeiro se a data for valida e falso, caso contrario.
 *
 * PRODAP/2001
 */
function validaData(sData) {
  // Expressao regular para validar strings no formato
  // 00/00/0000.
  expReg = /^([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})$/;

  // Faz a validacao do formato da data passada como parametro,
  // utilizando a expressao regular acima.
  if (!expReg.exec(sData)) {
    return false;
  }

  // Pega as partes da data passada como parametro
  nAno = RegExp.$3 * 1;
  nMes = RegExp.$2 * 1;
  nDia = RegExp.$1 * 1;

  // Os meses no JavaScript sao contados a partir do zero, por
  // isso precisamos subtrair de um(1) o mes da data passada
  // como parametro.
  nMes = nMes - 1;

  // Cria um objeto Date do JavaScript, a partir das partes da
  // data passada como parametro. Se a data passada para o
  // construtor do objeto Date for invalida, o JavaScript cria
  // um objeto Date com o mes alterado.
  dDataTeste = new Date(nAno, nMes, nDia);

  // Pega o mes do objeto data que foi criado acima
  nMesTeste = dDataTeste.getMonth();

  // Compara o mes da data passada como parametro com o mes do
  // objeto data que foi criado
  if (nMes != nMesTeste) {
    return false;
  }
  return true;
}

function mascaraData(valor, evt) {
 var wtam = valor.value.length;
 var tecla = (evt.which)?evt.which:event.keyCode;
 
 if (((tecla >= 48)&&(tecla <= 57))||((tecla >= 96)&&(tecla <= 105))) {
	if (wtam == 5 || wtam == 2) {
		valor.value += "/"; 
		return true;
	}
 }
}

function Prox(wfrm, wAtual, wProx, wTam, evt) {
 var tecla = (evt.which)?evt.which:event.keyCode;
 
 if (((tecla >= 48)&&(tecla <= 57))||((tecla >= 96)&&(tecla <= 105))) {
  if (wfrm.elements[wAtual].value.length >= wTam) {
   wfrm.elements[wProx].focus();
  }
 }
}

function Zero(wVar, wTam) {
 kVar = '';
 for (x = wVar.length; x < wTam; x++) {
  kVar += '0';
 }
 return kVar + wVar;
}

function dv(wInsc) {
 wCal = 0;
 var wVal = new Array(1);
 
 wVal[0] = new Array(15, 21, 43, 5, 135);
 wVal[1] = new Array(3, 7, 16, 92, 644);
  
 for (x = 0; x <= 4; x++) {
  wCal += ((parseInt(wInsc.substr(x, 1)) + wVal[0][x]) * wVal[1][x]);
 }
  
 wNumero = wCal.toString();
 
 return wNumero.substr(wNumero.length - 3, 1);
// return wNumero;
}

function LimpaCPF(wCPF) {
 wVar = wCPF.substr(0, 3) + 
        wCPF.substr(4, 3) + 
        wCPF.substr(8, 3) + 
        wCPF.substr(12, 2);
 return wVar;
}

function FormatCPF(wCPF) {
 if (wCPF.length == 11) {
  wVar = wCPF.substr(0, 3) + '.' + 
         wCPF.substr(3, 3) + '.' +
  		 wCPF.substr(6, 3) + '-' + 
 		 wCPF.substr(9, 2);
 } else 
 { wVar = wCPF; } 
  
 return wVar;
}

function mascara(valor, evt) {
 wtam = valor.value.length;
 var tecla = (evt.which)?evt.which:event.keyCode;
 
 if (((tecla >= 48)&&(tecla <= 57))||((tecla >= 96)&&(tecla <= 105))) {
  if ((wtam == 3)||(wtam == 7)) {
   valor.value += '.'; 
   return true;
  }
  else if (wtam == 11) {
   valor.value += '-'; 
   return true;
  }
 }
}

function ValCPF(wCPF) {
 kCPF = '';
 wRes = false;
 wdig = 0;
 wresto = 0;
 if ((wCPF.length == 14)&&(wCPF != '000.000.000-00')) {
  kCPF += wCPF.substr(0,3);
  kCPF += wCPF.substr(4,3);
  kCPF += wCPF.substr(8,3);
  kCPF += wCPF.substr(12,2);
  for (x=1; x<=9;x++) 
   wdig += (11 - x) * kCPF.substr(x-1,1);
  wresto = wdig % 11; 
  if ((wresto == 0)||(wresto == 1)) 
   wdig = 0;
  else
   wdig = 11 - wresto;
  if (wdig == kCPF.substr(9,1)) { 
   wdig = 0;
   for (x=1; x<=10;x++) 
    wdig += (12 - x) * kCPF.substr(x-1,1);
   wresto = wdig % 11; 
   if ((wresto == 0)||(wresto == 1)) 
    wdig = 0;
   else
    wdig = 11 - wresto;
   if (wdig == kCPF.substr(10,1)) 
    wRes = true;   
  }
 }
 else 
  wRes = false;
 return wRes;
}

function ValidaNumero(evt) {
 var tecla = (evt.which)?evt.which:event.keyCode;
 
 if ( ((tecla >= 48) && (tecla <= 57)) || ((tecla >= 96) && (tecla <= 105)) ) 
  return true;
 else
  return false;
}