﻿var ie7 = ($.browser.msie && $.browser.version == "7.0") ? true : false;
var ie8 = ($.browser.msie && $.browser.version == "8.0" && document.documentMode) ? true : false;
(function (a) {
    a.fn.carousel = function (r, f) {
        var y = this;
        var d = { intervalSeconds: 7, animateMillis: 200, thumbMargin: 2.5, thumbClosedHeight: 0, hoverWaitMillis: 100, hitArea: y, countBar: a(".count-bar", y.parent()), thumbnailSelectedClass: "hero-thumbnail-selected", thumbnailSelector: "div.hero-thumbnail", siteSection: "homepage" };
        if (f) {
            a.extend(d, f)
        } var v = false;
        var k = 0;
        var m = 0;
        var e = 0;
        var g = true;
        var q = [];
        var p = d.countBar;
        var l = a("div.hero-image", r);
        var b = a(d.thumbnailSelector, y.get(0));
        if (b.length == 1) {
            return
        }
        try
        {
            var A = a(d.thumbnailSelector).css("width");
            A = Number(A.replace(/[^0-9\.]+/g, ""));
            if (A > 0) {
                t()
            } else {
                b.load(t)
            } return this;
        }
        catch(err)
        {
        
        }
        function t() {
            var D = a(d.thumbnailSelector).css("width");
            d.thumbWidth = Number(D.replace(/[^0-9\.]+/g, ""));
            var B = a(d.thumbnailSelector).css("height");
            d.thumbHeight = Number(B.replace(/[^0-9\.]+/g, ""));
            var C = (d.thumbWidth * b.size()) + (d.thumbMargin * 2 * (b.size()) + d.thumbMargin);
            y.width(C);
            d.hitArea.width(C);
            if (!a.browser.msie) {
                d.hitArea.css("position", "relative")
            } z(function () {
                d.hitArea.css("visibility", "visible")
            });
            if (a.browser.msie) {
                d.hitArea.css("background-color", "#fff");
                d.hitArea.css("filter", "alpha(opacity=1)")
            } if (a.browser.msie) {
                d.hitArea.css("background-color", "#fff");
                d.hitArea.css("filter", "alpha(opacity=1)")
            } d.hitArea.hover(function () {
                u(x)
            }, function () {
                u(z)
            });
            b.each(h);
            e = c();
            b.each(function (E, F) {
                q[E] = a(F).position().left
            });
            s(j);
            mb.broadcaster.addListener(mb.events.CLASS_OVERVIEW_CTA_OVERLAY, function (E) {
                o()
            });
            if (ie7 || ie8) {
                a(".thumbnail-line").css({ width: "116.9px", margin: "5px 6.2px 5px 2.7px" })
            } 
        } function w(B, D) {
            var C = a(D);
            C.click(function () {
                if (e != B) {
                    i(B);
                    p.stop(true, false);
                    s(j)
                } o()
            })
        } function h(B, D) {
            var C = a(D);
            C.hover(function (E) {
                a(this).addClass("highLightHov")
            }, function (E) {
                a(this).removeClass("highLightHov")
            });
            C.click(function () {
                if (e != B) {
                    i(B);
                    p.stop(true, false);
                    s(j);
                    var F = B + 1;
                    var J = d.siteSection.substring(0, 1).toUpperCase();
                    var H = d.siteSection.substring(1);
                    var G = J + H;
                    var E = document.title + "_" + carClass + "+thumbnail_" + F;
                    var I = { type: "GA", trackType: "_trackEvent", category: G == "Vehicles" ? "Class Overview" : "Links", action: G == "Vehicles" ? "Carousel Hero Thumbnail" : "Links:" + G + ":Carousel:Image" + F + ":Click", label: G == "Vehicles" ? E : "Links:" + G };
                    mb.metrics.trackInteraction(I)
                } o()
            })
        } function o() {
            if (!g) {
                return
            } g = false;
            p.stop(true, false);
            if (ie7 || ie8) {
                var B = d.thumbWidth - 2
            } else {
                var B = d.thumbWidth
            } p.animate({ width: B }, d.animateMillis)
        } function n() {
            var C = q[e];
            var B = a(b.get(e)).position().top;
            if (ie7 || ie8) {
                C += y.position().left + 4.5
            } else {
                C += y.position().left + 5
            } p.css("left", C)
        } function s(B) {
            n();
            if (ie7 || ie8) {
                var C = d.thumbWidth - 3
            } else {
                var C = d.thumbWidth
            } if (!g) {
                p.width(C);
                return
            } p.width(0);
            p.animate({ width: C }, d.intervalSeconds * 1000, "linear", function () {
                B(function () {
                    s(B)
                })
            })
        } function j(C) {
            var B = (e + 1) % b.size();
            i(B);
            C()
        } function u(B) {
            clearTimeout(k);
            k = setTimeout(function () {
                if (v) {
                    return
                } v = true;
                B()
            }, d.hoverWaitMillis)
        } function c() {
            for (var B = 0;
B < b.size();
B++) {
                if (a(b.get(B)).hasClass(d.thumbnailSelectedClass)) {
                    return B
                } 
            } return -1
        } function i(B) {
            var C = a(l.get(B));
            if (e == B) {
                return
            } e = B;
            n();
            var D = a("div.visible-hero", r);
            D.removeClass("visible-hero");
            C.css("display", "none").removeClass("hidden-hero");
            b.removeClass(d.thumbnailSelectedClass);
            a(b.get(B)).addClass(d.thumbnailSelectedClass);
            r.height(D.height());
            D.fadeOut(d.animateMillis, function () {
                C.fadeIn(d.animateMillis, function () {
                    D.addClass("hidden-hero");
                    C.addClass("visible-hero")
                })
            });
            a("#content div.hero-container").css("height", "555px")
        } function x() {
            y.height(d.thumbClosedHeight);
            y.css("top", d.thumbHeight - d.thumbClosedHeight);
            y.css("visibility", "visible");
            y.animate({ height: d.thumbHeight + (d.thumbMargin * 2), top: 0 }, d.animateMillis, function () {
                v = false
            })
        } function z(B) {
            y.animate({ height: d.thumbClosedHeight, top: d.thumbHeight - d.thumbClosedHeight }, d.animateMillis, function () {
                v = false;
                if (B) {
                    B()
                } 
            })
        } 
    }
})(jQuery);
