function isValidEmail(email, required) {
    if (required==undefined) {   // if not specified, assume it's required
        required=true;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {  
        if (required) {
            return false;
        }
        return true;
    }
    if (! allValidChars(email)) {  // check to make sure all characters are valid
        return false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
        return false;
    } else if (email.indexOf("@") == email.length) {  // @ must not be the last character
        return false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
	return false;
    } else if (email.indexOf(".") == email.length) {  // . must not be the last character
	return false;
    }
    return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}

$(document).ready(function () {
  // inicializace lightbox
  //$('a[@rel*=lightbox]').lightBox();
  
  /* IE fix */
  if($.browser.msie){
    $("a").each(function( i ){
      if($(this).attr('href') == 'javascript: {}' || $(this).attr('href') == 'javascript: {};')
        $(this).attr('href', '#');
    });
  }
  
  $('#animace').focus(function(){
    $('#animace').append('<form><input type="hidden" id="animace-focus-hack" /></form>');
    $('#animace-focus-hack').focus();
  });
  
  $('a.clickable').each(function(i){
    var id = $(this).attr('rel');
    $(this).toggle(
      function(){
        $("div#menu-" + id).removeClass('hide');
        /* uprava pro automaticke presmerovani pri kliknuti na root polozku*/
        if($("div#menu-" + id).find('a.current').attr('rel') != 'active')
          window.location.replace( $("div#menu-" + id + " a:first").attr('href') );
      },
      function(){
        $("div#menu-" + id).addClass('hide');
      }
    );
    if($("div#menu-" + id).find('a.current').attr('rel') == 'active')
      $(this).click();
  });
  
  
  // inicializace funkci razeni
  initSort();
  
  // inicializace katalog, tabulkovy vypis - vkladani do kosiku
  $('.kosik-2').each(function(i){
    $(this).click(function(){
      $(this).parent().submit();
    });
  });
  $('.obr-dokosiku').each(function(i){
    $(this).click(function(){
      $(this).parent().parent().submit();
    });
  });
  
  // inicializace detail vyrobku
  $('#detail-obrazek a[@rel=lightbox]').lightBox({
    multipleImages: false
  });
  
  $('.detail-fotogalerie a[@rel*=lightbox]').lightBox();
  
  /*$('.detail-dokosiku').each(function(i){
    $(this).click(function(){
      $(this).parent().parent().submit();
    });
  });*/
  
  $('.detail-dokosiku').click(function(){
    var varianta_id = $(this).parent().parent().find('input[@name=varianta_id]').val();
    var checked = false;
    if(varianta_id > 0 && $('#detail-podlozka input[@name=check_podlozka]').attr('checked') != undefined){
      $('#detail-podlozka input[@name=check_podlozka]').each(function(i){
        if($(this).attr('rel') == varianta_id)
          checked = $(this).attr('checked');
      });
      
      if(checked){
        if(confirm('Přidat akvárium do košíku s podložkou?')){
          $(this).parent().parent().find('input[@name=podlozka]').val('1');
          $(this).parent().parent().submit();
        }
        else
          return false;
      }
      else{
        if(confirm('Přidat akvárium do košíku bez podložky?'))
          $(this).parent().parent().submit();
        else
          return false;
      }
    }
    else{
      $(this).parent().parent().submit();
    }
  });
  
  // inicializace pridavani do kosiku u tabulek
  $('.varianty a.akvarium').click(function(){
    var varianta_id = $(this).parent().find('input[@name=varianta_id]').val();
    var checked = false;
    $('.varianty input[@name=check_podlozka]').each(function(i){
      if($(this).attr('rel') == varianta_id)
        checked = $(this).attr('checked');
    });
    
    if(checked){
      if(confirm('Přidat akvárium do košíku s podložkou?')){
        $(this).parent().find('input[@name=podlozka]').val('1');
        $(this).parent().submit();
      }
      else
        return false;
    }
    else{
      if(confirm('Přidat akvárium do košíku bez podložky?'))
        $(this).parent().submit();
      else
        return false;
    }
  });
  
  $('.varianty a.terarium, .varianty a.3d-pozadi, .varianty a.nabytkove-komplety').click(function(){
    $(this).parent().submit();
  });
  
  // inicializace poptavkovych formularu u tabulek
  $('.vlastnirozmer-link').toggle(
    function(){
      $(this).find('a').addClass('in');
      $(this).parent().find('form').removeClass('vypnuto');
    },
    function(){
      $(this).find('a').removeClass('in');
      $(this).parent().find('form').addClass('vypnuto');
    }
  );
  
  $('.rozmery-a-ceny').toggle(
    function(){
      $(this).find('a').addClass('in').text('Zavřít nabídku');;
      $(this).parent().find('.tabulka-z02').removeClass('vypnuto');
    },
    function(){
      $(this).find('a').removeClass('in').text('Zobrazit rozměry a ceny');
      $(this).parent().find('.tabulka-z02').addClass('vypnuto');
    }
  );
  
  $('.nabytkove-komplety').toggle(
    function(){
      $(this).find('a').addClass('in').text('Zavřít nabídku');;
      $(this).parent().find('.tabulka-z02').removeClass('vypnuto');
    },
    function(){
      $(this).find('a').removeClass('in').text('Zobrazit varianty');
      $(this).parent().find('.tabulka-z02').addClass('vypnuto');
    }
  );
  
  $('.vlastni-rozmer').toggle(
    function(){
      $(this).find('a').addClass('in').text('Zavřít nabídku');;
      $(this).parent().find('form').removeClass('vypnuto');
    },
    function(){
      $(this).find('a').removeClass('in').text('Požaduji vlastní rozměr');
      $(this).parent().find('form').addClass('vypnuto');
    }
  );
  
  $('.pozaduji-variantu').toggle(
    function(){
      $(this).find('a').addClass('in').text('Zavřít nabídku');;
      $(this).parent().find('form').removeClass('vypnuto');
    },
    function(){
      $(this).find('a').removeClass('in').text('Požaduji variantu');
      $(this).parent().find('form').addClass('vypnuto');
    }
  );
  
  $('.vyber-01 select[@name=objem_filter]').change(function(){
    $(this).parent().submit();
  });
  
  $('.tab-img[@rel*=lightbox]').lightBox({
    multipleImages: false
  });
  
  // inicializace kosiku
  $('.tabulka .smazat').each(function(i){
    $(this).click(function(){
      var rel = $(this).attr('rel').split(',');
      var zbozi_id = rel[0];
      var varianta_id = rel[1];
      var podlozka = rel[2];
      if (confirm('Chcete smazat tuto položku - jste si jist')) 
        location.replace('/kosik/?act=smazat-polozku-kosik&kosik_zbozi_id=' + zbozi_id + '&kosik_varianta_id=' + varianta_id + '&kosik_podlozka=' + podlozka);
    });
  });
  
  $("#prepocitat").click(function(){
    $("#kosik-form").submit();
  });
  
  // inicializace fotogalerie v clanku
  $('.photogalery').each(function(i){
    $(this).find('a[@rel*=lightbox]').lightBox();
  });
  
  // inicializace poptavkoveho formulare  
  $(".vlastnirozmer .odeslat-poptavku, .vlastnirozmer2 .odeslat-poptavku").click(function(){
      form = $(this).parent().parent().parent().parent().parent();
      typ = form.find("input[@name=typ]").val();  

      if(typ == "nabytkove-komplety"){
        select = form.find("select[@name=varianty]");
        form.find("input[@name=varianta]").val(select.find("option:selected").text());
      }
        
      if(ValidatePoptavkaForm(form))
        form.submit();      
  });
  
  
  
  // inicializace poptavkoveho formulare  3d pozadi
  /*$(".vlastnirozmer .odeslat-poptavku").click(function(){
      if(ValidatePoptavkaForm($(this).parent().parent().parent().parent().parent()))
        $(this).parent().parent().parent().parent().parent().submit();
  });*/
  
  // inicializace dopravy, platby
  $('.disabled').each(function( i ){
    $(this).children('input[@type=radio]').attr({
       disabled: 'disabled',
       style: "cursor: default"
    });
    
    $(this).parent().mouseover(function(){
      $(this).css('background','none');
    });
  });
  
  $('#k-objednavce').click(function(){
    $(this).parent().parent().parent().submit();
  });  
    
  // inicializace funkci uzivatelskeho formulare
  initUserForm();
  initUserFormValidation();
    
  // inicializace prihlasovaciho formulare
  $("#ok2").click(function(){
    $("#login-form").submit();
  });
  
  $("#eshop_loginform-buton-02").click(function(){
    $("#obj-login-form").submit();
  });
  
  // inicializace nakup v akci
  $('.akce .kosik-1').each(function(i){
    $(this).click(function(){
      $(this).parent().submit();
    });
  });
  
  $("#objednavka-form").submit(function(){
      return Validate();
  });
  
  $("#ok").click(function(){
    $("#search-form").submit();
  });
});

function initSort(){
  $('#form-sort #razeni-dle-01, #form-sort #razeni-dle-01-s, #form-sort #razeni-dle-01-v').click(function(){
    var sort = $('#form-sort #sort').val();
    
    $('#form-sort #radit-podle').val('nazev');
    $('#form-sort #sort').val(sort == 0? 1 : 0);
      
    $('#form-sort').submit();
  });
  
  $('#form-sort #razeni-dle-02, #form-sort #razeni-dle-02-s, #form-sort #razeni-dle-02-v').click(function(){
    var sort = $('#form-sort #sort').val();
    
    $('#form-sort #radit-podle').val('cena');
    $('#form-sort #sort').val(sort == 0? 1 : 0);
      
    $('#form-sort').submit();
  });
}

function initUserForm(){
  $('#eshop_userform label, #eshop_userform input[@type=radio], #eshop_userform input[@type=checkbox]').css({cursor:"pointer"});
  
  if($('#osobni').attr("checked"))
    $('#firemni-udaje').hide();
  $('#firemni').click(function(){
    $("#firemni-udaje").show();
  });
  $('#osobni').click(function(){
    $('#firemni-udaje').hide();
  });
  $('#info-is-same').click(function(){
    if($(this).attr("checked"))
      $('#dodaci-udaje').hide();
    else
      $('#dodaci-udaje').show();
  });
  if($('#info-is-same').attr("checked"))
    $('#dodaci-udaje').hide();
}

function initUserFormValidation(){
  $("#eshop_userform input[@rel=requied]").change(
    function(){
      if($(this).val() == '' || $(this).val() == '@'){
        $(this).removeClass('normal-input');
        $(this).addClass('requied-input');
      }
      else{
        $(this).removeClass('requied-input');
        $(this).addClass('normal-input');
      }
    }
  );
  
  $("#eshop_userform form").submit(function(){
      return Validate();
  });
  
  $("#eshop_userform input[@rel=requied]").each(function(i){
    $(this).change();
  });
  
  $("#eshop_userform #eshop_userform-buton-02").click(function(){ 
    $.isFunction($("#eshop_userform form").submit())
    $.isFunction($("#objednavka-form").submit())
  });
}

function ValidatePoptavkaForm(form){
     var objInputs = {delka: "Délka", sirka: "Šířka", vyska: "Výška",
                      jmeno: "Jméno", prijmeni: "Příjmení", telefon: "tel.", email: "email"
                     };
     typ = form.find("input[@name=typ]").val();
     if(typ == "3d-pozadi"){
       objInputs = {sirka: "Šířka", vyska: "Výška",
                    jmeno: "Jméno", prijmeni: "Příjmení", telefon: "tel.", email: "email"
                   };
     }
     else if(typ == "nabytkove-komplety"){
       objInputs = {varianty: "Varianta", jmeno: "Jméno", prijmeni: "Příjmení", telefon: "tel.", email: "email"};
     }
     var result = false;
     
     
     
     $.each(objInputs,function(name, val){
        select = form.find("select[@name=" + name + "]");
        if(select[0] != undefined){
          if(select.val() == 0){
            alert("Vyberte prosím '" + val + "'.");
            select.focus();
            result = false;
            return result;
          }
          /*else{
            form.find("input[@name=varianta]").val(select.find("option:selected").text());
          }*/
        }
        // insert text validation
        input = form.find("input[@name=" + name + "]");
        if(input[0] != undefined){
          if(input.val() == '' && input.attr('rel') == 'requied'){
            alert("Vyplňte prosím pole '" + val + "'.");
            input.focus();
            result = false;
            return result;
          }
          // email validation
          else if(name == "email" && !isValidEmail(input.val(),true) && input.attr('rel') == 'requied'){
            alert("Prosím vložte správnou e-mailovou adresu do pole  '" + val + "'.");
            input.val('@')
                                                          .focus()
                                                          .select();
            result = false;
            return result;
          }
          else{
            result = true;
            return result;
          }
        }
     });  
         
    return result;
}

function Validate(){
     var objInputsSmall = {loginname: "Přihlašovací jméno", password: "Heslo", re_password: "Heslo znovu",
                           kjmeno: "Jméno", kprijmeni: "Příjmení", email: "E-mail", telefon: "Telefon", 
                           jmeno: "Jméno", prijmeni: "Příjmení", ulice: "Ulice (č.p.)", mesto:"Město", psc: "PSČ"};
     var objInputs = {loginname: "Přihlašovací jméno", password: "Heslo", re_password: "Heslo znovu",
                      kjmeno: "Jméno", kprijmeni: "Příjmení", email: "E-mail", telefon: "Telefon",
                      firma: "Firma", ico: "IČO", dic: "DIČ", jmeno: "Jméno", prijmeni: "Příjmení", ulice: "Ulice (č.p.)", mesto:"Město", psc: "PSČ"};
     var result = false;
     
          
     if($("#eshop_userform #osobni").attr("checked"))
       objInputs = objInputsSmall;
         
     $.each(objInputs,function(name, val){
        // insert text validation
        if($("#eshop_userform input[@name=" + name + "]")[0] != undefined){
          if($("#eshop_userform input[@name=" + name + "]").val() == '' && $("#eshop_userform input[@name=" + name + "]").attr('rel') == 'requied'){
            alert("Vyplňte prosím pole '" + val + "'.");
            $("#eshop_userform input[@name=" + name + "]").focus();
            result = false;
            return result;
          }
          // email validation
          else if(name == "email" && !isValidEmail($("#eshop_userform input[@name=" + name + "]").val(),true)){
            alert("Prosím vložte správnou e-mailovou adresu do pole  '" + val + "'.");
            $("#eshop_userform input[@name=" + name + "]").val('@')
                                                          .focus()
                                                          .select();
            result = false;
            return result;
          }
          else if(name == "loginname" && $("#eshop_userform input[@name=" + name + "]").val().length < 5){
            alert("Pole '" + val + "' vyžaduje minimálně 5 znaků.");
            $("#eshop_userform input[@name=" + name + "]").focus()
                                                          .select();
            result = false;
            return result;
          }
          else if((name == "password" || name == "re_password" ) && $("#eshop_userform input[@name=" + name + "]").val().length < 6){
            if(($("#eshop_userform input[@name=act]")[0] != undefined && $("#eshop_userform input[@name=act]").val() != 'upravit-reg-udaje')){
              alert("Pole '" + val + "' vyžaduje minimálně 6 znaků.");
              $("#eshop_userform input[@name=" + name + "]").focus()
                                                            .select();
              result = false;
            }
            else if(($("#eshop_userform input[@name=act]")[0] != undefined && $("#eshop_userform input[@name=act]").val() == 'upravit-reg-udaje') && $("#eshop_userform input[@name=" + name + "]").val() != ''){
              alert("Pole '" + val + "' vyžaduje minimálně 6 znaků.");
              $("#eshop_userform input[@name=" + name + "]").focus()
                                                            .select();
              result = false;
            }
            return result;
          }
          else if($("#eshop_userform input[@name=password]").val() != $("#eshop_userform input[@name=re_password]").val()){
            alert("Pole 'Heslo' není shodné s polem 'Heslo znovu'.");
            $("#eshop_userform input[@name=re_password]").val('');
            $("#eshop_userform input[@name=password]").val('')
                                                      .focus();
            result = false;
            return result;
          }
          else{
            result = true;
            return result;
          }
        }
     });  
         
    return result;
}
