var msgErro_init = "Erro(s) : <br><br>"

var isIE = document.all?true:false;
var isNS = document.layers?true:false;

function ShowDiv (var_divName){
	document.getElementById(var_divName).style.display = "";
}
function HideDiv (var_divName){
	document.getElementById(var_divName).style.display = "none";
}

function SubmitFormToButton (var_button_name){
	if (window.event && (window.event.keyCode==13)) {
		var bt = document.getElementById(var_button_name);
		bt.click();
		return false;
	}
}

function CompletaComZero( number , len ){
	var result = '';
	var num, i;
	number = number.toString();

	for ( i = 0 ; i < number.length ; i++ ){
		try{
			num = parseInt( number.substring( i, i + 1 ) );
			result += num;
		}catch (exception){ }
	}
	if ( result.length != len ){
		// Complet with zeros
		result = '000000000000000' + result;
		var newLen = result.length;
		result = result.substring ( newLen - len , newLen );
	}
	
	return result;
}

function TiraZero( number ){
	number = number.toString();

	if ( number.length > 0 )
		while ( number.substring( 0 , 1) == "0" )
			number = number.substring( 1 , number.length );
	
	return(number);
}

// onKeyup="autotab(this, document.sampleform.second)"
function AutoTab(original,destination){
	if (original.getAttribute&&original.value.length==original.getAttribute("maxlength"))
		destination.focus()
}

function isNumberKeyPress (e) { 
	var codigo = (isIE) ? window.event.keyCode : e.which;
	
	// se diferente de numero
	if ((codigo<48) || (codigo>57)) {
		if ((codigo!=0) && (codigo!=8)) {
			return false;
		}
	}
	
	return true;
}

function isAlfaPuro(e){
	var codigo = (isIE) ? window.event.keyCode : e.which;

	if (codigo == 32){
		return true;
	}
	return /^[a-zA-Z]+$/.test(String.fromCharCode(codigo));
}

function ajustar_data(e){
   // Insere as barras ao digitar a data
   // Uso: onKeyPress="return ajustar_data(event)"

   var codigo = (isIE) ? window.event.keyCode : e.which;
   var obj = (isIE) ? event.srcElement : e.target;
   
   if (codigo==8) return true;
   if ((codigo<48)||(codigo>57)){
        return false; 
   } else { 
        if ((obj.value.length==2)||(obj.value.length==5))
             obj.value=obj.value + "/" ;
   }
}

function ValidaData(dt){
  // Verifica se a data é válida  ? true:false
  // A data deve ser informada na forma dd/mm/aaaa
  // Uso: ValidaData(form.campo.value)
  var d, m, a, ret;
  if (dt.length<10) return false;
  d=parseFloat(dt.substring(0, 2));
  m=parseFloat(dt.substring(3, 5));
  a=parseFloat(dt.substring(6, 10));
  if (isNaN(d) || isNaN(m) || isNaN(a)) return false;
  if (d<1 || d>31 || m<1 || m>12 || a<1900) return false;
  ret = true;
  if (m==2){
     if (d>29) ret = false;
     if ( a % 4 != 0 && d>28 ){// fevereiro so pode ter dia 29 se a divisao do ano por 4 for zero
        ret = false;
     }
   }
   if (m==4 || m==6 || m==9 || m==11){ // estes meses sao de 30 dias
      if (d>30) ret = false;
   }
  //Tudo OK
  return ret;
}

function FormataValor(objeto,teclapres,tammax,decimais) 
//Formata entrada de valores, em formato REAL, ex: 1.234,56
//Como usar: onKeyDown="FormataValor(this,event,17,2);" 
{
	var tecla			= teclapres.keyCode;
	var tamanhoObjeto	= objeto.value.length;
	var var_neg			= false;
	if ((tecla == 8) && (tamanhoObjeto == tammax))
	{
		tamanhoObjeto = tamanhoObjeto - 1 ;
	}
    if (( tecla == 189 || tecla == 109 || tecla == 8 || tecla == 88 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ) && ((tamanhoObjeto+1) <= tammax))
	{
		if (objeto.value.indexOf("-")>-1) var_neg = true;

		vr	= objeto.value;
		vr	= vr.replace( "/", "" );
		vr	= vr.replace( "/", "" );
		vr	= vr.replace( ",", "" );
		vr	= vr.replace( ".", "" );
		vr	= vr.replace( ".", "" );
		vr	= vr.replace( ".", "" );
		vr	= vr.replace( ".", "" );
		vr	= vr.replace( "-", "" );
		tam	= vr.length;
		if (tam < tammax && tecla != 8)
		{
			tam = vr.length + 1 ;
		}
		if ((tecla == 8) && (tam > 1))
		{
			tam = tam - 1 ;
			vr = objeto.value;
			vr = vr.replace( "/", "" );
			vr = vr.replace( "/", "" );
			vr = vr.replace( ",", "" );
			vr = vr.replace( ".", "" );
			vr = vr.replace( ".", "" );
			vr = vr.replace( ".", "" );
			vr = vr.replace( ".", "" );
			vr = vr.replace( "-", "" );
		}
		if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 )
		{
			if (decimais > 0)
			{
				if ( (tam <= decimais) )
				{ 
					objeto.value = ("0," + vr) ;
				}
				if( (tam == (decimais + 1)) && (tecla == 8))
				{
					objeto.value = vr.substr( 0, (tam - decimais)) + ',' + vr.substr( tam - (decimais), tam ) ;	
				}
				if ( (tam > (decimais + 1)) && (tam <= (decimais + 3)) &&  ((vr.substr(0,1)) == "0"))
				{
					objeto.value = vr.substr( 1, (tam - (decimais+1))) + ',' + vr.substr( tam - (decimais), tam ) ;
				}
				if ( (tam > (decimais + 1)) && (tam <= (decimais + 3)) &&  ((vr.substr(0,1)) != "0"))
				{
				    objeto.value = vr.substr( 0, tam - decimais ) + ',' + vr.substr( tam - decimais, tam ) ; 
				}
				if ( (tam >= (decimais + 4)) && (tam <= (decimais + 6)) )
				{
			 		objeto.value = vr.substr( 0, tam - (decimais + 3) ) + '.' + vr.substr( tam - (decimais + 3), 3 ) + ',' + vr.substr( tam - decimais, tam ) ;
				}
			 	if ( (tam >= (decimais + 7)) && (tam <= (decimais + 9)) )
				{
			 		objeto.value = vr.substr( 0, tam - (decimais + 6) ) + '.' + vr.substr( tam - (decimais + 6), 3 ) + '.' + vr.substr( tam - (decimais + 3), 3 ) + ',' + vr.substr( tam - decimais, tam ) ;
				}
				if ( (tam >= (decimais + 10)) && (tam <= (decimais + 12)) )
				{
			 		objeto.value = vr.substr( 0, tam - (decimais + 9) ) + '.' + vr.substr( tam - (decimais + 9), 3 ) + '.' + vr.substr( tam - (decimais + 6), 3 ) + '.' + vr.substr( tam - (decimais + 3), 3 ) + ',' + vr.substr( tam - decimais, tam ) ;
				}
				if ( (tam >= (decimais + 13)) && (tam <= (decimais + 15)) )
				{
			 		objeto.value = vr.substr( 0, tam - (decimais + 12) ) + '.' + vr.substr( tam - (decimais + 12), 3 ) + '.' + vr.substr( tam - (decimais + 9), 3 ) + '.' + vr.substr( tam - (decimais + 6), 3 ) + '.' + vr.substr( tam - (decimais + 3), 3 ) + ',' + vr.substr( tam - decimais, tam ) ;
				}
			}
			else if(decimais == 0)
			{
				if ( tam <= 3 )
				{ 
			 		objeto.value = vr ;
				}
				if ( (tam >= 4) && (tam <= 6) )
				{
					if(tecla == 8)
					{
						objeto.value = vr.substr(0, tam);
						window.event.cancelBubble = true;
						window.event.returnValue = false;
					}
					objeto.value = vr.substr(0, tam - 3) + '.' + vr.substr( tam - 3, 3 ); 
				}
				if ( (tam >= 7) && (tam <= 9) )
				{
					if(tecla == 8)
					{
						objeto.value = vr.substr(0, tam);
						window.event.cancelBubble = true;
						window.event.returnValue = false;
					}
					objeto.value = vr.substr( 0, tam - 6 ) + '.' + vr.substr( tam - 6, 3 ) + '.' + vr.substr( tam - 3, 3 ); 
				}
				if ( (tam >= 10) && (tam <= 12) )
				{
			 		if(tecla == 8)
					{
						objeto.value = vr.substr(0, tam);
						window.event.cancelBubble = true;
						window.event.returnValue = false;
					}
					objeto.value = vr.substr( 0, tam - 9 ) + '.' + vr.substr( tam - 9, 3 ) + '.' + vr.substr( tam - 6, 3 ) + '.' + vr.substr( tam - 3, 3 ); 
				}

				if ( (tam >= 13) && (tam <= 15) )
				{
					if(tecla == 8)
					{
						objeto.value = vr.substr(0, tam);
						window.event.cancelBubble = true;
						window.event.returnValue = false;
					}
					objeto.value = vr.substr( 0, tam - 12 ) + '.' + vr.substr( tam - 12, 3 ) + '.' + vr.substr( tam - 9, 3 ) + '.' + vr.substr( tam - 6, 3 ) + '.' + vr.substr( tam - 3, 3 ) ;
				}			
			}
		}
		if (var_neg)
		{
			objeto.value = objeto.value.replace( "-", "" );
			objeto.value = "-"+ objeto.value;
		}
	}
	else if((window.event.keyCode != 8) && (window.event.keyCode != 9) && (window.event.keyCode != 13) && (window.event.keyCode != 35) && (window.event.keyCode != 36) && (window.event.keyCode != 46))
		{
			window.event.cancelBubble = true;
			window.event.returnValue = false;
		}
}

function formataCNPJ(cp) {
	if ((event.keyCode<48) || (event.keyCode>57))
		return false;
	else{
		var v = cp.value;
		var maxlen = 18;
		
		if (v.length>=maxlen)
			return false;
		if (v.length==2 || v.length==6)
			cp.value = v +'.';
		else if (v.length==10)
			cp.value = v +'/';
		else if (v.length==15)
			cp.value = v +'-';
	}
}

//valida o CNPJ digitado
function ValidarCNPJ(ObjCnpj){
    var cnpj = ObjCnpj.value;
    var valida = new Array(6,5,4,3,2,9,8,7,6,5,4,3,2);
    var dig1= new Number;
    var dig2= new Number;
    
    exp = /\.|\-|\//g
    cnpj = cnpj.toString().replace( exp, "" ); 
    var digito = new Number(eval(cnpj.charAt(12)+cnpj.charAt(13)));
        
    for(i = 0; i<valida.length; i++){
        dig1 += (i>0? (cnpj.charAt(i-1)*valida[i]):0);    
        dig2 += cnpj.charAt(i)*valida[i];    
    }
    dig1 = (((dig1%11)<2)? 0:(11-(dig1%11)));
    dig2 = (((dig2%11)<2)? 0:(11-(dig2%11)));
    
    if(((dig1*10)+dig2) != digito)    
        return false;
		
	return true;
        
}

function formataCPF(cp) {
	if ((event.keyCode<48) || (event.keyCode>57))
		return false;
	else{
		var v = cp.value;
		var maxlen = 14;
		
		if (v.length>=maxlen)
			return false;
		if (v.length==3 || v.length==7)
			cp.value = v +'.';
		else if (v.length==11)
			cp.value = v +'-';
	}
}

//valida o CPF digitado
function ValidarCPF(Objcpf){
	var numeros, digitos, soma, i, resultado, digitos_iguais;
	var cpf = Objcpf.value;
	digitos_iguais = 1;

	exp = /\.|\-/g
	cpf = cpf.toString().replace( exp, "" ); 

	if (cpf.length < 11)
		return false;

	if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999")
		return false;

	for (i = 0; i < cpf.length - 1; i++)
		if (cpf.charAt(i) != cpf.charAt(i + 1)){
			digitos_iguais = 0;
			break;
		}
	if (!digitos_iguais){
		numeros = cpf.substring(0,9);
		digitos = cpf.substring(9);
		soma = 0;
		for (i = 10; i > 1; i--)
			soma += numeros.charAt(10 - i) * i;
		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
		if (resultado != digitos.charAt(0))
			return false;
		numeros = cpf.substring(0,10);
		soma = 0;
		for (i = 11; i > 1; i--)
			soma += numeros.charAt(11 - i) * i;
		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
		if (resultado != digitos.charAt(1))
			return false;
		return true;
	}else
		return false;
}

function checkMail(mail){
    var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
    if(typeof(mail) == "string"){
        if(er.test(mail)){ return true; }
    }else if(typeof(mail) == "object"){
        if(er.test(mail.value)){ 
                    return true; 
                }
    }else{
        return false;
        }
}

function formataString(campo, mask, evt) {
 /*
 onkeypress="return formataString(this,'???.???.???-??',Event)"
 o caracter '?' define que só será permitido números
 o caracter '!' define que só será permitido caracter
 */
 if(document.all) { // Internet Explorer
    key = evt.keyCode; }
    else{ // Nestcape
       key = evt.which;
     }

if (key == 8) {
return true;
}

 string = campo.value;  
 i = string.length;

 if (i < mask.length) {
  if (mask.charAt(i) == '?') {
       return (key > 47 && key < 58);
      } else {
       if (mask.charAt(i) == '!') {  return true;  }
   for (c = i; c < mask.length; c++) {
         if (mask.charAt(c) != '?' && mask.charAt(c) != '!')
         campo.value = campo.value + mask.charAt(c);
      else if (mask.charAt(c) == '!'){
                return true;
       } else {
         return (key > 47 && key < 58);
          }
       }
    }
  } else return false;
}

function isValidCreditCardNumber(cardNumber, cardType){
	/*
	cardNumber = numero do cartão
	cardType = { mastercard , visa , amex }
	*/
    var isValid = false;
    var ccCheckRegExp = /[^\d ]/;
    isValid = !ccCheckRegExp.test(cardNumber);
    if (isValid){
        var cardNumbersOnly = cardNumber.replace(/ /g,"");
        var cardNumberLength = cardNumbersOnly.length;
        var lengthIsValid = false;
        var prefixIsValid = false;
        var prefixRegExp;
    switch(cardType){
        case "mastercard":
            lengthIsValid = (cardNumberLength == 16);
            prefixRegExp = /^5[1-5]/;
        break;
        case "visa":
            lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
            prefixRegExp = /^4/;
        break;
        case "amex":
            lengthIsValid = (cardNumberLength == 15);
            prefixRegExp = /^3(4|7)/;
        break;
        default:
            prefixRegExp = /^$/;
            alert("Card type not found");
    }

    prefixIsValid = prefixRegExp.test(cardNumbersOnly);
    isValid = prefixIsValid && lengthIsValid;
    }
    if (isValid){
        var numberProduct;
        var numberProductDigitIndex;
        var checkSumTotal = 0;
        for (digitCounter = cardNumberLength - 1; digitCounter >= 0; digitCounter--){
            checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
            digitCounter--;
            numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
            for (var productDigitCounter = 0; productDigitCounter < numberProduct.length; productDigitCounter++){
                checkSumTotal += parseInt(numberProduct.charAt(productDigitCounter));
            }
        }
        isValid = (checkSumTotal % 10 == 0);
    }

    return isValid;
}

function MostraCombo()
{
qtdSelect = document.getElementsByTagName("select");
for (i = 0; i < qtdSelect.length; i++)
{
    objSelect = qtdSelect[i];
    objSelect.style.visibility = "visible";
   }
}

function EscondeCombo()
{
qtdSelect = document.getElementsByTagName("select");
for (i = 0; i < qtdSelect.length; i++)
{
    objSelect = qtdSelect[i];
    objSelect.style.visibility = "hidden";
   }
}

function IsDominio(e){
	var codigo = (isIE) ? window.event.keyCode : e.which;
	// 48 - 57  =  digitos
	// 97 - 122  =  alpha MIN
	// 65 - 90  =  alpha MAI
	// 0,8,127  =  delete
	// 45  =  -
	if ((codigo>=48 && codigo<=57) || (codigo>=97 && codigo<=122) || (codigo>=65 && codigo<=90) || (codigo==0) || (codigo==8) || (codigo==127) || (codigo==45) ) {
		return true;
	}else{
		return false;
	}
}

function checkDomain(nname)
{
var arr = new Array(
'.com','.net','.org','.biz','.coop','.info','.museum','.name',
'.pro','.edu','.gov','.int','.mil','.ac','.ad','.ae','.af','.ag',
'.ai','.al','.am','.an','.ao','.aq','.ar','.as','.at','.au','.aw',
'.az','.ba','.bb','.bd','.be','.bf','.bg','.bh','.bi','.bj','.bm',
'.bn','.bo','.br','.bs','.bt','.bv','.bw','.by','.bz','.ca','.cc',
'.cd','.cf','.cg','.ch','.ci','.ck','.cl','.cm','.cn','.co','.cr',
'.cu','.cv','.cx','.cy','.cz','.de','.dj','.dk','.dm','.do','.dz',
'.ec','.ee','.eg','.eh','.er','.es','.et','.fi','.fj','.fk','.fm',
'.fo','.fr','.ga','.gd','.ge','.gf','.gg','.gh','.gi','.gl','.gm',
'.gn','.gp','.gq','.gr','.gs','.gt','.gu','.gv','.gy','.hk','.hm',
'.hn','.hr','.ht','.hu','.id','.ie','.il','.im','.in','.io','.iq',
'.ir','.is','.it','.je','.jm','.jo','.jp','.ke','.kg','.kh','.ki',
'.km','.kn','.kp','.kr','.kw','.ky','.kz','.la','.lb','.lc','.li',
'.lk','.lr','.ls','.lt','.lu','.lv','.ly','.ma','.mc','.md','.mg',
'.mh','.mk','.ml','.mm','.mn','.mo','.mp','.mq','.mr','.ms','.mt',
'.mu','.mv','.mw','.mx','.my','.mz','.na','.nc','.ne','.nf','.ng',
'.ni','.nl','.no','.np','.nr','.nu','.nz','.om','.pa','.pe','.pf',
'.pg','.ph','.pk','.pl','.pm','.pn','.pr','.ps','.pt','.pw','.py',
'.qa','.re','.ro','.rw','.ru','.sa','.sb','.sc','.sd','.se','.sg',
'.sh','.si','.sj','.sk','.sl','.sm','.sn','.so','.sr','.st','.sv',
'.sy','.sz','.tc','.td','.tf','.tg','.th','.tj','.tk','.tm','.tn',
'.to','.tp','.tr','.tt','.tv','.tw','.tz','.ua','.ug','.uk','.um',
'.us','.uy','.uz','.va','.vc','.ve','.vg','.vi','.vn','.vu','.ws',
'.wf','.ye','.yt','.yu','.za','.zm','.zw');

var mai = nname;
var val = true;

var dot = mai.lastIndexOf(".");
var dname = mai.substring(0,dot);
var ext = mai.substring(dot,mai.length);
//alert(ext);
	
if(dot>2 && dot<57)
{
	for(var i=0; i<arr.length; i++)
	{
	  if(ext == arr[i])
	  {
	 	val = true;
		break;
	  }	
	  else
	  {
	 	val = false;
	  }
	}
	if(val == false)
	{
		 return false;
	}
	else
	{
		for(var j=0; j<dname.length; j++)
		{
		  var dh = dname.charAt(j);
		  var hh = dh.charCodeAt(0);
		  if((hh > 47 && hh<59) || (hh > 64 && hh<91) || (hh > 96 && hh<123) || hh==45 || hh==46)
		  {
			 if((j==0 || j==dname.length-1) && hh == 45)	
		  	 {
			      return false;
		 	 }
		  }
		else	{
			 return false;
		  }
		}
	}
}
else
{
 return false;
}	

return true;
}



