/*
     * jQuery ifixpng plugin
     * Version 2.1  (23/04/2008)
     * Copyright (c) 2007 Kush M.
     * Dual licensed under the MIT and GPL licenses
     */
    (function($){$.ifixpng=function(customPixel){$.ifixpng.pixel=customPixel;};$.ifixpng.getPixel=function(){return $.ifixpng.pixel||'../gfx/transparent.gif';};var hack={ltie7:$.browser.msie&&$.browser.version<7,filter:function(src){return"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=crop,src='"+src+"')";}};$.fn.ifixpng=hack.ltie7?function(){return this.each(function(){var $$=$(this);var base=$('base').attr('href');if(base){base=base.replace(/\/[^\/]+$/,'/');}
    if($$.is('img')||$$.is('input')){if($$.attr('src')){if($$.attr('src').match(/.*\.png([?].*)?$/i)){var source=(base&&$$.attr('src').search(/^(\/|http:)/i))?base+$$.attr('src'):$$.attr('src');$$.css({filter:hack.filter(source),width:$$.width(),height:$$.height()}).attr({src:$.ifixpng.getPixel()}).positionFix();}}}else{var image=$$.css('backgroundImage');if(image.match(/^url\(["']?(.*\.png([?].*)?)["']?\)$/i)){image=RegExp.$1;image=(base&&image.substring(0,1)!='/')?base+image:image;$$.css({backgroundImage:'none',filter:hack.filter(image)}).children().children().positionFix();}}});}:function(){return this;};$.fn.iunfixpng=hack.ltie7?function(){return this.each(function(){var $$=$(this);var src=$$.css('filter');if(src.match(/src=["']?(.*\.png([?].*)?)["']?/i)){src=RegExp.$1;if($$.is('img')||$$.is('input')){$$.attr({src:src}).css({filter:''});}else{$$.css({filter:'',background:'url('+src+')'});}}});}:function(){return this;};$.fn.positionFix=function(){return this.each(function(){var $$=$(this);var position=$$.css('position');if(position!='absolute'&&position!='relative'){$$.css({position:'relative'});}});};})(jQuery);

    //semafor, jestli je potreba aktivovat zobrazeni akce, pokud 0, tak nicm jinak natahnout veci pro danou akci
    var semaforAdvertID = 0;
    var kosikKrok = 0;

    jQuery(function ($) {
      closer.init();
      menuTop.init();
      /* menu first hover */
      $("#menu-top li:first").addClass("first");
      $("#menu-top li.first").hover(
        function () {$(this).addClass('menu-first');}, 
        function () {$(this).removeClass('menu-first');}
      );

      $("#menu-top li:first.active").addClass("menu-first");
      $("#hp-selfpromo li:last").addClass("last");
      
      /* HP 3 */
      $('#hp-selfpromo li p').hide();
      $('#hp-selfpromo li a').toggle(function() {
      $(this).parent().find('p').show();
    }, function() {
      $(this).parent().find('p').hide();
    });
      
      /* toggle marks */
      $('#toggle-marks').toggle(function() {
      $('#brands-to-hide').show();
      $('.mark a').addClass("show");
    //hack kvuli IEcku
      curvyCorners.adjust(document.getElementById('filter'), 'font-size', '12px');
      curvyCorners.redraw();
    }, function() {
      $('#brands-to-hide').hide();
      $('.mark a').removeClass("show");
    //hack kvuli IEcku
      curvyCorners.adjust(document.getElementById('filter'), 'font-size', '12px');
      curvyCorners.redraw();
    });

    });

    var closer = {
      init: function () {
        $('.close2').click( function () {
            $("#cat-box").fadeOut(800);
        });
      }
    }; // closer



    var menuTop = {
      init: function () {
        $("#menu li:first, #vs1 div:first, #vs2 div:first, #vs3 div:first").css("background", "none");
        $("#menu-top li:first.active").css("background-position", "0 top");
      }
    }; //menu top

    var htmlLogin = "";

    $(document).ready(function() {
        $("#html-login").hide();
        $("#login").click(function() {
            $("#html-login").fadeIn(600).addClass("html-login");
            $("#html-login .close").click(function () {
                $("#html-login").fadeOut(600);
            });
            return false;
        });
        if  ( ($.browser.msie) && (parseInt($.browser.version, 10) < 9) )  {
          curvyCorners.init();
        }
        $("#search-input").autocomplete("/ajax/search/autocomplete/",
          {
              delay:10,
              minChars:2,
              matchSubset:1,
              matchContains:1,
              cacheLength:0,
              autoFill:false,
              width: 244,
              formatItem: function(itemData, itemNumber, numberOfItems) {
                  if (itemData.length > 1) return itemData[0] + '&nbsp;&nbsp;&nbsp;<span class="naseptavac-druh" >('+itemData[1]+')</span>';
                  else return itemData[0];
              },
              onItemSelect: function(li) {
                  if (li.extra && li.extra.length > 1) {
                      window.location.replace(li.extra[1]);
                  }
                  else $('#search').submit();
              }
          }
          );
        /*FILTERING*/
        /* AJAX filter */
          if (filteringF1 == true) {        
          $("#slider-range").slider({
              range: true,
              min: filteringF1Min,
              max: filteringF1Max,
              values: [filteringF1CurMin,filteringF1CurMax],
              slide: function(event, ui) {
                  $("#amount").val(ui.values[0]);
                  $("#amount2").val(ui.values[1]);
              },
              change: function(event, ui) {
                  $("#amount").val(ui.values[0]);
                  $("#amount2").val(ui.values[1]);
                  updateProductPane();
                  setCookie("amount",ui.values[0]);
                  setCookie("amount2",ui.values[1]);
              }
          });
          $("#amount").val($("#slider-range").slider("values", 0));
          $("#amount2").val($("#slider-range").slider("values", 1));
          $("#slider-range").children("a").attr("title","Minimální cena");
          $("#slider-range").children("a").next().attr("title","Maximální cena");        
         }

          if (filteringF2) {
          /* AJAX filter2 */
            $("#slider-range2").slider({
                range: true,
                min: filteringF2Min,
                max: filteringF2Max,
                values: [filteringF2CurMin,filteringF2CurMax],
                slide: function(event, ui) {
                    $("#amount3").val(ui.values[0]);
                    $("#amount4").val(ui.values[1]);
                },
                change: function(event, ui) {
                    $("#amount3").val(ui.values[0]);
                    $("#amount4").val(ui.values[1]);
                    updateProductPane();
                    setCookie("amount3",ui.values[0]);
                    setCookie("amount4",ui.values[1]);
                }
            });
            $("#amount3").val($("#slider-range2").slider("values", 0));
            $("#amount4").val($("#slider-range2").slider("values", 1));
            $("#slider-range2").children("a").attr("title",filteringF2Title + ": Min.");
            $("#slider-range2").children("a").next().attr("title",filteringF2Title + ": Max.");
          }

         $('#loading').hide();
        /* FILTERING KONEC */
         
         if (semaforAdvertID > 0){
           showAdvertEntryDialog(semaforAdvertID);
         }
         if (kosikKrok>0){
           for(i=1;i<kosikKrok;i++){
             $(".krok"+i).hover(
                 function(){var kid= $(this).attr("class").charAt(4);$('#kk-img' + kid).attr('src','/gfx/ico-bin-' + kid + '-blue.gif');},
                 function(){var kid= $(this).attr("class").charAt(4);$('#kk-img' + kid).attr('src','/gfx/ico-bin-' + kid + '-gray.gif');}
             );
           }
         }
        }
    );

    function showAdvertEntryDialog(dialogid){
      $.get("/ajax/getAdvertisementEntryDialog",{"dialogid":dialogid}, function(data, textStatus, jqXHR){
        if (textStatus == "success"){
          $("#advert-dialog").html(data.html);
          //sedy okno
          var maskHeight = $(document).height();
          var maskWidth = $(window).width();
          var x = parseInt(maskWidth/2 - data.width / 2);  
          $('#mask').css({'width':maskWidth,'height':maskHeight});
          $('#mask').fadeTo("slow",0.8); 
          $('#mask').offset({ top: 0, left: 0 }); 
          var winH = $(window).height();
          var winW = $(window).width();
          //zavreni sedyho okna a reklamy na ESC
          $(document).keyup(function(e) {
            if(e.keyCode == 27) {
              $("#advert-dialog").hide();
              $('#mask').hide();
            }
          });
          
          if (data.advertaction != null){
            $("#advert-form").submit(function(){
              submitAdvertEntryForm(data.advertaction,dialogid);
              return false;
            });
          }
          $("#advert-dialog").show();
          $("#advert-dialog").width(parseInt(data.width));
          $("#advert-dialog").height(parseInt(data.height));
          $("#advert-dialog").offset({top:115, left: x});
          $("#advert-close").click(function(){
            $("#advert-dialog").hide();
            $('#mask').hide();
            $.get("/ajax/declineadvert",{"advertdialogid":semaforAdvertID});
        });
      }},"json"
      
      );
    }

    function submitAdvertEntryForm(advertaction,dialogid){
      var promenne = $("#advert-form").serialize();
      $.get(advertaction,promenne, function(data, textStatus, jqXHR){
         if (data.vysledek) {
             showAdvertResponseDialog(dialogid);
         } else {
             var errmsg;
             if (!($("#advert-dialog-err").length > 0)) $("#advert-dialog h2").after("<div id='advert-dialog-err' class='alert-on'></div>");
             switch (parseInt(data.errcode)){
               case -4: errmsg = "Chybně vyplněný formulář."; break;
               case -2: errmsg = "Slevové kupóny již nejsou dostupné."; break;
               case -1: errmsg = "Není definován prototyp kuponu."; break;
               default : 
                 if  (data.errmsg != null){
                   errmsg = data.errmsg;
                 } else {
                   errmsg = "Došlo k neznámé chybě. Zkuste opakovat akci později.";
                 }
             }
             $("#advert-dialog-err").text(errmsg);
         }
    //data = array("vysledek" =>false,"errcode" => 0,"errmsg" => null,"responsemsg" => null);       
      },"json");
      return false;
    }

    function showAdvertResponseDialog(dialogid){
      $.get("ajax/getAdvertisementResponseDialog",{"dialogid":dialogid}, function(data, textStatus, jqXHR){
        if (textStatus == "success"){
          $("#advert-dialog").html(data.html);
          $("#advert-dialog").show();
          $("#advert-dialog").width(parseInt(data.width));
          $("#advert-dialog").height(parseInt(data.height));
          $("#advert-close").click(function(){$('#mask').hide();$("#advert-dialog").hide();});
        }
      },"json"
      
      );
    }

    function resetFilter2(){
      $('#slider-range2').slider('values', 0, filteringF2Min);
      $('#slider-range2').slider('values', 1, filteringF2Max);
    }
        
    function setCookie(key, value) {
      value = encodeURIComponent(value);
      arrPath = window.location.pathname.split('/');
      pathPart = "";
      if (arrPath.length > 0)
        pathPart = arrPath[1];
      value+='; path=/' + pathPart + ';';
      document.cookie = key + '=' + value;
    }

    function deleteCookie(key) {
      value="";
      date = new Date();
      date.setTime(date.getTime() -360000);
      value+='; expires=' + date.toGMTString();
      document.cookie = key + '= ' + value;
    }

    function doCheckAllCategories(){
    $('input:checkbox:checked','#categoriesFilter').each(function(){$(this).attr('checked',false);});
    $('#checkAllCategories').attr('checked', true);
    updateProductPane();
    }

    function checkBrand() {
      $('#filter-brand-vse').attr('checked', false);
      var checked = 0;
      $('input:checkbox:checked').each(function() {
          if ($(this).attr('name') == "filter[brand][]") checked++;
      });
      if (!checked) $('#filter-brand-vse').attr('checked', true);
      
      updateProductPane();
    }

    function checkAllBrand() {
      $('input:checkbox:checked').each(function() {
          if ($(this).attr('name') == "filter[brand][]") $(this).attr('checked', false);
      });
      $('#filter-brand-vse').attr('checked', true);
      deleteCookie('filterbrands');
      updateProductPane();
    }

    function updateProductPane() {
      updateProductPanePage(1);
    }

    function resetFilter1(){
      $('#slider-range').slider('values', 0, filteringF1Min);
      $('#slider-range').slider('values', 1, filteringF1Max);
    }

    function updateProductPanePage(pageNumber) {
      var filterbrand = [];
      $('input:checkbox:checked').each(function() {
          if ($(this).val() != "" && $(this).attr('name') == "filter[brand][]") filterbrand.push($(this).val());
      });

      var categories = [];
      $('input:checkbox:checked','#categoriesFilter').each(function() {
        if ($(this).val() != "" && $(this).attr('name') == "filter[categories][]") categories.push($(this).val());
        });

      $('#checkAllCategories').attr('checked',(categories.length == 0));
      var strCategories = categories.join("|");
      setCookie("categories", strCategories);
      var strFilterbrand = filterbrand.join("|");
      setCookie("filterbrands", strFilterbrand);
      
      var parameters = {
          'catalogFilter[recordtype]' : filteringRecordType,
          'catalogFilter[recordid]' : filteringRecordid,
          'catalogFilter[categories][]' : categories,
          'catalogFilter[pricevat][min]' : $("#slider-range").slider("values", 0),
          'catalogFilter[pricevat][max]' : $("#slider-range").slider("values", 1),
          'catalogFilter[brands][]' : filterbrand,
          'catalogFilter[ordering]' : $("[name=catalogFilter[ordering]]").val(),
          'catalogFilter[itemsPerPage]' : $("[name=catalogFilter[itemsPerPage]]").val(),
          'p' : pageNumber
      };
      if (filteringF2) {
        propName = 'catalogFilter[parameter][min]';
        parameters[propName] = $("#slider-range2").slider("values", 0);
        propName = 'catalogFilter[parameter][max]';
        parameters[propName] = $("#slider-range2").slider("values", 1);
        propName = 'catalogFilter[parameter][parameterid]';
        parameters[propName] = filteringF2ParamID;
      }
      if ($("[name=catalogFilter[onStockOnly]]").attr('checked')) {
          parameters["catalogFilter[onStockOnly]"] = true;
      }

      $("#loading").show();
      $("#catalog-product-pane").load('/ajax/catalog/productpane/', parameters, function() {
          $("#loading").hide();
      });
    }
