var inputs = document.getElementsByTagName("input");
var selects = document.getElementsByTagName("select");
var fields = document.getElementsByTagName("fieldset");
var textareas = document.getElementsByTagName("textarea");
var domainOK = false;

function showHideTip() {
    document.getElementById("labelSaldo").style.display == "block" ? hideTip() : showTip();
}


function hideTip() {
    document.getElementById("labelSaldo").style.display = "none";
    document.getElementById("saldo").style.height = "15px";
    document.getElementById("btTip").src = "/templates/padrao/images/c.gif";
}


function showTip() {
    document.getElementById("labelSaldo").style.display = "block";
    document.getElementById("saldo").style.height = "135px";
    document.getElementById("btTip").src = "/templates/padrao/images/e.gif";
}


function setAttributes() {
    iniciar();
    for (var x = 0; x < inputs.length; x++) {
        inputs[x].setAttribute("onfocus", "fieldFocus(this)");
        inputs[x].setAttribute("onblur", "fieldBlur(this)");
    }
    for (var x = 0; x < selects.length; x++) {
        selects[x].setAttribute("onfocus", "fieldFocus(this)");
        selects[x].setAttribute("onblur", "fieldBlur(this)");
    }
    for (var x = 0; x < fields.length; x++) {
        fields[x].setAttribute("onclick", "fieldFocus(this)");
    }
    for (var x = 0; x < textareas.length; x++) {
        textareas[x].setAttribute("onfocus", "fieldFocus(this)");
        textareas[x].setAttribute("onblur", "fieldBlur(this)");
    }
}


function fieldFocus(obj) {
    for (var x = 0; x < fields.length; x++) {
        fields[x].className = fields[x] == obj ? "selected" : "noSelected";
    }
    obj.tagName == "FIELDSET" ? (obj.className = "selected") : fieldFocus(obj.parentNode);
}


function fieldBlur(obj) {
    obj.tagName == "FIELDSET" ? (obj.className = "noSelected") : fieldBlur(obj.parentNode);
}

validar_dominio = {params:function () {return {dominio:document.getElementsByTagName("input").host.value, extensao:$F("extensao")};}, cb:function (originalRequest) {erro = originalRequest.responseText;if (erro == -1) {alert("Voc\xEA precisa digitar o nome do dominio antes de continuar");domainOK = false;}if (erro == 0 || document.getElementById("tipo_dominio_2").checked) {domainOK = true;alerta = document.getElementById("validar_dominio_erro1");alerta.className = "displayOff";alerta = document.getElementById("validar_dominio_erro2");alerta.className = "displayOff";alerta = document.getElementById("validar_dominio_ok");alerta.className = "displayOn";if (document.getElementById("tipo_dominio_1").checked) {alerta.className = "displayOn";} else {alerta.className = "displayOff";}} else {alerta = document.getElementById("validar_dominio_ok");alerta.className = "displayOff";alerta = document.getElementById("validar_dominio_erro" + erro);alerta.className = "displayOn";domainOK = false;}}};
valores = new Array;
valor = {params:function () {return {dominio:document.getElementsByTagName("input").host.value, extensao:$F("extensao"), codigo_plano:$F("codigo_plano"), periodo:get_radio(document.forms[0].elements.periodo), dia_vencimento:$F("dia_vencimento")};}, cb:function (originalRequest) {resp = originalRequest.responseText;if (resp != -1) {r = resp.split("|");if (r[1] != "-1") {document.getElementById(r[1]).innerHTML = r[2] + "<br>";valores[r[1]] = parseFloat(r[0]);} else {document.getElementById("valor_registro").innerHTML = "";valores.valor_registro = 0;}if (r[3] != "-1") {document.getElementById(r[4]).innerHTML = r[5] + "<br>";valores[r[4]] = parseFloat(r[3]);} else {document.getElementById("valor_hospedagem").innerHTML = "";valores.valor_hospedagem = 0;}if (r[7] != "-1" && r[6] != 0) {document.getElementById(r[7]).innerHTML = r[8] + "<br>";valores[r[7]] = parseFloat(r[6]);} else {document.getElementById("valor_desconto_periodo").innerHTML = "";valores.valor_desconto_periodo = 0;}if (r[9] != "-1") {document.getElementById(r[10]).innerHTML = r[11] + "<br>";valores[r[10]] = parseFloat(r[9]);} else {document.getElementById("valor_ajuste_dias").innerHTML = "";valores.valor_ajuste_dias = 0;}if (r[12] != "-1") {document.getElementById(r[13]).innerHTML = r[14] + "<br>";valores[r[13]] = parseFloat(r[12]);} else {document.getElementById("valor_setup").innerHTML = "";valores.valor_setup = 0;}calcular_valor();}}};




function calcular_valor() {
    if (document.getElementById("tipo_dominio_2").checked) {
        valores.valor_registro = 0;
        document.getElementById("valor_registro").innerHTML = "";
    }
    valor_total = 0;
    valor_total += parseFloat(valores.valor_registro);
    valor_total += parseFloat(valores.valor_hospedagem);
    valor_total += parseFloat(valores.valor_desconto_periodo);
    valor_total += parseFloat(valores.valor_ajuste_dias);
    valor_total += parseFloat(valores.valor_setup);
    valor_total = valor_total.toFixed(2);
    document.getElementById("div_valor_total").innerHTML = "R$" + valor_total.replace(".", ",");
    document.getElementById("saldo").style.display = "block";
}


function changeIsento(obj) {
    if (obj.checked) {
        document.getElementById("inscricao_estadual").disabled = true;
        document.getElementById("inscricao_estadual").value = "isento";
    } else {
        document.getElementById("inscricao_estadual").disabled = false;
        document.getElementById("inscricao_estadual").value = "";
    }
}


function changeOnde(obj) {
    var onde_complemento = document.getElementById("onde_complemento");
    onde_complemento.disabled = obj.value == "Outros" ||
        obj.value == "Amigo" || obj.value == "Sistema de afiliados" ? false : true;
    onde_complemento.value = onde_complemento.disbled == false ? onde_complemento.value : "";
}


function desabilitar(campo) {
    e = document.getElementById(campo);
    e.disabled = true;
}


function habilitar(campo) {
    e = document.getElementById(campo);
    e.disabled = false;
}


function habilitar_submit() {
    document.getElementById("Submit").disabled = !document.getElementById("Submit").disabled;
}


function iniciar() {
    oStringMask = new Mask("##/##/####", "string");
    oStringMask.attach(document.getElementById("nascimento"));
    oStringMask = new Mask("###.###.###-##", "string");
    oStringMask.attach(document.getElementById("cpf"));
    oStringMask = new Mask("##.###.###/####-##", "string");
    oStringMask.attach(document.getElementById("cnpj"));
    oStringMask = new Mask("#####-###", "string");
    oStringMask.attach(document.getElementById("sacadoCep"));
    oStringMask = new Mask("(##) ####-####", "string");
    oStringMask.attach(document.getElementById("telefone"));
    oStringMask.attach(document.getElementById("celular"));
    oStringMask.attach(document.getElementById("fax"));
    oStringMask = new Mask("###.###.###.###", "string");
    oStringMask.attach(document.getElementById("inscricao_estadual"));
    desabilitar("cnpj");
    desabilitar("razao_social");
    desabilitar("inscricao_estadual");
}


function validateForm(formobj) {
    var fieldRequired = Array("aceito", "sacadoCep", "sacadoEstado", "sacadoCidade", "bairro", "numero", "endereco", "telefone_1", "email_1", "rg", "cpf", "nascimento", "cliente_nome", "inscricao_estadual", "cgc", "razao_social", "tipo_pessoa", "resenha", "senha", "login", "codigo_pagamento", "periodo", "dataVencimento", "codigo_plano", "tipo_dominio", "extensao", "host","serverip");
    var fieldDescription = Array("Aceitar contrato de licen\xE7a", "sacadoCep", "sacadoEstado", "sacadoCidade", "Bairro", "N\xFAmero da casa/apartamento", "Endere\xE7o", "Telefone", "E-mail", "RG", "CPF", "Data de nascimento", "Nome", "Inscri\xE7\xE3o estadual", "CNPJ", "Raz\xE3o social", "Tipo de pessoa", "Confirma\xE7\xE3o de senha", "Senha", "Login", "Forma de pagamento", "Periodo", "dataVencimento", "Plano", "Tipo de dom\xEDnio", "Extens\xE3o do dom\xEDnio", "Dom\xEDnio","IP do Servidor");
    var msgError = "Por favor, preencha os seguintes campos:\n";
    var l_Msg = msgError.length;
    for (var i = 0; i < fieldRequired.length; i++) {
        var obj = formobj.elements[fieldRequired[i]];
        if (obj) {
            switch (obj.type) {
              case "checkbox":
                if (!obj.checked) {
                    msgError += " - " + fieldDescription[i] + "\n";
                    obj.focus();
                }
                break;
              case "radio":
                if (!obj.checked) {
                    msgError += " - " + fieldDescription[i] + "\n";
                    obj.focus();
                }
                break;
              case "select-one":
                if (obj.selectedIndex == -1 ||
                    obj.options[obj.selectedIndex].text == "") {
                    msgError += " - " + fieldDescription[i] + "\n";
                    obj.focus();
                }
                break;
              case "select-multiple":
                if (obj.selectedIndex == -1) {
                    msgError += " - " + fieldDescription[i] + "\n";
                    obj.focus();
                }
                break;
              case "text":
              case "textarea":
                if ((obj.value == "" || obj.value == null) &&
                    !obj.disabled) {
                    msgError += " - " + fieldDescription[i] + "\n";
                    obj.focus();
                }
                break;
              default:;
            }
            if (obj.type == undefined) {
                var blnchecked = false;
                for (var j = 0; j < obj.length; j++) {
                    if (obj[j].checked) {
                        blnchecked = true;
                    }
                }
                if (!blnchecked) {
                    msgError += " - " + fieldDescription[i] + "\n";
                }
            }
        }
    }
    if (msgError.length == l_Msg) {
        return fieldsFilter(formobj);
    } else {
        alert(msgError);
        return false;
    }
}


function fieldsFilter(formobj) {
    var fieldRequired = Array("email_1", "cpf", "nascimento", "cgc");
    var fieldError = Array("O E-mail \xE9 inv\xE1lido", "O CPF \xE9 inv\xE1lido", "A data de nascimento \xE9 inv\xE1lida", "O CNPJ \xE9 inv\xE1lido");
    var msgError = "";
    var l_Msg = msgError.length;
    var checkDate = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
    var checkEmail = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
    for (var x = 0; x < fieldRequired.length; x++) {
        var obj = formobj.elements[fieldRequired[x]];
        switch (obj.name) {
          case "cgc":
            if (!checkCNPJ(obj.value) && !obj.disabled) {
                msgError += " - " + fieldError[x] + "\n";
                obj.focus();
            }
            break;
          case "nascimento":
            if (!checkDate.test(obj.value)) {
                msgError += " - " + fieldError[x] + "\n";
                obj.focus();
            }
            break;
          case "cpf":
            if (!checkCPF(obj.value)) {
                msgError += " - " + fieldError[x] + "\n";
                obj.focus();
            }
            break;
          case "email_1":
            if (!checkEmail.test(obj.value)) {
                msgError += " - " + fieldError[x] + "\n";
                obj.focus();
            }
            break;
          default:;
        }
    }
    if (msgError.length == l_Msg) {
        var dieError = "";
        var l_Error = dieError.length;
        if (document.getElementById("senha").value != document.getElementById("resenha").value) {
            dieError += " - As senhas digitadas n\xE3o conferem";
            document.getElementById("senha").focus();
        }
        if (!domainOK) {
            dieError += " - Voc\xEA precisa de um dom\xEDnio";
            document.getElementById("domain").focus();
        }
        if (dieError.length == l_Error) {

          var dmin = document.getElementsByTagName("input").host;
          var extn = document.getElementById("extensao");
          var domain = document.createElement("input");
          if(document.getElementById("extensao").type=="text")
          {
          	extn = extn.value;
          };
          if(document.getElementById("extensao").type=="select-one")
          {
          	extn = extn.options[extn.selectedIndex].text;
          };
          var dominio = dmin.value + extn;
          document.getElementById('domain').value=dominio
          document.forms[0].appendChild(domain);

          return true;
        } else {
            alert(dieError);
            return false;
        }
    } else {
        alert(msgError);
        return false;
    }
}


function checkCPF(c) {
    var i;
    s = c.replace(".", "");
    s = s.replace(".", "");
    s = s.replace("-", "");
    var c = s.substr(0, 9);
    var dv = s.substr(9, 2);
    var d1 = 0;
    var v = false;
    if (c == "111111111" ||
        c == "222222222" ||
        c == "333333333" ||
        c == "444444444" ||
        c == "555555555" ||
        c == "666666666" ||
        c == "777777777" ||
        c == "888888888" || c == "999999999" || c == "000000000") {
        v = true;
        return false;
    }
    for (i = 0; i < 9; i++) {
        d1 += c.charAt(i) * (10 - i);
    }
    if (d1 == 0) {
        v = true;
        return false;
    }
    d1 = 11 - d1 % 11;
    if (d1 > 9) {
        d1 = 0;
    }
    if (dv.charAt(0) != d1) {
        v = true;
        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) {
        v = true;
        return false;
    }
    if (!v) {
        return true;
    }
}


function checkCNPJ(c) {
    var b = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
    if ((c = c.replace(/[^\d]/g, "").split("")).length != 14) {
        return false;
    }
    for (var i = 0, n = 0; i < 12; n += c[i] * b[++i]) {
    }
    if (c[12] != ((n %= 11) < 2 ? 0 : 11 - n)) {
        return false;
    }
    for (var i = 0, n = 0; i <= 12; n += c[i] * b[i++]) {
    }
    if (c[13] != ((n %= 11) < 2 ? 0 : 11 - n)) {
        return false;
    }
    return true;
}
