//ARRAY DE MESES
var meses = new Array('Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro');
//funcao auto tab
var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input,len, e) {
var keyCode = (isNN) ? e.which : e.keyCode; 
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
if(input.value.length >= len && !containsElement(filter,keyCode)) {
input.value = input.value.slice(0, len);
input.form[(getIndex(input)+1) % input.form.length].focus();
}
function containsElement(arr, ele) {
var found = false, index = 0;
while(!found && index < arr.length)
if(arr[index] == ele)
found = true;
else
index++;
return found;
}
function getIndex(input) {
var index = -1, i = 0, found = false;
while (i < input.form.length && index == -1)
if (input.form[i] == input)index = i;
else i++;
return index;
}
return true;
}




//FUNÇÕES COM DATA
function _montaDatas(num,dia,mes,ano){

         var oDia = "oDia" + num;
	  var oMes = "oMes" + num;
	  var oAno = "oAno" + num;

	  var sConteudo = "";
          sConteudo += "<input type='text' name=" + oDia + " value=" + dia + " size='2' maxlength='2'>";
          sConteudo += "<select id='oMes' name=" + oMes + "><option></option>";

          for (var i=0;i<meses.length;i++) {
              if (i == mes){
                 sConteudo += "<option value="+ mes +" selected>"+meses[mes]+"</option>";
              }
              else {
                   sConteudo += "<option value="+ i +">"+meses[i]+"</option>";
              }
          }

	  sConteudo += "</select>";

	  sConteudo += "<input type='text' name=" + oAno + " value=" + ano + " size='4' maxlength='4'>";

	  return (document.write(sConteudo));
  }

function _montaDatas1(num){

	  var oDia = "oDia" + num;
	  var oMes = "oMes" + num;
	  var oAno = "oAno" + num;

	  var sConteudo = "";

		sConteudo += "<input type='text' name=" + oDia + " size='2' maxlength='2'>";
		sConteudo += "<select id='oMes' name=" + oMes + " ><option></option>";

		for (var i=0;i<meses.length;i++) {
			sConteudo += "<option value="+[i]+">"+meses[i]+"</option>";
		}
		sConteudo += "</select>";

		sConteudo += "<input type='text' name=" + oAno + " size='4' maxlength='4'>";

	return (document.write(sConteudo));
}

//ARRAY DE ESTADOS
var uf = new Array('AC','AL','AP','AM','BA','CE','DF','ES','GO','MA','MT','MS','MG','PA','PB','PR','PE','PI','RJ','RN','RS','RO','RR','SC','SP','SE','TO');

function _montaestado(uf_escolhido){

         var sConteudo = "";

	 sConteudo += "<select id='Estado' name='Estado'><option></option>";

         for (var i=0;i<uf.length;i++) {

             if ( uf[i] == uf_escolhido ){
                sConteudo += "<option value="+ uf_escolhido +" selected>"+ uf_escolhido +"</option>";
             }
             else {
		sConteudo += "<option value="+ uf[i]+">"+uf[i]+"</option>";
             }
	}
	sConteudo += "</select>";

	return (document.write(sConteudo));
}

//FUNÇÕES PARA VALIDAÇÃO DO CADASTRO

 function validnasc(form,num)
   {
	  eval("myForm = document." + form);
	  //return true;

	  var oDia1 = myForm["oDia" + num];
	  var oMes1 = myForm["oMes" + num];
	  var oAno1 = myForm["oAno" + num];


   // Nascimento
   //--------------


	if ((myForm.oDia1.value == "")||(myForm.oMes1.selectedIndex == 0)||(myForm.oAno1.value == "")){
		alert("O campo Data de Nascimento deve ser preenchido.");
		myForm.oDia1.focus();
		return false;
	}
	if ((parseInt(myForm.oDia1.value,10) <=0) || (parseInt(myForm.oDia1.value,10) >31)) {
		alert("O dia é um número inválido.");
		myForm.oDia1.focus();
		return false;
	}
	//var selecionado = myForm.oMes1.value;  //Indice do mês
        var selecionado = (parseInt(myForm.oMes1.value,10)+1);  //Indice do mês
	if ( ((selecionado==4) || (selecionado==6) || (selecionado==9) || (selecionado==11)) && (parseInt(myForm.oDia1.value,10) >30)){
		alert("Dia inválido para o mês selecionado.");
		myForm.oMes1.focus();
		return false;
	}
	if ((selecionado==2) && (parseInt(myForm.oDia1.value,10) >29)) {
		alert("Dia inválido para o mês selecionado.");
		myForm.oDia1.focus();
		return false;
	}

	//Verifica se o ano possui 4 dígitos
	if(myForm.oAno1.value.length < 4){
		alert("O ano não possui 4 dígitos.");
		myForm.oAno1.focus();
		return false;
	}

	//Verifica se o ano é bissexto
	if (((parseInt(myForm.oAno1.value,10)%4!=0) ) && ((selecionado==2) && (parseInt(myForm.oDia1.value,10)==29))) {
		alert("O ano não é bissexto.");
		myForm.oAno1.focus();
		return false;
	}
	//Verifica se os valores digitados são números
	if (isNaN(myForm.oDia1.value) || isNaN(myForm.oAno1.value)) {
		alert("Digite somente dígitos no campo Data de Nascimento.");
		myForm.oDia1.focus();
		return false;
	}
	//----------
	// Fim da verificação da Data de Nascimento
	//----------
	return true
}

function ShowCep() {
  open('http://www.cep.com.br','ShowCep','location,resize, width=416,height=300,left=18,top=18,maximized=0,scrollbars=1');
}

function validProfile(form,url) {

      eval("myForm = document." + form);

       if ( (!(validlogin(form))) || (!(validnome(form))) || (!(validSexo(form))) || (!(check_cpf(myForm.CPF.value))) || (!(validtel(form))) || (!validtel2(form)) || (!validcel(form)) || (!validfax(form)) ||(!(validend(form))) || (!(validcity(form))) || (!(validcep(form))) || (!(validnasc("edit_profile","1"))) || (!(validEstado(form))) || (!(validEndNum(myForm))) )
       {
          return false
       }
       else {
           // Essa parte do código copia o valor dos campos fakes, para o do commerce

           // Essa parte, pega o conteúdo do select do estado
	   var nsel = myForm.Estado.selectedIndex;
	   var sconteudo = myForm.Estado.options[nsel].value;
	   // Fim- Estado
	   // Essa parte, pega o conteúdo do select do Mes
           var nsel1 = myForm.oMes1.selectedIndex;
           // Fim- Mes

	   // Essa parte, pega o conteúdo do select do Tipo do telefone 1
	   var nsel2 = myForm.Tipo_Telefone1_fake.selectedIndex;
	   var sconteudo2 = myForm.Tipo_Telefone1_fake.options[nsel2].value;
	   // Fim- Telefone1

	   // Essa parte, pega o conteúdo do select do Tipo do telefone 2
	   var nsel3 = myForm.Tipo_Telefone_2_fake.selectedIndex;
	   var sconteudo3 = myForm.Tipo_Telefone_2_fake.options[nsel3].value;
	   // Fim- Telefone2

	   // Essa parte, pega o conteúdo do select do Tipo do Endereco
	   var nsel4 = myForm.Tipo_end_fake.selectedIndex;
	   var sconteudo4 = myForm.Tipo_end_fake.options[nsel4].value;
	   // Fim- Endereco

           myForm.CPF.value = myForm.CPF.value;

	   myForm.ddd_tel1.value = myForm.ddd_tel1_fake.value;
	   myForm.Telefone1.value = myForm.Telefone1_fake.value;
	   myForm.Tipo_Telefone1.value = myForm.Tipo_Telefone1_fake.value;
	   myForm.Data_Nasc.value = myForm.oDia1.value + "/" + nsel1 + "/" + myForm.oAno1.value;

	   myForm.Telefone1.value = myForm.Telefone1_fake.value
	   myForm.Tipo_Telefone1.value = sconteudo2;

           myForm.Endereco.value = myForm.Endereco_fake.value;
	   myForm.Tipo_end.value = sconteudo4;

           myForm.ddd_tel2.value = myForm.ddd_tel2_fake.value;
	   myForm.Telefone2.value = myForm.Telefone2_fake.value;
	   myForm.Tipo_Telefone_2.value = sconteudo3;

           myForm.ddd_cel.value = myForm.ddd_cel_fake.value;
	   myForm.Celular.value = myForm.Celular_fake.value;

           myForm.ddd_fax.value = myForm.ddd_fax_fake.value;
 	   myForm.fax.value = myForm.fax_fake.value;

           myForm.Estado.value = sconteudo;
	   myForm.recmail.value = myForm.recmail.value;

      	  document.edit_profile.action = url;
	  document.edit_profile.submit();
       }
}

// CEP
function validcep(form){

         eval("myForm = document." + form);

	  // Verifica se esta vazio o mail

	  if( (isNaN(myForm.cep1_fake.value))|| (isNaN(myForm.cep2_fake.value)) ) {
		alert("O campo CEP deve conter somente números.");
		myForm.cep1_fake.focus();
		return false;
	  }
	  else {
		if (myForm.cep1_fake.value.length !=5) {
			alert("A primeira parte do CEP deve conter 5 números.");
			myForm.cep1_fake.focus();
			return false;
		}
		if (myForm.cep2_fake.value.length != 3){
			alert("A segunda parte do CEP deve conter 3 números.");
			myForm.cep2_fake.focus();
			return false;
		}
		myForm.CEP.value = myForm.cep1_fake.value + myForm.cep2_fake.value;
		return true;
	  }
}

function validEstado(form){

	  eval("myForm = document." + form);

	  // Verifica se esta vazio o mail

	  if (myForm.Estado.selectedIndex == 0) {
		 alert("Selecione um estado.");
		 myForm.Estado.focus();
		 return false;
	  }
	  else { return true }
}

function validSexo(form){

	  eval("myForm = document." + form);

	  if (myForm.Sexo.selectedIndex == 0) {
		 alert("Selecione um sexo.");
		 myForm.Sexo.focus();
		 return false;
	  }
	  else { return true }
}

function validcity(form){

	  eval("myForm = document." + form);

	  // Verifica se esta vazio o mail

	  if ( !(isNaN(myForm.Cidade.value)) || (myForm.Cidade.value.length < 2) ) {
		 alert("Por Favor, digite um nome válido para Cidade.");
		 myForm.Cidade.focus();
		 return false;
	  }
	  else { return true }
}

function validend(form){

	  eval("myForm = document." + form);

	  // Verifica se esta vazio o mail
	  if ( !(isNaN(myForm.Endereco_fake.value)) || (myForm.Endereco_fake.length < 2) || (myForm.Endereco_fake.value == "") ) {
          	 alert("Por Favor, digite um endereço válido.");
		 myForm.Endereco_fake.focus();
		 return false;
	  }
	  else { return true }
}

function validnome(form){

	  eval("myForm = document." + form);

	  // Verifica se esta vazio o nome
	  if ( !(isNaN(myForm.User_Name.value)) || (myForm.User_Name.value == "") ) {
		 //alert("Campo nome não pode ser vazio.");
		 myForm.User_Name.focus();
		 return false;
	  }
	  else { return true }
}

function validlogin(form){

	  eval("myForm = document." + form);

	  // Verifica se esta vazio o mail
	  if (( myForm.logon_name.value == "" ) || !(validmail2(form)) ) {
//		 alert("Campo login preenchido incorretamente.");
		 return false;
	  }
	  else { return true }
 }

function validtel(form){

	  eval("myForm = document." + form);

	  // Verifica se esta vazio o mail
	  if ( (isNaN(myForm.ddd_tel1_fake.value)) || (myForm.ddd_tel1_fake.value == "") ) {
		 alert("Campo DDD não pode ser vazio e deve conter somente números.");
		 myForm.ddd_tel1_fake.focus();
		 return false;
	  }
	  else{
		  if ( (isNaN(myForm.Telefone1_fake.value)) || (myForm.Telefone1_fake.value == "") ){
			 alert("Campo Telefone não pode ser vazio e deve conter somente números.");
			 myForm.Telefone1_fake.focus();
			 return false;
                  }
		  else {  return true }
	   }
}

function validEndNum(oForm) {
         if (oForm.end_numero.value == "") {
            alert("O campo número deve ser preenchido.");
            oForm.end_numero.focus();
            return false;
         }
         return true;
}

function validtel2(form){

	  eval("myForm = document." + form);

	  if ((myForm.ddd_tel2_fake.value == "") && (myForm.Telefone2_fake.value == "") ){
	  myForm.ddd_tel2.value = ""
	  myForm.Telefone2.value = ""
	  return true;
          }

	  if ( (isNaN(myForm.ddd_tel2_fake.value)) || (myForm.ddd_tel2_fake.value == "") ) {
		 alert("Campo DDD 2 não pode ser vazio e deve conter somente números.");
		 myForm.ddd_tel2_fake.focus();
		 return false;
	  }
	  else {
		  if ( (isNaN(myForm.Telefone2_fake.value)) || (myForm.Telefone2_fake.value == "") ){
			 alert("Campo Telefone 2 não pode ser vazio e deve conter somente números.");
			 myForm.Telefone2_fake.focus();
			 return false;
                  }
		  else { return true }
	   }
}

function validcel(form){

	  eval("myForm = document." + form);

          if ((myForm.ddd_cel_fake.value == "") && (myForm.Celular_fake.value == "") ){ return true; }

	  if ( (isNaN(myForm.ddd_cel_fake.value)) || (myForm.ddd_cel_fake.value == "") )
	  {
		 alert("Campo DDD do celular não pode ser vazio e deve conter somente números.");
		 myForm.ddd_cel_fake.focus();
		 return false;
	  }
	  else {
		  if ( (isNaN(myForm.Celular_fake.value)) || (myForm.Celular_fake.value == "") ){
			 alert("Campo Celular não pode ser vazio e deve conter somente números.");
			 myForm.Celular_fake.focus();
			 return false;
                  }
		  else { return true }
          }
}

function validfax(form){

	  eval("myForm = document." + form);

          if ((myForm.ddd_fax_fake.value == "") && (myForm.fax_fake.value == "") ){ return true; }

	  if ( (isNaN(myForm.ddd_fax_fake.value)) || (myForm.ddd_fax_fake.value == "") )
	  {
		 alert("Campo DDD do fax não pode ser vazio e deve conter somente números.");
		 myForm.ddd_fax_fake.focus();
		 return false;
	  }
	  else {
		  if ( (isNaN(myForm.fax_fake.value)) || (myForm.fax_fake.value == "") ){
                  	 alert("Campo fax não pode ser vazio e deve conter somente números.");
			 myForm.fax_fake.focus();
			 return false;
                  }
		  else { return true }
          }
}

// Mail
function validmail(form) {

  eval("myForm = document." + form);
  var field = myForm.email_address;
  var str = field.value;

  if (window.RegExp) {
    var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
    var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
    var reg1 = new RegExp(reg1str);
    var reg2 = new RegExp(reg2str);

    if (!reg1.test(str) && reg2.test(str)) {
      return true;
    }

    alert("O campo e-mail não foi preenchido corretamente.");

    field.focus();
    field.select();
    return false;
  } else {

    if(str.indexOf("@") >= 0)
      return true;
      alert("O campo e-mail não foi preenchido corretamente.");
    field.focus();
    field.select();
    return false;
  }
}

//Rogério, validação de e-mail passando o campo
function validmail2(form) {

  eval("myForm = document." + form);
  var field = myForm.logon_name;
  var str = field.value;

  if (window.RegExp) {
    var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
    var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
    var reg1 = new RegExp(reg1str);
    var reg2 = new RegExp(reg2str);

    if (!reg1.test(str) && reg2.test(str)) {
      return true;
    }

    alert("O campo Login(e-mail) não foi preenchido corretamente.");

    field.focus();
    field.select();
    return false;
  } else {

    if(str.indexOf("@") >= 0)
      return true;
      alert("O campo e-mail não foi preenchido corretamente.");
    field.focus();
    field.select();
    return false;
  }
}

// CPF
function check_cpf (numcpf) {

	x = 0;
	soma = 0;
	dig1 = 0;
	dig2 = 0;
	texto = "";
	numcpf1="";
	len = numcpf.length; x = len -1;

	if (len == 0) {
		alert("Por favor preencha o campo CPF/CNPJ.");
		return false;
	}

	if ((numcpf == "11111111111") || (numcpf == "22222222222") || (numcpf=="33333333333") ||(numcpf =="44444444444") || (numcpf =="55555555555") || (numcpf =="66666666666") || (numcpf =="77777777777") || (numcpf =="88888888888") || (numcpf =="99999999999") || (numcpf =="00000000000")){
		alert("CPF ou CNJP inválido !");
		return false;
}

	for (var i=0; i <= len - 3; i++) {
		y = numcpf.substring(i,i+1);
		soma = soma + ( y * x);
		x = x - 1;
		texto = texto + y;
	}

	dig1 = 11 - (soma % 11);
	if (dig1 == 10) dig1=0 ;
	if (dig1 == 11) dig1=0 ;
	numcpf1 = numcpf.substring(0,len - 2) + dig1 ;
	x = 11; soma=0;

	for (var i=0; i <= len - 2; i++) {
		soma = soma + (numcpf1.substring(i,i+1) * x);
		x = x - 1;
	}

	dig2= 11 - (soma % 11);
	if (dig2 == 10) dig2=0;
	if (dig2 == 11) dig2=0;

	if ((dig1 + "" + dig2) == numcpf.substring(len,len-2)) {
		//alert ("OK !!!");
		return true;
	}

	// CNPJ
	cgc = numcpf;
	if ((cgc.indexOf("-") != -1) || (cgc.indexOf(".") != -1) || (cgc.indexOf("/") != -1)){
		alert ("O campo CPF/CNPJ só pode conter números. ex.: (07882998112)");
		return false
	}
	var df, resto, dac = ""
	df = 5*cgc.charAt(0)+4*cgc.charAt(1)+3*cgc.charAt(2)+2*cgc.charAt(3)+9*cgc.charAt(4)+8*cgc.charAt(5)+7*cgc.charAt(6)+6*cgc.charAt(7)+5*cgc.charAt(8)+4*cgc.charAt(9)+3*cgc.charAt(10)+2*cgc.charAt(11)
	resto = df % 11
	dac += ( (resto <= 1) ? 0 : (11-resto) )
	df = 6*cgc.charAt(0)+5*cgc.charAt(1)+4*cgc.charAt(2)+3*cgc.charAt(3)+2*cgc.charAt(4)+9*cgc.charAt(5)+8*cgc.charAt(6)+7*cgc.charAt(7)+6*cgc.charAt(8)+5*cgc.charAt(9)+4*cgc.charAt(10)+3*cgc.charAt(11)+2*parseInt(dac)
	resto = df % 11
	dac += ( (resto <= 1) ? 0 : (11-resto) )

		if (!(dac == cgc.substring(cgc.length-2,cgc.length))){
		   alert("O CPF ou CNPJ estão incorretos !")
		   return false
		}

	return (dac == cgc.substring(cgc.length-2,cgc.length))
}

function abre() {
	var foto = window.open("","janela","width=350,height=360,resizable=no,toolbar=0,location=0,directories=0,status=no,menubar=0");
	setTimeout ("document.dados.submit();",10);
}

function Address(sform){

	  eval("myForm = document." + sform);

	  if (myForm.address_name.value == "" ) {
		 alert("O campo Nome do endereço não pode ser vazio.");
		myForm.address_name.focus();
		 return false;
	  }
	  
	  if (myForm.address_name.value.toUpperCase() == "PESSOAL" ) {
		 alert("O nome PESSOAL para endereço é exclusivo para seu cadastro.");
		myForm.first_name.focus();
		 return false;
	  }
	  if (myForm.first_name.value == "" ) {
		 alert("O campo Nome do Destinatário não pode ser vazio.");
		myForm.first_name.focus();
		 return false;
	  }
	  if (myForm.address_line1.value == "" ) {
		 alert("O campo Endereço não pode ser vazio.");
		myForm.address_line1.focus();
		 return false;
	  }
	  if (myForm.city.value == "" ) {
		 alert("O campo Cidade não pode ser vazio.");
		myForm.city.focus();
		 return false;
	  }
          
          if (myForm.last_name.value == "" ) {
		 alert("O campo Bairro não pode ser vazio.");
		myForm.last_name.focus();
		 return false;
	  }

	  if (myForm.region_name.selectedIndex == 0 ) {
		 alert("Por favor selecione um estado !");
		myForm.region_name.focus();
		 return false;
	  }

	  if ( (isNaN(myForm.postal_code.value)) || (myForm.postal_code.value.length > 8) || (myForm.postal_code.value.length < 8) || (myForm.postal_code.value == ""))
	  {
		 alert("Por Favor, digite apenas 8 números no campo CEP.");
		myForm.postal_code.focus();
		 return false;
	  }

	  myForm.submit();
}

function marca(valor) {

	var doc = document.forms['edit_profile'];

	if (valor != '') {
		if (valor == 'HTML') { doc.check.checked = true; doc.radio[0].checked = true; doc.recmail.value = 'HTML' }
		if (valor == 'TEXTO') { doc.check.checked = true; doc.radio[1].checked = true; doc.recmail.value = 'TEXTO' }
	}
}

function marca_check() {

	if (document.edit_profile.check.checked == false) {
		document.edit_profile.recmail.value = '0';
	}
	else {
		document.edit_profile.recmail.value = '1';
	}
}

function marca_check_catalog() {

	if (document.edit_profile.check_reccatalog.checked == false) {
		document.edit_profile.reccatalog.value = '0';
	}
	else {
		document.edit_profile.reccatalog.value = '1';
	}
}


function SimulaFrete(){
	if(validcep("fmSimulador")){
		document.fmSimulador.submit();
	}
		
}

function BuscaCatalogo(){
	codProd = document.busca_catalogo.keyword.value;
	Erro = false;
	if(codProd==""){
		alert("Preencha o Código do Produto");
		Erro = true;		
	}
	
	if(!Erro){
		if(isNaN(codProd)){
			alert("Preencha apenas números no Código do Produto");				
			Erro = true;		
		
		}
	}
	
	if(!Erro){
		if(codProd.length<7){
			alert("O Código do Produto deve ter 7 dígitos");						
			Erro = true;		
		}
	}
	
	if(Erro){
		document.busca_catalogo.keyword.value = "";
		document.busca_catalogo.keyword.focus();		
	}
	else{
		document.busca_catalogo.submit();
	}
	
}