jQuery(document).ready(function () {
    // $('gallery-list').hide();
    // $('gallery-list').show();

    stLight.options({
        publisher: '734a090a-20f8-4bad-8cc9-f81279fa65fc',
        offsetLeft: '150',
        tracking: 'google'
    });
    var ie6 = false;
    if ($.browser.msie && $.browser.version == "6.0") {

        ie6 = true;
    }
    //preload images for the gallery
    $.preLoadImages("/Portals/0/images/slides/slide_1_product_shot.png", "/Portals/0/images/slides/slide_2_product_shot.png", "/Portals/0/images/slides/slide_3_product_shot.png", "/Portals/0/images/slides/slide_4_product_shot.png");
    $.preLoadImages("/Portals/0/images/slides/slide_1_type_bg.png", "/Portals/0/images/slides/slide_2_type_bg.png", "/Portals/0/images/slides/slide_3_type_bg.png", "/Portals/0/images/slides/slide_4_type_bg.png");
    if (ie6) {
        initGalleryie6();
    } else {
        initGallery();
    }
    $(document).pngFix();
    //selfTest();
    //    var usesScrollSize = 212;
    //    var buyScrollSize = 125;
    //    jQuery("a.prev").click(function (event) {
    //        event.preventDefault();
    //        doScroll('#useslist', false, usesScrollSize);
    //    });

    //    jQuery("a.next").click(function (event) {
    //        event.preventDefault();
    //        doScroll('#useslist', true, usesScrollSize);
    //    });

    //    jQuery("a.link-prev").click(function (event) {
    //        event.preventDefault();
    //        doScroll('#buylist', false, buyScrollSize);
    //    });

    //    jQuery("a.link-next").click(function (event) {
    //        event.preventDefault();
    //        doScroll('#buylist', true, buyScrollSize);
    //    });


    $("#buyviewport").jCarouselLite({
        btnNext: ".link-next",
        btnPrev: ".link-prev",
        easing: "easeOutBack",
        speed: 1000
    });
    $("#usesviewport").jCarouselLite({
        btnNext: ".next",
        btnPrev: ".prev",
        easing: "easeOutBack",
        speed: 1000
    });
    $(".aside .uses-box").click(function (event) {
        $(this).addClass("uses-hover");
        event.stopPropagation();
    });

    $("#nav ul li a.products").click(function (event) {
        $(this).parent().addClass("hover");
        event.stopPropagation();
    });
    //    $("#nav ul li a.products, #nav ul li .drop").hover(function (event) {
    //       // alert("test");
    //        $("#nav ul li a.products").parent().addClass("hover");
    //          event.stopPropagation();
    //    },
    //    function (event) {
    //        if ($("#nav ul li a.products").parent().hasClass("hover")) {
    //            $("#nav ul li a.products").parent().removeClass("hover");
    //        }
    //    }

    //  );

    $('#usesclose').click(function (event) {
        if ($(".aside .uses-box").hasClass("uses-hover")) {		
            $(".aside .uses-box").removeClass("uses-hover");
			 event.stopPropagation();
        }
    });

    $('body').click(function () {
        if ($(".aside .uses-box").hasClass("uses-hover")) {
            $(".aside .uses-box").removeClass("uses-hover");
        }
        if ($("#nav ul li a.products").parent().hasClass("hover")) {
            $("#nav ul li a.products").parent().removeClass("hover");
        }
    });

    // Drop down menu
    $(".box-holder .list li a").click(function (event) {
        //event.preventDefault();
        //alert("here");
        var parent = $(this).parent();

        if (parent.hasClass("open")) {
            // Close
            parent.removeClass("open");
            $(parent).children("div").hide("blind", 500);
        }
        else {
            // Open
            parent.addClass("open");
            $(parent).children("div").show("blind", 500);
        }
    });


    // $(".lnav-slider").hide();


    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-20680485-1']);
    _gaq.push(['_trackPageview']);

    (function () {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(ga, s);
    })();

    var formHTML = "<form id='prodSearchForm3' name='prodSearchForm3' action='" + $('#tt').val() + "' method='post'>";
    formHTML += "<input type='hidden' name='search_field' value='" + $('#ss').val() + "'>";
    formHTML += "</form>";

    $('body').append(formHTML);


});            ///End $DocReady
 
 function doProdSearch(){
     
     ctlForm = document.forms['prodSearchForm3'];
     //alert(ctlForm);
     ctlForm.submit();
}
function initGallery() {

  //  $('#galTextContainer').hide();
    jQuery('.gallery').each(function () {
        var _this = jQuery(this);
        jQuery('ul.gallery-list', _this).after('<div class="swicher"><ul></ul></div>');
        jQuery('ul.gallery-list li:first img', _this).fadeIn(2000, function () {
            jQuery('ul.gallery-list', _this).cycle({
                fx: 'scrollHorz',
                speed: 1000,
                timeout: 10000,
                easing: "easeOutBack",
                pause: 1,
                pauseOnPagerHover: 1,
                pager: jQuery('.swicher ul', _this),
                pauseOnPagerHover: 1,
                activePagerClass: 'active',
                pagerAnchorBuilder: function (idx) {
                    return '<li><a href="#">' + idx + '</a></li>';
                },
                before: function (currSlideElement, nextSlideElement, options, forwardFlag) {

                    $('#galTextArea').removeClass('text-1');
                    $('#galTextArea').removeClass('text-2');
                    $('#galTextArea').removeClass('text-3');
                    $('#galTextArea').removeClass('text-4');
                    $('#galTextWrapper').removeClass('tw1');
                    $('#galTextWrapper').removeClass('tw2');
                    $('#galTextWrapper').removeClass('tw3');
                    $('#galTextWrapper').removeClass('tw4');
                    $('#galTextContainer').removeClass('tb1');
                    $('#galTextContainer').removeClass('tb2');
                    $('#galTextContainer').removeClass('tb3');
                    $('#galTextContainer').removeClass('tb4');

                    $('#galText .more').hide();
                    $('#galText p').hide();
                    $('#galText h1').hide();
                    $('#galTextArea').hide();
                    $('#prodImage').hide();
                },
                after: function (currSlideElement, nextSlideElement, options, forwardFlag) {
                    //  $('#galTextArea').fadeIn('slow');
                    $('#galTextArea .more').hide();
                    $('#galTextArea p').hide();
                    $('#galTextArea h1').hide();
                    $('#galTextArea').hide();
                    $('#galTextArea').hide();

                    var i = $("img", this).attr("rel");

                    var prodImgName = "slide_" + i + "_product_shot.png";
                    var imgUrl = "/Portals/0/images/slides/" + prodImgName;
                    $('#prodImage img').attr('src', imgUrl);
                    var w;
                    var h;
                    switch (i) {
                        case "1":
                            w = "173";
                            h = "170";
                            break;
                        case "2":
                            w = "51";
                            h = "196";
                            break;
                        case "3":
                            w = "145";
                            h = "186";
                            break;
                        case "4":
                            w = "79";
                            h = "168";
                            break;
                    }
                    $('#prodImage img').attr('width', w);
                    $('#prodImage img').attr('height', h);

                    var txtAreaClass = "text-" + i;
                    var txtContainerClass = "tb" + i;
                    var txtWrapperClass = "tw" + i;

                    $('#galTextWrapper').addClass(txtWrapperClass);
                    $('#galTextArea').addClass(txtAreaClass);
                    $('#galTextContainer').addClass(txtContainerClass);

                    $('#galTextArea h1').text(getHomeJSText(i, 1));
                    $('#galTextArea p').text(getHomeJSText(i, 2));
                    $('#galTextArea div.more a').text(getHomeJSText(i, 3));
                    $('#galTextArea div.more a').attr("href", getHomeJSText(i, 4));

                    $('#galTextArea').fadeIn('slow');
                    $('#prodImage').fadeIn('slow');
                    setTimeout("$('#galTextArea h1').fadeIn('slow');", 1000);
                    setTimeout("$('#galTextArea p').fadeIn('slow');", 2000);
                    setTimeout("$('#galTextArea div.more').fadeIn('slow');", 2800);
                }
            });
        }); //fadein
    })
}

function initGalleryie6() {
   // alert("ie6 init");
    //  $('#galTextContainer').hide();

    jQuery('.gallery').each(function () {
        var _this = jQuery(this);
        jQuery('ul.gallery-list', _this).hide();
        $('#prodImage img').hide();
        jQuery('ul.gallery-list2', _this).show();
        jQuery('ul.gallery-list2', _this).after('<div class="swicher"><ul></ul></div>');

        jQuery('ul.gallery-list2', _this).cycle({
            fx: 'scrollHorz',
            speed: 1000,
            timeout: 10000,
            easing: "easeOutBack",
            pause: 1,
            pauseOnPagerHover: 1,
            pager: jQuery('.swicher ul', _this),
            pauseOnPagerHover: 1,
            activePagerClass: 'active',
            pagerAnchorBuilder: function (idx) {
                return '<li><a href="#">' + idx + '</a></li>';
            },
            before: function (currSlideElement, nextSlideElement, options, forwardFlag) {

                $('#galTextArea').removeClass('text-1');
                $('#galTextArea').removeClass('text-2');
                $('#galTextArea').removeClass('text-3');
                $('#galTextArea').removeClass('text-4');
                $('#galTextContainer').removeClass('tb1');
                $('#galTextContainer').removeClass('tb2');
                $('#galTextContainer').removeClass('tb3');
                $('#galTextContainer').removeClass('tb4');
                $('#galTextArea').hide();
            },
            after: function (currSlideElement, nextSlideElement, options, forwardFlag) {


                var i = $("img", this).attr("rel");

                //                var prodImgName = "slide_" + i + "_product_shot.png";
                //                var imgUrl = "images/slides/" + prodImgName;
                //                $('#prodImage img').attr('src', imgUrl);

                var txtAreaClass = "text-" + i;
                //  alert(txtAreaClass);
                var txtContainerClass = "tb" + i;
                var l;
                var t;
                switch (i) {
                    case "1":
                        l = "135px";
                        t = "170";
                        break;
                    case "2":
                        l = "12px";
                        t = "196";
                        break;
                    case "3":
                        l = "102px";
                        t = "186";
                        break;
                    case "4":
                        l = "42px";
                        t = "168";
                        break;
                }
                $('#galTextArea').css("left", l);
                $('#galTextArea h1').text(getHomeJSText(i, 1));
                $('#galTextArea p').text(getHomeJSText(i, 2));
                $('#galTextArea div.more a').text(getHomeJSText(i, 3));
                $('#galTextArea div.more a').attr("href",getHomeJSText(i, 4));

                $('#galTextArea').addClass(txtAreaClass);
                $('#galTextContainer').addClass(txtContainerClass);
                $('#galTextArea').fadeIn('slow');
            }
        });

    })
}
function getHomeJSText(slideNum, level) {
    var h1Text;
    var bodyText;
    var moreText;
    var moreUrl;

    switch (slideNum) {
        case "1":
            h1Text = "Serious Cleaning & Degreasing";
            bodyText = "Products that deliver optimum performance for specific cleaning and degreasing needs.";
            moreText = "Engine Cleaning & Degreasing";
            moreUrl = "/Home/Products/EngineCleanersDegreasing.aspx";
            break;
        case "2":
            h1Text = "DIY Vehicle Care Tip ";
            bodyText = "Clean Engines run better and last longer.";
            moreText = "MORE DIY VEHICLE TIPS";
            moreUrl = "/home/DIYVehicleCare.aspx";
            break;
        case "3":
            h1Text = "Powerful Performance";
            bodyText = "Quickly dissolves and flushes away  brake dust, brake fluid, grease and oil residue.";
            moreText = "Brake Parts Cleaners";
            moreUrl = "/Home/Products/PartsCleaners.aspx";
            break;
        case "4":
            h1Text = "Master your Domain";
            bodyText = "Take as much pride in your shop as you do with your vehicle.";
            moreText = "General Purpose Degreasers";
            moreUrl = "/Home/Products/SurfaceCleaningDegreasing.aspx";
            break;

    }
    switch (level) {
        case 1:
            return h1Text;
            break;
        case 2:
            return bodyText;
            break;
        case 3:
            return moreText;
            break;
        case 4:
            return moreUrl;
            break;
    }
}
function selfTest() {
    alert("here");
    if (!/MSIE (5\.5|6)/.test(navigator.userAgent)) {
        return alert('Please try this in IE6 :)');
    }
    var failed = 'MISSING! Check your .HTC pathname is correct ' +
            'and that the server is returning the correct MIME type.';
    var demoImg = document.getElementById('demoImg');
    alert(
            'IEPNGFix Core Behavior: ' +
            (IEPNGFix.process ? 'OK' : failed) +
            '\n\nBackground repeat/position extension: ' +
            (IEPNGFix.tileBG ? 'OK' : 'MISSING! Check your SCRIPT SRC for the extension') +
            '\n\nFilter activation: ' +
            (demoImg.filters['DXImageTransform.Microsoft.AlphaImageLoader'] ? 'OK' : failed) +
            '\n\nBLANK image pathname: ' + demoImg.src
        );
    if (location.protocol.indexOf('http') == -1) {
        return alert('Please run this from your server for MIME testing.');
    }
    alert('The script will now request "iepngfix.htc" in the current folder...');
    var xmlhttp;
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) { }
    }
    // Change this to test if your pathname is right.
    xmlhttp.open('GET', 'iepngfix.htc', true);
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4) {
            alert(
                    'Server response: File ' +
                    (xmlhttp.status == 404 ? 'NOT FOUND!' : 'found.') +
                    '\n\nMIME type (should be "text/x-component"): ' +
                    xmlhttp.getResponseHeader('Content-Type')
                );
        }
    };
    xmlhttp.send(null);
};

/*
* jQuery Cycle Plugin (with Transition Definitions)
* Examples and documentation at: http://jquery.malsup.com/cycle/
* Copyright (c) 2007-2010 M. Alsup
* Version: 2.88 (08-JUN-2010)
* Dual licensed under the MIT and GPL licenses.
* http://jquery.malsup.com/license.html
* Requires: jQuery v1.2.6 or later
*/
(function ($) { var ver = "2.88"; if ($.support == undefined) { $.support = { opacity: !($.browser.msie) }; } function debug(s) { if ($.fn.cycle.debug) { log(s); } } function log() { if (window.console && window.console.log) { window.console.log("[cycle] " + Array.prototype.join.call(arguments, " ")); } } $.fn.cycle = function (options, arg2) { var o = { s: this.selector, c: this.context }; if (this.length === 0 && options != "stop") { if (!$.isReady && o.s) { log("DOM not ready, queuing slideshow"); $(function () { $(o.s, o.c).cycle(options, arg2); }); return this; } log("terminating; zero elements found by selector" + ($.isReady ? "" : " (DOM not ready)")); return this; } return this.each(function () { var opts = handleArguments(this, options, arg2); if (opts === false) { return; } opts.updateActivePagerLink = opts.updateActivePagerLink || $.fn.cycle.updateActivePagerLink; if (this.cycleTimeout) { clearTimeout(this.cycleTimeout); } this.cycleTimeout = this.cyclePause = 0; var $cont = $(this); var $slides = opts.slideExpr ? $(opts.slideExpr, this) : $cont.children(); var els = $slides.get(); if (els.length < 2) { log("terminating; too few slides: " + els.length); return; } var opts2 = buildOptions($cont, $slides, els, opts, o); if (opts2 === false) { return; } var startTime = opts2.continuous ? 10 : getTimeout(els[opts2.currSlide], els[opts2.nextSlide], opts2, !opts2.rev); if (startTime) { startTime += (opts2.delay || 0); if (startTime < 10) { startTime = 10; } debug("first timeout: " + startTime); this.cycleTimeout = setTimeout(function () { go(els, opts2, 0, (!opts2.rev && !opts.backwards)); }, startTime); } }); }; function handleArguments(cont, options, arg2) { if (cont.cycleStop == undefined) { cont.cycleStop = 0; } if (options === undefined || options === null) { options = {}; } if (options.constructor == String) { switch (options) { case "destroy": case "stop": var opts = $(cont).data("cycle.opts"); if (!opts) { return false; } cont.cycleStop++; if (cont.cycleTimeout) { clearTimeout(cont.cycleTimeout); } cont.cycleTimeout = 0; $(cont).removeData("cycle.opts"); if (options == "destroy") { destroy(opts); } return false; case "toggle": cont.cyclePause = (cont.cyclePause === 1) ? 0 : 1; checkInstantResume(cont.cyclePause, arg2, cont); return false; case "pause": cont.cyclePause = 1; return false; case "resume": cont.cyclePause = 0; checkInstantResume(false, arg2, cont); return false; case "prev": case "next": var opts = $(cont).data("cycle.opts"); if (!opts) { log('options not found, "prev/next" ignored'); return false; } $.fn.cycle[options](opts); return false; default: options = { fx: options }; } return options; } else { if (options.constructor == Number) { var num = options; options = $(cont).data("cycle.opts"); if (!options) { log("options not found, can not advance slide"); return false; } if (num < 0 || num >= options.elements.length) { log("invalid slide index: " + num); return false; } options.nextSlide = num; if (cont.cycleTimeout) { clearTimeout(cont.cycleTimeout); cont.cycleTimeout = 0; } if (typeof arg2 == "string") { options.oneTimeFx = arg2; } go(options.elements, options, 1, num >= options.currSlide); return false; } } return options; function checkInstantResume(isPaused, arg2, cont) { if (!isPaused && arg2 === true) { var options = $(cont).data("cycle.opts"); if (!options) { log("options not found, can not resume"); return false; } if (cont.cycleTimeout) { clearTimeout(cont.cycleTimeout); cont.cycleTimeout = 0; } go(options.elements, options, 1, (!opts.rev && !opts.backwards)); } } } function removeFilter(el, opts) { if (!$.support.opacity && opts.cleartype && el.style.filter) { try { el.style.removeAttribute("filter"); } catch (smother) { } } } function destroy(opts) { if (opts.next) { $(opts.next).unbind(opts.prevNextEvent); } if (opts.prev) { $(opts.prev).unbind(opts.prevNextEvent); } if (opts.pager || opts.pagerAnchorBuilder) { $.each(opts.pagerAnchors || [], function () { this.unbind().remove(); }); } opts.pagerAnchors = null; if (opts.destroy) { opts.destroy(opts); } } function buildOptions($cont, $slides, els, options, o) { var opts = $.extend({}, $.fn.cycle.defaults, options || {}, $.metadata ? $cont.metadata() : $.meta ? $cont.data() : {}); if (opts.autostop) { opts.countdown = opts.autostopCount || els.length; } var cont = $cont[0]; $cont.data("cycle.opts", opts); opts.$cont = $cont; opts.stopCount = cont.cycleStop; opts.elements = els; opts.before = opts.before ? [opts.before] : []; opts.after = opts.after ? [opts.after] : []; opts.after.unshift(function () { opts.busy = 0; }); if (!$.support.opacity && opts.cleartype) { opts.after.push(function () { removeFilter(this, opts); }); } if (opts.continuous) { opts.after.push(function () { go(els, opts, 0, (!opts.rev && !opts.backwards)); }); } saveOriginalOpts(opts); if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg) { clearTypeFix($slides); } if ($cont.css("position") == "static") { $cont.css("position", "relative"); } if (opts.width) { $cont.width(opts.width); } if (opts.height && opts.height != "auto") { $cont.height(opts.height); } if (opts.startingSlide) { opts.startingSlide = parseInt(opts.startingSlide); } else { if (opts.backwards) { opts.startingSlide = els.length - 1; } } if (opts.random) { opts.randomMap = []; for (var i = 0; i < els.length; i++) { opts.randomMap.push(i); } opts.randomMap.sort(function (a, b) { return Math.random() - 0.5; }); opts.randomIndex = 1; opts.startingSlide = opts.randomMap[1]; } else { if (opts.startingSlide >= els.length) { opts.startingSlide = 0; } } opts.currSlide = opts.startingSlide || 0; var first = opts.startingSlide; $slides.css({ position: "absolute", top: 0, left: 0 }).hide().each(function (i) { var z; if (opts.backwards) { z = first ? i <= first ? els.length + (i - first) : first - i : els.length - i; } else { z = first ? i >= first ? els.length - (i - first) : first - i : els.length - i; } $(this).css("z-index", z); }); $(els[first]).css("opacity", 1).show(); removeFilter(els[first], opts); if (opts.fit && opts.width) { $slides.width(opts.width); } if (opts.fit && opts.height && opts.height != "auto") { $slides.height(opts.height); } var reshape = opts.containerResize && !$cont.innerHeight(); if (reshape) { var maxw = 0, maxh = 0; for (var j = 0; j < els.length; j++) { var $e = $(els[j]), e = $e[0], w = $e.outerWidth(), h = $e.outerHeight(); if (!w) { w = e.offsetWidth || e.width || $e.attr("width"); } if (!h) { h = e.offsetHeight || e.height || $e.attr("height"); } maxw = w > maxw ? w : maxw; maxh = h > maxh ? h : maxh; } if (maxw > 0 && maxh > 0) { $cont.css({ width: maxw + "px", height: maxh + "px" }); } } if (opts.pause) { $cont.hover(function () { this.cyclePause++; }, function () { this.cyclePause--; }); } if (supportMultiTransitions(opts) === false) { return false; } var requeue = false; options.requeueAttempts = options.requeueAttempts || 0; $slides.each(function () { var $el = $(this); this.cycleH = (opts.fit && opts.height) ? opts.height : ($el.height() || this.offsetHeight || this.height || $el.attr("height") || 0); this.cycleW = (opts.fit && opts.width) ? opts.width : ($el.width() || this.offsetWidth || this.width || $el.attr("width") || 0); if ($el.is("img")) { var loadingIE = ($.browser.msie && this.cycleW == 28 && this.cycleH == 30 && !this.complete); var loadingFF = ($.browser.mozilla && this.cycleW == 34 && this.cycleH == 19 && !this.complete); var loadingOp = ($.browser.opera && ((this.cycleW == 42 && this.cycleH == 19) || (this.cycleW == 37 && this.cycleH == 17)) && !this.complete); var loadingOther = (this.cycleH == 0 && this.cycleW == 0 && !this.complete); if (loadingIE || loadingFF || loadingOp || loadingOther) { if (o.s && opts.requeueOnImageNotLoaded && ++options.requeueAttempts < 100) { log(options.requeueAttempts, " - img slide not loaded, requeuing slideshow: ", this.src, this.cycleW, this.cycleH); setTimeout(function () { $(o.s, o.c).cycle(options); }, opts.requeueTimeout); requeue = true; return false; } else { log("could not determine size of image: " + this.src, this.cycleW, this.cycleH); } } } return true; }); if (requeue) { return false; } opts.cssBefore = opts.cssBefore || {}; opts.animIn = opts.animIn || {}; opts.animOut = opts.animOut || {}; $slides.not(":eq(" + first + ")").css(opts.cssBefore); if (opts.cssFirst) { $($slides[first]).css(opts.cssFirst); } if (opts.timeout) { opts.timeout = parseInt(opts.timeout); if (opts.speed.constructor == String) { opts.speed = $.fx.speeds[opts.speed] || parseInt(opts.speed); } if (!opts.sync) { opts.speed = opts.speed / 2; } var buffer = opts.fx == "shuffle" ? 500 : 250; while ((opts.timeout - opts.speed) < buffer) { opts.timeout += opts.speed; } } if (opts.easing) { opts.easeIn = opts.easeOut = opts.easing; } if (!opts.speedIn) { opts.speedIn = opts.speed; } if (!opts.speedOut) { opts.speedOut = opts.speed; } opts.slideCount = els.length; opts.currSlide = opts.lastSlide = first; if (opts.random) { if (++opts.randomIndex == els.length) { opts.randomIndex = 0; } opts.nextSlide = opts.randomMap[opts.randomIndex]; } else { if (opts.backwards) { opts.nextSlide = opts.startingSlide == 0 ? (els.length - 1) : opts.startingSlide - 1; } else { opts.nextSlide = opts.startingSlide >= (els.length - 1) ? 0 : opts.startingSlide + 1; } } if (!opts.multiFx) { var init = $.fn.cycle.transitions[opts.fx]; if ($.isFunction(init)) { init($cont, $slides, opts); } else { if (opts.fx != "custom" && !opts.multiFx) { log("unknown transition: " + opts.fx, "; slideshow terminating"); return false; } } } var e0 = $slides[first]; if (opts.before.length) { opts.before[0].apply(e0, [e0, e0, opts, true]); } if (opts.after.length > 1) { opts.after[1].apply(e0, [e0, e0, opts, true]); } if (opts.next) { $(opts.next).bind(opts.prevNextEvent, function () { return advance(opts, opts.rev ? -1 : 1); }); } if (opts.prev) { $(opts.prev).bind(opts.prevNextEvent, function () { return advance(opts, opts.rev ? 1 : -1); }); } if (opts.pager || opts.pagerAnchorBuilder) { buildPager(els, opts); } exposeAddSlide(opts, els); return opts; } function saveOriginalOpts(opts) { opts.original = { before: [], after: [] }; opts.original.cssBefore = $.extend({}, opts.cssBefore); opts.original.cssAfter = $.extend({}, opts.cssAfter); opts.original.animIn = $.extend({}, opts.animIn); opts.original.animOut = $.extend({}, opts.animOut); $.each(opts.before, function () { opts.original.before.push(this); }); $.each(opts.after, function () { opts.original.after.push(this); }); } function supportMultiTransitions(opts) { var i, tx, txs = $.fn.cycle.transitions; if (opts.fx.indexOf(",") > 0) { opts.multiFx = true; opts.fxs = opts.fx.replace(/\s*/g, "").split(","); for (i = 0; i < opts.fxs.length; i++) { var fx = opts.fxs[i]; tx = txs[fx]; if (!tx || !txs.hasOwnProperty(fx) || !$.isFunction(tx)) { log("discarding unknown transition: ", fx); opts.fxs.splice(i, 1); i--; } } if (!opts.fxs.length) { log("No valid transitions named; slideshow terminating."); return false; } } else { if (opts.fx == "all") { opts.multiFx = true; opts.fxs = []; for (p in txs) { tx = txs[p]; if (txs.hasOwnProperty(p) && $.isFunction(tx)) { opts.fxs.push(p); } } } } if (opts.multiFx && opts.randomizeEffects) { var r1 = Math.floor(Math.random() * 20) + 30; for (i = 0; i < r1; i++) { var r2 = Math.floor(Math.random() * opts.fxs.length); opts.fxs.push(opts.fxs.splice(r2, 1)[0]); } debug("randomized fx sequence: ", opts.fxs); } return true; } function exposeAddSlide(opts, els) { opts.addSlide = function (newSlide, prepend) { var $s = $(newSlide), s = $s[0]; if (!opts.autostopCount) { opts.countdown++; } els[prepend ? "unshift" : "push"](s); if (opts.els) { opts.els[prepend ? "unshift" : "push"](s); } opts.slideCount = els.length; $s.css("position", "absolute"); $s[prepend ? "prependTo" : "appendTo"](opts.$cont); if (prepend) { opts.currSlide++; opts.nextSlide++; } if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg) { clearTypeFix($s); } if (opts.fit && opts.width) { $s.width(opts.width); } if (opts.fit && opts.height && opts.height != "auto") { $slides.height(opts.height); } s.cycleH = (opts.fit && opts.height) ? opts.height : $s.height(); s.cycleW = (opts.fit && opts.width) ? opts.width : $s.width(); $s.css(opts.cssBefore); if (opts.pager || opts.pagerAnchorBuilder) { $.fn.cycle.createPagerAnchor(els.length - 1, s, $(opts.pager), els, opts); } if ($.isFunction(opts.onAddSlide)) { opts.onAddSlide($s); } else { $s.hide(); } }; } $.fn.cycle.resetState = function (opts, fx) { fx = fx || opts.fx; opts.before = []; opts.after = []; opts.cssBefore = $.extend({}, opts.original.cssBefore); opts.cssAfter = $.extend({}, opts.original.cssAfter); opts.animIn = $.extend({}, opts.original.animIn); opts.animOut = $.extend({}, opts.original.animOut); opts.fxFn = null; $.each(opts.original.before, function () { opts.before.push(this); }); $.each(opts.original.after, function () { opts.after.push(this); }); var init = $.fn.cycle.transitions[fx]; if ($.isFunction(init)) { init(opts.$cont, $(opts.elements), opts); } }; function go(els, opts, manual, fwd) { if (manual && opts.busy && opts.manualTrump) { debug("manualTrump in go(), stopping active transition"); $(els).stop(true, true); opts.busy = false; } if (opts.busy) { debug("transition active, ignoring new tx request"); return; } var p = opts.$cont[0], curr = els[opts.currSlide], next = els[opts.nextSlide]; if (p.cycleStop != opts.stopCount || p.cycleTimeout === 0 && !manual) { return; } if (!manual && !p.cyclePause && !opts.bounce && ((opts.autostop && (--opts.countdown <= 0)) || (opts.nowrap && !opts.random && opts.nextSlide < opts.currSlide))) { if (opts.end) { opts.end(opts); } return; } var changed = false; if ((manual || !p.cyclePause) && (opts.nextSlide != opts.currSlide)) { changed = true; var fx = opts.fx; curr.cycleH = curr.cycleH || $(curr).height(); curr.cycleW = curr.cycleW || $(curr).width(); next.cycleH = next.cycleH || $(next).height(); next.cycleW = next.cycleW || $(next).width(); if (opts.multiFx) { if (opts.lastFx == undefined || ++opts.lastFx >= opts.fxs.length) { opts.lastFx = 0; } fx = opts.fxs[opts.lastFx]; opts.currFx = fx; } if (opts.oneTimeFx) { fx = opts.oneTimeFx; opts.oneTimeFx = null; } $.fn.cycle.resetState(opts, fx); if (opts.before.length) { $.each(opts.before, function (i, o) { if (p.cycleStop != opts.stopCount) { return; } o.apply(next, [curr, next, opts, fwd]); }); } var after = function () { $.each(opts.after, function (i, o) { if (p.cycleStop != opts.stopCount) { return; } o.apply(next, [curr, next, opts, fwd]); }); }; debug("tx firing; currSlide: " + opts.currSlide + "; nextSlide: " + opts.nextSlide); opts.busy = 1; if (opts.fxFn) { opts.fxFn(curr, next, opts, after, fwd, manual && opts.fastOnEvent); } else { if ($.isFunction($.fn.cycle[opts.fx])) { $.fn.cycle[opts.fx](curr, next, opts, after, fwd, manual && opts.fastOnEvent); } else { $.fn.cycle.custom(curr, next, opts, after, fwd, manual && opts.fastOnEvent); } } } if (changed || opts.nextSlide == opts.currSlide) { opts.lastSlide = opts.currSlide; if (opts.random) { opts.currSlide = opts.nextSlide; if (++opts.randomIndex == els.length) { opts.randomIndex = 0; } opts.nextSlide = opts.randomMap[opts.randomIndex]; if (opts.nextSlide == opts.currSlide) { opts.nextSlide = (opts.currSlide == opts.slideCount - 1) ? 0 : opts.currSlide + 1; } } else { if (opts.backwards) { var roll = (opts.nextSlide - 1) < 0; if (roll && opts.bounce) { opts.backwards = !opts.backwards; opts.nextSlide = 1; opts.currSlide = 0; } else { opts.nextSlide = roll ? (els.length - 1) : opts.nextSlide - 1; opts.currSlide = roll ? 0 : opts.nextSlide + 1; } } else { var roll = (opts.nextSlide + 1) == els.length; if (roll && opts.bounce) { opts.backwards = !opts.backwards; opts.nextSlide = els.length - 2; opts.currSlide = els.length - 1; } else { opts.nextSlide = roll ? 0 : opts.nextSlide + 1; opts.currSlide = roll ? els.length - 1 : opts.nextSlide - 1; } } } } if (changed && opts.pager) { opts.updateActivePagerLink(opts.pager, opts.currSlide, opts.activePagerClass); } var ms = 0; if (opts.timeout && !opts.continuous) { ms = getTimeout(els[opts.currSlide], els[opts.nextSlide], opts, fwd); } else { if (opts.continuous && p.cyclePause) { ms = 10; } } if (ms > 0) { p.cycleTimeout = setTimeout(function () { go(els, opts, 0, (!opts.rev && !opts.backwards)); }, ms); } } $.fn.cycle.updateActivePagerLink = function (pager, currSlide, clsName) { $(pager).each(function () { $(this).children().removeClass(clsName).eq(currSlide).addClass(clsName); }); }; function getTimeout(curr, next, opts, fwd) { if (opts.timeoutFn) { var t = opts.timeoutFn.call(curr, curr, next, opts, fwd); while ((t - opts.speed) < 250) { t += opts.speed; } debug("calculated timeout: " + t + "; speed: " + opts.speed); if (t !== false) { return t; } } return opts.timeout; } $.fn.cycle.next = function (opts) { advance(opts, opts.rev ? -1 : 1); }; $.fn.cycle.prev = function (opts) { advance(opts, opts.rev ? 1 : -1); }; function advance(opts, val) { var els = opts.elements; var p = opts.$cont[0], timeout = p.cycleTimeout; if (timeout) { clearTimeout(timeout); p.cycleTimeout = 0; } if (opts.random && val < 0) { opts.randomIndex--; if (--opts.randomIndex == -2) { opts.randomIndex = els.length - 2; } else { if (opts.randomIndex == -1) { opts.randomIndex = els.length - 1; } } opts.nextSlide = opts.randomMap[opts.randomIndex]; } else { if (opts.random) { opts.nextSlide = opts.randomMap[opts.randomIndex]; } else { opts.nextSlide = opts.currSlide + val; if (opts.nextSlide < 0) { if (opts.nowrap) { return false; } opts.nextSlide = els.length - 1; } else { if (opts.nextSlide >= els.length) { if (opts.nowrap) { return false; } opts.nextSlide = 0; } } } } var cb = opts.onPrevNextEvent || opts.prevNextClick; if ($.isFunction(cb)) { cb(val > 0, opts.nextSlide, els[opts.nextSlide]); } go(els, opts, 1, val >= 0); return false; } function buildPager(els, opts) { var $p = $(opts.pager); $.each(els, function (i, o) { $.fn.cycle.createPagerAnchor(i, o, $p, els, opts); }); opts.updateActivePagerLink(opts.pager, opts.startingSlide, opts.activePagerClass); } $.fn.cycle.createPagerAnchor = function (i, el, $p, els, opts) { var a; if ($.isFunction(opts.pagerAnchorBuilder)) { a = opts.pagerAnchorBuilder(i, el); debug("pagerAnchorBuilder(" + i + ", el) returned: " + a); } else { a = '<a href="#">' + (i + 1) + "</a>"; } if (!a) { return; } var $a = $(a); if ($a.parents("body").length === 0) { var arr = []; if ($p.length > 1) { $p.each(function () { var $clone = $a.clone(true); $(this).append($clone); arr.push($clone[0]); }); $a = $(arr); } else { $a.appendTo($p); } } opts.pagerAnchors = opts.pagerAnchors || []; opts.pagerAnchors.push($a); $a.bind(opts.pagerEvent, function (e) { e.preventDefault(); opts.nextSlide = i; var p = opts.$cont[0], timeout = p.cycleTimeout; if (timeout) { clearTimeout(timeout); p.cycleTimeout = 0; } var cb = opts.onPagerEvent || opts.pagerClick; if ($.isFunction(cb)) { cb(opts.nextSlide, els[opts.nextSlide]); } go(els, opts, 1, opts.currSlide < i); }); if (!/^click/.test(opts.pagerEvent) && !opts.allowPagerClickBubble) { $a.bind("click.cycle", function () { return false; }); } if (opts.pauseOnPagerHover) { $a.hover(function () { opts.$cont[0].cyclePause++; }, function () { opts.$cont[0].cyclePause--; }); } }; $.fn.cycle.hopsFromLast = function (opts, fwd) { var hops, l = opts.lastSlide, c = opts.currSlide; if (fwd) { hops = c > l ? c - l : opts.slideCount - l; } else { hops = c < l ? l - c : l + opts.slideCount - c; } return hops; }; function clearTypeFix($slides) { debug("applying clearType background-color hack"); function hex(s) { s = parseInt(s).toString(16); return s.length < 2 ? "0" + s : s; } function getBg(e) { for (; e && e.nodeName.toLowerCase() != "html"; e = e.parentNode) { var v = $.css(e, "background-color"); if (v.indexOf("rgb") >= 0) { var rgb = v.match(/\d+/g); return "#" + hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]); } if (v && v != "transparent") { return v; } } return "#ffffff"; } $slides.each(function () { $(this).css("background-color", getBg(this)); }); } $.fn.cycle.commonReset = function (curr, next, opts, w, h, rev) { $(opts.elements).not(curr).hide(); opts.cssBefore.opacity = 1; opts.cssBefore.display = "block"; if (w !== false && next.cycleW > 0) { opts.cssBefore.width = next.cycleW; } if (h !== false && next.cycleH > 0) { opts.cssBefore.height = next.cycleH; } opts.cssAfter = opts.cssAfter || {}; opts.cssAfter.display = "none"; $(curr).css("zIndex", opts.slideCount + (rev === true ? 1 : 0)); $(next).css("zIndex", opts.slideCount + (rev === true ? 0 : 1)); }; $.fn.cycle.custom = function (curr, next, opts, cb, fwd, speedOverride) { var $l = $(curr), $n = $(next); var speedIn = opts.speedIn, speedOut = opts.speedOut, easeIn = opts.easeIn, easeOut = opts.easeOut; $n.css(opts.cssBefore); if (speedOverride) { if (typeof speedOverride == "number") { speedIn = speedOut = speedOverride; } else { speedIn = speedOut = 1; } easeIn = easeOut = null; } var fn = function () { $n.animate(opts.animIn, speedIn, easeIn, cb); }; $l.animate(opts.animOut, speedOut, easeOut, function () { if (opts.cssAfter) { $l.css(opts.cssAfter); } if (!opts.sync) { fn(); } }); if (opts.sync) { fn(); } }; $.fn.cycle.transitions = { fade: function ($cont, $slides, opts) { $slides.not(":eq(" + opts.currSlide + ")").css("opacity", 0); opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts); opts.cssBefore.opacity = 0; }); opts.animIn = { opacity: 1 }; opts.animOut = { opacity: 0 }; opts.cssBefore = { top: 0, left: 0 }; } }; $.fn.cycle.ver = function () { return ver; }; $.fn.cycle.defaults = { fx: "fade", timeout: 4000, timeoutFn: null, continuous: 0, speed: 1000, speedIn: null, speedOut: null, next: null, prev: null, onPrevNextEvent: null, prevNextEvent: "click.cycle", pager: null, onPagerEvent: null, pagerEvent: "click.cycle", allowPagerClickBubble: false, pagerAnchorBuilder: null, before: null, after: null, end: null, easing: null, easeIn: null, easeOut: null, shuffle: null, animIn: null, animOut: null, cssBefore: null, cssAfter: null, fxFn: null, height: "auto", startingSlide: 0, sync: 1, random: 0, fit: 0, containerResize: 1, pause: 0, pauseOnPagerHover: 0, autostop: 0, autostopCount: 0, delay: 0, slideExpr: null, cleartype: !$.support.opacity, cleartypeNoBg: false, nowrap: 0, fastOnEvent: 0, randomizeEffects: 1, rev: 0, manualTrump: true, requeueOnImageNotLoaded: true, requeueTimeout: 250, activePagerClass: "activeSlide", updateActivePagerLink: null, backwards: false }; })(jQuery);


/*
* jQuery Cycle Plugin Transition Definitions
* This script is a plugin for the jQuery Cycle Plugin
* Examples and documentation at: http://malsup.com/jquery/cycle/
* Copyright (c) 2007-2010 M. Alsup
* Version:	 2.72
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*/
(function ($) { $.fn.cycle.transitions.none = function ($cont, $slides, opts) { opts.fxFn = function (curr, next, opts, after) { $(next).show(); $(curr).hide(); after(); }; }; $.fn.cycle.transitions.scrollUp = function ($cont, $slides, opts) { $cont.css("overflow", "hidden"); opts.before.push($.fn.cycle.commonReset); var h = $cont.height(); opts.cssBefore = { top: h, left: 0 }; opts.cssFirst = { top: 0 }; opts.animIn = { top: 0 }; opts.animOut = { top: -h }; }; $.fn.cycle.transitions.scrollDown = function ($cont, $slides, opts) { $cont.css("overflow", "hidden"); opts.before.push($.fn.cycle.commonReset); var h = $cont.height(); opts.cssFirst = { top: 0 }; opts.cssBefore = { top: -h, left: 0 }; opts.animIn = { top: 0 }; opts.animOut = { top: h }; }; $.fn.cycle.transitions.scrollLeft = function ($cont, $slides, opts) { $cont.css("overflow", "hidden"); opts.before.push($.fn.cycle.commonReset); var w = $cont.width(); opts.cssFirst = { left: 0 }; opts.cssBefore = { left: w, top: 0 }; opts.animIn = { left: 0 }; opts.animOut = { left: 0 - w }; }; $.fn.cycle.transitions.scrollRight = function ($cont, $slides, opts) { $cont.css("overflow", "hidden"); opts.before.push($.fn.cycle.commonReset); var w = $cont.width(); opts.cssFirst = { left: 0 }; opts.cssBefore = { left: -w, top: 0 }; opts.animIn = { left: 0 }; opts.animOut = { left: w }; }; $.fn.cycle.transitions.scrollHorz = function ($cont, $slides, opts) { $cont.css("overflow", "hidden").width(); opts.before.push(function (curr, next, opts, fwd) { $.fn.cycle.commonReset(curr, next, opts); opts.cssBefore.left = fwd ? (next.cycleW - 1) : (1 - next.cycleW); opts.animOut.left = fwd ? -curr.cycleW : curr.cycleW; }); opts.cssFirst = { left: 0 }; opts.cssBefore = { top: 0 }; opts.animIn = { left: 0 }; opts.animOut = { top: 0 }; }; $.fn.cycle.transitions.scrollVert = function ($cont, $slides, opts) { $cont.css("overflow", "hidden"); opts.before.push(function (curr, next, opts, fwd) { $.fn.cycle.commonReset(curr, next, opts); opts.cssBefore.top = fwd ? (1 - next.cycleH) : (next.cycleH - 1); opts.animOut.top = fwd ? curr.cycleH : -curr.cycleH; }); opts.cssFirst = { top: 0 }; opts.cssBefore = { left: 0 }; opts.animIn = { top: 0 }; opts.animOut = { left: 0 }; }; $.fn.cycle.transitions.slideX = function ($cont, $slides, opts) { opts.before.push(function (curr, next, opts) { $(opts.elements).not(curr).hide(); $.fn.cycle.commonReset(curr, next, opts, false, true); opts.animIn.width = next.cycleW; }); opts.cssBefore = { left: 0, top: 0, width: 0 }; opts.animIn = { width: "show" }; opts.animOut = { width: 0 }; }; $.fn.cycle.transitions.slideY = function ($cont, $slides, opts) { opts.before.push(function (curr, next, opts) { $(opts.elements).not(curr).hide(); $.fn.cycle.commonReset(curr, next, opts, true, false); opts.animIn.height = next.cycleH; }); opts.cssBefore = { left: 0, top: 0, height: 0 }; opts.animIn = { height: "show" }; opts.animOut = { height: 0 }; }; $.fn.cycle.transitions.shuffle = function ($cont, $slides, opts) { var i, w = $cont.css("overflow", "visible").width(); $slides.css({ left: 0, top: 0 }); opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts, true, true, true); }); if (!opts.speedAdjusted) { opts.speed = opts.speed / 2; opts.speedAdjusted = true; } opts.random = 0; opts.shuffle = opts.shuffle || { left: -w, top: 15 }; opts.els = []; for (i = 0; i < $slides.length; i++) { opts.els.push($slides[i]); } for (i = 0; i < opts.currSlide; i++) { opts.els.push(opts.els.shift()); } opts.fxFn = function (curr, next, opts, cb, fwd) { var $el = fwd ? $(curr) : $(next); $(next).css(opts.cssBefore); var count = opts.slideCount; $el.animate(opts.shuffle, opts.speedIn, opts.easeIn, function () { var hops = $.fn.cycle.hopsFromLast(opts, fwd); for (var k = 0; k < hops; k++) { fwd ? opts.els.push(opts.els.shift()) : opts.els.unshift(opts.els.pop()); } if (fwd) { for (var i = 0, len = opts.els.length; i < len; i++) { $(opts.els[i]).css("z-index", len - i + count); } } else { var z = $(curr).css("z-index"); $el.css("z-index", parseInt(z) + 1 + count); } $el.animate({ left: 0, top: 0 }, opts.speedOut, opts.easeOut, function () { $(fwd ? this : curr).hide(); if (cb) { cb(); } }); }); }; opts.cssBefore = { display: "block", opacity: 1, top: 0, left: 0 }; }; $.fn.cycle.transitions.turnUp = function ($cont, $slides, opts) { opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts, true, false); opts.cssBefore.top = next.cycleH; opts.animIn.height = next.cycleH; }); opts.cssFirst = { top: 0 }; opts.cssBefore = { left: 0, height: 0 }; opts.animIn = { top: 0 }; opts.animOut = { height: 0 }; }; $.fn.cycle.transitions.turnDown = function ($cont, $slides, opts) { opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts, true, false); opts.animIn.height = next.cycleH; opts.animOut.top = curr.cycleH; }); opts.cssFirst = { top: 0 }; opts.cssBefore = { left: 0, top: 0, height: 0 }; opts.animOut = { height: 0 }; }; $.fn.cycle.transitions.turnLeft = function ($cont, $slides, opts) { opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts, false, true); opts.cssBefore.left = next.cycleW; opts.animIn.width = next.cycleW; }); opts.cssBefore = { top: 0, width: 0 }; opts.animIn = { left: 0 }; opts.animOut = { width: 0 }; }; $.fn.cycle.transitions.turnRight = function ($cont, $slides, opts) { opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts, false, true); opts.animIn.width = next.cycleW; opts.animOut.left = curr.cycleW; }); opts.cssBefore = { top: 0, left: 0, width: 0 }; opts.animIn = { left: 0 }; opts.animOut = { width: 0 }; }; $.fn.cycle.transitions.zoom = function ($cont, $slides, opts) { opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts, false, false, true); opts.cssBefore.top = next.cycleH / 2; opts.cssBefore.left = next.cycleW / 2; opts.animIn = { top: 0, left: 0, width: next.cycleW, height: next.cycleH }; opts.animOut = { width: 0, height: 0, top: curr.cycleH / 2, left: curr.cycleW / 2 }; }); opts.cssFirst = { top: 0, left: 0 }; opts.cssBefore = { width: 0, height: 0 }; }; $.fn.cycle.transitions.fadeZoom = function ($cont, $slides, opts) { opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts, false, false); opts.cssBefore.left = next.cycleW / 2; opts.cssBefore.top = next.cycleH / 2; opts.animIn = { top: 0, left: 0, width: next.cycleW, height: next.cycleH }; }); opts.cssBefore = { width: 0, height: 0 }; opts.animOut = { opacity: 0 }; }; $.fn.cycle.transitions.blindX = function ($cont, $slides, opts) { var w = $cont.css("overflow", "hidden").width(); opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts); opts.animIn.width = next.cycleW; opts.animOut.left = curr.cycleW; }); opts.cssBefore = { left: w, top: 0 }; opts.animIn = { left: 0 }; opts.animOut = { left: w }; }; $.fn.cycle.transitions.blindY = function ($cont, $slides, opts) { var h = $cont.css("overflow", "hidden").height(); opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts); opts.animIn.height = next.cycleH; opts.animOut.top = curr.cycleH; }); opts.cssBefore = { top: h, left: 0 }; opts.animIn = { top: 0 }; opts.animOut = { top: h }; }; $.fn.cycle.transitions.blindZ = function ($cont, $slides, opts) { var h = $cont.css("overflow", "hidden").height(); var w = $cont.width(); opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts); opts.animIn.height = next.cycleH; opts.animOut.top = curr.cycleH; }); opts.cssBefore = { top: h, left: w }; opts.animIn = { top: 0, left: 0 }; opts.animOut = { top: h, left: w }; }; $.fn.cycle.transitions.growX = function ($cont, $slides, opts) { opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts, false, true); opts.cssBefore.left = this.cycleW / 2; opts.animIn = { left: 0, width: this.cycleW }; opts.animOut = { left: 0 }; }); opts.cssBefore = { width: 0, top: 0 }; }; $.fn.cycle.transitions.growY = function ($cont, $slides, opts) { opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts, true, false); opts.cssBefore.top = this.cycleH / 2; opts.animIn = { top: 0, height: this.cycleH }; opts.animOut = { top: 0 }; }); opts.cssBefore = { height: 0, left: 0 }; }; $.fn.cycle.transitions.curtainX = function ($cont, $slides, opts) { opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts, false, true, true); opts.cssBefore.left = next.cycleW / 2; opts.animIn = { left: 0, width: this.cycleW }; opts.animOut = { left: curr.cycleW / 2, width: 0 }; }); opts.cssBefore = { top: 0, width: 0 }; }; $.fn.cycle.transitions.curtainY = function ($cont, $slides, opts) { opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts, true, false, true); opts.cssBefore.top = next.cycleH / 2; opts.animIn = { top: 0, height: next.cycleH }; opts.animOut = { top: curr.cycleH / 2, height: 0 }; }); opts.cssBefore = { left: 0, height: 0 }; }; $.fn.cycle.transitions.cover = function ($cont, $slides, opts) { var d = opts.direction || "left"; var w = $cont.css("overflow", "hidden").width(); var h = $cont.height(); opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts); if (d == "right") { opts.cssBefore.left = -w; } else { if (d == "up") { opts.cssBefore.top = h; } else { if (d == "down") { opts.cssBefore.top = -h; } else { opts.cssBefore.left = w; } } } }); opts.animIn = { left: 0, top: 0 }; opts.animOut = { opacity: 1 }; opts.cssBefore = { top: 0, left: 0 }; }; $.fn.cycle.transitions.uncover = function ($cont, $slides, opts) { var d = opts.direction || "left"; var w = $cont.css("overflow", "hidden").width(); var h = $cont.height(); opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts, true, true, true); if (d == "right") { opts.animOut.left = w; } else { if (d == "up") { opts.animOut.top = -h; } else { if (d == "down") { opts.animOut.top = h; } else { opts.animOut.left = -w; } } } }); opts.animIn = { left: 0, top: 0 }; opts.animOut = { opacity: 1 }; opts.cssBefore = { top: 0, left: 0 }; }; $.fn.cycle.transitions.toss = function ($cont, $slides, opts) { var w = $cont.css("overflow", "visible").width(); var h = $cont.height(); opts.before.push(function (curr, next, opts) { $.fn.cycle.commonReset(curr, next, opts, true, true, true); if (!opts.animOut.left && !opts.animOut.top) { opts.animOut = { left: w * 2, top: -h / 2, opacity: 0 }; } else { opts.animOut.opacity = 0; } }); opts.cssBefore = { left: 0, top: 0 }; opts.animIn = { left: 0 }; }; $.fn.cycle.transitions.wipe = function ($cont, $slides, opts) { var w = $cont.css("overflow", "hidden").width(); var h = $cont.height(); opts.cssBefore = opts.cssBefore || {}; var clip; if (opts.clip) { if (/l2r/.test(opts.clip)) { clip = "rect(0px 0px " + h + "px 0px)"; } else { if (/r2l/.test(opts.clip)) { clip = "rect(0px " + w + "px " + h + "px " + w + "px)"; } else { if (/t2b/.test(opts.clip)) { clip = "rect(0px " + w + "px 0px 0px)"; } else { if (/b2t/.test(opts.clip)) { clip = "rect(" + h + "px " + w + "px " + h + "px 0px)"; } else { if (/zoom/.test(opts.clip)) { var top = parseInt(h / 2); var left = parseInt(w / 2); clip = "rect(" + top + "px " + left + "px " + top + "px " + left + "px)"; } } } } } } opts.cssBefore.clip = opts.cssBefore.clip || clip || "rect(0px 0px 0px 0px)"; var d = opts.cssBefore.clip.match(/(\d+)/g); var t = parseInt(d[0]), r = parseInt(d[1]), b = parseInt(d[2]), l = parseInt(d[3]); opts.before.push(function (curr, next, opts) { if (curr == next) { return; } var $curr = $(curr), $next = $(next); $.fn.cycle.commonReset(curr, next, opts, true, true, false); opts.cssAfter.display = "block"; var step = 1, count = parseInt((opts.speedIn / 13)) - 1; (function f() { var tt = t ? t - parseInt(step * (t / count)) : 0; var ll = l ? l - parseInt(step * (l / count)) : 0; var bb = b < h ? b + parseInt(step * ((h - b) / count || 1)) : h; var rr = r < w ? r + parseInt(step * ((w - r) / count || 1)) : w; $next.css({ clip: "rect(" + tt + "px " + rr + "px " + bb + "px " + ll + "px)" }); (step++ <= count) ? setTimeout(f, 13) : $curr.css("display", "none"); })(); }); opts.cssBefore = { display: "block", opacity: 1, top: 0, left: 0 }; opts.animIn = { left: 0 }; opts.animOut = { left: 0 }; }; })(jQuery);

/* simple image cache plugin*/
(function ($) {
    var cache = [];
    // Arguments are image paths relative to the current page.
    $.preLoadImages = function () {
        var args_len = arguments.length;
        for (var i = args_len; i--; ) {
            var cacheImage = document.createElement('img');
            cacheImage.src = arguments[i];
            cache.push(cacheImage);
        }
    }
})(jQuery)

/*
* jQuery galleryScroll v1.5.2
*/

/*
************* OPTIONS ************************************** default ****************
btPrev         - link for previos [selector]    	btPrev: 'a.btn-pre'
btNext         - link for next [selector]		btNext: 'a.btn-next'
holderList     - image list holder [Tag name]		holderList: 'div'
scrollElParent - list [Tag name]			scrollElParent: 'ul'
scrollEl       - list element [Tag name]		scrollEl: 'li'
slideNum       - view slide numbers [boolean]		slideNum: false
duration       - duration slide [1000 - 1sec]		duration : 1000
step           - slide step [int]			step: false
circleSlide    - slide circle [boolean]			circleSlide: true
disableClass   - class for disable link	[string] 	disableClass: 'disable'
funcOnclick    - callback function			funcOnclick: null
innerMargin    - inner margin, use width step [px]      innerMargin:0
autoSlide      - auto slide [1000 - 1sec]               autoSlide:false
*************************************************************************************
*/
jQuery.fn.galleryScroll = function (_options) {
    // defaults options	
    var _options = jQuery.extend({
        btPrev: 'a.link-prev',
        btNext: 'a.link-next',
        holderList: 'div',
        scrollElParent: 'ul',
        scrollEl: 'li',
        slideNum: false,
        duration: 1000,
        step: false,
        circleSlide: true,
        disableClass: 'disable',
        funcOnclick: null,
        autoSlide: false,
        innerMargin: 0,
        stepWidth: false
    }, _options);

    return this.each(function () {
        var _this = jQuery(this);

        var _holderBlock = jQuery(_options.holderList, _this);
        var _gWidth = _holderBlock.width();
        var _animatedBlock = jQuery(_options.scrollElParent, _holderBlock);
        var _liWidth = jQuery(_options.scrollEl, _animatedBlock).outerWidth(true);
        var _liSum = jQuery(_options.scrollEl, _animatedBlock).length * _liWidth;
        var _margin = -_options.innerMargin;
        var f = 0;
        var _step = 0;
        var _autoSlide = _options.autoSlide;
        var _timerSlide = null;
        if (!_options.step) _step = _gWidth; else _step = _options.step * _liWidth;
        if (_options.stepWidth) _step = _options.stepWidth;

        if (!_options.circleSlide) {
            if (_options.innerMargin == _margin)
                jQuery(_options.btPrev, _this).addClass('prev-' + _options.disableClass);
        }
        if (_options.slideNum && !_options.step) {
            var _lastSection = 0;
            var _sectionWidth = 0;
            while (_sectionWidth < _liSum) {
                _sectionWidth = _sectionWidth + _gWidth;
                if (_sectionWidth > _liSum) {
                    _lastSection = _sectionWidth - _liSum;
                }
            }
        }
        if (_autoSlide) {
            _timerSlide = setTimeout(function () {
                autoSlide(_autoSlide);
            }, _autoSlide);
            _animatedBlock.hover(function () {
                clearTimeout(_timerSlide);
            }, function () {
                _timerSlide = setTimeout(function () {
                    autoSlide(_autoSlide)
                }, _autoSlide);
            });
        }

        // click button 'Next'
        jQuery(_options.btNext, _this).bind('click', function () {
            jQuery(_options.btPrev, _this).removeClass('prev-' + _options.disableClass);
            if (!_options.circleSlide) {
                if (_margin + _step > _liSum - _gWidth - _options.innerMargin) {
                    if (_margin != _liSum - _gWidth - _options.innerMargin) {
                        _margin = _liSum - _gWidth + _options.innerMargin;
                        jQuery(_options.btNext, _this).addClass('next-' + _options.disableClass);
                        _f2 = 0;
                    }
                } else {
                    _margin = _margin + _step;
                    if (_margin == _liSum - _gWidth - _options.innerMargin) {
                        jQuery(_options.btNext, _this).addClass('next-' + _options.disableClass); _f2 = 0;
                    }
                }
            } else {
                if (_margin + _step > _liSum - _gWidth + _options.innerMargin) {
                    if (_margin != _liSum - _gWidth + _options.innerMargin) {
                        _margin = _liSum - _gWidth + _options.innerMargin;
                    } else {
                        _f2 = 1;
                        _margin = -_options.innerMargin;
                    }
                } else {
                    _margin = _margin + _step;
                    _f2 = 0;
                }
            }

            _animatedBlock.animate({ marginLeft: -_margin + "px" }, { queue: false, duration: _options.duration });

            if (_timerSlide) {
                clearTimeout(_timerSlide);
                _timerSlide = setTimeout(function () {
                    autoSlide(_options.autoSlide)
                }, _options.autoSlide);
            }

            if (_options.slideNum && !_options.step) jQuery.fn.galleryScroll.numListActive(_margin, jQuery(_options.slideNum, _this), _gWidth, _lastSection);
            if (jQuery.isFunction(_options.funcOnclick)) {
                _options.funcOnclick.apply(_this);
            }
            return false;
        });
        // click button 'Prev'
        var _f2 = 1;
        jQuery(_options.btPrev, _this).bind('click', function () {
            jQuery(_options.btNext, _this).removeClass('next-' + _options.disableClass);
            if (_margin - _step >= -_step - _options.innerMargin && _margin - _step <= -_options.innerMargin) {
                if (_f2 != 1) {
                    _margin = -_options.innerMargin;
                    _f2 = 1;
                } else {
                    if (_options.circleSlide) {
                        _margin = _liSum - _gWidth + _options.innerMargin;
                        f = 1; _f2 = 0;
                    } else {
                        _margin = -_options.innerMargin
                    }
                }
            } else if (_margin - _step < -_step + _options.innerMargin) {
                _margin = _margin - _step;
                f = 0;
            }
            else { _margin = _margin - _step; f = 0; };

            if (!_options.circleSlide && _margin == _options.innerMargin) {
                jQuery(this).addClass('prev-' + _options.disableClass);
                _f2 = 0;
            }

            if (!_options.circleSlide && _margin == -_options.innerMargin) jQuery(this).addClass('prev-' + _options.disableClass);
            _animatedBlock.animate({ marginLeft: -_margin + "px" }, { queue: false, duration: _options.duration });

            if (_options.slideNum && !_options.step) jQuery.fn.galleryScroll.numListActive(_margin, jQuery(_options.slideNum, _this), _gWidth, _lastSection);

            if (_timerSlide) {
                clearTimeout(_timerSlide);
                _timerSlide = setTimeout(function () {
                    autoSlide(_options.autoSlide)
                }, _options.autoSlide);
            }

            if (jQuery.isFunction(_options.funcOnclick)) {
                _options.funcOnclick.apply(_this);
            }
            return false;
        });

        if (_liSum <= _gWidth) {
            jQuery(_options.btPrev, _this).addClass('prev-' + _options.disableClass).unbind('click');
            jQuery(_options.btNext, _this).addClass('next-' + _options.disableClass).unbind('click');
        }
        // auto slide
        function autoSlide(autoSlideDuration) {
            //if (_options.circleSlide) {
            jQuery(_options.btNext, _this).trigger('click');
            //}
        };
        // Number list
        jQuery.fn.galleryScroll.numListCreate = function (_elNumList, _liSumWidth, _width, _section) {
            var _numListElC = '';
            var _num = 1;
            var _difference = _liSumWidth + _section;
            while (_difference > 0) {
                _numListElC += '<li><a href="">' + _num + '</a></li>';
                _num++;
                _difference = _difference - _width;
            }
            jQuery(_elNumList).html('<ul>' + _numListElC + '</ul>');
        };
        jQuery.fn.galleryScroll.numListActive = function (_marginEl, _slideNum, _width, _section) {
            if (_slideNum) {
                jQuery('a', _slideNum).removeClass('active');
                var _activeRange = _width - _section - 1;
                var _n = 0;
                if (_marginEl != 0) {
                    while (_marginEl > _activeRange) {
                        _activeRange = (_n * _width) - _section - 1 + _options.innerMargin;
                        _n++;
                    }
                }
                var _a = (_activeRange + _section + 1 + _options.innerMargin) / _width - 1;
                jQuery('a', _slideNum).eq(_a).addClass('active');
            }
        };
        if (_options.slideNum && !_options.step) {
            jQuery.fn.galleryScroll.numListCreate(jQuery(_options.slideNum, _this), _liSum, _gWidth, _lastSection);
            jQuery.fn.galleryScroll.numListActive(_margin, jQuery(_options.slideNum, _this), _gWidth, _lastSection);
            numClick();
        };
        function numClick() {
            jQuery(_options.slideNum, _this).find('a').click(function () {
                jQuery(_options.btPrev, _this).removeClass('prev-' + _options.disableClass);
                jQuery(_options.btNext, _this).removeClass('next-' + _options.disableClass);

                var _indexNum = jQuery(_options.slideNum, _this).find('a').index(jQuery(this));
                _margin = (_step * _indexNum) - _options.innerMargin;
                f = 0; _f2 = 0;
                if (_indexNum == 0) _f2 = 1;
                if (_margin + _step > _liSum) {
                    _margin = _margin - (_margin - _liSum) - _step + _options.innerMargin;
                    if (!_options.circleSlide) jQuery(_options.btNext, _this).addClass('next-' + _options.disableClass);
                }
                _animatedBlock.animate({ marginLeft: -_margin + "px" }, { queue: false, duration: _options.duration });

                if (!_options.circleSlide && _margin == 0) jQuery(_options.btPrev, _this).addClass('prev-' + _options.disableClass);
                jQuery.fn.galleryScroll.numListActive(_margin, jQuery(_options.slideNum, _this), _gWidth, _lastSection);

                if (_timerSlide) {
                    clearTimeout(_timerSlide);
                    _timerSlide = setTimeout(function () {
                        autoSlide(_options.autoSlide)
                    }, _options.autoSlide);
                }
                return false;
            });
        };
        jQuery(window).resize(function () {
            _gWidth = _holderBlock.width();
            _liWidth = jQuery(_options.scrollEl, _animatedBlock).outerWidth(true);
            _liSum = jQuery(_options.scrollEl, _animatedBlock).length * _liWidth;
            if (!_options.step) _step = _gWidth; else _step = _options.step * _liWidth;
            if (_options.slideNum && !_options.step) {
                var _lastSection = 0;
                var _sectionWidth = 0;
                while (_sectionWidth < _liSum) {
                    _sectionWidth = _sectionWidth + _gWidth;
                    if (_sectionWidth > _liSum) {
                        _lastSection = _sectionWidth - _liSum;
                    }
                };
                jQuery.fn.galleryScroll.numListCreate(jQuery(_options.slideNum, _this), _liSum, _gWidth, _lastSection);
                jQuery.fn.galleryScroll.numListActive(_margin, jQuery(_options.slideNum, _this), _gWidth, _lastSection);
                numClick();
            };
            //if (_margin == _options.innerMargin) jQuery(this).addClass(_options.disableClass);
            if (_liSum - _gWidth < _margin - _options.innerMargin) {
                if (!_options.circleSlide) jQuery(_options.btNext, _this).addClass('next-' + _options.disableClass);
                _animatedBlock.animate({ marginLeft: -(_liSum - _gWidth + _options.innerMargin) }, { queue: false, duration: _options.duration });
            };
        });
    });
}


/* hover for IE */
function hoverForIE6(_list, _class) {
    var _hoverClass = 'hover';
    if (_class) _hoverClass = _class;
    if ($.browser.msie && $.browser.version < 7) {
        $(_list).hover(function () {
            $(this).addClass(_hoverClass);
            if ($(this).has('ul')) {
                hideSelectBoxes($(this).find('ul').get(0));
            }
        }, function () {
            $(this).removeClass(_hoverClass);
            if ($(this).has('ul')) {
                showSelectBoxes($(this).find('ul').get(0));
            }
        });
    }
}

/* clear inputs */
function clearInputs() {
    $(':text, :password, textarea').each(function () {
        var defaultValue = $(this).val();
        $(this).focus(function () {
            if ($(this).val() == defaultValue) $(this).val('');
        });
        $(this).blur(function () {
            if ($(this).val() == '') $(this).val(defaultValue);
        });
    });
};

function doScroll(selector, isRight, scrollSize) {

    var itemCount = $(selector).children("li").length;
    var maxMargin = -1 * itemCount * scrollSize; // Multiply by negative 1 because we are moving to the left by applying a negative margin

    var scrollAmount = scrollSize * (isRight ? 1 : -1);
    var oldMargin = $(selector).css('margin-left').replace('px', '');
    var newMargin = (oldMargin - scrollAmount);

    if (newMargin > 0 || newMargin <= maxMargin) {
        return; // Don't animate further
    }

    newMargin += 'px';

    $(selector).animate({
        marginLeft: newMargin
    }, 300);
}

