function isDate(dateStr) {
	if(dateStr=='//'){
		return true;
	}
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	if (matchArray == null) {
		//alert("Please enter date as either mm/dd/yyyy or mm-dd-yyyy.");
		return false;
	}
	day= matchArray[1]; // p@rse date into variables
	month = matchArray[3];
	year = matchArray[5];
	
	if(year < 1900){
		return false;
	}
	
	if (month < 1 || month > 12) { // check month range
		//alert("Month must be between 1 and 12.");
		return false;
	}
	if (day < 1 || day > 31) {
		//alert("Day must be between 1 and 31.");
		return false;
	}
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		//alert("Month "+month+" doesn`t have 31 days!")
		return false;
	}
	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day > 29 || (day==29 && !isleap)) {
			//alert("February " + year + " doesn`t have " + day + " days!");
			return false;
		}
	}
	return true; // date is valid
}

/*
formata  = 
trocaCampo = 
validaCNPJ = recebe CNPJ como string
uso=  onKeyup="return formata(document.form, 'data', '99/99/9999', event);"
*/
function formata(objForm, strField, sMask, evtKeyPress){
		var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;
		if(document.all) {
			nTecla = evtKeyPress.keyCode;
		}else if(document.layers){
			nTecla = evtKeyPress.which;
		}
		sValue = objForm[strField].value;
		sValue = sValue.toString().replace( "-", "" );
		sValue = sValue.toString().replace( "-", "" );
		sValue = sValue.toString().replace( ".", "" );
		sValue = sValue.toString().replace( ".", "" );
		sValue = sValue.toString().replace( "/", "" );
		sValue = sValue.toString().replace( "/", "" );
		sValue = sValue.toString().replace( "(", "" );
		sValue = sValue.toString().replace( "(", "" );
		sValue = sValue.toString().replace( ")", "" );
		sValue = sValue.toString().replace( ")", "" );
		sValue = sValue.toString().replace( " ", "" );
		sValue = sValue.toString().replace( " ", "" );
		sValue = sValue.toString().replace( ":", "" );		
		fldLen = sValue.length;
		mskLen = sMask.length;
		i = 0;
		nCount = 0;
		sCod = "";
		mskLen = fldLen;
		while (i <= mskLen){
			bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":"))
			bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))
			if (bolMask) {
				sCod += sMask.charAt(i);
				mskLen++;
			}else{
				sCod += sValue.charAt(nCount);
				nCount++;
			}
			i++;
		}
		objForm[strField].value = sCod;
		if (nTecla != 8){
			if (sMask.charAt(i-1) == "9"){
				return ((nTecla > 47) && (nTecla < 58));
			}else{
				return true;
			}
		}else{
			return true;
		}
	}

function trocaCampo(c, obj){ //Onde c -> comprimento do campo; obj -> index do campo dentro do form
	conteudo = document.form.elements[obj].value;
//alert(conteudo);
	conteudo = conteudo.length;
	if ( conteudo >= c){
		obj++;	
		document.form.elements[obj].focus();
	}
//	alert(conteudo);
}
function validaCNPJ(CNPJ) {
erro = new String;
if (CNPJ.length < 18) erro += "E' necessarios preencher corretamente o numero do CNPJ! \n\n";
if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")){
if (erro.length == 0) erro += "E' necessarios preencher corretamente o numero do CNPJ! \n\n";
}
//substituir os caracteres que nao sao numeros
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 verificacao de CNPJ suporta apenas numeros! \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 +="Digito verificador com problema!";
}
if (erro.length > 0){
return false;
} else {
return true;
}
return true;
}


function validaEmail(emailad){
    var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
    var check=/@[\w\-]+\./;
    var checkend=/\.[a-zA-Z]{2,3}$/;
    if(((emailad.search(exclude) != -1)||(emailad.search(check)) == -1)||(emailad.search(checkend) == -1)){
        return false;
    }
    else {
        return true;
    }
}

// chamada da função: onKeyPress="return valInt(event);"
function valInt(teclapres){
	if (navigator.appName=="Netscape"){
		tecla = teclapres.which;
	}else{
		tecla = teclapres.keyCode;		
	}

	if (tecla > 31 && (tecla < 48 || tecla > 57)){ 
		return false;
	}

	return true;
}

function validaCEP(field) {
var valid = "0123456789-";
var hyphencount = 0;

if (field.length!=9 && field.length!=10) {

return false;
}
for (var i=0; i < field.length; i++) {
temp = "" + field.substring(i, i+1);
if (temp == "-") hyphencount++;
if (valid.indexOf(temp) == "-1") {

return false;
}
if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {

return false;
   }
}
return true;
}



function  despopular(obj){
if(obj.selectedIndex!=-1){
obj.options[obj.selectedIndex] = null;
}

}

function popular(objOrigem, objDestino){
   if (objOrigem.options[objOrigem.selectedIndex].value != ""){
      valor = objOrigem.options[objOrigem.selectedIndex].value;
      txt = objOrigem.options[objOrigem.selectedIndex].text;

      objDestino.options.length++;
      objDestino[objDestino.length - 1].value = valor;
      objDestino[objDestino.length - 1].text = txt;
      objDestino[objDestino.length - 1].selected = true;
   }

}


function validacpf(campo){ 
	var i; 
	campo = campo.replace (".","");
	campo = campo.replace (".","");
	campo = campo.replace ("-","");
	campo = campo.replace ("/","");
	s = campo
	var c = s.substr(0,9); 
	var dv = s.substr(9,2); 
	var d1 = 0; 
	for (i = 0; i < 9; i++){ 
		d1 += c.charAt(i)*(10-i); 
	}
	if (d1 == 0){ 
		//alert("CPF Invalido") 
		return false; 
	} 
	d1 = 11 - (d1 % 11); 
	if (d1 > 9) d1 = 0; 
	if (dv.charAt(0) != d1){ 
		//alert("CPF Invalido") 
		return false; 
	} 
	d1 *= 2; 
	for (i = 0; i < 9; i++){ 
		d1 += c.charAt(i)*(11-i); 
	} 
	d1 = 11 - (d1 % 11); 
	if (d1 > 9) d1 = 0; 
	if (dv.charAt(1) != d1) { 
		//alert("CPF Invalido") 
		return false; 
	} 
	return true; 
} 

function valida_numero(campo){
   var S = campo.value
   var Digitos = "0123456789.,/-:";
   var temp = "";
   var digito = "";
      for (var i=0; i<S.length; i++){
	       digito = S.charAt(i);
	          if (Digitos.indexOf(digito)>=0){
		          temp=temp+digito;
			  }
	  }
	  campo.value = temp
}

function FormatIntegerNonNegative(evt)
{
var e = event || evt; // for trans-browser compatibility
var charCode = e.which || e.keyCode;

if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;

return true;

}
/*
USO
onKeyUp="formataVlr(this);"
*/
function formataVlr(campo){
	texto = campo.value.replace(',','')
	tam = texto.length
	cent = texto.substring(tam-2)
	if(tam>2){
		texto = texto.substring(0,tam-2)+','+cent
	}
	campo.value=texto;
}