var http = null;
var meuForm = null;

function verificaFormSoftware(form){
  var invalid = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
  var erro = '';
  var focou = false;
  var objFocus = null;
  meuForm = form;

  if(trim(form.nome.value).length <= 2){
    erro += "  - Seu Nome deve conter no mínimo 3 caracteres\n";
    form.nome.className = 'campo4';
    if(!focou){
      focou = true;
      objFocus = form.nome;
    }
  } else
    form.nome.className = 'campo2';
    
  if(invalid.test(form.email.value) == false) {
    erro += "  - Seu Endereço de E-mail é inválido\n";
    form.email.className = 'campo4';
    if(!focou){
      focou = true;
      objFocus = form.email;
    }
  } else 
    form.email.className='campo2';

  if(trim(form.telefone.value).length > 0 && trim(form.telefone.value).length < 14){
    erro += "  - Seu telefone deve estar no formato (XX) XXXX-XXXX\n";
    form.telefone.className = 'campo4';
    if(!focou){
      focou = true;
      objFocus = form.telefone;
    }
  } else
    form.telefone.className = 'campo2';

  if(trim(form.endereco.value).length <= 4){
    erro += "  - Seu Endereço deve conter no mínimo 5 caracteres\n";
    form.endereco.className = 'campo4';
    if(!focou){
      focou = true;
      objFocus = form.endereco;
    }
  } else
    form.endereco.className = 'campo2';

  if(trim(form.numero.value).length == 0){
    erro += "  - Seu número (Endereço)\n";
    form.numero.className = 'campo4';
    if(!focou){
      focou = true;
      objFocus = form.numero;
    }
  } else
    form.numero.className = 'campo2';

  if(trim(form.cep.value).length != 9){
    erro += "  - Seu CEP deve estar no formato XXXXX-XXX\n";
    form.cep.className = 'campo4';
    if(!focou){
      focou = true;
      objFocus = form.cep;
    }
  } else
    form.cep.className = 'campo2';

  if(trim(form.bairro.value).length <= 2){
    erro += "  - Seu Bairro deve conter no mínimo 3 caracteres\n";
    form.bairro.className = 'campo4';
    if(!focou){
      focou = true;
      objFocus = form.bairro;
    }
  } else
    form.bairro.className = 'campo2';

  if(trim(form.cidade.value).length <= 2){
    erro += "  - Sua Cidade deve conter no mínimo 3 caracteres\n";
    form.cidade.className = 'campo4';
    if(!focou){
      focou = true;
      objFocus = form.cidade;
    }
  } else
    form.cidade.className = 'campo2';

  if(trim(form.login.value).length <= 2){
    erro += "  - Seu Login deve conter no mínimo 3 caracteres\n";
    form.login.className = 'campo4';
    if(!focou){
      focou = true;
      objFocus = form.login;
    }
  } else
    form.login.className = 'campo2';

  if(trim(form.senha.value).length <= 2){
    erro += "  - Sua Senha deve conter no mínimo 3 caracteres\n";
    form.senha.className = 'campo4';
    if(!focou){
      focou = true;
      objFocus = form.senha;
    }
  } else
    form.senha.className = 'campo2';

  if(form.senha.value != form.csenha.value){
    erro += "  - Senhas não conferem\n";
    form.csenha.className = 'campo4';
    if(!focou){
      focou = true;
      objFocus = form.csenha;
    }
  } else
    form.csenha.className = 'campo2';

  if(erro!=''){
    alert("Corrija o(s) seguinte(s) erro(s):\n" + erro);
    objFocus.focus();
  } else {
    verificaLogin(trim(form.login.value));
    //form.envia.disabled = true;
  }
  return false;
}

function cria(){
  var newObj = null;
  //verificando compatibilidade com mozilla, safari...
  if(window.XMLHttpRequest){

    newObj = new XMLHttpRequest();
    if(newObj.overrideMimeType)
      newObj.overrideMimeType("text/html;charset=iso-8859-1");

  } else if (window.ActiveXObject){ // Micro$oft IE

    try{
      newObj = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (exc){
      try{
        newObj = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (exc2) {
      }
    }

  }

  return newObj;
}

function handler(){
  //completo
  if(http.readyState == 4){
    if(http.status == 200){
      document.getElementById('retornoServidor').innerHTML = http.responseText;
      retorno();
    } else {
      alert("Houve algum problema ao obter os dados do servidor:\n" + http.statusText);
    }
  }
}

function retorno(){
  if(meuForm == null || meuForm == 'undefined')
    if(document.getElementById('mForm') != null && document.getElementById('mForm') != 'undefined')
      meuForm = document.getElementById('mForm');
    else
     return false;
  if(trim(meuForm.retorno.value).length == 0){
    meuForm.envia.disabled = true;
    meuForm.submit();
	} else {
    var obj;

    //destacar os campos corretos
    obj = document.getElementById('camposCorretos');
    if(obj!=null && obj!='undefined' && trim(obj.value).length > 0){
      var camposCorretos = obj.value.split(',');
      for(var i=0; i<camposCorretos.length; i++)
        document.getElementById(camposCorretos[i]).className = 'campo2';
    }

    //destacar os campos errados
    obj = document.getElementById('camposIncorretos');
    if(obj!=null && obj!='undefined' && trim(obj.value).length > 0){
      var camposIncorretos = obj.value.split(',');
      for(var i=0; i<camposIncorretos.length; i++)
        document.getElementById(camposIncorretos[i]).className = 'campo4';
    }

    alert("Ocorreu(ram) algun(s) erro(s):\n" + meuForm.retorno.value);

    obj = document.getElementById(meuForm.foco.value)
    if(trim(meuForm.foco.value).length > 0 && obj!=null && obj!='undefined')
      obj.focus();
  }
}

function verificaLogin(strLogin){
  http = cria();

  if(http == null){
     alert("Seu browser não suporta a tecnologia empregada nesta página. Por favor, utilize a página de contato para que seu cadastro possa ser feito pelo administrador do site.");
  } else {

    http.onreadystatechange = handler;
    http.open("GET", "softwareVerificaLogin.php?login="+strLogin, true);
    http.send(null);

  }
}

function verificaFormSoftwareLogin(form){
  var erro = '';
  var focou = false;
  var objFocus = null;

  if(trim(form.login.value).length <= 2){
    erro += "  - Seu Login deve conter no mínimo 3 caracteres\n";
    form.login.className = 'campo4';
    if(!focou){
      focou = true;
      objFocus = form.login;
    }
  } else
    form.login.className = 'campo2';

  if(trim(form.senha.value).length <= 2){
    erro += "  - Sua Senha deve conter no mínimo 3 caracteres\n";
    form.senha.className = 'campo4';
    if(!focou){
      focou = true;
      objFocus = form.senha;
    }
  } else
    form.senha.className = 'campo2';

  if(erro!=''){
    alert("Corrija o(s) seguinte(s) erro(s):\n" + erro);
    objFocus.focus();
    return false;
  } else {
    form.envia.disabled = true;
    return true;
  }
}