function createXHR(){

    var request = false;

        try {
            request = new ActiveXObject('Msxml2.XMLHTTP');
        }

        catch (err2) {
            try {
                request = new ActiveXObject('Microsoft.XMLHTTP');
            }
            catch (err3) {
                try {
                        request = new XMLHttpRequest();
                }
                catch (err1)
                {
                        request = false;
                }
            }
        }

    return request;

}

function pop_up (name, url, width, height, scrollbars){

   var windowLeft = (screen.width - width) / 2;
   var windowTop = (screen.height - height) / 2;
   var windowProp = 'height=' +height+ ',width=' +width+ ',top=' +windowTop+ ',left=' +windowLeft+ ',scrollbars=' +scrollbars+ ',resizable=0,menubar=0,toolbar=0,location=0,statusbar=0,fullscreen=0';
   var obj_window = window.open (url, name, windowProp);

   if (parseInt(navigator.appVersion) >= 4) {
   obj_window.window.focus();
   }

}

function valida_email (email) {

   var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

   if(filter.test(email)){
   return true;
   }else{
   return false;
   }

}

function txt_box_format (objForm, strField, sMask, evtKeyPress) {

   var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

   if(document.all) { // Internet Explorer
   nTecla = evtKeyPress.keyCode;
   } else if(document.layers) { // Nestcape
   nTecla = evtKeyPress.which;
   } else {

      nTecla = evtKeyPress.which;
      if (nTecla == 8) {
      return true;
      }

   }

   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( " ", "" );
   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) { // backspace

      if (sMask.charAt(i-1) == "9") { // apenas números...
      return ((nTecla > 47) && (nTecla < 58));
      }else { // qualquer caracter...
      return true;
      }

   }else{
   return true;
   }

}

function validate_key_stroke (Input, control, upper){

   var newInput = '';

   for (i=0; i < Input.value.length;i++){

      chck=Input.value.charAt(i);

      if (control.indexOf(chck,0) != -1){
      newInput+=chck;
      }

   }

   if (upper == 'sim'){
   Input.value = newInput.toUpperCase() ;
   }else{
   Input.value = newInput;
   }

}

function contatos_envia (){

   var cont_nome = document.getElementById('cont_nome');
   var cont_email = document.getElementById('cont_email');
   var cont_mensagemc = document.getElementById('cont_mensagemc');
   var cont_part_sim = document.getElementById('cont_part_sim').checked;
   var cont_env = document.getElementById('cont_env');
   var mensagem_aguarde = '<div class="mensagem"><img src="/img/loading_big.gif" /><p class="tit aguarde">Aguarde</p><p class="desc">Enviando o seu formulário ...</p>';
   var mensagem_erro_geral = '<div class="mensagem"><img src="/img/erro.gif" /><p class="tit erro">Um erro ocorreu</p><p class="desc">Por favor, tente novamente mais tarde</p>';

   var erro = '';

   // Mensagem
   if (cont_mensagemc.value.length < 10){
   erro = 'Digite a sua mensagem';
   }

   // E-Mail
   if (!cont_email.value){
   erro = 'Informe o e-mail';
   }else{

      if (!valida_email(cont_email.value)){
      erro = 'E-mail inválido';
      }

   }

   // Nome
   if (cont_nome.value.length < 3){
   erro = 'Informe o seu nome';
   }

   if (erro){
   alert (erro);
   }else{

       var post_values = 'nome=' +cont_nome.value+ '&email=' +cont_email.value+ '&mensagem=' +cont_mensagemc.value;
       cont_env.innerHTML = mensagem_aguarde;

       if (cont_part_sim){
       post_values += '&newsletter=1';
       }

       var request = createXHR();

       request.onreadystatechange  = function(){

          if (request.readyState  == 4){

             if (request.status  == 200){
             cont_env.innerHTML = request.responseText;
             }else{
             cont_env.innerHTML = mensagem_erro_geral;
             }

          }

       }

       request.open ('POST', '/contatos',  true);
       request.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded');
       request.send (post_values);

   }

}

function newsletter_realiza (){

   var email_src = document.getElementById('email_src');
   var img_load = document.getElementById('newsletter_load');
   var erro = '';

   // E-Mail
   if (!email_src.value){
   erro = 'Informe o e-mail';
   }else{

      if (!valida_email(email_src.value)){
      erro = 'E-mail inválido';
      }

   }

   if (erro){
   alert (erro);
   }else{

       img_load.style.display = 'inline';
       var post_values = 'email=' +email_src.value;

       var request = createXHR();

       request.onreadystatechange  = function(){

          if (request.readyState  == 4){

             img_load.style.display = 'none';

             if (request.status  == 200){

                var resposta = request.responseText;

                if (resposta == 'ok'){
                alert ('Obrigado !\nSeu e-mail foi inserido ao nosso banco de dados com sucesso.');
                }

                if (resposta == 'repetido'){
                alert ('Seu e-mail já se encontra cadastrado em nosso banco de dados.');
                }

                if (resposta == 'erro'){
                alert ('Erro\nPor favor, tente novamente mais tarde');
                }

             }else{

                alert ('Erro\nPor favor, tente novamente mais tarde');

             }

          }

       }

       request.open ('POST', '/newsletter',  true);
       request.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded');
       request.send (post_values);

   }

}

function cadastro_realiza (){

   var cadform = document.cadastro_form;
   var cadastro_load = document.getElementById('cadastro_load');
   var erro = '';

   // Senha
   if (!cadform.senha.value || !cadform.senha_repete.value){
   erro = 'Informe a senha nos dois campos';
   }else{

      if (cadform.senha.value != cadform.senha_repete.value){
      erro = 'As senhas informadas não combinam';
      }else{

         if (cadform.senha.value.length < 5){
         erro = 'Senha com no mínimo 5 caracteres';
         }

      }

   }

   // Usuário
   if (cadform.usuario.value.length < 5){
   erro = 'O nome de usuário deve conter entre 5 e 15 caracteres';
   }

   // Telefone
   if (cadform.telefone.value.length < 5){
   erro = 'Informe o telefone (com DDD)';
   }

   // E-Mail
   if (!cadform.email.value){
   erro = 'Informe o e-mail';
   }else{

      if (!valida_email(cadform.email.value)){
      erro = 'O e-mail informado é inválido';
      }

   }

   // Nome do Contato
   if (cadform.contato_nome.value.length < 3){
   erro = 'Informe o nome do contato';
   }

   // Estado
   if (!cadform.estado.value){
   erro = 'Informe o estado';
   }

   // Cidade
   if (cadform.cidade.value.length < 3){
   erro = 'Informe a cidade';
   }

   // Nome da empresa
   if (cadform.nome.value.length < 3){
   erro = 'Informe o nome / empresa';
   }

   // CNPJ / CPF
   if (!cadform.cnpj.value){
   erro = 'Informe o CNPJ / CPF';
   }

   if (erro){

      alert (erro);

   }else{

      cadastro_load.style.display = 'inline';

      var post_values = 'acao=insere';

      for (x = 0; x < cadform.elements.length; x++){

          var nome = cadform.elements[x].name;
          var valor = cadform.elements[x].value;

          if (nome != 'newsletter'){
          post_values += '&' +nome+ '=' +valor;
          }else{

             if (cadform.newsletter[0].checked == true){
             post_values += '&newsletter=sim';
             }else{
             post_values += '&newsletter=nao';
             }

          }

      }

      var requestCad = createXHR();

      requestCad.onreadystatechange  = function(){

         if (requestCad.readyState  == 4){

            if (requestCad.status  == 200){

               cadastro_load.style.display = 'none';
               alert (requestCad.responseText);

            }else{

               // Erro
               cadastro_load.style.display = 'none';
               alert ('Um erro ocorreu. Por favor, tente novamente mais tarde');

            }

         }

      }

      requestCad.open ('POST', '/cadastro',  true);
      requestCad.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded');
      requestCad.send (post_values);

   }

}

function prod_altera_sec (valor){

   document.getElementById('select2').options.length = 0;

   for (x = 0; x < catpri[valor].length; x++){
   document.getElementById('select2').options[x] = new Option (catsec[catpri[valor][x]], catpri[valor][x], false, false);
   }

}

function prod_filtra (tipo){

   var cat_pri = document.getElementById('select1').value;
   var cat_sec = document.getElementById('select2').value;
   var query = document.getElementById('query').value;

   if (tipo == 'busca' && query.length < 3){

      alert ('Selecione um tipo de produto ou faça uma busca para filtrar os produtos');

   }else if (tipo == 'busca' && query.length >= 3){

      var get_values = '/produtos/browse///' +query;

      for (i = 0; i <  document.getElementById('select1').options.length; i++) {

           if (document.getElementById('select1').options[i].selected) {
           document.getElementById('select1').options[i].selected = false;
           }

      }

      for (i = document.getElementById('select2').length - 1; i>=0; i--){
      document.getElementById('select2').removeChild(document.getElementById('select2').options[i]);
      }

   }else if (tipo == 'lista' && !cat_pri && !cat_sec){

      alert ('Selecione um tipo de produto ou faça uma busca para filtrar os produtos');

   }else if (tipo == 'lista' && cat_pri && cat_sec){

      var get_values = '/produtos/browse/' +cat_pri+ '/' +cat_sec;

   }

   if (get_values){

      document.getElementById('resultado').innerHTML = '<img src="/img/aguarde.gif" /><p>Aguarde ...</p>';

      var request = createXHR();

      request.onreadystatechange  = function(){

         if (request.readyState  == 4){

            if (request.status  == 200){
            document.getElementById('resultado').innerHTML = request.responseText;
            }else{
            alert ('Um erro ocorreu. Por favor, tente novamente mais tarde');
            }

         }

      }

      request.open ('GET', get_values,  true);
      request.send ('NULL');

   }

}

function prod_thumb_muda (imagem){
document.getElementById('thumb_main').style.background = 'url(' +imagem+ ') center no-repeat';
}

function prod_zoom (imagem){
pop_up ('prod_zoom_window', imagem, 450, 450, 'no');
}

var ped_valor = 0;

function usrPedToggle (ID, limite){

   var valor = document.form_ped['pedido_item[' +ID+ ']'].value;
   var muda_li = document.getElementById('pedli_' +ID);

   if (valor <= limite){

      if (valor != 0){
      muda_li.style.background = '#FFFFFF';
      }else{
      muda_li.style.background = '#EAF3FA';
      }

   }else{

      alert ('A quantidade limite para este produto é de ' +limite+ ' unidades');
      document.form_ped['pedido_item[' +ID+ ']'].value = ped_valor;

   }

}


function usrPedRealiza (){

   var erro = 0;
   var formul = document.form_ped;
   var length = formul.length;
   var form_post = 'acao=insere&';
   var cadastro_load = document.getElementById('cadastro_load');

   for (x = 0; x < length; x++){


      if (formul[x].name != 'pedido_info' && formul[x].name != 'enviar' && formul[x].value){

         erro++;
         form_post += formul[x].name + '=' +formul[x].value + '&';

      }

   }

   if (!erro){
   alert ('Selecione ao menos um produto para realizar o orçamento');
   }else{

      form_post += 'pedido_info=' +formul.pedido_info.value;
      cadastro_load.style.display = 'inline';

      var requestPed = createXHR();

      requestPed.onreadystatechange  = function(){

         if (requestPed.readyState  == 4){

            if (requestPed.status  == 200){

               // requestFale.responseText
               cadastro_load.style.display = 'none';
               alert (requestPed.responseText);

            }else{

               cadastro_load.style.display = 'none';
               alert ('Um erro ocorreu ao tentar realizar o orçamento');

            }

         }

      }

      requestPed.open ('POST', '/usuario/orcamento',  true);
      requestPed.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded');
      requestPed.send (form_post);

   }

}

function usrPedAtualiza (ID){

      form_post = 'acao=atualiza&pedido_info=' +document.getElementById('pedido_info').value;
      cadastro_load.style.display = 'inline';

      var requestPed = createXHR();

      requestPed.onreadystatechange  = function(){

         if (requestPed.readyState  == 4){

            if (requestPed.status  == 200){

               // requestFale.responseText
               cadastro_load.style.display = 'none';
               alert (requestPed.responseText);

            }else{

               cadastro_load.style.display = 'none';
               alert ('Um erro ocorreu ao tentar realizar o orçamento');

            }

         }

      }

      requestPed.open ('POST', '/usuario/orcamentos/' +ID,  true);
      requestPed.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded');
      requestPed.send (form_post);

}
