function createSwitcher(sSelector, bTargetAsParent, sMode, aArrowScrollers) {

    if ($.browser.msie) {
        sMode = "default";
    };

    //obsługa scrollera - ustawianie aktualnej pozycji - bez tego pozycja jest resetowana w safari i ie
    var handleArrowScrollers = function(aArrowScrollers) {
        if (aArrowScrollers && aArrowScrollers.length) {
            var i;
            for (i = 0; i < aArrowScrollers.length; ++i) {
                aArrowScrollers[i].setCurrentPosition();
            }
        }
    };

    $(sSelector).click(function(e) {
        var oTarget = $(this),
			sPrevAnchor = null;

        var oParent = bTargetAsParent ? oTarget : oTarget.closest("li");

        if (oParent.hasClass("promo-last-tab")) {
            $(".promo-more a").attr("href", "http://www.turigo.pl/okazje/last-minute/");
        }
        else {
            $(".promo-more a").attr("href", "http://www.turigo.pl/okazje/promocje-linii.html");
        }
        oParent.siblings().each(function(index, el) {
            var oEl = $(el);
            if (oEl.hasClass("active")) {
                oEl.removeClass("active");
                sPrevAnchor = bTargetAsParent ? oEl.attr("href") : $(oEl.children(":first-child")).attr("href");
            }
        });

        oParent.addClass("active");

        var oNewOn = $(oTarget.attr("href")),
			oPrevOn = $(sPrevAnchor);

        if (oNewOn.length && sPrevAnchor) {
            switch (sMode) {
                case "fade":
                    oPrevOn.removeClass("on");
                    oNewOn.css("opacity", 0.15);
                    oNewOn.addClass("on");
                    handleArrowScrollers(aArrowScrollers);
                    oNewOn.animate({
                        opacity: 1
                    }, 250);
                    break;

                default:
                    oNewOn.addClass("on");
                    oPrevOn.removeClass("on");
                    handleArrowScrollers(aArrowScrollers);
                    break;
            }
        }

        return false;
    });
};

//używana do wyświetlania logosów
function rollCollection(sCollectionSelector, iTimeout) {

    var elements,
		timeout = 3000,
		visibleIndex = -1;

    if (parseInt(iTimeout)) {
        timeout = iTimeout;
    }


    var getElements = function() {
        if (!elements) {
            elements = $(sCollectionSelector);
        }

        return elements;
    };

    var run = function() {
        var elems = getElements(),
			previousIndex = visibleIndex;

        ++visibleIndex;

        if (visibleIndex >= elems.length) {
            visibleIndex = 0;
        }

        if (previousIndex > -1) {
            $(elems.get(previousIndex)).fadeOut("normal", function() {
                $(elems.get(visibleIndex)).fadeIn("normal");
            });
        }
        else {
            $(elems.get(visibleIndex)).fadeIn("normal");
        }

        if (elems.length > 1) {
            setTimeout(run, timeout);
        }
    };

    run();
};

function ArrowScroller(oConfig) {

    this.oItemsColl = $(oConfig.sItemsSelector);

    var oCounterSelector = new Object();

    if (oConfig.hasOwnProperty("sCounterSelector")) {
        oCounterSelector = $(oConfig.sCounterSelector);
    }

    if (this.oItemsColl.length) {

        this.iCurrIndex = 0;
        this.oScrollCnt = $(oConfig.sScrollCntSelector);

        //oScrollCnt.scrollTo( $(this.oItemsColl.get(this.iCurrIndex)) );
        this.setCurrentPosition();

        var _this = this;

        var scroll = function(bShowPrev) {
            if (_this.oScrollCnt.css("display") != "none") {
                if (bShowPrev) {
                    --_this.iCurrIndex;
                }
                else {
                    ++_this.iCurrIndex;
                }

                if (_this.iCurrIndex < 0) {
                    _this.iCurrIndex = _this.oItemsColl.length - 1;
                }
                else if (_this.iCurrIndex >= _this.oItemsColl.length) {
                    _this.iCurrIndex = 0;
                }

                _this.oScrollCnt.scrollTo($(_this.oItemsColl.get(_this.iCurrIndex)), 250);

                if (oCounterSelector.length) {
                    oCounterSelector.text(_this.iCurrIndex + 1);
                }
            }
        };

        $(oConfig.sLeftArrowSelector).click(function() {
            scroll(true);
            return false;
        });


        $(oConfig.sRightArrowSelector).click(function() {
            scroll(false);
            return false;
        });
    }
};
ArrowScroller.prototype.setCurrentPosition = function() {
    //alert(this.iCurrIndex);
    this.oScrollCnt.scrollTo($(this.oItemsColl.get(this.iCurrIndex)));
};

$(document).ready(
	function() {

	    //obsługa zwijania i rozwijania górnego bloku
	    var oToggleBtn = $(".newinfo-btn a");
	    if (oToggleBtn.length) {
	        oToggleBtn.click(function() {

	            //rozwijanie
	            if (oToggleBtn.hasClass("more")) {
	                $("#lay-cnt-newinfo .closed").animate({
	                    "height": "140"
	                },
						120,
						"linear",
						function() {
						    $(this).removeClass("closed").addClass("open").css("height", "auto");
						    oToggleBtn.addClass("less").removeClass("more");
						}
					);

	                return false;
	            }

	            //zwijanie
	            if (oToggleBtn.hasClass("less")) {
	                $("#lay-cnt-newinfo .open").animate({
	                    "height": "65"
	                },
						120,
						"linear",
						function() {
						    $(this).removeClass("open").addClass("closed");
						    oToggleBtn.addClass("more").removeClass("less");
						}
					);

	                return false;
	            }

	            return false;
	        });
	    }


	    //obsługa zamykania górnego bloku
	    $(".newinfo-close-btn").click(function() {
	        $("#lay-cnt-newinfo").animate({
	            "height": "toggle",
	            "opacity": "toggle"
	        },
				120,
				"linear",
				function() {
	                $.cookie('block', '0', { expires: 999999, path: '/', domain: 'turigo.pl', secure: false });
				    //pojawia się przycisk "dlaczego turigo" i napis 
				    $("#lay-cnt-newinfo-txt").fadeIn(200);
				}
			);

	        return false;
	    });


	    //po kliknięciu "dlaczego turigo" - rozwinięcie bloku
	    $("#lay-cnt-newinfo-txt .why-turigo").click(function() {
	        //znika przycisk "dlaczego turigo" i napis
	        $("#lay-cnt-newinfo-txt").fadeOut(
				200,
				function() {
				    $("#lay-cnt-newinfo").animate({
				        "height": "toggle",
				        "opacity": "toggle"
				    },
						120,
						"linear"
					);
				}
			);
	        return false;
	    });

	    //przyciski w bloku "promocje" - scroll
	    var oFlightsScroller = new ArrowScroller({
	        sScrollCntSelector: "#cnt-tab-flights",
	        sItemsSelector: "#cnt-tab-flights .promo-list",
	        sLeftArrowSelector: ".lay-cnt-promo-box .promo-box-btn .left-btn",
	        sRightArrowSelector: ".lay-cnt-promo-box .promo-box-btn .right-btn"
	    });

	    var oLastminuteScroller = new ArrowScroller({
	        sScrollCntSelector: "#cnt-tab-lastminute",
	        sItemsSelector: "#cnt-tab-lastminute .promo-list",
	        sLeftArrowSelector: ".lay-cnt-promo-box .promo-box-btn .left-btn",
	        sRightArrowSelector: ".lay-cnt-promo-box .promo-box-btn .right-btn"
	    });

	    //obsługa zakładek w bloku "promocje"
	    createSwitcher(".promo-tabs li a", false, "fade", [oFlightsScroller, oLastminuteScroller]);

	    //logosy - "porównywane serwisy" - zmiana ustawiona na 10 sekund
	    rollCollection(".logo-list-wrp .logo-list", 10000);

	    //kalendarzyki
	    var oCal = $(".cnt-search-box .fset-dates .with-ico-wrp input.text");
	    if (oCal.length) {
	        oCal.datepicker({
	            regional: "pl",
	            numberOfMonths: 2,
	            duration: "fast",
	            showButtonPanel: true,
	            closeText: "zamknij",
	            minDate: 0,
	            maxDate: "+4m",
	            dateFormat: "dd-mm-yy"
	        });
	    }
	}
);