//////////////////////////////////////////////////////////////////////////////
// Arquivo:  pedido-volume-amostra.js
// Autor:    Star Sistemas e Projetos Graficos Ltda.
// Data:     14/03/2001, 13/11/2001
// Conteudo: Funcoes de suporte `a montagem e processamento da pagina
//				 do formulario de pedido do volume de amostra.
//////////////////////////////////////////////////////////////////////////////

//============================================================================
// Variaveis relativas as alternativas de envio e pagamento dos
// volumes avulsos.

var formValueDispatchMode = "";
var formValuePaymentMode = "";
// Insercao - 20/12/2005
//var formValuePaymentCondition = "";
// Fim Insercao - 20/12/2005
var formValueState = "";
var formValueBoletoPorEmail = false;

gFormName = "sampleIssueOrderForm";

//============================================================================
// Variaveis referentes aos volumes disponiveis para compra.

/*var numAvailableIssues = 86;
var issueTitles = new Array();
issueTitles[0] = "";
var index, issueNumber;
for (index = 1; index <= numAvailableIssues; index++)
{
   issueNumber = PRFirstPublishedIssueNumberBr + (index-1)*2;
   if (index == 12 || index == 23)
      issueTitles[index] = GetIssueTitleBr ("PR", issueNumber+1);
   else
      issueTitles[index] = GetIssueTitleBr ("PR", issueNumber);
}

var exemplares = new Array();
exemplares[0] = 0;*/

//============================================================================
// Calcula o valor total do pedido de acordo com opcoes escolhidas pelo
// assinante.

function CalcOrderPrice (showAlert)
{
   var retval;
   var theForm = GetDocumentElement (gFormName);

   var dispatchMode = formValueDispatchMode;
   //var paymentCondition = formValuePaymentCondition;
   var state = siglasEstados[(theForm.EstadoRemessa.selectedIndex > 0 ? theForm.EstadoRemessa.selectedIndex : 0)];
   var country = countryNames[(theForm.PaisRemessa.selectedIndex > 0 ? theForm.PaisRemessa.selectedIndex : 0)];

   var dispatchModeIsMissing = ((dispatchMode == null) || (dispatchMode == ""));
   //var paymentConditionIsMissing = ((paymentCondition == null) || (paymentCondition == ""));
   var countryIsMissing = ((dispatchMode == "Economico" || dispatchMode == "Prioritario") ?
      ((country == null) || (country == "")) : false);
   var stateIsMissing = ((dispatchMode == "Sedex" || dispatchMode == "Sedex10" || dispatchMode == "PAC") ? 
      ((state == null) || (state == "")) : false);

   if (dispatchModeIsMissing || /*paymentConditionIsMissing ||*/ countryIsMissing || stateIsMissing)
   {
      if (showAlert)
      {
         var message = "Os seguintes campos devem ser preenchidos corretamente " +
            "para que o valor possa ser calculado:\n\n";
         if (dispatchModeIsMissing)      	message += "- Forma de envio\n";
         //if (paymentConditionIsMissing)   message += "- Condição de pagamento\n";
         if (countryIsMissing)            message += "- País\n";
         if (stateIsMissing)        		message += "- Estado\n";
         alert (message);
      }
    	theForm.ValorFinal.value = "";

      retval = false;
   }
   else
   {
      var dispatchFee = CalcTaxaRemessa ("AV", dispatchMode, 1, 250, state, country);
      var totalValue = dispatchFee;

      var totalValueStr = "";
      var numPayments = 1;
      //if (paymentCondition == "A vista")
         numPayments = 1;
      /*else
      {
         numPayments = parseInt (paymentCondition.substr (3,2));
         if (numPayments < 1 || numPayments > 6) numPayments = 1;
      } 
      if (numPayments > 1)
      {
         totalValueStr = String(numPayments) + " x ";
         totalValue = totalValue/numPayments;
      }*/
      var totalValueIntegral = Math.floor(totalValue);
      var totalValueRemainder = totalValue - totalValueIntegral;
      var totalValueRemainderInt = Math.round(100*totalValueRemainder);
      var totalValueRemainderStr = (totalValueRemainderInt < 10 ?
         "0" + String(totalValueRemainderInt) : String(totalValueRemainderInt));
      totalValueStr = totalValueStr + "R$ " + (totalValueRemainder != 0.0 ?
      totalValueIntegral + "," + totalValueRemainderStr :
      totalValueIntegral + ",00");

      theForm.ValorFinal.value = totalValueStr;

      retval = true;
   }

   return retval;
}

//============================================================================
// Verificacao de validade do formulario preenchido.

function CheckForm()
{
   var retval;
   var theForm = GetDocumentElement (gFormName);

   var dispatchMode = formValueDispatchMode;
   var paymentMode = formValuePaymentMode;
   //var paymentCondition = formValuePaymentCondition;
   var state = siglasEstados[(theForm.Estado.selectedIndex > 0 ? theForm.Estado.selectedIndex : 0)];
   var country = countryNames[(theForm.Pais.selectedIndex > 0 ? theForm.Pais.selectedIndex : 0)];

   var dispatchModeIsMissing = ((dispatchMode == null) || (dispatchMode == ""));
   var paymentModeIsMissing = ((paymentMode == null) || (paymentMode == ""));
   //var paymentConditionIsMissing = ((paymentCondition == null) || (paymentCondition == ""));
   var countryIsMissing = ((dispatchMode == "Economico" || dispatchMode == "Prioritario") ?
      ((country == null) || (country == "")) : false);
   var stateIsMissing = ((dispatchMode == "Sedex" || dispatchMode == "Sedex10" || dispatchMode == "PAC") ? 
      ((state == null) || (state == "")) : false);

   var emailIsMissing = ((theForm.AnyFormFrom.value == null) ||
      (theForm.AnyFormFrom.value == ""));
   //var subscriberCodeIsMissing = ((theForm.CodigoCliente.value == null) ||
   //   (theForm.CodigoCliente.value == ""));
   var nameIsMissing = ((theForm.Nome.value == null) ||
      (theForm.Nome.value == ""));
   var name2IsMissing = ((theForm.Nome2.value == null) ||
      (theForm.Nome2.value == ""));

   var cpfIsMissing, addressIsMissing, districtIsMissing, cityIsMissing, zipCodeIsMissing;

   /*if (!subscriberCodeIsMissing)
   {
      nameIsMissing = name2IsMissing = false;
      cpfIsMissing = addressIsMissing = districtIsMissing = cityIsMissing =
         stateIsMissing = zipCodeIsMissing = false;
   }
   else*/ if (!name2IsMissing)
   {
      /*subscriberCodeIsMissing =*/ name2IsMissing = false;
      cpfIsMissing = addressIsMissing = districtIsMissing = cityIsMissing =
         stateIsMissing = zipCodeIsMissing = false;
   }
   else if (!nameIsMissing)
   {
      /*subscriberCodeIsMissing =*/ nameIsMissing = false;
      cpfIsMissing = ((theForm.CPF.value == null) ||
         (theForm.CPF.value == ""));
      addressIsMissing = ((theForm.Endereco.value == null) ||
         (theForm.Endereco.value == ""));
      districtIsMissing = ((theForm.Bairro.value == null) ||
         (theForm.Bairro.value == ""));
      cityIsMissing = ((theForm.Cidade.value == null) ||
         (theForm.Cidade.value == ""));
      stateIsMissing = (theForm.Estado.selectedIndex <= 0);
      zipCodeIsMissing = ((theForm.CEP.value == null) ||
         (theForm.CEP.value == ""));
      countryIsMissing = (theForm.Pais.selectedIndex <= 0);
   }

   if (dispatchModeIsMissing || paymentModeIsMissing || countryIsMissing ||
       emailIsMissing || /*subscriberCodeIsMissing ||*/ (nameIsMissing && name2IsMissing) ||
       cpfIsMissing || addressIsMissing || districtIsMissing || cityIsMissing ||
       stateIsMissing || zipCodeIsMissing)
   {
      var message = "Os seguintes campos devem ser preenchidos corretamente \n" +
         "para que os dados do pedido possam ser enviados:\n\n";
      if (dispatchModeIsMissing) message += "- Forma de envio\n";
      if (paymentModeIsMissing) message += "- Forma de pagamento\n";
      //if (paymentConditionIsMissing) message += "- Condição de pagamento\n";
      if (countryIsMissing) message += "- País\n";
      if (emailIsMissing) message += "- Endereço de e-mail principal\n";
      //if (subscriberCodeIsMissing) message += "- Código de assinante/cliente\n";
      if (nameIsMissing && name2IsMissing) message += "- Nome\n";
      if (cpfIsMissing) message += "- Número de CPF ou CGC\n";
      if (addressIsMissing) message += "- Endereço\n";
      if (districtIsMissing) message += "- Bairro\n";
      if (cityIsMissing) message += "- Cidade\n";
      if (stateIsMissing) message += "- Estado\n";
      if (zipCodeIsMissing) message += "- CEP\n";

      if (emailIsMissing)
         message += "\nCaso você realmente não possua algum " +
      	     "endereço de e-mail, \nescreva \"nenhum\" no campo correspondente.\n";

      alert (message);

      retval = false;
   }
   else
   {
   	// Ajusta endereco da pagina de destino.
      theForm.AnyFormDisplay.value = GetSiteBaseDir() + 
         "port/pedido-volume-amostra-concluido.html?FormaPag=" + escape (paymentMode);
      retval = true;
   }

   return retval;
}

//============================================================================
// Apresentacao dos elementos principais da pagina.

function DisplaySampleIssueOrderPageElements()
{
   var proceed = true;

    document.writeln ("<P>Através desta página, você poderá solicitar um volume " +
        "de amostra gratuito da série <em>Perry Rhodan</em>, selecionado pela SSPG Editora. " +
        "Para isso, preencha por favor o formulário abaixo confome os <b>4 passos</b> " +
        "listados e remeta-o através do botão no final da página.");
    document.writeln ("<P>Os dados enviados por meio deste formulário serão " +
        "remetidos à SSPG e serão utilizados exclusivamente pela editora para " +
        "a remessa dos volumes. Os dados pessoais aqui informados não serão " +
        "repassados a terceiros.");
    document.writeln ("<P>Para sua conveniência, o valor total a ser pago " +
        "pela remessa do volume de amostra é <b>calculado automaticamente</b> no final do formulário de acordo com a " +
        "escolha das opções de envio e pagamento nos campos correspondentes abaixo.");

    document.writeln ("<P><b>Importante: antes de enviar seu pedido, leia " +
        "com atenção todas as condições de realização do pedido de volumes definidas " +
        "pela SSPG " + BuildLink ("neste link", "port/edicao.html#Amostra", 
        "Condições para pedido de volumes de amostra") + " e também " + BuildLink ("neste link.", "port/avulsos.html", 
        "Instruções para pedido de volumes avulsos") + "</b>");

    document.writeln ("<P>Atenção: como o objetivo dessa oferta é oferecer às pessoas " +
        "que ainda não conhecem a edição de <em>Perry Rhodan</em> da SSPG uma oportunidade de " +
        "experimentá-la, a oferta do volume de amostra <b>não está disponível para clientes " +
        "atuais</b> já cadastrados na SSPG.");

    document.writeln ("<P>Atenção: embora o volume de amostra em si seja gratuito, os " +
        "custos de envio do mesmo <b>devem ser pagos pelo cliente</b>, pois esses são " +
        "sempre cobrados da editora pelos Correios.");

   document.writeln ("<P><form action=\"http://www2.sspg.com.br/perry-rhodan/Engine/form2mail.asp\"\n" +
      "method=\"GET\" onsubmit=\"return(CheckForm());\" name=\"" + gFormName + "\">\n" +
      "<input type=\"hidden\" name=\"AnyFormMode\" value=\"Mail\">\n" +
      "<input type=\"hidden\" name=\"AnyFormDisplay\" " +
      "value=\"" + GetSiteBaseDir() + "port/pedido-volume-amostra-concluido.html\">\n" +
      "<input type=\"hidden\" name=\"AnyFormTo\" value=\"pedidos@sspg.com.br\">\n" +
      "<input type=\"hidden\" name=\"AnyFormSubject\" value=\"PERRY RHODAN - Pedido de Volume de Amostra\">");

   document.writeln ("<hr><span class=\"emphasis\">" +
      "1&ordm; Passo: Escolha a forma de envio do volume de amostra:</span><hr>");
   DisplayDispatchOptions (true, false, 0);

   /*document.writeln ("<span class=\"emphasis\">" +
      "Escolha a condição de pagamento do pedido:</span><br>" +
      "(Atenção: o parcelamento está disponível apenas para pagamento com cartão de crédito. " +
      "O número de parcelas não poderá ser maior que o número total de exemplares pedidos)<br><br>");
   document.writeln ("<input type=\"radio\" name=\"CondicaoPagamento\" value=\"A vista\" " +
      "onClick=\"formValuePaymentCondition = 'A vista'; CalcOrderPrice(false)\"> " +
      "À vista<br>\n" +
      "<input type=\"radio\" name=\"CondicaoPagamento\" value=\"Em 2 parcelas iguais\" " +
      "onClick=\"formValuePaymentCondition = 'Em 2 parcelas iguais'; CalcOrderPrice(false)\"> " +
      "Em 2 parcelas iguais<br>" +
      "<input type=\"radio\" name=\"CondicaoPagamento\" value=\"Em 3 parcelas iguais\" " +
      "onClick=\"formValuePaymentCondition = 'Em 3 parcelas iguais'; CalcOrderPrice(false)\"> " +
      "Em 3 parcelas iguais<br>" +
      "<input type=\"radio\" name=\"CondicaoPagamento\" value=\"Em 4 parcelas iguais\" " +
      "onClick=\"formValuePaymentCondition = 'Em 4 parcelas iguais'; CalcOrderPrice(false)\"> " +
      "Em 4 parcelas iguais<br>" +
      "<input type=\"radio\" name=\"CondicaoPagamento\" value=\"Em 5 parcelas iguais\" " +
      "onClick=\"formValuePaymentCondition = 'Em 5 parcelas iguais'; CalcOrderPrice(false)\"> " +
      "Em 5 parcelas iguais<br>" +
      "<input type=\"radio\" name=\"CondicaoPagamento\" value=\"Em 6 parcelas iguais\" " +
      "onClick=\"formValuePaymentCondition = 'Em 6 parcelas iguais'; CalcOrderPrice(false)\"> " +
      "Em 6 parcelas iguais<br><br>");
   // Fim Insercao - 20/12/2005*/

   DisplayTotalValueFields (true);

   document.writeln ("<hr><span class=\"emphasis\">" +
      "2&ordm; Passo: Escolha agora a forma de pagamento do volume de amostra:</span><hr>");
   DisplayPaymentOptions();
   //DisplayCreditCardDataFields();

   document.writeln ("<br><hr><span class=\"emphasis\">3&ordm; Passo: Informe agora o seu endereço de e-mail principal:</span><hr><br>");
   document.writeln ("<br>\n" +
      "E-mail: <input type=\"text\" name=\"AnyFormFrom\" size=\"30\"><br>\n");

   document.writeln ("<br><hr><span class=\"emphasis\">4&ordm; Passo: Agora, para concluir o seu pedido, " +
      "preencha todos os campos abaixo e remeta o formulário:</span><hr><br>");
   DisplayPersonalDataFields (false);
   DisplayDiscoveryFields();
   DisplaySubmitButtons();

   document.writeln ("</form>\n<p>&nbsp;</p>");

   return proceed;
}

