/*
 * jQuery.ImageSwitch
 * Version: 1.0.2
 * http://www.hieu.co.uk/ImageSwitch/
 *
 * Copyright (c) 2009 Hieu Pham - http://www.hieu.co.uk
 * COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)
 * http://www.opensource.org/licenses/cddl1.php
 *
 * Date: 13/03/2009
 * Revision: 50
 */
var Debug = function(b, a) {
    if (!$("#Debug")) { $("body").append("<div id='Debug'></div>") }
    if (a) { $("#Debug").html($("#Debug").html() + "<br/>" + b) }
    else { $("#Debug").html($("#Debug").html() + b) } 
};
(function(a) {
    a.fn.ImageSwitch = function(l, d) {
    var f = { Type: "FadeIn", NewImage: "", EffectOriginal: true, Speed: 1500, StartLeft: 50, StartTop: 0, StartOpacity: 0, EndLeft: -50, EndTop: 0, EndOpacity: 0, Direction: "RightLeft", Door1: "", Door2: "" }; var q = a.extend(f, l); var i = this; var h = 0; var k; var p; var o; var j = function()
        { i.data("imageswitch", -1) }; if (a.isFunction(d)) { j = function() { d(); a.data(this, "imageswitch", -1) } }
        var c = function() { i.parent().append("<img class='GrpEffectImg' id='" + k.replace("#", "") + "'/>"); a(k).attr("src", i.attr("src")); a(k).css("position", "absolute"); a(k).css("top", i.position().top); a(k).css("left", i.position().left); a(k).css("opacity", 1); i.attr("src", q.NewImage); if (q.EffectOriginal) { i.css("opacity", q.StartOpacity); i.animate({ opacity: 1 }, q.Speed) } a(k).animate({ opacity: 0 }, q.Speed, function() { a(k).remove(); j() }) };
        var g = function(r) {
            a("body").append("<img class='GrpEffectImg' id='" + k.replace("#", "") + "'/>"); a(k).css("position", "absolute");
            if (r) {
                a(k).attr("src", q.NewImage); a(k).css("top", i.offset().top + q.StartTop); a(k).css("left", i.offset().left + q.StartLeft); a(k).css("opacity", q.StartOpacity);
                EndTop = i.offset().top; EndLeft = i.offset().left; EndOpacity = 1
            } else {
                a(k).attr("src", i.attr("src")); i.attr("src", q.NewImage); a(k).css("top", i.offset().top); a(k).css("left", i.offset().left);
                a(k).css("opacity", 1); EndTop = i.offset().top + q.EndTop;
                EndLeft = i.offset().left + q.EndLeft; EndOpacity = q.EndOpacity
            } a(k).animate({ opacity: EndOpacity, top: EndTop, left: EndLeft }, q.Speed, function() {
                i.attr("src", q.NewImage);
                a(k).remove(); j()
            })
        }; var b = function(u) {
            var t = i.clone(true); i.wrap("<div id='GrpViewport-" + h + "'></div>"); a("#GrpViewport-" + h).css("overflow", "hidden");
            a("#GrpViewport-" + h).width(i.width()); a("#GrpViewport-" + h).height(i.height()); a("#GrpViewport-" + h).append("<img class='GrpEffectImg' id='" + k.replace("#", "") + "'/>"); a(k).css("position", "absolute");
            var r = 0; var s = 0; switch (q.Direction) { case "RightLeft": s = -i.width(); break; case "LeftRight": s = i.width(); break; case "TopDown": r = -i.height(); break; case "DownTop": r = i.height(); break }
            if (u) { a(k).attr("src", q.NewImage); a(k).css("top", r); a(k).css("left", s); a(k).css("opacity", q.StartOpacity); EndTop = 0; EndLeft = 0; EndOpacity = 1 } else {
                a(k).attr("src", i.attr("src"));
                a(k).css("left", 0); a(k).css("top", 0); i.attr("src", q.NewImage); EndTop = r; EndLeft = s; EndOpacity = q.EndOpacity
            } if (i.css("position") != "absolute")
            { a("#GrpViewport-" + h).css("position", "relative"); i.css("position", "absolute") } else
            { a("#GrpViewport-" + h).css("position", "absolute"); a("#GrpViewport-" + h).css("left", i.css("left")); a("#GrpViewport-" + h).css("top", i.css("top")); i.css("top", 0); i.css("left", 0) }
            if (q.EffectOriginal && u) { i.animate({ top: -r, left: -s }, q.Speed) } a(k).animate({ opacity: EndOpacity, top: EndTop, left: EndLeft }, q.Speed,
        function() { t.attr("src", q.NewImage); t.removeAttr("imageswitch"); a("#GrpViewport-" + h).replaceWith(t); j() })};
            var n = function() {
                var t = i.clone(true); i.wrap("<div id='GrpViewport'></div>"); a("#GrpViewport").css("overflow", "hidden");
                a("#GrpViewport").width(i.width()); a("#GrpViewport").height(i.height()); a("#GrpViewport").append("<div class='GrpEffectDiv' id='" + p.replace("#", "") + "'/>");
                a(p).attr("src", q.NewImage); a(p).css("position", "absolute"); a(p).css("background-color", "#FFF");
                if (q.Door1.length > 0) { a(p).css("background", q.Door1) } a(p).width(i.width()); a(p).height(i.height());
                var r = 0; var s = 0; switch (q.Direction) {
                    case "RightLeft": s = -i.width(); break; case "LeftRight": s = i.width(); break;
                    case "TopDown": r = -i.height(); break; case "DownTop": r = i.height(); break
                } a(p).css("top", r); a(p).css("left", s);
                if (i.css("position") != "absolute") { a("#GrpViewport").css("position", "relative"); i.css("position", "absolute") } else {
                    a("#GrpViewport").css("position", "absolute");
                    a("#GrpViewport").css("left", i.css("left")); a("#GrpViewport").css("top", i.css("top")); i.css("top", 0);
                    i.css("left", 0)
                } a(p).animate({ top: 0, left: 0 }, q.Speed, function() {
                    i.attr("src", q.NewImage); a(p).animate({ top: r, left: s }, q.Speed, function() {
                        t.attr("src", q.NewImage);
                        t.removeAttr("imageswitch"); a("#GrpViewport").replaceWith(t); j()
                    })
                })
            };
            var e = function() {
                var v = i.css("position"); var r = i.css("left"); var u = i.css("top"); i.wrap("<div id='GrpViewport'></div>");
                a("#GrpViewport").css("overflow", "hidden"); a("#GrpViewport").width(i.width()); a("#GrpViewport").height(i.height());
                a("#GrpViewport").append("<div class='GrpEffectDiv' id='" + p.replace("#", "") + "'/>"); a(p).css("position", "absolute");
                a(p).css("background-color", "#FFF"); if (q.Door1.length > 0) { a(p).css("background", q.Door1) } a(p).width(i.width());
                a(p).height(i.height()); a("#GrpViewport").append("<div class='GrpEffectDiv1' id='" + o.replace("#", "") + "'/>");
                a(o).css("position", "absolute"); a(o).css("background-color", "#FFF");
                if (q.Door2.length > 0) { a(o).css("background", q.Door2) } a(o).width(i.width());
                a(o).height(i.height()); var s = 0; var t = 0; switch (q.Direction) {
                    case "RightLeft": t = -i.width();
                        break; case "LeftRight": t = i.width(); break; case "TopDown": s = -i.height(); break;
                    case "DownTop": s = i.height(); break
                } a(p).css("top", s); a(p).css("left", t); a(o).css("top", -s); a(o).css("left", -t);
                if (!q.EffectOriginal) {
                    a(p).css("background", "#FFF url(" + q.NewImage + ") no-repeat " + -t / 2 + "px " + -s / 2 + "px");
                    a(o).css("background", "#FFF url(" + q.NewImage + ") no-repeat " + t / 2 + "px " + s / 2 + "px")
                } if (i.css("position") != "absolute") {
                    a("#GrpViewport").css("position", "relative");
                    i.css("position", "absolute")
                } else {
                    a("#GrpViewport").css("position", "absolute"); a("#GrpViewport").css("left", r);
                    a("#GrpViewport").css("top", u); i.css("position", "absolute"); i.css("top", 0); i.css("left", 0)
                } a(p).animate({ top: s / 2, left: t / 2 },
        q.Speed, function() {
            i.attr("src", q.NewImage); if (!q.EffectOriginal) {
                i.css("position", v); i.css("top", u); i.css("left", r);
                a("#GrpViewport").replaceWith(i)
            } else {
                a(p).animate({ top: s, left: t }, q.Speed, function() {
                    i.css("position", v); i.css("top", u);
                    i.css("left", r); a("#GrpViewport").replaceWith(i)
                })
            } 
        });
        a(o).animate({ top: -s / 2, left: -t / 2 }, q.Speed, function() {
            i.attr("src", q.NewImage);
            if (!q.EffectOriginal) { j() } else { a(o).animate({ top: -s, left: -t }, q.Speed, function() { j() }) } 
        })
    };
    var m = function(s) {
        var r = i.clone(true); if (i.css("z-index") == "auto") { i.css("z-index", 100) } if (i.css("position") != "absolute")
        { i.css("position", "relative") } a("body").append("<img class='GrpEffectImg'  id='" + k.replace("#", "") + "'/>");
        a(k).css("position", "absolute");
        a(k).css("top", i.offset().top); a(k).css("left", i.offset().left); if (s) {
            a(k).css("opacity", q.StartOpacity);
            a(k).css("z-index", i.css("z-index") - 1); a(k).attr("src", q.NewImage)
        } else {
            a(k).css("opacity", 1);
            a(k).css("z-index", i.css("z-index") + 1); a(k).attr("src", i.attr("src"));
            i.attr("src", q.NewImage)
        } if (Math.abs(q.EndTop) < i.height() && Math.abs(q.EndLeft) < i.width()) { EndTop = i.offset().top; EndLeft = i.offset().left + i.width() }
        else { EndTop = i.offset().top + q.EndTop; EndLeft = i.offset().left + q.EndLeft } EndOpacity = 1;
        a(k).animate({ opacity: EndOpacity, top: EndTop, left: EndLeft }, q.Speed, function() {
            if (s) { a(k).css("z-index", 101) }
            else { EndOpacity = q.EndOpacity; a(k).css("z-index", 2) } a(k).animate({ opacity: EndOpacity, top: i.offset().top, left: i.offset().left },
        q.Speed, function() { r.attr("src", q.NewImage); r.removeAttr("imageswitch"); i.replaceWith(r); a(k).remove(); j() })
        })
    };
    return this.each(function() {
        i = a(this);
        if (!i.ImageAnimating()) {
            h = a.data(i); i.data("imageswitch", h); k = "#GrpEffectImg-" + h; p = "#GrpEffectDiv1-" + h; o = "#GrpEffectDiv2-" + h;
            var r = new Image(); r.src = q.NewImage; a.ImagePreload(q.NewImage, function() {
                switch (q.Type) {
                    case "FadeIn": c(); break;
                    case "FlyIn": g(true); break; case "FlyOut": g(false); break; case "FlipIn": m(true); break; case "FlipOut": m(false); break;
                    case "ScrollIn": b(true); break; case "ScrollOut": b(false); break; case "SingleDoor": n(); break; case "DoubleDoor": e(); break
                } 
            }
        )
        } 
    })
} 
})(jQuery);
(function(a) {
    a.fn.ImageAnimating = function()
    { if (this.data("imageswitch") > 0) { return true } else { return false } } 
})
        (jQuery); (function(a) {
            a.fn.ImageStop = function(c, b, d) {
                return this.each(function() {
                    if (a(this).ImageAnimating()) {
                        var e = a.data(this, "imageswitch"); a("#GrpEffectImg-" + e).stop(c, b); a("#GrpEffectDiv-" + e).stop(c, b);
                        a("#GrpEffectDiv1-" + e).stop(c, b); a(this).stop(c, b); a("#GrpEffectImg-" + e).remove(); a("#GrpEffectDiv-" + e).remove();
                        a("#GrpEffectDiv1-" + e).remove(); if (a.isFunction(d)) { d() } 
                    } 
                })
            } 
        })(jQuery); (function(a) {
            a.ImageStopAll = function(c, b, d) {
                a(".GrpEffectImg").stop(c, b); a(".GrpEffectDiv").stop(c, b); a(".GrpEffectDiv1").stop(c, b); a(this).stop(c, b); a(".GrpEffectImg").remove(); a(".GrpEffectDiv").remove();
        a(".GrpEffectDiv1").remove();a.data(this,"imageswitch",-1);if(a.isFunction(d)){d()}}})(jQuery);(function(a){a.ImagePreload=function(b,d){var c=new Image();c.src=b;if(a.isFunction(d)){a(c).load(d())}}})(jQuery);
