var objViewHelper={};
objViewHelper.Selection=function(rd)
{
    var rodaj_pojazdu='';
    if(rd)
    {
        rodaj_pojazdu=rd;
    }
    var $=jQuery;
    var self=this;
    var maxIndex={
        selection:0,
        comparator:0
    };
    var selection_name="POT_SELECTION_COOKIE";
    var comparator_name="POT_COMPARATOR_COOKIE";
    var aComparator=getCookieList(comparator_name,rodaj_pojazdu);
    var aSelection=getCookieList(selection_name,rodaj_pojazdu);
    this.addToComparator=function(id,rd)
    {
        aComparator[id]=++(maxIndex.comparator);
        aComparator = przytnij(aComparator,4,rd);
        var value = rd+','+id;
        objCookies.cookie_value_add(comparator_name, value);
    }
    function przytnij(list,doIlu,rd)
    {
        var map = {};
        var skasuj = [];
        var licznik_all = 0;
        $.each(list,function(){
            ++licznik_all;
        });
        var licznik = 0;
        var licznik_limit = 0;
        var limit = licznik_all>doIlu?licznik_all-doIlu:0;
        $.each(list,function(index){
            if((licznik_limit++)<limit)
                skasuj.push(index);
            else if((++licznik)<=doIlu)
                map[index] = list[index];
        });
        $.each(skasuj,function(index,value){
            var array_value = rd+','+value;
            objCookies.cookie_value_remove(comparator_name,array_value);
        });
        return map;
    }
    this.addToMySelection=function(id,rd)
    {
        aSelection[id]=++(maxIndex.comparator);
        var value = rd+','+id;
        objCookies.cookie_value_add(selection_name, value);
    }
    this.isInComparator=function(id)
    {
        return aComparator[id];
    }
    this.isInMySelection=function(id)
    {
        return aSelection[id];
    }
    var clearComparator_o=function(index)
    {
        var id = index;
        aComparator[id]=false;
        objCookies.cookie_value_remove(comparator_name, 'o,'+id);
    }
    var clearComparator_d=function(index)
    {
        var id = index;
        aComparator[id]=false;
        objCookies.cookie_value_remove(comparator_name, 'd,'+id);
    }
    this.removeAllFromComparator=function(rd)
    {
        switch (rd) {
                case 'o':
                    $.each(aComparator, clearComparator_o);
                    break;
                case 'd':
                    $.each(aComparator, clearComparator_d);
                    break;
                default:
                    break;
            }

        
    }
    this.removeFromComparator=function(id,rd)
    {
        aComparator[id]=false;
        objCookies.cookie_value_remove(comparator_name, rd+','+id);
    }
    this.removeFromMySelection=function(id,rd)
    {
        aSelection[id]=false;
        objCookies.cookie_value_remove(selection_name, rd+','+id);
    }
    this.updateSelectionCount=function()
    {
        var count=self.getMySelectionLength();
        var text=count+(count<2?" pojazd":count<5?" pojazdy":" pojazdów");
        $(".globalHeader .maSelection a span").html(text);
        if(document.getElementById("MYSELECTION"))

        {
            $("#MYSELECTION h2 a span").html(text);
            $(".MYSELECTION .LinkMySelection").html("Mój wybór ("+count+")");
        }
    }
    this.updateComparatorCount=function()
    {
        var count=self.getComparatorLength();
        var text=count+(count<2?" pojazd":count<5?" pojazdy":" pojazdów");
        $(".centerColumn .btComparator em").html(text);
    }
    this.getMySelectionLength=function()
    {
        return getMapLength(aSelection);
    }
    this.getMyComparatorLength=function()
    {
        return getMapLength(aComparator);
    }
    function getMapLength(o)
    {
        var count=0;
        for(var id in o)if(o[id])count++;return count;
    }
    this.getComparatorLength=function()
    {
        return getMapLength(aComparator);
    }
    /**
     * pobieranie listy pojazdow z cookiesa
     *
     * @param  name - nazwa cookiesa
     * @param  rd - oznaczenie typu pojazdu. Mozliwe opcje:<br />
     * 'o' - osobowy,<br />
     * 'd' - dostawczy,<br />
     * '' - wszystkie pojazdu,<br />
     */
    function getCookieList(name,rd)
    {
        var cookie=objCookies.cookie_pobierz(name)
        if(cookie===null || !cookie.zawartosc.dane.length)return{};

        list=cookie.zawartosc.dane;
        var map={};
        var aValues;
            $.each(list,function(index,value){
                    if(rd && rd!='')
                    {
                        aValues=value.split(",");
                        if(rd==aValues[0])
                        {
                            map[aValues[1]]=index+1;
                        }
                    }
                    else
                    {
                        aValues=value.split(",")[1];
                        map[aValues]=index+1;
                    }

            });
        maxIndex[name]=list.length+2;
        return map;
    }
    /**
     * inicjalizacja danych i widoku
     *
     * @param  rd - oznaczenie typu pojazdu. Mozliwe opcje:<br />
     * 'o' - osobowy,<br />
     * 'd' - dostawczy,<br />
     * '' - wszystkie pojazdu,<br />
     */
    this.initialize=function(rd)
    {
        if(rd)
        {
            rodzaj_pojazdu=vehicleList.serialize_rodzaj_pojazdu(rd);
            aComparator=getCookieList(comparator_name,rodzaj_pojazdu);
            aSelection=getCookieList(selection_name,rodzaj_pojazdu);
        }
        this.updateSelectionCount();
        this.updateComparatorCount();
    }
};

var vehicleList=
{
    selected:true,
    compared:true,
    selection:new objViewHelper.Selection(),
    lastClick:0,
    img_www:'',
    viewType:'lista',
    rodzaj_pojazdu:'o',
    viewType_lista:'lista',
    viewType_miniatury:'miniatury',
    viewType_porownanie:'por',
    viewType_schowek:'schowek',
    viewType_szczeguly:'one'
};
/**
 * sprawdzanie czy rodzja pojazdu jest na liscie obslugiwanych
 *
 * @param  rd - oznaczenie rodzaju pojazdu. Mozliwe wartosci:<br />
 * 'o' - losobowy,<br />
 * 'd' - dostawczy,<br />
 * @param  default_value - wartosc jaka sie wpisuje w przypadku<br />
 * jezeli rodzaju nie ma na liscie
 */
vehicleList.serialize_rodzaj_pojazdu=function(rd,default_value)
{
    var rodzaj_pojazdu;
    switch (rd) {
        case 'o':
        case 'd':
            rodzaj_pojazdu = rd;
            break;
        default:
            rodzaj_pojazdu = default_value?default_value:'';
            break;
    }
    return rodzaj_pojazdu;
};
/**
 * inicjalizacja danych i widoku
 *
 * @param  viewType - typ widoku, mozliwe opcje:<br />
 * lista - lista,<br />
 * miniatury - miniatury,<br />
 * '' - ustaw domyslny widok (lista)
 * @param  img_www - scieszka do katalogu ze zdjeciami. Mozliwe opcje:<br />
 * http://link - link do katalogu,<br />
 * '' - pomin ustawienie
 * @param  rodzaj_pojazdu - oznaczenie typu pojazdu. Mozliwe opcje:<br />
 * 'o' - osobowy,<br />
 * 'd' - dostawczy,<br />
 */
vehicleList.initialize=function(viewType,img_www,rodzaj_pojazdu){
    if(viewType)
    {
        switch (viewType) {
            case vehicleList.viewType_lista:
            case vehicleList.viewType_miniatury:
            case vehicleList.viewType_porownanie:
            case vehicleList.viewType_schowek:
            case vehicleList.viewType_szczeguly:
                vehicleList.viewType = viewType;
                break;
            default:
                vehicleList.viewType = vehicleList.viewType_lista;
                break;
        }
    }
    if(img_www && img_www!='')
    {
        vehicleList.img_www = img_www;
    }
    if(rodzaj_pojazdu)
    {
        vehicleList.rodzaj_pojazdu = vehicleList.serialize_rodzaj_pojazdu(rodzaj_pojazdu,'o');
    }
    vehicleList.selection.initialize(vehicleList.rodzaj_pojazdu);
}
vehicleList.removeDup=function()
{
    $(this).remove();
};
vehicleList.getVehicleID=function(ref)
{
    switch (vehicleList.viewType)
    {
        case vehicleList.viewType_lista:
        case vehicleList.viewType_miniatury:
        case vehicleList.viewType_schowek:
            return $(ref).parents(".item").attr("id").split("_")[1];
            break;
        case vehicleList.viewType_szczeguly:
            return $(ref).parents(".vehicleColumn").attr("id").split("_")[1];
            break;
        default:
            break;
    }

};
/**
 * animacja przesowania pierwszego obiektu przekazanego w parametrze item.<br />
 * Przesowanie nastepuje z punktu a (offset obiektu item) do punktu b (offset obiektu target)
 *
 * @param  item - selector wskazujacy obiekt do animacji
 * @param  target - selector wskazujacy obiekt gdzie ma sie zakonczyc animacja
 * @param  direction - bool true - kierunek pierwotny, false - kierunek przeciwny
 * @param  options - obiect zawierajacy:<br />
 * <em><b>start_height</b></em> - startowa wysokosc (default 116),<br />
 * <em><b>start_opacity</b></em> - startowa przezroczystosc (default 1)<br />
 * <em><b>end_height</b></em> - koncowa wysokosc (default 16),<br />
 * <em><b>end_opacity</b></em> - koncowa przezroczystosc (default 0),<br />
 * (podajemy dla kierunku pierwotnego)
 */
vehicleList.animateItem=function(item,target,direction,options)
{
    var img=item;
    var startPos;

    var parent=img.parent().get(0);
    if(parent.__current)img=$(parent.__current).find("img");
    startPos=img.offset();

    var img_height = $(img).height();
    var img_width = $(img).width();
    var endPos=target.offset();

    var startCss={
        left:startPos.left,
        top:startPos.top,
        height:img_height,
        width:img_width
    };

    var endCss={
        left:endPos.left,
        top:endPos.top,
        height:10,
        width:154
    };
    if(options)
    {
        options.end_height ? endCss.height=options.end_height : endCss.height=16;
        options.end_opacity ? endCss.opacity=options.end_opacity : endCss.opacity=0;

        options.start_height ? startCss.height=options.end_height : endCss.height=img_height;
        options.start_opacity ? startCss.opacity=options.end_opacity : endCss.opacity=1;
    }
    if(direction)
    {
        var temp=endCss;
        endCss=startCss;
        startCss=temp;
    }
    var dup=$('<div><img src="'+img.attr("src")+'" style="width: 100%;" /></div>').css({
        position:"absolute",
        zIndex:10,
        width:img_width,
        height:img_height,
        overflow:"hidden"
    }).css(startCss).appendTo($(document.body)).animate(endCss,600+(startPos.top/3),vehicleList.removeDup);
};

/**
 * Funkcja inicjujaca tworzenie buttonow animacji zdjec
 *
 * @param  kontener - div zawierajacy wszystkie dane pojazdu <br />
 * (jako id ma podany identyfikator pojazdu)
 * @param  id - identyfkator ogloszenia. Mozliwe opcje:<br />
 * <b><em>podajemy id</em></b> (INT)<br />
 * <b><em>false</em></b> (lub nie definiujemy) - jezeli nie znamy id<br />
 * zostanei wtedy pobrane z "kontener"
 * @param  options - Dodatkowe opcje dla tworzenia buttonow. Mozliwe opcje:<br />
 * <b><em>buttons_kontener</em></b> - selector kontenera z buttonami (np majac:<br />
 * div class="test1"<br />
 * UL<br />
 * LI(MySelectionBtn)<br />
 * LI(ComparatorBtn)<br />
 * div<br />
 * przekazujemy: ".test1" )<br />
 * <b><em>MySelectionBtnPlace</em></b> - selector gdzie dokladnie nalezy umiescic button MySelectionBtn (np majac jak powyzej:<br />
 * przekazujemy: ".test1 ul" )<br />
 * <b><em>ComparatorBtnPlace</em></b> - selector gdzie dokladnie nalezy umiescic button ComparatorBtn (np majac jak powyzej:<br />
 * przekazujemy: ".test1 ul" )<br />
 * <b><em>img_selector</em></b> - selector do zdjecia ktore bedzie animowane (np majac:<br />
 * div class="test2"<br />
 * img<br />
 * div<br />
 * przekazujemy: ".test2 img" )<br />
 * <b><em>img_kontener_selector</em></b> - selector do kontenera ze zdjeciem ktore bedzie animowane (np majac jak powyzej:<br />
 * przekazujemy: ".test2" )<br />
 * <b><em>createMySelectionBtn</em></b> - true/false czy tworzyc button MySelectionBtn<br />
 * <b><em>createComparatorBtn</em></b> - true/false czy tworzyc button ComparatorBtn<br />
 * <em><b>MySelection_target</b></em> - selector do obiektu docelowego animacji przeniesienia do schowka i z powrotem
 * <em><b>Comparator_target</b></em> - selector do obiektu docelowego animacji przeniesienia do porownania i z powrotem
 * <em><b>carKontener_selector</b></em> - selector do kontenera zawierajacego wszystkie
 * dane pojazdu (musi zawierac button schowka i zdjecia przeznaczone do animacji)<br />|
 */
vehicleList.createBtns=function(kontener,id,options)
{
    var ident;
    var createMySelectionBtn = true;
    var createComparatorBtn = true;
    if(id)
        ident = id;
    else
        ident=vehicleList.getVehicleID(kontener);
    var isInComparator = vehicleList.selection.isInComparator(ident);
    var isInMySelection = vehicleList.selection.isInMySelection(ident);
    var Comparator_options = {};
    var MySelection_options = {};
    /*
     * ustawienei wartosci przekazanych w opcjach
     */
    if(options)
    {
        if(options.carKontener_selector)
        {
            MySelection_options.carKontener_selector = options.carKontener_selector;
        }
        /*
         * czy podano selector dla kontenera zawierajacego buttony
         */
        if(options.buttons_kontener)
        {
            Comparator_options.buttons_kontener = kontener;
            MySelection_options.buttons_kontener = kontener;
        }
        /*
         * czy podano selector lokalizacji img do animacji
         */
        if(options.img_selector)
        {
            Comparator_options.img_selector = options.img_selector;
            MySelection_options.img_selector = options.img_selector;
        }
        /*
         * czy podano selector lokalizacji kontenera z img do animacji
         */
        if(options.img_kontener_selector)
        {
            Comparator_options.img_kontener_selector = options.img_kontener_selector;
            MySelection_options.img_kontener_selector = options.img_kontener_selector;
        }
        /*
         * czy podano informacje czy dodawac button MySelection
         */
        if(options.createMySelectionBtn===false)
        {
            createMySelectionBtn=options.createMySelectionBtn;
        }
        /*
         * czy podano informacje czy dodawac button ComparatorBtn
         */
        if(options.createComparatorBtn===false)
        {
            createComparatorBtn=options.createComparatorBtn;
        }
        if(options.MySelection_target)
        {
            MySelection_options.MySelection_target = options.MySelection_target;
        }
        if(options.Comparator_target)
        {
            Comparator_options.Comparator_target = options.Comparator_target;
        }

    }
    MySelection_options.createBtns_options = options;
    Comparator_options.createBtns_options = options;
    /*
     * kasowanie starych i dodanie nowych buttonow
     */
    $(kontener).find(".toggleBt").remove();
    if(createMySelectionBtn)
        vehicleList.createMySelectionBtn(
            isInMySelection,
            MySelection_options
        );
    if(createComparatorBtn)
        vehicleList.createComparatorBtn(
            isInComparator,
            Comparator_options
        );
}
/**
 * Funkcja dodaje obiekt LI bedacy buttonem animacji we wskazanym miejscu i dodaje od niego
 * obsluge onclick = animacja wskazanego img i przeniesienie oferty do schowka
 *
 * @param  isSelected - true/false okresla kierunek animacji. Mozliwe opcje:<br />
 * true - bylo juz wybrane i bedzie animacja powrotu <br />
 * false - nie bylo wybrane i bedzie animacja przesjcia do wybranych <br />
 * @param  options - zbior dodatkowych opcji dla tworzenia buttonu. Mozliwe opcje:<br />
 * <b><em>buttons_kontener</em></b> - selector do kontenera gdzie nalezy umiescic LI (np majac:<br />
 * div class="test2"<br />
 * UL class="test3"<br />
 * //tutja maja byc LI buttony
 * /UL<br />
 * /div<br />
 * przekazujemy: ".test2 UL.test3" )<br />
 * <b><em>img_kontener_selector</em></b> - selector do kontenera gdzie znajduje sie img do animacji (np majac:<br />
 * div class="test2"<br />
 * img<br />
 * /div<br />
 * przekazujemy: ".test2" )<br />
 * <b><em>img_selector</em></b> - selector do img przeznaczonego do animacji (np majac:<br />
 * div class="test2"<br />
 * img<br />
 * /div<br />
 * przekazujemy: ".test2 img" )<br />
 * <em><b>MySelection_target</b></em> - selector do obiektu docelowego animacji (animacja odbywa sie
 * <em><b>carKontener_selector</b></em> - selector do kontenera zawierajacego wszystkie
 * dane pojazdu (musi zawierac button schowka i zdjecia przeznaczone do animacji)<br />
 * <em><b>createBtns_options</b></em> - obiekt zawierajacy opcje przekazane przy wywolaniu funkcji createBtns<br />
 */
vehicleList.createMySelectionBtn=function(isSelected,options)
{
    var button_place;
    var img_selector;
    var img_kontener_selector;
    var MySelection_target;
    var carKontener_selector;
    var toggleMySelection_options = {};
    var createBtns_options={};
    if(options)
    {
        if(options.buttons_kontener)
        {
            button_place = options.buttons_kontener;
        }
        if(options.img_selector)
        {
            img_selector = options.img_selector;
        }
        if(options.img_kontener_selector)
        {
            img_kontener_selector = options.img_kontener_selector
        }
        if(options.MySelection_target)
        {
            MySelection_target = options.MySelection_target
        }
        if(options.carKontener_selector)
        {
            carKontener_selector = options.carKontener_selector
        }
        if(options.createBtns_options)
        {
            createBtns_options = options.createBtns_options
        }
    }
    toggleMySelection_options.contener_selector = carKontener_selector;
    toggleMySelection_options.img_selector = img_selector;
    toggleMySelection_options.MySelection_target = MySelection_target;
    toggleMySelection_options.createBtns_options = createBtns_options;
    if(!button_place)
    {
        switch (vehicleList.viewType)
        {
            case vehicleList.viewType_lista:
            case vehicleList.viewType_miniatury:
            case vehicleList.viewType_schowek:
                button_place = $(".actionsContent ul.actionButton");
                break;
            case vehicleList.viewType_szczeguly:
                button_place = $(".vehicleReference ul.addSelection");
                break;
            default:
                break;
        }
    }
    if(!img_kontener_selector && vehicleList.viewType == vehicleList.viewType_szczeguly)
    {
        img_kontener_selector = $('.vehiclePicture');
    }
    if(!img_selector && vehicleList.viewType == vehicleList.viewType_szczeguly)
    {
        img_selector = $('.vehiclePicture img');
    }
    var size=vehicleList.viewType=="miniatury"?"Small":"";
    var selector_img;
    if(!isSelected)
    {
        selector_img = '<li class="toggleBt"><img src="'+vehicleList.img_www+'/img/Vehicles/btnAjouterSelection'+size+'.gif" alt="Wyjmij ze schiwka1" /></li>';
    }
    else
    {
        selector_img = '<li class="toggleBt"><img src="'+vehicleList.img_www+'/img/Vehicles/btnRetirerSelection'+size+'.gif" alt="Dodja do schowka1" /></li>';
    }
    $(selector_img).appendTo(button_place).click(function(){
        vehicleList.toggleMySelection(
            button_place,
            toggleMySelection_options
        )}
    );
}
/**
 * Funkcja dodaje obiekt LI bedacy buttonem animacji we wskazanym miejscu i dodaje od niego
 * obsluge onclick = animacja wskazanego img i przeniesienie oferty do porownania
 *
 * @param  isSelected - true/false okresla kierunek animacji. Mozliwe opcje:<br />
 * true - bylo juz wybrane i bedzie animacja powrotu <br />
 * false - nie bylo wybrane i bedzie animacja przesjcia do wybranych <br />
 * @param  options - zbior dodatkowych opcji dla tworzenia buttonu. Mozliwe opcje:<br />
 * <b><em>buttons_kontener</em></b> - selector do kontenera gdzie nalezy umiescic LI (np majac:<br />
 * div class="test2"<br />
 * UL class="test3"<br />
 * //tutja maja byc LI buttony
 * /UL<br />
 * /div<br />
 * przekazujemy: ".test2 UL.test3" )<br />
 * <b><em>img_kontener_selector</em></b> - selector do kontenera gdzie znajduje sie img do animacji (np majac:<br />
 * div class="test2"<br />
 * img<br />
 * /div<br />
 * przekazujemy: ".test2" )<br />
 * <b><em>img_selector</em></b> - selector do img przeznaczonego do animacji (np majac:<br />
 * div class="test2"<br />
 * img<br />
 * /div<br />
 * przekazujemy: ".test2 img" )<br />
 * <em><b>Comparator_target</b></em> - selector do obiektu docelowego animacji
 * <em><b>carKontener_selector</b></em> - selector do kontenera zawierajacego wszystkie
 * dane pojazdu (musi zawierac button schowka i zdjecia przeznaczone do animacji)<br />
 * <em><b>createBtns_options</b></em> - obiekt zawierajacy opcje przekazane przy wywolaniu funkcji createBtns<br />
 */
vehicleList.createComparatorBtn=function(isSelected,options)
{
    var button_place;
    var img_selector;
    var img_kontener_selector;
    var Comparator_target;
    var carKontener_selector;
    var toggleComparator_options = {};
    var createBtns_options = {};
    if(options)
    {
        if(options.buttons_kontener)
        {
            button_place = options.buttons_kontener;
        }
        if(options.img_selector)
        {
            img_selector = options.img_selector;
        }
        if(options.img_kontener_selector)
        {
            img_kontener_selector = options.img_kontener_selector
        }
        if(options.Comparator_target)
        {
            Comparator_target = options.Comparator_target
        }
        if(options.carKontener_selector)
        {
            carKontener_selector = options.carKontener_selector
        }
        if(options.createBtns_options)
        {
            createBtns_options = options.createBtns_options
        }
    }
    toggleComparator_options.carKontener_selector = carKontener_selector;
    toggleComparator_options.img_selector = img_selector;
    toggleComparator_options.Comparator_target = Comparator_target;
    toggleComparator_options.createBtns_options = createBtns_options;
    if(!button_place)
    {
        switch (vehicleList.viewType)
        {
            case vehicleList.viewType_lista:
            case vehicleList.viewType_miniatury:
            case vehicleList.viewType_schowek:
                button_place = $(".actionsContent ul.actionButton");
                break;
            case vehicleList.viewType_szczeguly:
                button_place = $(".vehicleReference ul.addSelection");
                break;
            default:
                break;
        }
    }
    if(!img_kontener_selector && vehicleList.viewType == vehicleList.viewType_szczeguly)
    {
        img_kontener_selector = $('.vehiclePicture');
    }
    if(!img_selector && vehicleList.viewType == vehicleList.viewType_szczeguly)
    {
        img_selector = $('.vehiclePicture img');
    }
    var size=vehicleList.viewType=="miniatury"?"Small":"";
    var selector_img;
    if(!isSelected)
    {
        selector_img = '<li class="toggleBt"><img src="'+vehicleList.img_www+'/img/Vehicles/btnAjouterComparateur'+size+'.gif" alt="Wyjmij ze porównania" /></li>';
    }
    else
    {
        selector_img = '<li class="toggleBt"><img src="'+vehicleList.img_www+'/img/Vehicles/btnRetirerComparateur'+size+'.gif" alt="Dodja do porównania" /></li>';
    }
    $(selector_img).appendTo(button_place).click(function(){
        vehicleList.toggleComparator(
            button_place,
            toggleComparator_options
        )}
    );
}
/**
 * dodanie i wyjecie oferty z porownania wlaczajac animacje wybranego zdjecia
 *
 * @param  item_selector - selektor do buttnonu dodawania do schowka
 * @param  options - dodatkowe opcje. Mozliwe opcje:<br />
 * <em><b>contener_selector</b></em> - selector do kontenera zawierajacego wszystkie
 * dane pojazdu (musi zawierac button schowka i zdjecia przeznaczone do animacji)<br />
 * <em><b>img_selector</b></em> - selector do img przeznaczonego do animacji<br />
 * <em><b>MySelection_target</b></em> - selector do obiektu docelowego animacji (animacja odbywa sie
 * pomiedzy polozeniem img a tym selectorem w kierunku zaleznym od tego czy oferta jest juz w schowku<br />
 */
vehicleList.toggleComparator=function(item_selector,options)
{
    var t=new Date().getTime();
    var target = $(".globalHeader .maSelection a");
    var img=$(item).find(".pictureContent ul li img:first");
    var item=$(item_selector).parents(".item");
    var createBtns_options={};
    var id=vehicleList.getVehicleID(item_selector);
    var direction;
    if(t-vehicleList.lastClick<500)return;
    vehicleList.lastClick=t;
    if(options)
    {
        if(options.createBtns_options)
            createBtns_options = options.createBtns_options;

        if(options.contener_selector)
            item = options.contener_selector;

        if(options.img_selector)
            img=$(options.img_selector);

        if(options.Comparator_target)
            target = $(options.Comparator_target);
    }

    if(vehicleList.selection.isInComparator(id,vehicleList.rodzaj_pojazdu))
    {
        vehicleList.selection.removeFromComparator(id,vehicleList.rodzaj_pojazdu);
        direction = true;
    }
    else
    {
        vehicleList.selection.addToComparator(id,vehicleList.rodzaj_pojazdu);
        direction = false;
    }
    setTimeout(function()
    {
        vehicleList.animateItem(img,target,direction)
    },100);
    vehicleList.selection.updateComparatorCount();
    vehicleList.createBtns(item_selector,id,createBtns_options);
};

/**
 * dodanie i wyjecie oferty ze schowka wlaczajac animacje wybranego zdjecia
 *
 * @param  item_selector - selektor do buttnonu dodawania do schowka
 * @param  options - dodatkowe opcje. Mozliwe opcje:<br />
 * <em><b>contener_selector</b></em> - selector do kontenera zawierajacego wszystkie
 * dane pojazdu (musi zawierac button schowka i zdjecia przeznaczone do animacji)<br />
 * <em><b>img_selector</b></em> - selector do img przeznaczonego do animacji<br />
 * <em><b>Comparator_target</b></em> - selector do obiektu docelowego animacji (animacja odbywa sie
 * pomiedzy polozeniem img a tym selectorem w kierunku zaleznym od tego czy oferta jest juz w schowku<br />
 * <em><b>createBtns_options</b></em> - obiekt zawierajacy opcje przekazane przy wywolaniu funkcji createBtns<br />
 */
vehicleList.toggleMySelection=function( item_selector,options)
{
    var t=new Date().getTime();
    var target = $(".globalHeader .maSelection a");
    var item=$(item_selector).parents(".item");
    var createBtns_options={};
    var direction;
    if(t-vehicleList.lastClick<500)return;
    vehicleList.lastClick=t;
    var id=vehicleList.getVehicleID(item_selector);

    if(options)
    {
        if(options.createBtns_options)
            createBtns_options = options.createBtns_options;
        
        if(options.contener_selector)
            item = options.contener_selector;

        if(options.img_selector)
            img=$(options.img_selector);

        if(options.MySelection_target)
            target = $(options.MySelection_target);
    }
    if(vehicleList.selection.isInMySelection(id,vehicleList.rodzaj_pojazdu))
    {
        if(vehicleList.viewType=='schowek')$(item).css('opacity', '0.5');
        vehicleList.selection.removeFromMySelection(id,vehicleList.rodzaj_pojazdu);
        direction = true;
    }
    else
    {
        if(vehicleList.viewType=='schowek')$(item).css('opacity', '1');
        vehicleList.selection.addToMySelection(id,vehicleList.rodzaj_pojazdu);
        direction = false;
    }
    setTimeout(function()
    {
        vehicleList.animateItem(img,target,direction)
    },100);
    vehicleList.createBtns(item_selector,id,createBtns_options);
    this.selection.updateSelectionCount();
};
vehicleList.toggleBlock=function(element){
    $(element.target).blur();
    var t=new Date().getTime();
    if(t-vehicleList.lastClick<200)return;
    vehicleList.lastClick=t;
    if( $(element).hasClass('active'))
        $(element).removeClass('active').parent(".CritereZone").find('.box_Content').slideUp(500);
    else
        $(element).addClass('active').parent(".CritereZone").find('.box_Content').slideDown(500);
    return this;
}

