(function($) {
  // auto showcase
  $.fn.expresszShowCase = function (options) {
    var opts = $.extend( {}, $.fn.expresszShowCase.defaults, options );
    return this.each(function() {
      var $this = $(this);
      var o = $.metadata ? $.extend({}, opts, $this.metadata()) : opts;

      $.fn.extend({pause: function() { $this.data("stopped", true); },go: function() { $this.data("stopped", false);}});

      if( options && options.animation ) {
        opts.animation = $.extend( {}, $.fn.expresszShowCase.defaults.animation, options.animation );
        if( !/horizontal-slider|vertical-slider/.test(opts.animation.type) ) { opts.animation.type = "horizontal-slider"; };
        if( !/scroll|position/.test(opts.animation.elem) ) { opts.animation.elem = "position"; };
      };

      var itemsQuant = $this.find("."+opts.items.itemsClass).length;
      var itemFirst = $this.find("."+opts.items.itemsClass+":first");
      var itemFirstSize = { width: itemFirst.removeAttr( "width"  ).width(), height: itemFirst.removeAttr( "height" ).height() };

      itemFirstSize.height = opts.items.itemHeight;
      itemFirstSize.width = opts.items.itemWidth;

      switch (opts.animation.elem) {
        case "scroll": $this.find(".slider").css( { overflow:"visible", height:itemFirstSize.height*itemsQuant } ); break;
        case "position":
          $this.css( opts.css );
          $this.find(".slider").css({position:'absolute',top:'0px',left:'0'});
          $this.find("li").css( { position: "absolute", top: "0", left: "0" } ).find("img").css("border", "0px");
          $this.find("."+opts.items.itemsClass).each( function(i) {
            switch (opts.animation.type) {
              case "horizontal-slider": $(this).css( { "left": i*itemFirstSize.width, position:"absolute" } ); break;
              case "vertical-slider": $(this).css( { "top": -i*itemFirstSize.height, position:"absolute" } ); break;
            };
          });
        break;
      };

      if( opts.animation.autoCycle ) { opts.animation.intervalID = showcaseCycler(itemsQuant, $this, itemFirstSize, opts); };
      $this.find(".slider").mouseover( function() { $this.pause(); });
      $this.find(".slider").mouseout( function() { $this.go(); });

      // init
      if( opts.animation.index == 0 ) {
        $this.siblings("#carousel-nav").find(".carousel-prev").addClass('disabled');
        $this.siblings("#carousel-nav").find(".carousel-prev").html("&nbsp;");
      };

      $this.siblings("#carousel-nav").find(".carousel-prev").click( function()
      {
        if( $this.siblings("#carousel-nav").find(".carousel-prev").hasClass('disabled') ) {

        } else {
          tmp = --opts.animation.index % itemsQuant;
          $.fn.expresszShowCase.showItem(tmp, $this, itemFirstSize, opts);
          if( opts.animation.index == 0 )
          {
            $this.siblings("#carousel-nav").find(".carousel-prev").addClass('disabled');
            $this.siblings("#carousel-nav").find(".carousel-prev").html("&nbsp;");
          };
          $this.siblings("#carousel-nav").find(".carousel-next").removeClass('disabled');
          $this.siblings("#carousel-nav").find(".carousel-next").html(opts.animation.nextTitle);
        };

      });

      $this.siblings("#carousel-nav").find(".carousel-next").click( function() {
        if( $this.siblings("#carousel-nav").find(".carousel-next").hasClass('disabled') ) {
        } else  {
          val = opts.animation.index;
          tmp = ++val % itemsQuant;
          $.fn.expresszShowCase.showItem(++opts.animation.index % itemsQuant, $this, itemFirstSize, opts);
          $this.siblings("#carousel-nav").find(".carousel-prev").removeClass('disabled');
          $this.siblings("#carousel-nav").find(".carousel-prev").html(opts.animation.prevTitle);
          if( (itemsQuant - tmp) == 1 ){
            $this.siblings("#carousel-nav").find(".carousel-next").addClass('disabled');
            $this.siblings("#carousel-nav").find(".carousel-next").html('&nbsp;');
          };
        };
      });

    });
  };

	var showcaseCycler = function(itemsQuant, $container, itemFirstSize, opt) {
    return setInterval( function() {
      if( !$container.data("stopped") ) {
        if( !$container.data("isMouseHover") || !opt.animation.stopOnHover ) {
          $.fn.expresszShowCase.showItem(++opt.animation.index % itemsQuant, $container, itemFirstSize, opt);
        };
      };
    }, opt.animation.interval);
  };

  $.fn.expresszShowCase.nextItem = function(i, $container, itemFirstSize, opt) {
    return $(this);
  };
  $.fn.expresszShowCase.prevItem = function(i, $container, itemFirstSize, opt) {
    return $(this);
  };

  $.fn.expresszShowCase.showItem = function(i, $container, itemFirstSize, opt) {
    switch (opt.animation.type) {
      case "horizontal-slider":
        $container.stop().animate({ left: - (i*itemFirstSize.width) }, opt.animation.speed, opt.animation.easefunction);
      break;

      case "vertical-slider":
        switch (opt.animation.elem) {
          case "scroll": $("#"+opt.extContainer).stop().animate( { scrollTop: i*itemFirstSize.height }, opt.animation.speed, opt.animation.easefunction); break;
          case "position": $container.find(".slider").stop().animate( { top: i*itemFirstSize.height }, opt.animation.speed, opt.animation.easefunction); break;
        };
        break;
    };
	};

  $.fn.expresszShowCase.defaults = {
    imageQuant: 0,
    items: { itemsClass: "showcaseItem", itemHeight: 296, itemWidth: 300 },
    extContainer: "LeadingBox_Body_Content_Top",
    animation: { elem: "scroll", index:0, autoCycle: true, stopOnHover: true, interval: 4000, speed: 500, easefunction: "swing", type: "vertical-slider", nextTitle: "Következő kép »", prevTitle: "« Előző kép" }
  };

})(jQuery);

(function($)
{
  // /auto searchbanner
  $.fn.expresszTab = function (options)
  {
    var opts = $.extend( {}, $.fn.expresszTab.defaults, options);

    /**
     *  Inicialize
     *  Open default tab
     *
     *  @options instance specific options
     */
    $.fn.openDefaultTab = function(options) {
      var i = 1;
      return $(this).find('.tab').each(function() {
        if( i == options.opentab ) {
          if ( $("div#carbanner div.selected").attr('id') != 'tab'+i ) {
            $("div#carbanner div#tabs div.selected").toggleClass('selected');
            $('#tab'+i).toggleClass('selected');
            $("div#carbanner div#contents div.selected").toggleClass('selected');
            $("div#carbanner div#contents div#"+"tab"+i+"Context").toggleClass('selected');
          };
        };
        i++;
      });
    };

    function debug($msg) {
      if (window.console && window.console.log) {
        window.console.log( $msg );
      };
    };

    /**
     *  Handle any tab click event
     *
     * @param elem matched banner object
     */
    function onTabClick(elem) {
      // tab kattintás kezelése
      elem.find('.tab').click( function(event)
      {
        if ( $("div#carbanner div.selected").attr('id') != $(this).attr('id') )
        {
          $("div#carbanner div#tabs div.selected").toggleClass('selected');
          $(this).toggleClass('selected');
          $("div#carbanner div#contents div.selected").toggleClass('selected');
          $("div#carbanner div#contents div#"+$(this).attr('id')+"Context").toggleClass('selected');
          $.cookie("tabSubmit", $(this).attr('id').replace('tab', ''), { expires: 1 });
        };
      });
    };

    /**
     *  Handle tab3 search submit
     */
    function onTab3Submit()
    {
      $('a#tab3Submit').click( function(event)
      {
        if( $("div#tab3Context select#hg_fajta").val() == '' )
        {
          alert('Kérjük először válasszon fajtát!');
        }
        else
        {
          $.cookie("tabSubmit", "3", { expires: 1 });
          document.mainFormHaszon.submit();
        }
        return false;
      });
    };

    /**
     *  Handle currency change event
     */
    function onCurrencyChange()
    {
      $("#s_eq_currency1").change( function(event)
      {
        $("#s_ge_price").val('');
        $("#s_from_price").val('');
        $("#s_le_price").val('');
        $("#s_to_price").val('');
      });
    };

    /**
     *  Attach click event to open detailed search
     *
     *  @param tabid int - tabContext id
     *  @param boxheight int - opened size
     */
    function onTabMoreClick(tabid, boxheight)
    {
      $('#tab'+tabid+'more').unbind('click');
      $('#tab'+tabid+'more').click( function(event) {
        is_closed = $('#tab'+tabid+'Context').hasClass('closed');
        $('#tab'+tabid+'Context').css( {'height' : (is_closed) ? (boxheight+22)+'px' : '171px' } );
        $('#tab'+tabid+'Context div.tabContentTop').css( {'height' : (is_closed) ? boxheight+'px' : '149px'} );
        $('#tab'+tabid+'Context #tab'+tabid+'Extras').css( {'display' : (is_closed) ? 'block' : 'none'} );
        $('#tab'+tabid+'Context').removeClass(  (is_closed) ? 'closed' : 'opened' );
        $('#tab'+tabid+'Context').addClass(     (is_closed) ? 'opened' : 'closed' );
        $('#tab'+tabid+'ContentMoreText .tabContentMoreText').text( (is_closed) ? 'Vissza az' : 'Mégtöbb szempont szerint kíván keresni? Segíthet Önnek a' );
        $('#tab'+tabid+'more a').text( (is_closed) ? 'Egyszerű kereséshez' : 'Részletes keresés' );
      });
    }

    function _addOption(selectbox,text,value )
    {
      var optn = document.createElement("option");
      optn.text = text;
      optn.value = value;
      selectbox.options.add(optn);
    }

    /**
     *  Modify searchbanner form elements upon tab3 hg_fajta select value change
     *
     *  @param id - selected category id
     */
    function modifyTab3HgFajtaDependencies(id, pluginOptions)
    {
      // set hidden fields with correct category id-s
      $('#tab3Context #x_categories1').val('categories:'+id);
      $('#tab3Context #cid').val(id);

      document.mainFormHaszon.s_qu_gyartmany.options.length=0;
      isset_gyartmany = false;

      $('#hg_futott_km').empty();
      $('#tr1_uzemanyag').css({'display':'block'}); // enable uzemanyag field
      //
      // empty detailed search
      $('#tab3Extras').empty().css( {'display' : 'none' });
      $('#tab3Context').css( {'height' : '171px' } ).removeClass( 'opened' ).addClass( 'closed' );
      $('#tab3Context div.tabContentTop').css( {'height' : '149px'} ) ;

      // if we have a valid option
      if( id != '' ) {
        switch( id ) {
          // Kishaszongépjármű, furgon
          case '2729': $('#tab3Context #gh_futott_km').contents().clone().appendTo($('#tab3Context #hg_futott_km')); break;
          // Teherautó
          case '2731': $('#tab3Context #gh_futott_km').contents().clone().appendTo($('#tab3Context #hg_futott_km')); break;
          // Kamion, nyergesvontató
          case '675': $('#tab3Context #gh_futott_km').contents().clone().appendTo($('#tab3Context #hg_futott_km')); break;
          // Busz
          case '505': $('#tab3Context #gh_futott_km').contents().clone().appendTo($('#tab3Context #hg_futott_km')); break;
          // oEpitoipariGep
          case '674':
            // gyartmany dictionary
            $.each(pluginOptions.oEpitoipariGep, function(index, val) { _addOption(document.mainFormHaszon.s_qu_gyartmany, val, index); } );
            isset_gyartmany = true;
            $('#tab3Context #gh_uzem_ora').contents().clone().appendTo($('#tab3Context #hg_futott_km')); // uzem_ora on
          break;
          // oTargonca
          case '678':
            // gyartmany dictionary
            $.each(pluginOptions.oTargonca, function(index, val) { _addOption(document.mainFormHaszon.s_qu_gyartmany, val, index); } );
            isset_gyartmany = true;
            $('#tab3Context #gh_uzem_ora').contents().clone().appendTo($('#tab3Context #hg_futott_km')); // uzem_ora on
            break;
          // aPotkocsi
          case '508':
            // gyartmany dictionary
            $.each(pluginOptions.oPotkocsi, function(index, val) { _addOption(document.mainFormHaszon.s_qu_gyartmany, val, index); } );
            isset_gyartmany = true;
            $('#tab3Context #tr1_uzemanyag').css({'display':'none'}); // remove uzemanag field
//             $('#tab3Context #gh_uzem_ora').contents().clone().appendTo($('#tab3Context #hg_futott_km')); // uzem_ora on
          break;
          // Erdészeti gép
          case '2728': $('#tab3Context #gh_uzem_ora').contents().clone().appendTo( $('#tab3Context #hg_futott_km') ); break;
          // Kommunális gép
          case '2730': $('#tab3Context #gh_uzem_ora').contents().clone().appendTo($('#tab3Context #hg_futott_km')); break;
          default: break;
        };

        // gyartmany dictionary
        if( !isset_gyartmany ) { $.each(pluginOptions.oHaszongepjarmu, function(ind, val) { _addOption(document.mainFormHaszon.s_qu_gyartmany, val, ind); }); };

        // enable gyartmany specific fields
        $('#tab3Context #hg_gyartmany_box').removeClass('disable');
        $('#tab3Context #hg_tipus_box').removeClass('disable');
        $('#tab3Context #hg_gyartmany_box select').removeAttr('disabled');
        $('#tab3Context #hg_gyartmany_box input').removeAttr('disabled');

        // enable detailed search
        $('#tab3ContentMoreText .tabContentMoreText').text('Mégtöbb szempont szerint kíván keresni? Segíthet Önnek a');
        $('#tab3more').html('<a href="#carbanner_top">Részletes keresés</a>&nbsp;<span class="arrowDown">&nbsp;</span>');

        switch( id )
        {
          // Kishaszongépjármű, furgon
          case '2493': $('#prepare_furgon').clone().appendTo( $('#tab3Extras') ); onTabMoreClick(3, 770); break;
          // Teherautó
          case '2495': $('#prepare_teherauto').clone().appendTo( $('#tab3Extras') );onTabMoreClick(3, 915); break;
          // Kamion, nyergesvontató
          case '675': $('#prepare_kamion').clone().appendTo( $('#tab3Extras') ); onTabMoreClick(3, 980); break;
          // Busz
          case '505': $('#prepare_autobusz').clone().appendTo( $('#tab3Extras') ); onTabMoreClick(3, 1000); break;
          // Anyagmozgató gép, targonca
          case '678': $('#prepare_targonca').clone().appendTo( $('#tab3Extras') ); onTabMoreClick(3, 370); break;
          // Pótkocsi
          case '508': $('#prepare_potkocsi').clone().appendTo( $('#tab3Extras') ); onTabMoreClick(3, 265); break;
          // Építőipari gép
          case '674': $('#prepare_epitogep').clone().appendTo( $('#tab3Extras') ); onTabMoreClick(3, 250); break;
          // Erdészeti gép
          case '2492': $('#prepare_erdeszeti').clone().appendTo( $('#tab3Extras') ); onTabMoreClick(3, 240); break;
          // Kommunális gép
          case '2494': $('#prepare_kommunalis').clone().appendTo( $('#tab3Extras') ); onTabMoreClick(3, 290); break;
          default: break;
        };
        setFilterParams();

      } else {
        // reset form state
        $('#tab3Context #hg_gyartmany_box').addClass('disable');
        $('#tab3Context #hg_tipus_box').addClass('disable');
        $('#tab3Context #hg_gyartmany_box select').attr('disabled', 'true');
        $('#tab3Context #hg_gyartmany_box input').attr('disabled', 'true');
        if( $('#tab3Context #hg_futott_km').text().trim() != '') { $('#tab3Context #hg_futott_km').text(''); };
        $('#tab3ContentMoreText .tabContentMoreText').text('A részletes kereséshez válasszon jármű fajtát!');
        $('#tab3more a').text('');
      }
    };

    /**
     *  Modify searchbanner form elements upon tab3 hg_fajta select value change
     *
     *  @param id - selected category id
     */
    function modifyTab4MgFajtaDependencies(id, pluginOptions)
    {
      // set hidden fields with correct category id-s
      $('#tab4Context #s_eq_categories').val(id);
      $("#tab4Context #tab4Cid").val(id);
      //$('#tab4Context #x_categories').val('categories:'+id);

      // empty detailed search
      $('#tab4Extras').html('');
      $('#tab4Context').css( {'height' : '171px' } );
      $('#tab4Context div.tabContentTop').css( {'height' : '149px'} ) ;
      $('#tab4Extras').css( {'display' : 'none' });
      $('#tab4Context').removeClass( 'opened' ).addClass( 'closed' );

      if( id != '' && id != 677 )
      {
        $('#tab4ContentMoreText .tabContentMoreText').text('Mégtöbb szempont szerint kíván keresni? Segíthet Önnek a');
        $('#tab4more').html('<a href="#carbanner_top">Részletes keresés</a>&nbsp;<span class="arrowDown">&nbsp;</span>');

        switch( id )
        {
          // Átrakó kocsi
          case '2774': $('#prepare_atrako').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 360); break;
          // Bálázó
          case '2775': $('#prepare_balazo').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 360); break;
          // Eke
          case '2778': $('#prepare_eke').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 300); break;
          // Gyökérzöldség betakarító
          case '2776': $('#prepare_betakarito').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 360); break;
          // Kombájn
          case '2779': $('#prepare_kombajn').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 320); break;
          // Kombinátor
          case '2780': $('#prepare_kombinator').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 315); break;
          // Permetező
          case '2782': $('#prepare_permetezo').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 315); break;
          // Mezőgazdasági pótkocsi
          case '2783': $('#prepare_potkocsi').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 255); break;
          // Silozó
          case '2785': $('#prepare_silozo').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 315); break;
          // Szálastakarmánygép, szecskázó
          case '2786': $('#prepare_szecskazo').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 315); break;
          // Trágyaszóró
          case '2788': $('#prepare_tragyaszoro').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 315); break;
          // Talajművelő gép
          case '2787': $('#prepare_talajmuvelo').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 145); break;
          // Teleszkópos rakodó
          case '2784': $('#prepare_rakodo').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 360); break;
          // Traktor
          case '2789': $('#prepare_traktor').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 360); break;
          // Vetőgép
          case '2790': $('#prepare_vetogep').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 155); break;
          // Zöldsor gépei
          case '2791': $('#prepare_zoldsor').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 360); break;
          // Öntöző berendezés
          case '2781': $('#prepare_ontozo').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 360); break;
          // Egyéb mezőgazdasági gép
          case '2777': $('#prepare_egyeb').clone().appendTo( $('#tab4Extras') ); onTabMoreClick(4, 360); break;
          default: break;
        };
        setFilterParams();
      }
      else
      {
        // reset form state
        $('#tab4Context #hg_gyartmany_box').addClass('disable');
        $('#tab4Context #hg_tipus_box').addClass('disable');
        $('#tab4Context #hg_gyartmany_box select').attr('disabled', 'true');
        $('#tab4Context #hg_gyartmany_box input').attr('disabled', 'true');

        if( $('#tab4Context #hg_futott_km').text().trim() != '') {
          $('#tab4Context #hg_futott_km').text('');
        };
        $('#tab4ContentMoreText .tabContentMoreText').text('A részletes kereséshez válasszon jármű fajtát!');
        $('#tab4more a').text('');
      };
    };

    /**
     *  Tab1 on modell change
     */
    function _tab1OnModellChange()
    {
      var elem = $('#tab1Context #modell_box select#modell') ? $('#tab1Context #modell_box select#modell') : $('#tab1Context #modell_box input#modell');
      $('#tab1Context #modell_box #s_qu_modell').val( $('#tab1Context #modell_box #modell').val() );
      $.cookie("tab1Modell", $('#tab1Context #modell_box #modell').val(), { expires: 1 });

      if( $(elem).prev('.hiddenrange') )
      {
        $(elem).prev('.hiddenrange').remove();
        $(elem).prev('.hiddenrange').remove();
      };

      if( $(elem).val() != '' )
      {
        var newVal  = convertToSearchValue($('#s_qu_gyartmany').val())+'/modell:'+convertToSearchValue($(elem).val());
        var newVal2 = convertToSearchValue($('#s_qu_gyartmany').val())+'/modell:'+convertToSearchValue($(elem).val())+'::'+$(elem).val();
      }
      else
      {
        var newVal = $(elem).val();
      };

      if( newVal != '' ) {
        var newInput = $('<input type="hidden" class="hiddenrange" name="x" />');
        newInput.insertBefore($(elem));
        newInput.val(newVal);
      };

      if( newVal2 != '' ) {
        var newInput2 = $('<input type="hidden" class="hiddenrange" name="label" />');
        newInput2.insertBefore($(elem));
        newInput2.val(newVal2);
      };
    };

    /**
     * Tab1
     */
    function modifyTab1ModelOnGyartmany(grt, xhrURI)
    {
      $('#tab1Context #modell_box').addClass("disable");
      $('#tab1Context #modell_box #modell').remove();
      $('#tab1Context #modell_box #model_tmp').css({display:"block"});
      $('#tab1Context #modell_box #s_qu_modell').val("");

      if( grt != "" )
      {
        if( grt.indexOf(':') != 0)
        {
          grt = grt.substring( (grt.indexOf(':')+1) ).replace('!!', ' ');
        };

        $.get(xhrURI, {
                        field: "modell",
                        parentDictionaryName: "auto_model",
                        parentDictionaryValue: grt,
                        dictionaryValue : "",
                        XMLHttpRequest : "true"
                      },
          function(data) {
            $('#tab1Context #modell_box #model_tmp').css({display:"none"});
            $('#tab1Context #modell_box').html( $('#tab1Context #modell_box').html() + data );
            $('#tab1Context #modell_box #modell').addClass("single");
            $('#tab1Context #modell_box').removeClass('disable');

            $('#tab1Context #s_qu_gyartmany').change( function(event) {
              $.cookie("tab1Gyartmany", $('#tab1Context #s_qu_gyartmany').val(), { expires: 1 });
            });

            if( $.cookie("tab1Modell") )
            {
              $('#tab1Context #modell_box #modell').val($.cookie("tab1Modell"));
              if( $('#tab1Context #modell_box #modell').val() == $.cookie("tab1Modell") )
              {
                $('#tab1Context #modell_box #s_qu_modell').val($.cookie("tab1Modell"));
              };
            };

            _tab1OnModellChange();
            // onchange modell
            var elem = $('#tab1Context #modell_box select#modell') ? $('#tab1Context #modell_box select#modell') : $('#tab1Context #modell_box input#modell');
            elem.change( function(event) {
              _tab1OnModellChange();
            });
            
        });
      };
    };

    function convertToSearchValue(str) { str = str.toLowerCase(); return str.replace(/ /g, "!!"); };

    function setFilterParams()
    {
      $('#carbanner input.single').each(function(i, elem)
      {
        $(elem).unbind('change').bind('change', function(event)
        {
          if( $(elem).prev('.hiddensingle') )
          {
            var prefix  =  $(elem).prev('.hiddensingle').attr('id').replace(/^s_qu_/, '');
            $(elem).prev('.hiddensingle').val( prefix + ':' + convertToSearchValue($(elem).val()) );
          };
        });
      }); // single

      $('#carbanner input.range, #carbanner select.range').each(function(i, elem){
        $(elem).unbind('change').bind('change', function(event) {
          var tdElem = $(elem).parent();
          var re = { from : /^s_ge_/, to : /^s_le_/ };
          var id = $(elem).attr('id');
          var isFrom = re.from.test(id);
          var prefix = isFrom ? $(elem).attr("id").replace(re.from, '') : $(elem).attr("id").replace(re.to, '');
          var hiddenX = tdElem.find("input[id^='s_"+(isFrom ? 'from' : 'to')+"_']");
          if(hiddenX){
            if( prefix != 'price') {
              hiddenX.val((isFrom ? 'from:' : 'to:')+prefix+'-'+$(elem).val());
            } else {
              hiddenX.val((isFrom ? 'from:' : 'to:')+prefix+'_'+tdElem.find("#s_eq_currency1").val().toLowerCase()+'-'+$(elem).val());
            };
          };
        });
      }); // range
    };

    return this.each(function()
		{
      var $this = $(this);
      var o = $.meta ? $.extend({}, opts, $this.data()) : opts; // instance specific options

      $this.openDefaultTab(o); // initialize searchbanner

      onTabClick($this); // create events
      onTabMoreClick(1, 1170); // tab1 detailed search
      onTabMoreClick(2, 690); // tab2 detailed search
      setFilterParams();

      // submit searchforms
      $('a#tab1Submit').click( function(event) { $.cookie("tabSubmit", "1", { expires: 1 }); document.mainFormAuto.submit(); return false; });
      $('a#tab2Submit').click( function(event) { $.cookie("tabSubmit", "2", { expires: 1 }); document.mainFormMotor.submit(); return false; });
      onTab3Submit();
      $('a#tab4Submit').click( function(event) { $.cookie("tabSubmit", "4", { expires: 1 }); document.mainFormMezogazdasagi.submit(); return false; });
      $('#tab5Context a').click( function(event) {
        switch( $(this).text() ){
          case 'Személyautó':$.cookie("tabSubmit", "1", { expires: 1 });break;
          case 'Motorkerékpár':$.cookie("tabSubmit", "2", { expires: 1 });break;
          case 'Haszongépjármű, munkagép':$.cookie("tabSubmit", "3", { expires: 1 });break;
          case 'Mezőgazdasági gép':$.cookie("tabSubmit", "4", { expires: 1 });break;
          default: $.cookie("tabSubmit", "5", { expires: 1 });  break;
        }
      });

      onCurrencyChange(); // currency change

      // tabspecific actions
      // tab1
      if( $.cookie("tab1Gyartmany") ) { $('#tab1Context #s_qu_gyartmany').val( $.cookie("tab1Gyartmany") ); };
      modifyTab1ModelOnGyartmany($('#tab1Context #s_qu_gyartmany').val(), o.xhrURIs.URIDependantDictionaries);
      $('#tab1Context #s_qu_gyartmany').change( function(event) {
        modifyTab1ModelOnGyartmany($('#tab1Context #s_qu_gyartmany').val(), o.xhrURIs.URIDependantDictionaries);
      });

      // tab3 change fajta
      $('#tab3Context #hg_fajta').val("");
      $('#tab3Context #hg_fajta').change( function(event)
      {
        var hgFajtaId = $('#tab3Context #hg_fajta').val();
        modifyTab3HgFajtaDependencies(hgFajtaId, o);
      });

      // tab4 change fajta
      $('#tab4Context #mg_fajta')[0].selected = true;
      $('#tab4Context #mg_fajta').change( function(event)
      {
        var mgFajtaId = $('#tab4Context #mg_fajta').val();
        modifyTab4MgFajtaDependencies(mgFajtaId, o);
      });
    });
  };

  // plugin defaults
  $.fn.expresszTab.defaults = {
    opentab: 1,
    oEpitoipariGep: new Object(),
    oPotkocsi: new Object(),
    oTargonca: new Object(),
    oHaszongepjarmu: new Object()
  };

})(jQuery);

(function($)
{
  // PS searchbanner
  $.fn.expresszPSearch = function (options)
  {
    var opts = $.extend( {}, $.fn.expresszPSearch.defaults, options);

    function toSearchValue(str) { str = str.toLowerCase(); return str.replace(/ /g, "!!"); };

    /**
     *  Inicialize
     *  Open default tab
     *
     *  @options instance specific options
     */
    $.fn.onChangeGyartmany = function(grt, o)
    {
      $('#modell_box').addClass('disable');
      $('#modell_box #modell').remove();
      $('#modell_box #model_tmp').css({display:'block'});
      $('#modell_box #s_qu_modell').val('');
      $.cookie("PSgyartmany", $('#s_qu_gyartmany').val(), { expires: 1 });

      if( grt != "" )
      {
        if( grt.indexOf(':') != 0)
        {
          grt = grt.substring( (grt.indexOf(':')+1) ).replace('!!', ' ');
        };

        $.get(o.URIDependantDictionaries, { field: 'modell',
                        parentDictionaryName: 'auto_model',
                        parentDictionaryValue: grt,
                        dictionaryValue: '',
                        XMLHttpRequest: 'true'
                      },
          function(data) {
            $('#modell_box #model_tmp').css({display:"none"});
            $('#modell_box').html( $('#modell_box').html() + data ).removeClass('disable');
            $('#modell_box #modell').addClass("single").val("");

            if( $.cookie("PSModell") )
            {
              $('#modell_box #modell').val( $.cookie("PSModell") );
              if( $('#modell_box #modell').val() == $.cookie("PSModell") )
              {
                $('#modell_box #s_qu_modell').val( $.cookie("PSModell") );
              };
            };

            setGyartmanyModell();
            $('#modell_box #modell').change( function(event) {
              setGyartmanyModell();
            });
        });
      };
    };

    function setGyartmanyModell() {
      var elem = $('#modell_box #modell');
      $('#modell_box #s_qu_modell').val( $('#modell_box #modell').val() );
      $.cookie("PSModell", $('#modell_box #modell').val(), { expires: 1 });

      if( $(elem).prev('.hiddenrange') )
      {
        $(elem).prev('.hiddenrange').remove();
        $(elem).prev('.hiddenrange').remove();
      };

      var newVal  = toSearchValue($('#s_qu_gyartmany').val());
      var newVal2 = toSearchValue($('#s_qu_gyartmany').val());

      if( $(elem).val() != '' )
      {
        newVal  += '/modell:'+toSearchValue($(elem).val());
        newVal2 += '/modell:'+toSearchValue($(elem).val())+'::'+$(elem).val();
      }
      else
      {
        var newVal = $(elem).val();
      };

      if( newVal != '' ) {
        var newInput = $('<input type="hidden" class="hiddenrange" name="x" />');
        newInput.insertBefore($(elem));
        newInput.val(newVal);
      };

      if( newVal2 != '' ) {
        var newInput2 = $('<input type="hidden" class="hiddenrange" name="label" />');
        newInput2.insertBefore($(elem));
        newInput2.val(newVal2);
      };
    };

    function setFilterParams()
    {
      $('#filterPS input.single').each(function(i, elem)
      {
        $(elem).unbind('change').bind('change', function(event)
        {
          if( $(elem).prev('.hiddensingle') )
          {
            var prefix  =  $(elem).prev('.hiddensingle').attr('id').replace(/^s_qu_/, '');
            $(elem).prev('.hiddensingle').val( prefix + ':' + toSearchValue($(elem).val()) );
          };
        });
      }); // single

      $('#filterPS input.range, #filterPS select.range').each(function(i, elem){
        $(elem).unbind('change').bind('change', function(event) {
          var tdElem = $(elem).parent();
          var re = { from : /^s_ge_/, to : /^s_le_/ };
          var id = $(elem).attr('id');
          var isFrom = re.from.test(id);
          var prefix = isFrom ? $(elem).attr("id").replace(re.from, '') : $(elem).attr("id").replace(re.to, '');
          var hiddenX = tdElem.find("input[id^='s_"+(isFrom ? 'from' : 'to')+"_']");
          if(hiddenX){
            if( prefix != 'price') {
              hiddenX.val((isFrom ? 'from:' : 'to:')+prefix+'-'+$(elem).val());
            } else {
              hiddenX.val((isFrom ? 'from:' : 'to:')+prefix+'_'+tdElem.find("#s_eq_currency1").val().toLowerCase()+'-'+$(elem).val());
            };
          };
        });
      }); // range
    };

    return this.each(function()
		{
      var $this     = $(this);
      var o = $.meta ? $.extend({}, opts, $this.data()) : opts;

      // filter params
      setFilterParams();

      // gyartmany field
      var $gyartmany = $this.find('#s_qu_gyartmany');

      if( $.cookie("PSgyartmany") ) {
        $gyartmany.val( $.cookie("PSgyartmany") );
      };

      $this.onChangeGyartmany( $gyartmany.val(), o );
      $gyartmany.unbind().change( function(event) {
        $this.onChangeGyartmany( $gyartmany.val(), o );
      });

      $("#s_eq_currency1").change( function(event)
      {
        $("#s_ge_price").val('');
        $("#s_from_price").val('');
        $("#s_le_price").val('');
        $("#s_to_price").val('');
      });

    });

    // plugin defaults
    $.fn.expresszPSearch.defaults = {thisClass:'filterSearchParse'};
  };

})(jQuery);
