/*
 *  jQuery OwlCarousel v1.3.3
 *
 *  Copyright (c) 2013 Bartosz Wojciechowski
 *  http://www.owlgraphic.com/owlcarousel/
 *
 *  Licensed under MIT
 *
 */
/*JS Lint helpers: */
/*global dragMove: false, dragEnd: false, $, jQuery, alert, window, document */
/*jslint nomen: true, continue:true */
if (typeof Object.create !== "function") {
    Object.create = function(obj) {
        function F() {
        }
        F.prototype = obj;
        return new F();
    };
}
(function($, window, document) {
    var Carousel = {
        init: function(options, el) {
            var base = this;
            base.$elem = $(el);
            base.options = $.extend({}, $.fn.owlCarousel.options, base.$elem.data(), options);
            base.userOptions = options;
            base.loadContent();
        },
        loadContent: function() {
            var base = this, url;
            function getData(data) {
                var i, content = "";
                if (typeof base.options.jsonSuccess === "function") {
                    base.options.jsonSuccess.apply(this, [ data ]);
                } else {
                    for (i in data.owl) {
                        if (data.owl.hasOwnProperty(i)) {
                            content += data.owl[ i ].item;
                        }
                    }
                    base.$elem.html(content);
                }
                base.logIn();
            }
            if (typeof base.options.beforeInit === "function") {
                base.options.beforeInit.apply(this, [ base.$elem ]);
            }
            if (typeof base.options.jsonPath === "string") {
                url = base.options.jsonPath;
                $.getJSON(url, getData);
            } else {
                base.logIn();
            }
        },
        logIn: function() {
            var base = this;
            base.$elem.data(
                {
                    "owl-originalStyles": base.$elem.attr("style"),
                    "owl-originalClasses": base.$elem.attr("class")
                }
            );
            base.$elem.css({opacity: 0});
            base.orignalItems = base.options.items;
            base.checkBrowser();
            base.wrapperWidth = 0;
            base.checkVisible = null;
            base.setVars();
        },
        setVars: function() {
            var base = this;
            if (base.$elem.children().length === 0) {
                return false;
            }
            base.baseClass();
            base.eventTypes();
            base.$userItems = base.$elem.children();
            base.itemsAmount = base.$userItems.length;
            base.wrapItems();
            base.$owlItems = base.$elem.find(".owl-item");
            base.$owlWrapper = base.$elem.find(".owl-wrapper");
            base.playDirection = "next";
            base.prevItem = 0;
            base.prevArr = [ 0 ];
            base.currentItem = 0;
            base.customEvents();
            base.onStartup();
        },
        onStartup: function() {
            var base = this;
            base.updateItems();
            base.calculateAll();
            base.buildControls();
            base.updateControls();
            base.response();
            base.moveEvents();
            base.stopOnHover();
            base.owlStatus();
            if (base.options.transitionStyle !== false) {
                base.transitionTypes(base.options.transitionStyle);
            }
            if (base.options.autoPlay === true) {
                base.options.autoPlay = 5000;
            }
            base.play();
            base.$elem.find(".owl-wrapper")
                .css("display", "block");
            if (!base.$elem.is(":visible")) {
                base.watchVisibility();
            } else {
                base.$elem.css("opacity", 1);
            }
            base.onstartup = false;
            base.eachMoveUpdate();
            if (typeof base.options.afterInit === "function") {
                base.options.afterInit.apply(this, [ base.$elem ]);
            }
        },
        eachMoveUpdate: function() {
            var base = this;
            if (base.options.lazyLoad === true) {
                base.lazyLoad();
            }
            if (base.options.autoHeight === true) {
                base.autoHeight();
            }
            base.onVisibleItems();
            if (typeof base.options.afterAction === "function") {
                base.options.afterAction.apply(this, [ base.$elem ]);
            }
        },
        updateVars: function() {
            var base = this;
            if (typeof base.options.beforeUpdate === "function") {
                base.options.beforeUpdate.apply(this, [ base.$elem ]);
            }
            base.watchVisibility();
            base.updateItems();
            base.calculateAll();
            base.updatePosition();
            base.updateControls();
            base.eachMoveUpdate();
            if (typeof base.options.afterUpdate === "function") {
                base.options.afterUpdate.apply(this, [ base.$elem ]);
            }
        },
        reload: function() {
            var base = this;
            window.setTimeout(
                function() {
                    base.updateVars();
                }, 0
            );
        },
        watchVisibility: function() {
            var base = this;
            if (base.$elem.is(":visible") === false) {
                base.$elem.css({opacity: 0});
                window.clearInterval(base.autoPlayInterval);
                window.clearInterval(base.checkVisible);
            } else {
                return false;
            }
            base.checkVisible = window.setInterval(
                function() {
                    if (base.$elem.is(":visible")) {
                        base.reload();
                        base.$elem.animate({opacity: 1}, 200);
                        window.clearInterval(base.checkVisible);
                    }
                }, 500
            );
        },
        wrapItems: function() {
            var base = this;
            base.$userItems.wrapAll("
")
                .wrap("
");
            base.$elem.find(".owl-wrapper")
                .wrap("
");
            base.wrapperOuter = base.$elem.find(".owl-wrapper-outer");
            base.$elem.css("display", "block");
        },
        baseClass: function() {
            var base = this, hasBaseClass = base.$elem.hasClass(base.options.baseClass), hasThemeClass = base.$elem.hasClass(base.options.theme);
            if (!hasBaseClass) {
                base.$elem.addClass(base.options.baseClass);
            }
            if (!hasThemeClass) {
                base.$elem.addClass(base.options.theme);
            }
        },
        updateItems: function() {
            var base = this, width, i;
            if (base.options.responsive === false) {
                return false;
            }
            if (base.options.singleItem === true) {
                base.options.items = base.orignalItems = 1;
                base.options.itemsCustom = false;
                base.options.itemsDesktop = false;
                base.options.itemsDesktopSmall = false;
                base.options.itemsTablet = false;
                base.options.itemsTabletSmall = false;
                base.options.itemsMobile = false;
                return false;
            }
            width = $(base.options.responsiveBaseWidth)
                .width();
            if (width > (base.options.itemsDesktop[ 0 ] || base.orignalItems)) {
                base.options.items = base.orignalItems;
            }
            if (base.options.itemsCustom !== false) {
                //Reorder array by screen size
                base.options.itemsCustom.sort(
                    function(a, b) {
                        return a[ 0 ] - b[ 0 ];
                    }
                );
                for (i = 0; i < base.options.itemsCustom.length; i += 1) {
                    if (base.options.itemsCustom[ i ][ 0 ] <= width) {
                        base.options.items = base.options.itemsCustom[ i ][ 1 ];
                    }
                }
            } else {
                if (width <= base.options.itemsDesktop[ 0 ] && base.options.itemsDesktop !== false) {
                    base.options.items = base.options.itemsDesktop[ 1 ];
                }
                if (width <= base.options.itemsDesktopSmall[ 0 ] && base.options.itemsDesktopSmall !== false) {
                    base.options.items = base.options.itemsDesktopSmall[ 1 ];
                }
                if (width <= base.options.itemsTablet[ 0 ] && base.options.itemsTablet !== false) {
                    base.options.items = base.options.itemsTablet[ 1 ];
                }
                if (width <= base.options.itemsTabletSmall[ 0 ] && base.options.itemsTabletSmall !== false) {
                    base.options.items = base.options.itemsTabletSmall[ 1 ];
                }
                if (width <= base.options.itemsMobile[ 0 ] && base.options.itemsMobile !== false) {
                    base.options.items = base.options.itemsMobile[ 1 ];
                }
            }
            //if number of items is less than declared
            if (base.options.items > base.itemsAmount && base.options.itemsScaleUp === true) {
                base.options.items = base.itemsAmount;
            }
        },
        response: function() {
            var base = this, smallDelay, lastWindowWidth;
            if (base.options.responsive !== true) {
                return false;
            }
            lastWindowWidth = $(window)
                .width();
            base.resizer = function() {
                if ($(window)
                        .width() !== lastWindowWidth) {
                    if (base.options.autoPlay !== false) {
                        window.clearInterval(base.autoPlayInterval);
                    }
                    window.clearTimeout(smallDelay);
                    smallDelay = window.setTimeout(
                        function() {
                            lastWindowWidth = $(window)
                                .width();
                            base.updateVars();
                        }, base.options.responsiveRefreshRate
                    );
                }
            };
            $(window)
                .resize(base.resizer);
        },
        updatePosition: function() {
            var base = this;
            base.jumpTo(base.currentItem);
            if (base.options.autoPlay !== false) {
                base.checkAp();
            }
        },
        appendItemsSizes: function() {
            var base = this, roundPages = 0, lastItem = base.itemsAmount - base.options.items;
            base.$owlItems.each(
                function(index) {
                    var $this = $(this);
                    $this
                        .css({"width": base.itemWidth})
                        .data("owl-item", Number(index));
                    if (index % base.options.items === 0 || index === lastItem) {
                        if (!(index > lastItem)) {
                            roundPages += 1;
                        }
                    }
                    $this.data("owl-roundPages", roundPages);
                }
            );
        },
        appendWrapperSizes: function() {
            var base = this, width = base.$owlItems.length * base.itemWidth;
            base.$owlWrapper.css(
                {
                    "width": width * 2,
                    "left": 0
                }
            );
            base.appendItemsSizes();
        },
        calculateAll: function() {
            var base = this;
            base.calculateWidth();
            base.appendWrapperSizes();
            base.loops();
            base.max();
        },
        calculateWidth: function() {
            var base = this;
            base.itemWidth = Math.round(base.$elem.width() / base.options.items);
        },
        max: function() {
            var base = this, maximum = ((base.itemsAmount * base.itemWidth) - base.options.items * base.itemWidth) * -1;
            if (base.options.items > base.itemsAmount) {
                base.maximumItem = 0;
                maximum = 0;
                base.maximumPixels = 0;
            } else {
                base.maximumItem = base.itemsAmount - base.options.items;
                base.maximumPixels = maximum;
            }
            return maximum;
        },
        min: function() {
            return 0;
        },
        loops: function() {
            var base = this, prev = 0, elWidth = 0, i, item, roundPageNum;
            base.positionsInArray = [ 0 ];
            base.pagesInArray = [];
            for (i = 0; i < base.itemsAmount; i += 1) {
                elWidth += base.itemWidth;
                base.positionsInArray.push(-elWidth);
                if (base.options.scrollPerPage === true) {
                    item = $(base.$owlItems[ i ]);
                    roundPageNum = item.data("owl-roundPages");
                    if (roundPageNum !== prev) {
                        base.pagesInArray[ prev ] = base.positionsInArray[ i ];
                        prev = roundPageNum;
                    }
                }
            }
        },
        buildControls: function() {
            var base = this;
            if (base.options.navigation === true || base.options.pagination === true) {
                base.owlControls = $("
")
                    .toggleClass("clickable", !base.browser.isTouch)
                    .appendTo(base.$elem);
            }
            if (base.options.pagination === true) {
                base.buildPagination();
            }
            if (base.options.navigation === true) {
                base.buildButtons();
            }
        },
        buildButtons: function() {
            var base = this, buttonsWrapper = $("