/*
 *  jQuery Combobox with autocomplete plugin 1.0.1
 *  www.frebsite.nl
 *  Copyright (c) 2009 Fred Heusschen
 *  Licensed under the MIT license.
 *  http://www.opensource.org/licenses/mit-license.php
 */

//document.domain = "londynek.net";
(function($) {
  var boxToggle = true;
  var prevDi = '';
  $.fn.inputTextMore = function() {
    function autoKeyPress(el,key) {
      e = jQuery.Event("keypress");
      e.which = key;
      $(el).trigger(e);
    }
    var el = this;
    var di2 = el.parent();
    var attrClass = el.attr('class') || '';
    var na = (el.attr('name').length) ? ' name="'+el.attr('name')+'"':'';
    var ac = (el.attr('autocomplete').length) ? ' autocomplete="'+el.attr('autocomplete')+'"':'';
    var ti = (el.attr('tabindex').length) ? ' tabindex="'+el.attr('tabindex')+'"':'';

    var itm = '<div class="combobox_bg"><div class="combobox_summary">';
    itm += '<div class="combobox_summary_arrow"></div>';
    itm += '<table class="tbStr"><tr><td rowspan="2" id="banner-tabs-ads" width="130"></td><td>Dodaj tekst do wyszukiwania:</td><td><span class="btnClose" title="Zamknij okno">x</span></td></tr><tr><td colspan="2"><a href="" title="Dodaj tekst">telewizja</a>, <a href="" title="Dodaj tekst">internet</a>, <a href="" title="Dodaj tekst">garaż</a>, <a href="" title="Dodaj tekst">parking</a><br />Ostatnie słowa kluczowe:<ul><li><a href="" title="Dodaj tekst">telewizja</a></li><li><a href="" title="Dodaj tekst">internet</a></li><li><a href="" title="Dodaj tekst">garaż</a></li><li><a href="" title="Dodaj tekst">parking</a></li></ul></td></tr></table>';
    itm += '</div></div>';

    $(el).focusin(function(e) {
      if ( $('#banner-tabs-ads').html() == "") {
  			$.ajax({
  				url:"/_banners-zone/tabs-ads",
  				data:"tab=1",
  				success:function(data){
            $('#banner-tabs-ads').html(data);
          }
  			});
  		}

    }).click(function(e){
      e.stopPropagation();
    }).blur(function(e) {
    });

    el.next().append(itm);
    el.add('span.btnEmpty,span.btnClear',el.parent()).add('div.combobox_bg',el.parent()).wrapAll('<div class="input_container"></div>');
    $('.input_container .combobox_bg').hide();

    $('.input_container a').click(function(e) {
      e.stopPropagation();
      e.preventDefault();
      var text = $(this).html();
      var inputVal = $(el).val().trim();
      inputVal = (inputVal+" "+text+" ").replace(/^\s+/g, "");
      $(el).val(inputVal).focus();
      //autoKeyPress(el,65);
      return false;
    });

    $('.input_container span.btnClose', di2).click(function() {
      $.fn.combobox.sluitSelect();
      boxToggle = true;
    });

  };
  $.fn.clearButton = function() {
    this.each(function (){
      function replaceClearButton(el) {
          if ( $(el).val() != '') {
            $(el).next().replaceWith(btnClear);
            $(el).next().click(function(e) {
              e.stopPropagation();
              $(this).prev().val('').focus();
              $(this).replaceWith(btnEmpty);
            });
          }else{
            $(el).next().replaceWith(btnEmpty);
            $(el).next().click(function(e) {
              e.stopPropagation();
              $(this).prev().focus();
            });
          }
      };
      var el = this;
      var btnClear ='<span class="btnClear" title="Wyczyść tekst [ctrl + d]">x</span>';
      var btnEmpty ='<span class="btnEmpty">&nbsp;</span>';
      replaceClearButton(el);
      $(el).focusin(function(e) {
        replaceClearButton(this);
        e.stopPropagation();
        $.fn.combobox.sluitSelect();
        boxToggle = true;
        $(this).parent().css({'z-index': '1000','position':'relative'});
        $('.input_container .combobox_bg').show().css({'z-index':'1000'});
      }).keydown(function(e) {
          if(e.keyCode == 68 && e.ctrlKey) {
            e.preventDefault();
            $(this).val('').focus();
            $(this).next().replaceWith(btnEmpty);
            return false;
          }
      }).keyup(function() {
  	   replaceClearButton(this);
      });

    });
  };
  $.fn.combobox = function(settings) {
    var opts = $.extend({}, $.fn.combobox.defaults, settings);

    var mThis = this;
    var mForm = mThis.parents('form:first');
    var hardSpace = "";
    //if( $.browser.opera) {hardSpace = "\u00a0";}
    //if( $.browser.safari ) {hardSpace = "\u00a0";}
    //if ($.browser.msie && $.browser.version > 6) {}
    //if ($.browser.msie && $.browser.version <= 6 ) {}
    //if ($.browser.mozilla && $.browser.version >= "1.8" ) {}
    //if( navigator.userAgent.toLowerCase().indexOf('chrome') != -1) {hardSpace = "&nbsp;";}

    if (!$('#combobox_overlay').length) {
      //$('body').append('<div id="combobox_overlay"></div>');
      //$('#combobox_overlay').unbind('click').click($.fn.combobox.sluitSelect);
    }

    return this.each(function() {
      var el = $(this);

    //console.log(el);
      var secondSelect = $(opts.setSecondSelect);
      if(secondSelect.size()==1) {
        var idSecondSelect = secondSelect.attr('id');
        var prev_v = $("option:selected", el).val();
      }
      var thirdSelect = $(opts.setThirdSelect);
      if(thirdSelect.size()==1) {
        var idThirdSelect = thirdSelect.attr('id');
      }


      var id = el.attr('id');
      var attrClass = el.attr('class') || '';
      //var style = el.attr('style');
      var styleWidth = el.css('width').replace('px','')-1-22;
      var _id = '#combobox_container_'+id+' ';
      var ic = (id.length > 0) ? ' id="combobox_container_'+id+'"':'';
          id = (id.length > 0) ? ' id="'+id+'"':'';
      var na = (el.attr('name').length) ? ' name="'+el.attr('name')+'"':'';
      var ti = (el.attr('tabindex').length) ? ' tabindex="'+el.attr('tabindex')+'"':'';
      var di = (el.attr('disabled')) ? ' disabled="disabled"':'';

      var text = $(':selected', el).html().replace(hardSpace+'-- ','').replace(' --','').replace(hardSpace+'- ','').replace(hardSpace,'');
      var cb = '<input class="combobox_hidden" type="hidden"'+na+''+id+' value="'+el.val()+'" />';
          // trim for ie7 > .replace(/(^[\s\xA0]+|[\s\xA0]+$)/g, '');
          if (opts.trim != 0 && opts.trim < text.length) { text = text.substr(0,opts.trim).trim();text+="...";}
          cb += '<input class="combobox_input '+attrClass+'" type="text" value="'+text+'"'+ti+di+' readonly="readonly" style="width:'+styleWidth+'px" />';
          //cb += '<div class="combobox_button"></div>';
          cb += '<div class="combobox_bg"><div class="combobox_summary">';
          cb += '<div class="combobox_summary_arrow"></div>';

      if (opts.style == "default") {
        var cat = '';
        $('option', el).each(function(e) {
          var t = $(this).html();
          var v = $(this).attr('value');
          var s = $(this).attr('selected');
          if (s) { var c = ' class="selected"';} else { var c = '';}
          t = $(this).html().replace(hardSpace,'');
          cat += '<li><a'+c+' href="'+v+'">'+t+'</a></li>';
        });
        cb += '<table><tr><td><span class="btnClose" title="Zamknij okno">x</span></td></tr>';
        if (opts.txtCategory!='') { cb += '<tr class="head"><td>'+opts.txtCategory+':</td></tr>'; }
        cb += '<tr><td><ul>'+cat+'</ul></td></tr></table>';
      } else if (opts.style == "typeDefault") {
        var cat = '';
        $('option', el).each(function(e) {
          var t = $(this).html();
          var v = $(this).attr('value');
          var s = $(this).attr('selected');
          if (s) { var c = ' class="selected"';} else { var c = '';}
          if(e==0){
            t = t.replace(hardSpace+'-- ','').replace('--','');
            showAll = '<li class="tAll">- <a'+c+' href="'+v+'">'+t+'</a> -</li>';
          }else {
            t = $(this).html().replace(hardSpace,'');
            cat += '<li><a'+c+' href="'+v+'">'+t+'</a></li>';
          }
        });
        cb += '<table><tr><td><ul>'+showAll+'</ul></td><td><span class="btnClose" title="Zamknij okno">x</span></td></tr><tr>';
        cb += '<tr><td colspan="2"><ul>'+cat+'</ul></td></tr></table>';
      } else if (opts.style == "view") {
        var countyMainCat = 0;
        var countyMainCatPrev = 0;
        var onlyManiCat = null;
        $('option', el).each(function() {
          //if ( window['zmienna'+countyMainCatPrev]=='undefined' ) var window['zmienna'+countyMainCatPrev] == "";
          //console.log(eval('zmienna'+countyMainCat));
          var t = $(this).html();
          var v = $(this).attr('value');
          var s = $(this).attr('selected');
          if (s) { var c = ' class=\\"selected\\"';} else { var c = '';}
          if (t.indexOf('Rejony poza')!=-1||v==""){ // to co niepotrzebne
          }else if(t.indexOf('Dowolny rejon')!=-1 || t.indexOf('Dowolna')!=-1 || t.indexOf('Any')!=-1 || t.indexOf('Wybierz')!=-1 || t.indexOf('Select')!=-1){ // napis: 'wszystkie kategorie'
            t = t.replace(hardSpace+'-- ','').replace('--','');
            //window['zmienna'+countyMainCat] = "<ul><li class=\"tAll\">- <a"+c+" href=\""+v+"\">"+t+"</a> -</li></ul>";
            eval('zmienna'+countyMainCat+' = "<ul><li class=\\"tAll\\">- <a'+c+' href=\\"'+v+'\\">'+t+'</a> -</li></ul>";');
          }else if(t.indexOf(hardSpace)!=-1 && t.indexOf(hardSpace+'-')==-1){ // glowna kategoria
            if (onlyManiCat) countyMainCatPrev = countyMainCat;
            countyMainCat = v;
            if (countyMainCatPrev!=countyMainCat) {
              //window['zmienna'+countyMainCatPrev] += "</ul>";
              eval('zmienna'+countyMainCatPrev+' += "</ul>";');
            }
            t = $(this).html().replace(hardSpace,'');
            //window['zmienna'+countyMainCat] = "<ul><li class=\"first\"><a"+c+" href=\""+v+"\">"+t+"</a></li>";
            eval('zmienna'+countyMainCat+' = "<ul><li class=\\"first\\"><a'+c+' href=\\"'+v+'\\">'+t+'</a></li>";');
            onlyManiCat = true;
          }else if(t.indexOf(hardSpace+'-')!=-1){ // pod kategoria
            t = $(this).html().replace(hardSpace+'- ','');
            //window['zmienna'+countyMainCat] += "<li><a"+c+" href=\""+v+"\">"+t+"</a></li>";
            eval('zmienna'+countyMainCat+' += "<li><a'+c+' href=\\"'+v+'\\">'+t+'</a></li>";');
            countyMainCatPrev = countyMainCat;
            onlyManiCat = false;
          }
        });
        //console.log('zmienna'+countyMainCat);
        eval('zmienna'+countyMainCat+' += "</ul>";');

        cb += '<table><tr><td colspan="6">'+zmienna0+'</td><td><span class="btnClose" title="Zamknij okno">x</span></td></tr><tr><td>'+zmienna72+'</td><td>'+zmienna1+'</td><td>'+zmienna27+'</td><td>'+zmienna48+'</td><td>'+zmienna42+'</td><td>'+zmienna59+'</td><td>'+zmienna128+'</td></tr><tr><td>'+zmienna20+'</td><td>'+zmienna10+'</td><td>'+zmienna35+'</td><td>'+zmienna54+'</td><td>'+zmienna61+'</td><td>'+zmienna60+'</td><td>'+zmienna86+zmienna87+zmienna137+'</td></tr></table>';
        //cb += '<table><tr><td colspan="3">'+zmienna0+'</td><td><span class="btnClose" title="Zamknij okno">x</span></td></tr><tr><td>'+zmienna72+'</td><td>'+zmienna1+'</td><td>'+zmienna27+'</td><td>'+zmienna48+'</td></tr><tr><td>'+zmienna20+'</td><td>'+zmienna10+'</td><td>'+zmienna35+'</td><td>'+zmienna54+'</td><td>&nbsp;</td></tr><tr><td>'+zmienna59+'</td><td>'+zmienna61+'</td><td>'+zmienna60+'</td><td>'+zmienna42+'</td></tr><tr><td>'+zmienna86+'</td><td>'+zmienna87+'</td><td>&nbsp;</td><td>&nbsp;</td></tr></table>';

      } else if (opts.style == "view2") {
        var cat = '';
        var option = $('option', el);
        var countOpt = option.length;
        var numOfColumn = opts.numOfColumn;
        var countRow = parseInt(countOpt/numOfColumn);
        option.each(function(e) {
          var t = $(this).html();
          var v = $(this).attr('value');
          var s = $(this).attr('selected');
          if (s) { var c = ' class="selected"';} else { var c = '';}
          if(e==0){
            t = t.replace(hardSpace+'-- ','').replace('--','');
            showAll = '<li class="tAll">- <a'+c+' href="'+v+'">'+t+'</a> -</li>';
          }else {
            t = $(this).html().replace(hardSpace,'');
              cat += '<li><a'+c+' href="'+v+'">'+t+'</a></li>';
              if (0==e%countRow) {
                cat += '</ul></td><td><ul>';
              }
          }
        });
        cb += '<table><tr><td colspan="'+numOfColumn+'"><ul>'+showAll+'</ul></td><td><span class="btnClose" title="Zamknij okno">x</span></td></tr>';
        cb += '<tr><td><ul>'+cat+'</ul></td></tr></table>';
      } else if (opts.style == "typeA") {

        var cat1 = cat2 = cat3 = '';
        $('option', el).each(function(e) {
          var t = $(this).html();
          var v = $(this).attr('value');
          var s = $(this).attr('selected');
          //console.log(t+" > "+v+' >'+countyMainCat);
          if (s) { var c = ' class="selected"';} else { var c = '';}
          if(e==0){
            t = t.replace(hardSpace+'-- ','').replace('--','');
            showAll = '<li class="tAll">- <a'+c+' href="'+v+'">'+t+'</a> -</li>';
          }else if(e>=1 && e<7){ // kategoria 1
            t = $(this).html().replace(hardSpace,'');
            cat1 += '<li><a'+c+' href="'+v+'">'+t+'</a></li>';
          }else if(e>=7 && e<12){ // kategoria 2
            t = $(this).html().replace(hardSpace,'');
            cat2 += '<li><a'+c+' href="'+v+'">'+t+'</a></li>';
          }else if(e>=12){ // kategoria 3
            t = $(this).html().replace(hardSpace,'');
            cat3 += '<li><a'+c+' href="'+v+'">'+t+'</a></li>';
          }
        });

        //cb += '<table><tr><td colspan="2"><ul>'+showAll+'</ul></td><td><span class="btnClose" title="Zamknij okno">x</span></td></tr><tr class="head"><td>Dom/Mieszkanie:</td><td>Pokój lub miejsce w pokoju (roomshare):</td><td>Lokale użytkowe:</td></tr><tr><td><ul>'+cat1+'</ul></td><td><ul>'+cat2+'</ul></td><td><ul>'+cat3+'</ul></td></tr></table>';
        //cb += '<table><tr><td colspan="2"><ul>'+showAll+'</ul></td><td><span class="btnClose" title="Zamknij okno">x</span></td></tr><tr><td><ul>'+cat1+'</ul></td><td><ul>'+cat2+'</ul></td><td><ul>'+cat3+'</ul></td></tr></table>';
        cb += '<table><tr><td><ul>'+showAll+'</ul></td><td><span class="btnClose" title="Zamknij okno">x</span></td></tr><tr><td colspan="2"><ul>'+cat2+'</ul><ul>'+cat1+'</ul><ul>'+cat3+'</ul></td></tr></table>';

      } else if (opts.style == "sectorJ") {

        var group1 = group2 = group3 = group4 = '';
        $('option', el).each(function(e) {
          var t = $(this).html();
          var v = $(this).attr('value');
          var s = $(this).attr('selected');
          if (s) { var c = ' class="selected"';} else { var c = '';}
          if(e==0){
            t = t.replace(hardSpace+'-- ','').replace('--','');
          }else{
            t = $(this).html().replace(hardSpace,'');
          }
          var li = '<li><a'+c+' href="'+v+'">'+t+'</a></li>';
          if(e==0){ showAll = '<li class="tAll">- <a'+c+' href="'+v+'">'+t+'</a> -</li>';
          }else if(v==1 || v==5 || v==6 || v==8){
            group1 += li;
          }else if(v==4 || v==7 || v==13 || v==16 || v==17){
            group2 += li;
          }else if(v==2 || v==10 || v==11 || v==15){
            group3 += li;
          }else{
            group4 += li;
          }
        });

        //cb += '<table><tr><td colspan="3"><ul>'+showAll+'</ul></td><td><span class="btnClose" title="Zamknij okno">x</span></td></tr><tr><td><ul>'+group2+'</ul></td><td><ul>'+group1+'</ul></td></tr><tr><td><ul>'+group3+'</ul></td><td><ul>'+group4+'</ul></td></tr></table>';
        cb += '<table><tr><td><ul>'+showAll+'</ul></td><td><span class="btnClose" title="Zamknij okno">x</span></td></tr><tr><td colspan="2"><ul>'+group2+'</ul><ul>'+group1+'</ul><ul>'+group3+'</ul><ul>'+group4+'</ul></td></tr></table>';

      } else if (opts.style == "typeB") {

        var group1 = group2 = group3 = group4 = group5 = group6 = '';
        $('option', el).each(function(e) {
          var t = $(this).html();
          var v = $(this).attr('value');
          var s = $(this).attr('selected');
          if (s) { var c = ' class="selected"';} else { var c = '';}
          if(e==0){
            t = t.replace(hardSpace+'-- ','').replace('--','');
          }else{
            t = $(this).html().replace(hardSpace,'');
          }
          var li = '<li><a'+c+' href="'+v+'">'+t+'</a></li>';
          if(e==0){ showAll = '<li class="tAll">- <a'+c+' href="'+v+'">'+t+'</a> -</li>';
          }else if(v==2 || v==4 || v==8 || v==10 || v==20 || v==23 || v==24){
            group1 += li;
          }else if(v==5 || v==6 || v==7 || v==9 || v==17 || v==21){
            group2 += li;
          }else if(v==1 || v==13 || v==16 || v==18){
            group3 += li;
          }else if(v==3 || v==11 || v==15 || v==19 || v==22){
            group4 += li;
          }else if(v==14){
            group5 += li;
          }else{
            group6 += li;
          }
        });

        //cb += '<table><tr><td colspan="3"><ul>'+showAll+'</ul></td><td><span class="btnClose" title="Zamknij okno">x</span></td></tr><tr><td><ul>'+group1+'</ul></td><td><ul>'+group2+'</ul></td></tr><tr><td><ul>'+group3+'</ul></td><td><ul>'+group4+'</ul></td></tr><tr><td><ul>'+group5+'</ul></td><td><ul>'+group6+'</ul></td></tr></table>';
        cb += '<table><tr><td><ul>'+showAll+'</ul></td><td><span class="btnClose" title="Zamknij okno">x</span></td></tr><tr><td colspan="2"><ul>'+group1+'</ul><ul>'+group2+'</ul><ul>'+group3+'</ul><ul>'+group4+'</ul><ul>'+group5+'</ul><ul>'+group6+'</ul></td></tr></table>';

      } else if (opts.style == "typeBS") {

        var group1 = group2 = group3 = group4 = group5 = group6 = '';
        $('option', el).each(function(e) {
          var t = $(this).html();
          var v = $(this).attr('value');
          var s = $(this).attr('selected');
          if (s) { var c = ' class="selected"';} else { var c = '';}
          if(e==0){
            t = t.replace(hardSpace+'-- ','').replace('--','');
          }else{
            t = $(this).html().replace(hardSpace,'');
          }
          var li = '<li><a'+c+' href="'+v+'">'+t+'</a></li>';
          if(e==0){ showAll = '<li class="tAll">- <a'+c+' href="'+v+'">'+t+'</a> -</li>';
          }else if(v==5 || v==6 || v==8 || v==11){
            group1 += li;
          }else if(v==2 || v==3 || v==4 || v==7 || v==14){
            group2 += li;
          }else if(v==1 || v==10 || v==13){
            group3 += li;
          }else if(v==9 || v==15 || v==16){
            group4 += li;
          }else if(v==12){
            group5 += li;
          }else{
            group6 += li;
          }
        });

        cb += '<table><tr><td colspan="3"><ul>'+showAll+'</ul></td><td><span class="btnClose" title="Zamknij okno">x</span></td></tr><tr><td><ul>'+group2+'</ul></td><td><ul>'+group1+'</ul></td></tr><tr><td><ul>'+group3+'</ul></td><td><ul>'+group4+'</ul></td></tr><tr><td><ul>'+group5+'</ul></td><td><ul>'+group6+'</ul></td></tr></table>';

      } else if (opts.style == "typeP") {

        var group1 = group2 = '';
        $('option', el).each(function(e) {
          var t = $(this).html();
          var v = $(this).attr('value');
          var s = $(this).attr('selected');
          if (s) { var c = ' class="selected"';} else { var c = '';}
          if(e==0){
            t = t.replace(hardSpace+'-- ','').replace('--','');
          }else{
            t = $(this).html().replace(hardSpace,'');
          }
          var li = '<li><a'+c+' href="'+v+'">'+t+'</a></li>';
          if(e==0){ showAll = '<li class="tAll">- <a'+c+' href="'+v+'">'+t+'</a> -</li>';
          }else if(v==3 || v==6 || v==8 || v==9 || v==16 || v==17 ||v==18){
            group1 += li;
          }else{
            group2 += li;
          }
        });

        cb += '<table><tr><td colspan="3"><ul>'+showAll+'</ul></td><td><span class="btnClose" title="Zamknij okno">x</span></td></tr><tr><td><ul>'+group1+'</ul></td><td><ul>'+group2+'</ul></td></tr></table>';

      }



      cb += '</div></div>';


      el.wrap('<div class="combobox_container"'+ic+'></div>');
      var di = el.parent();
        di.append(cb);
        el.remove();



      //  selectie openen via button
      if (opts.showOnMouseOver) {
        $(di).mouseover(function() {
          $.fn.combobox.openSelectFromButton($(this), opts);
        }).click(function() {
          return false;
        });
      } else {
        $(document).click(function(e) {
          $.fn.combobox.sluitSelect();
          boxToggle = true;
        });
        $('.combobox_summary').click(function(e){
          e.stopPropagation();
        });
        $('.combobox_summary span.btnClose', di).click(function() {
          $.fn.combobox.sluitSelect();
          boxToggle = true;
        });
        $('.combobox_input', di).mouseover(function() {
          $('.combobox_input', di).addClass('hover');
        })
        $('.combobox_input', di).mouseout(function() {
          $('.combobox_input', di).removeClass('hover');
        });
        //$('.combobox_input', di).add($('.combobox_button', di)).click(function() { //}
        $('.combobox_input', di).click(function() {
          if (boxToggle || di != prevDi) {// && $('#combobox_overlay:visible').length
            $.fn.combobox.openSelectFromButton($(this), opts);
            boxToggle = false;
          } else  {
            $.fn.combobox.sluitSelect();
            boxToggle = true;
          }
          prevDi = di;
          return false;
        });
      }
      // using keys up&down
      $('.combobox_input', di).keydown(function(e) {
        var prevSelected = $('.combobox_summary li a.selected',di);
        if (e.keyCode == '40' && opts.useArrowKey) {
          e.preventDefault();
          if (prevSelected) prevSelected.removeClass('selected');

          var newIndex = $('option', el).index($('option:selected', el));
          var countOptions = $('option', el).size();

          //console.log(newIndex+" "+countOptions)
          if(newIndex < countOptions-1) {
          //console.log(newIndex);
            var nextSelected = $('option:selected', el).next();
            var count_opt=1;
            while (nextSelected.val()=='' && count_opt<=3){
              nextSelected = $('option:selected', el).next().attr('selected', true);
              count_opt++
            }




            //console.log(prevSelected);
            //console.log($('.combobox_summary li a[href='+nextSelected.val()+']', di));

            $('.combobox_summary li a[href='+nextSelected.val()+']', di).addClass('selected');



            prevSelected = nextSelected;
            nextSelected.attr('selected', true);
        $(this).val(nextSelected.text());
        $('input.combobox_hidden', di).attr('value', nextSelected.val());
          }
        }
        if (e.keyCode == '38' && opts.useArrowKey) {
          e.preventDefault();
          if (prevSelected) prevSelected.removeClass('selected');

          var newIndex = $('option', el).index($('option:selected', el));
          if(newIndex > 0) {
          //console.log("i"+newIndex);
            var prevSelected = $('option:selected', el).prev();
            var count_opt=1;
            while (prevSelected.val()=='' && count_opt<=3){
              prevSelected = $('option:selected', el).prev().attr('selected', true);
              count_opt++
            }

            $('.combobox_summary li a[href='+prevSelected.val()+']', di).addClass('selected');

            nextSelected = prevSelected;
            prevSelected.attr('selected', true);
        $(this).val(nextSelected.text());
        $('input.combobox_hidden', di).attr('value', nextSelected.val());
          }
        }
      });

      //  selectie sluiten na mouse-out
      if (opts.hideOnMouseOut) {
        $(di).mouseout(function() {
          $.fn.combobox.sluitSelect();
        });
      }

      //  gekozen selectie toepassen
      $('.combobox_summary li a', di).click(function() {
        var v = $(this).attr('href');
        var text = $(this).html();
        var prevSelected = $('.combobox_summary li a.selected',di);
        if (prevSelected) prevSelected.removeClass('selected');

        // trim for ie7 > .replace(/(^[\s\xA0]+|[\s\xA0]+$)/g, '');
        if (opts.trim != 0 && opts.trim < text.length) { text = text.substr(0,opts.trim).trim();text+="...";}

        //console.log(prevSelected);
        $(this).addClass('selected');
        prevSelected = $(this);
        $('input.combobox_input', di).val(text);
        $('input.combobox_hidden', di).attr('value', v);

        //console.log("lp: "+opts.lpSelect);
        if (opts.lpSelect==1) {

          //console.log("prev_v: "+prev_v+" - v: "+v);
          if (prev_v!=v) {
            $.ajax({
              type: "POST",
              url: "/_skins/form-type/automotive-v5",
              data: opts.setSecondSelectUrl+v+"&_select_type="+opts.selectType+"&_cookie_p="+opts.cookie_p,
              success: function(content){
                $('#combobox_container_'+idSecondSelect).replaceWith(content);
                secondSelect = $(opts.setSecondSelect);
                var _idThirdSelect = '#'+idThirdSelect;
                secondSelect.combobox({style:'view2',numOfColumn:3,lpSelect:2,setSecondSelect:_idThirdSelect,setSecondSelectUrl:opts.setThirdSelectUrl});
                //console.log("t2");
              }
            });
            $.ajax({
              type: "POST",
              url: "/_skins/form-type/automotive-v5",
              data: opts.setThirdSelectUrl+0+"&_select_type="+opts.selectType+"&_cookie_p="+opts.cookie_p,
              success: function(content){
                $('#combobox_container_'+idThirdSelect).replaceWith(content);
                thirdSelect = $(opts.setThirdSelect);
                thirdSelect.combobox({style:'view2',numOfColumn:3,lpSelect:3});
                //console.log("t3");
              }
            });
          }else if ((v==1||v==2) && prev_v!=v){
            $.ajax({
              type: "POST",
              url: "/_skins/form-type/automotive-v5",
              data: opts.setSecondSelectUrl+v+"&_select_type="+opts.selectType+"&_cookie_p="+opts.cookie_p,
              success: function(content){
                var secondSelectList = $('#combobox_container_'+idSecondSelect);
                if (secondSelectList.size()==1) {
                  $('#combobox_container_'+idSecondSelect).replaceWith(content);
                } else {
                  $('#'+idSecondSelect).replaceWith(content);
                }
                secondSelect = $(opts.setSecondSelect);
                var _idThirdSelect = '#'+idThirdSelect;
                secondSelect.combobox({style:'view2',numOfColumn:3,lpSelect:2,setSecondSelect:_idThirdSelect,setSecondSelectUrl:opts.setThirdSelectUrl});
                //console.log("a1");
              }
            });
          }
          prev_v = v;
        } else if (opts.lpSelect==2) {

            $.ajax({
              type: "POST",
              url: "/_skins/form-type/automotive-v5",
              data: opts.setSecondSelectUrl+v+"&_type="+$('#typeAM').val()+"&_select_type="+opts.selectType+"&_cookie_p="+opts.cookie_p,
              success: function(content){
                var secondSelectList = $('#combobox_container_'+idSecondSelect);
                if (secondSelectList.size()==1) {
                  $('#combobox_container_'+idSecondSelect).replaceWith(content);
                } else {
                  $('#'+idSecondSelect).replaceWith(content);
                }
                secondSelect = $(opts.setSecondSelect);
                var _idSecondSelect = '#'+idSecondSelect;
                secondSelect.combobox({style:'view2',numOfColumn:3,lpSelect:3,setSecondSelect:_idSecondSelect,setSecondSelectUrl:opts.setSecondSelectUrl+"&_type="+$('#typeAM').val()});
                //secondSelect.combobox({style:'view2',numOfColumn:3,lpSelect:3,setSecondSelect:_idSecondSelect,setSecondSelectUrl:opts.setSecondSelectUrl"});
                //console.log(opts.setSecondSelectUrl+"&_type="+$('#typeAM').val());
              }
            });


        } else if (opts.lpSelect==3) {

        }


        $.fn.combobox.sluitSelect();
        boxToggle = true;
        opts.callbackSelectOption(v);
        if (opts.reloadOnChange) mForm.submit();
        return false;
      });
      $.fn.combobox.sluitSelect();
      boxToggle = true;
    });
  };
  $.fn.combobox.openSelectFromButton = function(btn,o) {
    var ul = btn.parent().find('div');
    $('li', ul).show();
    $.fn.combobox.sluitSelect();
    $.fn.combobox.openSelect(ul,btn,o);

    var ar = new Array();
    $('li a', ul).each(function() {
      ar.push($(this).attr('href'));
    });
    o.callbackShowOptions(ar);
  };
  $.fn.combobox.openSelect = function(el,btn,o) {
    el.fadeIn('fast');
    //var nh = (aa > o.maxVisibleOptions) ? (o.maxVisibleOptions * $('li:visible', el).height())+'px' : '';
    //el.css('height', nh);
    //el.scrollTop(0);

    /*
    var offset = btn.offset();
    if($(btn).hasClass('view')) {
      console.log(offset);
      $('.combobox_bg', btn.parent()).css({'left':(screen.width-950)/2+'px','position':'absolute','top':offset.top+30+'px'});
      $('.combobox_summary_arrow', btn.parent()).css({'left':offset.left-375+'px'});
    }else{
      $('.combobox_bg', btn.parent()).css({'left':offset.left-350+'px','position':'absolute','top':offset.top+30+'px'});
      $('.combobox_summary_arrow', btn.parent()).css({'left':offset.left-375+'px'});
    }
    */

    $(el).parent().css('z-index','2000');
    //$('#combobox_overlay').show();
  };
  $.fn.combobox.sluitSelect = function() {
    $('.combobox_bg').hide();
    //$('#combobox_overlay').hide();
    $('.combobox_bg').parent().css('z-index','0');
  };
  $.fn.combobox.defaults = {
    style: 'default',
    selectType: "search",
    cookie_p: 1,
    reloadOnChange: false,
    useArrowKey: true,
    trim: 0,
    numOfColumn: 1,
    txtCategory: '',
    showOnMouseOver: false,
    hideOnMouseOut: false,
    //maxVisibleOptions: 1000000,
    buttonToggle: true,
    lpSelect: false,
    setSecondSelect: false,
    setThirdSelect: false,
    setSecondSelectUrl: "",
    callbackShowOptions:  function(arr) {},
    callbackSelectOption:  function(arr) {}
  };

})(jQuery);

