//----------------------------------------------------------------------------------
//------------------------------ Objednávka newslettters ---------------------------
//----------------------------------------------------------------------------------
//
// Metoda zkontroluje vyplnění objednávacího formuláře pro newsletters a pokud je vše OK
// pošle požadavek na server.
//
// HTML pro volání metody
// ========================
//  <input type="text" value="@" name="txtEmail" id="Text2" class="txt" />
//  <input type="checkbox" checked="checked" name="ch-opera" id="Checkbox1" />
//  <input type="checkbox" checked="checked" name="ch-drama" id="Checkbox2" />
//  <input type="checkbox" checked="checked" name="ch-balet" id="Checkbox3" />
//  <input type="checkbox" checked="checked" name="ch-extra" id="Checkbox4" />
//
// Parametry
// =========
// Jazyk - kód jazyka (EN,CZ,DE), ve které se mají signalizovat případné chyby
//
var Newsletters = function(Jazyk) {
    // nastavení chybových hlášení pro kontrolu mailové adresy
    var EmailErr = new Array;
    EmailErr["CZ"] = "Chybná e-mailová adresa";
    EmailErr["EN"] = "Invalid e-mail address";

    var EmailErrEmpty = new Array;
    EmailErrEmpty["CZ"] = "Není vyplněna e-mailová adresa";
    EmailErrEmpty["EN"] = "Empty e-mail address";

    // nastavení chybových hlášení pro kontrolu checkboxů
    var BoxErr = new Array;
    BoxErr["CZ"] = "Není zvolena žádná položka.";
    BoxErr["EN"] = "Empty order";

    // nastavení chybových hlášení pro chybějící mailovou adresu
    var PosMailErr = new Array;
    PosMailErr["CZ"] = "Zvolili jste zasílat informace e-mailem, ale není zadána e-mailová adresa.";
    PosMailErr["EN"] = "Empty mail adress";

    // nastavení chybových hlášení pro chybějící poštovní adresu
    var PostaErr = new Array;
    PostaErr["CZ"] = "Zvolili jste zasílat informace poštou, ale není zadána Vaše poštovní adresa.";
    PostaErr["EN"] = "Empty post adress";

    // nastavení způsobu zasílání informací o slevách
    var Info1Err = new Array;
    Info1Err["CZ"] = "Chcete zasílat informace o mimořádných nabídkách a slevách, ale nezvolili jste způsob zasílání.";
    Info1Err["EN"] = "Chcete zasílat informace o mimořádných nabídkách a slevách, ale nezvolili jste způsob zasílání.";

    // nastavení preferovaného souboru nebo scény
    var Info2Err = new Array;
    Info2Err["CZ"] = "Zvolili jste způsob zasílání informací o mimořádných nabídkách a slevách, ale neurčili jste preferovaný soubor nebo scénu.";
    Info2Err["EN"] = "Zvolili jste způsob zasílání informací o mimořádných nabídkách a slevách, ale neurčili jste preferovaný soubor nebo scénu.";

    // frekvence posílání programu
    var Prg1Err = new Array;
    Prg1Err["CZ"] = "Chcete dostávat program Národního divadla, ale nezvolili jste frekvenci zasílání.";
    Prg1Err["EN"] = "Chcete dostávat program Národního divadla, ale nezvolili jste frekvenci zasílání.";

    // osobní údaje
    var Jmeno = $("#txtJmeno")[0].value;
    var Telefon = $("#txtTelefon")[0].value;
    var Email = $("#txtEmail")[0].value;
    var Adresa = $("#txtAdresa")[0].value;
    var RokNarozeni = $("#txtRokNarozeni")[0].value;

    // kontrola mailové adresy
    if (Email.length > 0) {
        var MailValid = checkemail(Email);
        if (MailValid == false) {
            alert(EmailErr[Jazyk]);
            return false;
        }
    } else {
        alert(EmailErrEmpty[Jazyk]);
        return false;
    }

    Email = Email.toLowerCase();

    // informace o mimořádných nabídkách a slevách
    var Extra = ($("#chkExtra").attr("checked") == true) ? "A" : "N";

    // načtení checkboxů preference scény
    var Narodni = ($("#chkND").attr("checked") == true) ? "A" : "N";
    var Stavovske = ($("#chkStD").attr("checked") == true) ? "A" : "N";
    var Kolowrat = ($("#chkDK").attr("checked") == true) ? "A" : "N";
    var NovaScena = ($("#chkNS").attr("checked") == true) ? "A" : "N";
    var StatniOpera = ($("#chkSOP").attr("checked") == true) ? "A" : "N";

    // načtení checkboxů preference souborů
    var Opera = ($("#chkOpera").attr("checked") == true) ? "A" : "N";
    var Cinohra = ($("#chkCinohra").attr("checked") == true) ? "A" : "N";
    var Balet = ($("#chkBalet").attr("checked") == true) ? "A" : "N";

    // načtení checkboxů pro způsob posílání
    //var Posta = ($("#chkPosta").attr("checked") == true) ? "A" : "N";
    //var Mailem = ($("#chkEmail").attr("checked") == true) ? "A" : "N";
    var Mailem = "A";

    // načtení checkboxů o zasílání programu a frekvenci zasílání
    //var Program = ($("#chkProgram").attr("checked") == true) ? "A" : "N";
    //var Frekv1 = ($("#chkFrekvence1").attr("checked") == true) ? "A" : "N";
    //var Frekv2 = ($("#chkFrekvence2").attr("checked") == true) ? "A" : "N";
    //var Frekv3 = ($("#chkFrekvence3").attr("checked") == true) ? "A" : "N";

    // zjištění počtu zaškrtnutých check boxů
    var Zaskrtnuto = 0;

    Zaskrtnuto += (Extra == "A") ? 1 : 0;

    // preferované divadlo
    Zaskrtnuto += (Narodni == "A") ? 1 : 0;
    Zaskrtnuto += (Stavovske == "A") ? 1 : 0;
    Zaskrtnuto += (Kolowrat == "A") ? 1 : 0;
    Zaskrtnuto += (NovaScena == "A") ? 1 : 0;
    Zaskrtnuto += (StatniOpera == "A") ? 1 : 0;

    // preferovaný soubor
    Zaskrtnuto += (Opera == "A") ? 1 : 0;
    Zaskrtnuto += (Cinohra == "A") ? 1 : 0;
    Zaskrtnuto += (Balet == "A") ? 1 : 0;
    Zaskrtnuto += (Extra == "A") ? 1 : 0;

    // posílání programu
    //Zaskrtnuto += (Posta == "A")? 1:0; 
    //Zaskrtnuto += (Mailem == "A")? 1:0; 
    //Zaskrtnuto += (Program == "A")? 1:0; 


    // kontrola, je-li alespoň jeden checkbox zaškrtnut
    if (Zaskrtnuto == 0) {
        alert(BoxErr[Jazyk]);
        return false
    }

    // kontrola integrity posílání informací o slevách
    Zaskrtnuto = 0
    // preferované divadlo 
    Zaskrtnuto += (Narodni == "A") ? 1 : 0;
    Zaskrtnuto += (Stavovske == "A") ? 1 : 0;
    Zaskrtnuto += (Kolowrat == "A") ? 1 : 0;
    Zaskrtnuto += (NovaScena == "A") ? 1 : 0;

    // preferovaný soubor
    Zaskrtnuto += (Opera == "A") ? 1 : 0;
    Zaskrtnuto += (Cinohra == "A") ? 1 : 0;
    Zaskrtnuto += (Balet == "A") ? 1 : 0;
    Zaskrtnuto += (Extra == "A") ? 1 : 0;

    // způsob posílání
    var Posilat = 0
    Posilat += (Mailem == "A") ? 1 : 0;
    //Posilat += (Posta == "A")? 1:0; 

    if (Extra == 'A') {
        if (Zaskrtnuto == 0) {
            alert(Info2Err[Jazyk]);
            return
        }
        if (Posilat == 0) {
            alert(Info1Err[Jazyk]);
            return

        }
    }

    // kontrola integrity pro posílání programu
    //Zaskrtnuto = 0;
    //Zaskrtnuto += (Frekv1 == "A")? 1:0;
    //Zaskrtnuto += (Frekv2 == "A")? 1:0;
    //Zaskrtnuto += (Frekv3 == "A")? 1:0;

    //if (Program == "A" && Zaskrtnuto == 0){
    //  alert(Prg1Err[Jazyk]);
    //  return 
    //}


    // kontrola integrity při požadavku posílání mailem
    Posilat = 0;
    Posilat += (Mailem == "A") ? 1 : 0;
    //Posilat += (Frekv3 == "A")? 1:0; 
    if (Posilat !== 0 && Email.length == 0) {
        alert(PosMailErr[Jazyk]);
        return
    }

    // kontrola integrity při požadavku posílání mailem
    //Posilat = 0
    //Posilat += (Posta == "A")? 1:0; 
    //Posilat += (Frekv1 == "A")? 1:0; 
    //Posilat += (Frekv2 == "A")? 1:0; 

    //if (Posilat !== 0 && Adresa.length == 0){
    //   alert(PostaErr[Jazyk]);
    //   return
    // }


    // kontrola opakovaného poslání
    var Zamek = $("#Zamek")[0];

    if (Zamek.value.length == 0) {
        Zamek.value = Email;
    }
    else {
        if (Zamek.value == Email) {
            alert("Požadavek pro mailovou adresu " + Email.toUpperCase() + " byl již jednou odeslán.");
            return;
        }
        Zamek.value = Email;
    }

    // poslání uživatelských informací na server
    // Parametry
    //           OdpovedServeru - funkce, která zpracuje asynchronní odpověď serveru
    //           OnFailure - funkce, která se volá, pokud na serveru došlo k chybě

    PageMethods.Novinky(Jmeno, Telefon, Email, Adresa, RokNarozeni,
                     Extra, Narodni, Stavovske, Kolowrat, NovaScena, StatniOpera,
                     Opera, Cinohra, Balet,
    //Posta, Mailem, Program, Frekv1, Frekv2, Frekv3,  
                     OdpovedServeru, OnFailure);

    alert("Váš požadavek byl odeslán.");
}

// funkce pro zachycení asynchronní odpovědi serveru
// Parametry: txtServer   - data předaná ze serveru (string)
//            userContext - v tomto případě nepoužito - standardně obsahuje null
//            methodName  - jméno metody, která komunikaci se serverem zahájila

var OdpovedServeru = function(txtServer, userContext, methodName) {
    //alert(txtServer + " " + userContext + " " + methodName);
    alert(txtServer);
}

var OnFailure = function (error, userContext, methodName) {  
          alert("Chyba serveru: " + error.get_message());  
     }  


function checkemail(str){
    var result;
    var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    if (filter.test(str)) {
        result = true;
    } else {
        result = false;
    }
    return (result);
}

function ZaskrtnoutVse(Name){ 
  var Povoleno = $("#chkExtra").attr("checked");
  if (Povoleno == true){   
   var Boxy = $('[@name=' + Name + ']:checkbox');
   var Kolik = Boxy.length;
   for (var i = 0; i < Kolik; i++) { 
       Boxy[i].checked = true;
    } 
  }
}

function ChciProgram(){
 var Chci = $("#chkProgram").attr("checked");
 if (Chci == true){
   $("#chkFrekvence1")[0].disabled = false;
   $("#chkFrekvence2")[0].disabled = false;
   $("#chkFrekvence3")[0].disabled = false;   
   }
  else {
   $("#chkFrekvence1")[0].disabled = true;
   $("#chkFrekvence1").attr("checked",false);
   
   $("#chkFrekvence2")[0].disabled = true;
   $("#chkFrekvence2").attr("checked",false);
   
   $("#chkFrekvence3")[0].disabled = true;
   $("#chkFrekvence3").attr("checked",false);
  
  } 
}

function ChciInformace(){
 var Chci = $("#chkExtra").attr("checked");
 
 if (Chci == true){
   // chce dostávat mimořádné informace
   $("#chkND")[0].disabled = false;
   $("#chkStD")[0].disabled = false;
   $("#chkDK")[0].disabled = false;
   $("#chkNS")[0].disabled = false;
 
   $("#chkOpera")[0].disabled = false;
   $("#chkCinohra")[0].disabled = false;
   $("#chkBalet")[0].disabled = false;
 
   $("#chkPosta")[0].disabled = false;
   $("#chkEmail")[0].disabled = false; 
   }
  else {
   $("#chkND")[0].disabled = true;
   $("#chkND").attr("checked",false);
   
   $("#chkStD")[0].disabled = true;
   $("#chkStD").attr("checked",false);
   
   $("#chkDK")[0].disabled = true;
   $("#chkDK").attr("checked", false);

   $("#chkNS")[0].disabled = true;
   $("#chkNS").attr("checked", false);
   
   $("#chkOpera")[0].disabled = true;
   $("#chkOpera").attr("checked",false);

   $("#chkCinohra")[0].disabled = true;
   $("#chkCinohra").attr("checked",false);

   $("#chkBalet")[0].disabled = true;
   $("#chkBalet").attr("checked",false);
 
   $("#chkPosta")[0].disabled = true;
   $("#chkPosta").attr("checked",false);

   $("#chkEmail")[0].disabled = true;
   $("#chkEmail").attr("checked",false);
  
  }
 
}


//----------------------------------------------------------------------------------
//-------------------------- Žádost o poskytnutí informací -------------------------
//----------------------------------------------------------------------------------
//
// Metoda zkontroluje vyplnění formuláře žádosti o informace a pokud je vše OK
// pošle požadavek na server.
//
// HTML pro volání metody
// ========================
//  <input type="text" value="@" id="txtFirma" class="txt" />
//  <input type="text" value="@" id="txtJmeno" class="txt" />
//  <input type="text" value="@" id="txtNarozeni" class="txt" />
//  <input type="text" value="@" id="txtUlice" class="txt" />
//  <input type="text" value="@" id="txtMesto" class="txt" />
//  <input type="text" value="@" id="txtPSC" class="txt" />
//  <input type="text" value="@" id="txtStat" class="txt" />
//  <input type="text" value="@" id="txtMail" class="txt" />
//  <input type="text" value="@" id="txtZprava" class="txt" />
var InformaceZadost = function(Jazyk){
    // nastavení chybových hlášení pro kontrolu mailové adresy
    var EmailErr = new Array;
    EmailErr["CZ"] = "Chybná mailová adresa";
    EmailErr["EN"] = "Invalid mail address";

    // nastavení chybových hlášení pro kontrolu checkboxů
    var BoxErr = new Array;
    BoxErr["CZ"] = "Nic jste si neobjednal.";
    BoxErr["EN"] = "Empty order";

    // kontrola mailové adresy
    var Email = $("#txtMail")[0].value;
    var MailValid = checkemail(Email);
    if(MailValid == false){
        alert(EmailErr[Jazyk]);
        return false;
    }
    Email = Email.toLowerCase();

    // Firma
    var Firma = $("#txtFirma")[0].value;
    var Jmeno = $("#txtJmeno")[0].value;
    var Narozeni = $("#txtNarozeni")[0].value;
    var Ulice = $("#txtUlice")[0].value;
    var Mesto = $("#txtMesto")[0].value;
    var PSC = $("#txtPSC")[0].value;
    var Stat = $("#txtStat")[0].value;
    var Zprava = $("#txtZprava")[0].value;
    
    // kontrola opakovaného poslání
    var Zamek = $("#Zamek")[0];

    if (Zamek.value.length == 0) {
        Zamek.value = Email;
    } else {
        if (Zamek.value == Email) {
            alert("Požadavek pro mailovou adresu " + Email.toUpperCase() + " byl již jednou odeslán.");
            return;
        }
        Zamek.value = Email;
    }
    
    //alert("pred poslanim")
    // poslání uživatelských informací na server
    // Parametry
    //           OdpovedServeru - funkce, která zpracuje asynchronní odpověď serveru
    //           OnFailure - funkce, která se volá, pokud na serveru došlo k chybě
    PageMethods.InfoZadost(Firma,Jmeno,Narozeni,Ulice,Mesto,PSC,Stat,
                            Email,Zprava,OdpovedServeru,OnFailure);  
}

//----------------------------------------------------------------------------------
//--------------------------         Zeptejte se          --------------------------
//----------------------------------------------------------------------------------
//
// Metoda zkontroluje vyplnění formuláře Zeptejte se! a pokud je vše OK
// pošle požadavek na server.
//
// HTML pro volání metody
// ========================
var ZeptejteSe = function(Jazyk) {
    // nastavení chybových hlášení pro kontrolu mailové adresy
    var EmailErr = new Array;
    EmailErr["CZ"] = "Chybná mailová adresa";
    EmailErr["EN"] = "Invalid mail address";

    // nastavení chybových hlášení pro kontrolu checkboxů
    var BoxErr = new Array;
    BoxErr["CZ"] = "Nic jste si neobjednal.";
    BoxErr["EN"] = "Empty order";

    // kontrola mailové adresy
    var Mail = $("#txtMail")[0].value;
    var MailValid = checkemail(Mail);
    if (MailValid == false) {
        alert(EmailErr[Jazyk]);
        return false;
    }
    Mail = Mail.toLowerCase();
    var KohoZeptat = $("#optKohoZeptat option:selected").val();
    var Jmeno = $("#txtJmeno")[0].value;
    var Zprava = $("#txtZprava")[0].value;
    // alert("pred poslanim")
    // poslání uživatelských informací na server
    // Parametry
    //           OdpovedServeru - funkce, která zpracuje asynchronní odpověď serveru
    //           OnFailure - funkce, která se volá, pokud na serveru došlo k chybě

    // kontrola opakovaného poslání
    var Zamek = $("#Zamek")[0];

    if (Zamek.value.length == 0) {
        Zamek.value = Mail;
    } else {
        if (Zamek.value == Mail) {
            alert("Požadavek pro mailovou adresu " + Mail.toUpperCase() + " byl již jednou odeslán.");
            return;
        }
        Zamek.value = Mail;
    }

    PageMethods.ZeptejteSe(KohoZeptat, Jmeno, Mail, Zprava, OdpovedServeru, OnFailure);
}
