// Assine.js

function Assine(setup) {

// ================================================== Variables ==================================================

  // private
  var currentStep = new String();
  var forwardOnFinish = false;

  //public
  this.cupom = new Cupom();
  this.clientType = -1;
  this.freeToSubmit = false;

// =================================================== Methods ===================================================

  setValues = function(values,planes) {
  	if (!values.id.isWhite())
  	  for (p in planes)
		if (values.id == planes[p].split("|")[0].toLowerCase()) {
			setSelected($("plano"),p);
			break;

		}

    if (!values.cupom.isWhite())       $("cupom").value = values.cupom;
    if (!values.tipoDom.isWhite())     values.tipoDom == "novo"?$("tipoDomN").checked = true:$("tipoDomT").checked = true;
    if (!values.dominio.isWhite())     $("dominio").value = values.dominio;

    if (!values.extensao.isWhite())    setSelected($("extensao"),values.extensao);
    else setSelected($("extensao"),".com.br");

    if (!values.plano.isWhite())       setSelected($("plano"),values.plano);
    if (!values.diaVenc.isWhite())     setSelected($("diaVenc"),values.diaVenc);
    if (!values.periodo.isWhite())     setSelected($("periodo"),values.periodo);
    if (!values.razao.isWhite())       $("razao").value = values.razao;
    if (!values.documento.isWhite())   $("documento").value = values.documento;
	if (!values.rg.isWhite())          $("rg").value = values.rg;
	if (!values.repnome.isWhite())     $("repnome").value = values.repnome;
	if (!values.repcpf.isWhite())      $("repcpf").value = values.repcpf;
	if (!values.reprg.isWhite())       $("reprg").value = values.reprg;
    if (!values.endereco.isWhite())    $("endereco").value = values.endereco;
    if (!values.numero.isWhite())      $("numero").value = values.numero;
    if (!values.bairro.isWhite())      $("bairro").value = values.bairro;
    if (!values.complemento.isWhite()) $("complemento").value = values.complemento;
    if (!values.cidade.isWhite())      $("cidade").value = values.cidade;
    if (!values.estado.isWhite())      setSelected($("estado"),values.estado);
    if (!values.cep.isWhite())         $("cep").value = values.cep;
    if (!values.ddd.isWhite())         $("ddd").value = values.ddd;
    if (!values.telefone.isWhite())    $("telefone").value = values.telefone;
    if (!values.responsavel.isWhite()) $("responsavel").value = values.responsavel;
    if (!values.aniversario.isWhite()) $("aniversario").value = values.aniversario;
    if (!values.msn.isWhite())         $("msn").value = values.msn;
    if (!values.email.isWhite())       $("email").value = values.email;
    if (!values.email2.isWhite())      $("email2").value = values.email2;
    if (!values.email3.isWhite())      $("email3").value = values.email3;
    if (!values.email4.isWhite())      $("email4").value = values.email4;
    if (!values.obs.isWhite())         $("obs").value = values.obs;
  }

  this.setPreview = function(values) {
    if ($("tipoDomN").checked)            $("itipoDom").innerHTML = "Novo domínio";
    else if ($("tipoDomT").checked)       $("itipoDom").innerHTML = "Transferência de domínio";

    if (!$("dominio").value.isWhite())
      if (!$("extensao").value.isWhite())  $("idominio").innerHTML = $("dominio").value + $("extensao").value;

    if (!$("plano").value.isWhite())       $("iplano").innerHTML = $("plano").options[$("plano").selectedIndex].text.split(" - ")[0];
    if (!$("diaVenc").value.isWhite())     $("idiaVenc").innerHTML = $("diaVenc").value;
    if (!$("periodo").value.isWhite())     $("iperiodo").innerHTML = $("periodo").options[$("periodo").selectedIndex].text;
    if (!$("razao").value.isWhite())       $("irazao").innerHTML = $("razao").value;
    if (!$("documento").value.isWhite()) {
      if (this.clientType == 1) {
      	if ($("documento").value.length == 14)      $("idocumento").innerHTML = "0" + $("documento").value.substring(0,2) + "." + $("documento").value.substring(2,5) + "." + $("documento").value.substring(5,8) + "/" + $("documento").value.substring(8,12) + "-" + $("documento").value.substring(12,14);
      	else if ($("documento").value.length == 15) $("idocumento").innerHTML = $("documento").value.substring(0,3) + "." + $("documento").value.substring(3,6) + "." + $("documento").value.substring(6,9) + "/" + $("documento").value.substring(9,13) + "-" + $("documento").value.substring(13,15);
      }
      else if (this.clientType == 2)                $("idocumento").innerHTML = $("documento").value.substring(0,3) + "." + $("documento").value.substring(3,6) + "." + $("documento").value.substring(6,9) + "-" + $("documento").value.substring(9,11);
      else if (this.clientType == 0) {
      	if ($("documento").value.length == 11)      $("idocumento").innerHTML = $("documento").value.substring(0,3) + "." + $("documento").value.substring(3,6) + "." + $("documento").value.substring(6,9) + "-" + $("documento").value.substring(9,11);
      	else if ($("documento").value.length == 14) $("idocumento").innerHTML = "0" + $("documento").value.substring(0,2) + "." + $("documento").value.substring(2,5) + "." + $("documento").value.substring(5,8) + "/" + $("documento").value.substring(8,12) + "-" + $("documento").value.substring(12,14);
      	else if ($("documento").value.length == 15) $("idocumento").innerHTML = $("documento").value.substring(0,3) + "." + $("documento").value.substring(3,6) + "." + $("documento").value.substring(6,9) + "/" + $("documento").value.substring(9,13) + "-" + $("documento").value.substring(13,15);
      }
    }

    if (!$("endereco").value.isWhite())
      if (!$("numero").value.isWhite())
        if (!$("bairro").value.isWhite())  $("iendereco").innerHTML = $("endereco").value + ", " + $("numero").value + ", " + $("bairro").value + ($("complemento").value.isWhite()?"":", " + $("complemento").value);

    if (!$("cidade").value.isWhite())      $("icidade").innerHTML = $("cidade").options[$("cidade").selectedIndex].text;
    if (!$("estado").value.isWhite())      $("iestado").innerHTML = $("estado").value;
    if (!$("cep").value.isWhite())         $("icep").innerHTML = $("cep").value.substring(0,2) + "." + $("cep").value.substring(2,5) + "-" + $("cep").value.substring(5,8);
    if (!$("ddd").value.isWhite())         $("iddd").innerHTML = $("ddd").value;
    if (!$("telefone").value.isWhite())    $("itelefone").innerHTML = $("telefone").value.substring(0,4) + "-" + $("telefone").value.substring(4,8);
    if (!$("responsavel").value.isWhite()) $("iresponsavel").innerHTML = $("responsavel").value;
    if (!$("aniversario").value.isWhite()) $("ianiversario").innerHTML = $("aniversario").value;

    if (!$("msn").value.isWhite())         $("imsn").innerHTML = $("msn").value;
    else $("imsn").innerHTML = "";

    if (!$("email").value.isWhite())       $("iemail").innerHTML = $("email").value;
    if (!$("email2").value.isWhite())      $("iemail2").innerHTML = $("email2").value;
    if (!$("email3").value.isWhite())      $("iemail3").innerHTML = $("email3").value;
    if (!$("email4").value.isWhite())      $("iemail4").innerHTML = $("email4").value;


    if (!$("obs").value.isWhite())         $("iobs").innerHTML = $("obs").value;
    else $("iobs").innerHTML = "";

    this.calculatePrice();
  }

  this.showStep = function(step) {
  	currentStep += "";
    if (!currentStep.isWhite()) showHideById("phase" + currentStep,false);
    showHideById("phase" + step,true);
    if (step == 1) $("cupom").focus();
    else if (step == 2) {
		setTimeout('new Document().showPessoaType(assine.clientType)',0);
		$("razao").focus();
	}
    currentStep = step;
    return false;
  }

  this.submit = function() {
  	if ( (new Validator().checkForm(1)) && (new Validator().checkForm(2)) && (new Validator().checkForm(3)) ) {
  	  document.frmAssine.action = "assine.php";
  	  if ($("cupom").value.isWhite()) $("cupom").value = "";
  	  $("dominio").value.toLowerCase();
  	  $("periodo").disabled = false;
  	  $("acao").value = "concluir";
  	  this.freeToSubmit = true;
  	  return true;
  	}
  	return false;
  }

  this.forward = function(step) {
    if (currentStep == 1) {
      if (($("cupom").value != "") && (!this.cupom.confirmado)) {
        if (this.cupom.validating) {
          forwardOnFinish = true;
          $("nextP2").disabled = "disabled";
          $("nextP2").width = "102";
          $("nextP2").src = "assets/imagens_assine/btvalidando.gif";
          return false;
        }
      } else if (($("cupom").value == "") && (this.cupom.confirmado)) {
      	this.cupom.cleanCupom();
      	this.cupom.cupomFieldChanged();
      }
    }
    else if (currentStep == 2) {
      this.setPreview();
    }

    if (new Validator().checkForm(currentStep)) this.showStep(step.toString());
    return false;
  }

  this.forwardWaited = function(step) {
    if (forwardOnFinish) {
      forwardOnFinish = false;
      $("nextP2").disabled = false;
      $("nextP2").width = "65";
      $("nextP2").src = "assets/imagens_assine/btcontinuar.gif";
      this.forward(step);
    }
  }

  this.checkCupom = function(obj,orig) {
    if (!obj.value.isWhite()) this.cupom.validate(obj);
  }

  this.calculatePrice = function () {

    var periodos = { m: "mensal", t: "trimestral", s: "semestral", a: "anual" };
    var descontoPeriodo = { m: 0, t: 5, s: 10, a: 15 };
    var mesesPeriodo = { m: 1, t: 3, s: 6, a: 12 };
    var planosXperiodo = { m: 0, t: 1, s: 2, a: 3};

    var periodo = this.cupom.confirmado?this.cupom.frequency:$("periodo").value;
    var cupomValue = this.cupom.confirmado?parseFloat(this.cupom.value):null;

    var valorDescontado = ps[$("plano").value][planosXperiodo[periodo]];

  	var html = "Simula&ccedil;&atilde;o de pre&ccedil;o a pagar<br />";

  	if (this.cupom.confirmado) {
  	  var descontoCupom = (cupomValue*valorDescontado)/100;

  	  html += "<span style='margin-left: 15px'>Valor do plano " + periodos[periodo] + ": <span class='lblPreviw'>R$ " + (valorDescontado).toFixed(2);
  	  if (this.cupom.frequency != "m") html += "</span> (desconto de " + descontoPeriodo[periodo] + "%)</span><br />";
  	  else html += "</span></span><br />";

  	  html += "<span style='margin-left: 15px'>Desconto do cupom na " + (this.cupom.amount>1?"s":"") + "<span class='lblPreviw'>" + (this.cupom.amount>1?this.cupom.amount:"") + "</span> primeira" + (this.cupom.amount>1?"s":"") + " fatura" + (this.cupom.amount>1?"s":"") + ": <span class='lblPreviw'>";
  	  if (this.cupom.type == "p") html += this.cupom.value + "%</span></span><br />";
  	  else if (this.cupom.type == "v") html += "R$ " + parseFloat(this.cupom.value).toFixed(2) + "</span></span><br />";

  	  html += "<span style='margin-left: 15px'>Acréscimo da emissão do boleto bancário: <span class='lblPreviw'>R$ 2.90</span></span><br />";

  	  html += "<span style='margin-left: 15px'>*Total: <span class='lblPreviw'>R$ " + (((valorDescontado + 2.9) - descontoCupom).toFixed(2)) + "</span></span>";
  	} else {
  	  html += "<span style='margin-left: 15px'>Valor do plano " + periodos[periodo] + ": <span class='lblPreviw'>R$ " + (valorDescontado).toFixed(2);
  	  if ($("periodo").value != "m") html += "</span> (desconto de " + descontoPeriodo[periodo] + "%)</span><br />";
  	  else html += "</span></span><br />";

  	  html += "<span style='margin-left: 15px'>Acréssimo da emissão do boleto bancário: <span class='lblPreviw'>R$ 2.90</span></span><br />";
  	  html += "<span style='margin-left: 15px'>*Total: <span class='lblPreviw'>R$ " + ((valorDescontado + 2.9).toFixed(2)) + "</span></span>";
  	}

 	html += "<br /><br />*O total é valor simulado de uma fatura integral, podendo a primeira fatura vir com valor reduzido em função do dia do vencimento da fatura.";
  	$("ipreco").innerHTML = html;
  }

// ================================================== Running ===================================================

  document.title = "Assine Já! - Hospedagem DialHost Internet";

  var planes = new Planes();
  planes.loadPlanes("plano",setup.planes);
  planes = null;

  document.frmAssine.reset();
  setValues(setup.initialValues,setup.planes);

  this.clientType = new Document().returnDocType($("extensao"));

  if (!setup.initialValues.documento.isWhite()) $("documento").value = setup.initialValues.documento;

  this.db = new DateBox("aniversario",10);

  if (setup.erro.errorField.isWhite()) this.showStep(1);
  else {
    this.showStep(setup.erro.errorPage);
    setTimeout('blinkFieldE("lbl","'+setup.erro.errorField+'","'+setup.erro.errorMsg+'")',1000);
  }

}