var opened = false;
var checker = null;
var lastCheckResult = false;
var lastAjaxResult = false;
var lastNick = null;
var actualPage = "hlavni-strana";

$("document").ready(function e() {

  // Navesi udalost pro zavreni dialogove okna.
  $("#dialogClose").click(function () {
    $("#dialogFrame").fadeOut(300, function() {
      $("#dialogContent").html("");
      $("#dialogTitle").html("");
    });
    opened = false;
    checker = null;
  });

  // Navesi udalost na tlacitko prihlaseni.
  $("#actionBonus").click(function (e) { openDialog("Bonusové funkce a obsah", "ajax:bonus", e); });
  // Navesi udalost na tlacitko prihlaseni.
  $("#actionLogin").click(function (e) { openDialog("Přihlášení uživatele", "ajax:login", e); });
  // Navesi udalost pro otevreni okna "FAQ".
  $("#actionFaq").click(function (e) { openDialog("Otázky a odpovědi", "ajax:faq", e); });
  // Navesi udalost pro otevreni okna "Proc se registrovat". 
  $("#actionWhy").click(function (e) { openDialog("Proč se registrovat?", "ajax:why", e); });


  // Navesi udalost pro otevreni okna potvrzeni cisla.
  $(".actionVerifyNumber").click(function (e) { openDialog("Potvrzení čísla", "ajax:verify", e); });
  // Navesi udalost pro otevreni okna potvrzeni cisla.
  $(".actionDeleteNumber").click(function (e) { openDialog("Opravdu smazat číslo?", "ajax:delete", e); });

  // Navesi udalost pro otevreni okna pro zmenu hesla. 
  $("#actionChangePass").click(function (e) { 
    checker = function() {
      var result = "";
      var _pass1 = $("input[name=cpass_pass1]").val();
      var _pass2 = $("input[name=cpass_pass2]").val();
      if (_pass1.length < 5) result += '<p class="error">Prosím zadej heslo. Musí být dlouhé alespoň 5 znaků.</p>';
      if (_pass1 != _pass2) result += '<p class="error">Hesla se neshodují.</p>';
      lastCheckResult = result.length == 0;      
      if (lastCheckResult) {
         result += '<p class="hint">V pořádku.</p>';
      }
      return result;
    }
    openDialog("Změna hesla", "ajax:cpass", e); 
  });

  // Navesi udalost na zmenu nastaveni
  $("#actionChangeSet").click(function (e) { 
    checker = function() {
      var result = "";
      var _name = $("input[name=reg_name]").val();
      var _email = $("input[name=reg_email]").val();
      if (_name.length == 0) result += '<p class="error">Prosím zadej svoje jméno.</p>';
      if (_email.length == 0) result += '<p class="error">Prosím zadej svůj email.</p>';
      lastCheckResult = result.length == 0;
      return result;
    }
    openDialog("Změna nastavení", "ajax:settings", e); 
  });


  // Navesi udalost na registracni tlacitko a vytvori prislusny validator. 
  $("#actionChangeNumber").click(function (e) { 
    checker = function() {
      var result = "";
      var _number = $("input[name=cnum_number]").val();
      if (_number.length == 0) result += '<p class="error">Prosím zadej svoje telefonní číslo. Zadej ho správně, je důležité.</p>';
      if (_number.length != 0) {
        var ok = true;
        if ((_number.substring(0, 4) != "+420")&&(_number.substring(0, 4) != "+421")) ok = false;
        if (_number.length != 13) ok = false;
        if (!ok) result += '<p class="error">Telefonní číslo zadej včetně mezinárodní předvolby (+420 pro ČR, +421 pro SK) bez mezer.</p>';
      }
      lastCheckResult = result.length == 0;
      if (lastCheckResult) {
         result += '<p class="hint">V pořádku.</p>';
      }
      return result;
    }
    openDialog("Přidání telefonního čísla", "ajax:cnum", e); 
  });


  // Navesi udalost na registracni tlacitko a vytvori prislusny validator. 
  $("#actionRegister").click(function (e) { 
    checker = function() {
      var result = "";
      var _nick = $("input[name=reg_nick]").val();
      var _name = $("input[name=reg_name]").val();
      var _pass1 = $("input[name=reg_pass1]").val();
      var _pass2 = $("input[name=reg_pass2]").val();
      var _email = $("input[name=reg_email]").val();
      var _number = $("input[name=reg_number]").val();
      if (lastNick != _nick) {
        $.get("ajax.test.nick.php", { "nick" : _nick },  function (data) {
          $(".nickController").html(data);
          lastAjaxResult = true;
          if (data != "OK") {
            $(".nickController").html('<p class="error">Zadaná přezdívka již existuje, zvol si jinou.</p>');   
            lastAjaxResult = false;
          } else {
            $(".nickController").html("");              
          }
        });
        lastNick = _nick;
      }
      if (_nick.length < 3) result += '<p class="error">Prosím zadej přezdívku. Musí být dlouhá alespoň 3 znaky.</p>';
      if (_name.length == 0) result += '<p class="error">Prosím zadej svoje jméno.</p>';
      if (_pass1.length < 5) result += '<p class="error">Prosím zadej heslo. Musí být dlouhé alespoň 5 znaků.</p>';
      if (_pass1 != _pass2) result += '<p class="error">Hesla se neshodují.</p>';
      if (_email.length == 0) result += '<p class="error">Prosím zadej svůj email.</p>';
      if (_number.length == 0) result += '<p class="error">Prosím zadej svoje telefonní číslo.</p>';
      if (_number.length != 0) {
        var ok = true;
        if ((_number.substring(0, 4) != "+420")&&(_number.substring(0, 4) != "+421")) ok = false;
        if (_number.length != 13) ok = false;
        if (!ok) result += '<p class="error">Telefonní číslo zadej včetně mezinárodní předvolby (+420 pro ČR, +421 pro SR) bez mezer.</p>';
      }
      lastCheckResult = result.length == 0;
      return result;
    }
    openDialog("Registrace uživatele", "ajax:register", e); 
  });

  // Navesi udalost na prvky pro kontaktovani. Vytvori validator pro formular. 
  $(".actionMail").click(function (e) { 
    checker = function() {
      var result = "";
      var subject = $("input[name=mail_subject]").val();
      var email = $("input[name=mail_email]").val();
      var message = $("textarea[name=mail_message]").val();            
      if (subject.length == 0) result += '<p class="error">Prosím zadej předmět zprávy.</p>';
      if (email.length == 0) result += '<p class="error">Prosím zadej tvůj email.</p>';
      if (message.length == 0) result += '<p class="error">Prosím zadej text zprávy.</p>';            
      lastCheckResult = result.length == 0;
      return result;
    }
    openDialog("Napiš nám", "ajax:message", e); 
  });

});


// Otevre dialogove okno. Tato funkce provede operaci okamzite. 
function openDialogDo(title, data, e) {
  $("#dialogContent").html('<div class="loading">Načítám...</div>');
  $("#dialogTitle").html(title);
  var obj = $("#dialogFrame");
  obj.css("top", "100px"); // ($(window).height() - obj.height())/2  + 'px');
  obj.css("left", ($(window).width() - obj.width())/2  + 'px');
  if (data.substring(0, 5) == "ajax:") {
   var script = "ajax.content." + data.substring(5) + ".php";
   $.get(script, { "page" : actualPage, "itemid" : e.target.id },  function (data) {
     $("#dialogContent").html(data);
     check();
   });
  } else {
    $("#dialogContent").html($("#"+data).html());
    check();  
  }  
  obj.fadeIn(300);
  opened = true;
}

// Otevre dialogove okno se zadanym nazvem a obsah vezme z pole s ID data. Pokud je jiz okno otevreno tak ho nejdrive zavre.
function openDialog(title, data, e) {
  if (opened) {
    $("#dialogFrame").fadeOut(300, function () {
      openDialogDo(title, data, e);
    });
  } else {
    openDialogDo(title, data, e);
  }
}

// Pokud je nastaven nejaky aktualni validator (checker) pro formular, tak ho pusti a vlozi vysledek do oblasti pro chyby. 
function check() {
  if (checker != null) {
    var data = checker();
    $(".autoController").html(data);
  }         
}