 /*
 * FancyBox - jQuery Plugin
 * Simple and fancy lightbox alternative
 *
 * Examples and documentation at: http://fancybox.net
 * 
 * Copyright (c) 2008 - 2010 Janis Skarnelis
 * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
 * 
 * Version: 1.3.4 (11/11/2010)
 * Requires: jQuery v1.3+
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */

;
(function(b) {
    var m, t, u, f, D, j, E, n, z, A, q = 0, e = {}, o = [], p = 0, d = {}, l = [], G = null, v = new Image, J = /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i, W = /[^\.]\.(swf)\s*$/i, K, L = 1, y = 0, s = "", r, i, h = false, B = b.extend(b("<div/>")[0], {prop: 0}), M = b.browser.msie && b.browser.version < 7 && !window.XMLHttpRequest, N = function() {
        t.hide();
        v.onerror = v.onload = null;
        G && G.abort();
        m.empty()
    }, O = function() {
        if (false === e.onError(o, q, e)) {
            t.hide();
            h = false
        } else {
            e.titleShow = false;
            e.width = "auto";
            e.height = "auto";
            m.html('<p id="fancybox-error">The requested content cannot be loaded.<br />Please try again later.</p>');
            F()
        }
    }, I = function() {
        var a = o[q], c, g, k, C, P, w;
        N();
        e = b.extend({}, b.fn.fancybox.defaults, typeof b(a).data("fancybox") == "undefined" ? e : b(a).data("fancybox"));
        w = e.onStart(o, q, e);
        if (w === false)
            h = false;
        else {
            if (typeof w == "object")
                e = b.extend(e, w);
            k = e.title || (a.nodeName ? b(a).attr("title") : a.title) || "";
            if (a.nodeName && !e.orig)
                e.orig = b(a).children("img:first").length ? b(a).children("img:first") : b(a);
            if (k === "" && e.orig && e.titleFromAlt)
                k = e.orig.attr("alt");
            c = e.href || (a.nodeName ? b(a).attr("href") : a.href) || null;
            if (/^(?:javascript)/i.test(c) || 
            c == "#")
                c = null;
            if (e.type) {
                g = e.type;
                if (!c)
                    c = e.content
            } else if (e.content)
                g = "html";
            else if (c)
                g = c.match(J) ? "image" : c.match(W) ? "swf" : b(a).hasClass("iframe") ? "iframe" : c.indexOf("#") === 0 ? "inline" : "ajax";
            if (g) {
                if (g == "inline") {
                    a = c.substr(c.indexOf("#"));
                    g = b(a).length > 0 ? "inline" : "ajax"
                }
                e.type = g;
                e.href = c;
                e.title = k;
                if (e.autoDimensions)
                    if (e.type == "html" || e.type == "inline" || e.type == "ajax") {
                        e.width = "auto";
                        e.height = "auto"
                    } else
                        e.autoDimensions = false;
                if (e.modal) {
                    e.overlayShow = true;
                    e.hideOnOverlayClick = false;
                    e.hideOnContentClick = 
                    false;
                    e.enableEscapeButton = false;
                    e.showCloseButton = false
                }
                e.padding = parseInt(e.padding, 10);
                e.margin = parseInt(e.margin, 10);
                m.css("padding", e.padding + e.margin);
                b(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change", function() {
                    b(this).replaceWith(j.children())
                });
                switch (g) {
                    case "html":
                        m.html(e.content);
                        F();
                        break;
                    case "inline":
                        if (b(a).parent().is("#fancybox-content") === true) {
                            h = false;
                            break
                        }
                        b('<div class="fancybox-inline-tmp" />').hide().insertBefore(b(a)).bind("fancybox-cleanup", function() {
                            b(this).replaceWith(j.children())
                        }).bind("fancybox-cancel", 
                        function() {
                            b(this).replaceWith(m.children())
                        });
                        b(a).appendTo(m);
                        F();
                        break;
                    case "image":
                        h = false;
                        b.fancybox.showActivity();
                        v = new Image;
                        v.onerror = function() {
                            O()
                        };
                        v.onload = function() {
                            h = true;
                            v.onerror = v.onload = null;
                            e.width = v.width;
                            e.height = v.height;
                            b("<img />").attr({id: "fancybox-img",src: v.src,alt: e.title}).appendTo(m);
                            Q()
                        };
                        v.src = c;
                        break;
                    case "swf":
                        e.scrolling = "no";
                        C = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + e.width + '" height="' + e.height + '"><param name="movie" value="' + c + 
                        '"></param>';
                        P = "";
                        b.each(e.swf, function(x, H) {
                            C += '<param name="' + x + '" value="' + H + '"></param>';
                            P += " " + x + '="' + H + '"'
                        });
                        C += '<embed src="' + c + '" type="application/x-shockwave-flash" width="' + e.width + '" height="' + e.height + '"' + P + "></embed></object>";
                        m.html(C);
                        F();
                        break;
                    case "ajax":
                        h = false;
                        b.fancybox.showActivity();
                        e.ajax.win = e.ajax.success;
                        G = b.ajax(b.extend({}, e.ajax, {url: c,data: e.ajax.data || {},error: function(x) {
                                x.status > 0 && O()
                            },success: function(x, H, R) {
                                if ((typeof R == "object" ? R : G).status == 200) {
                                    if (typeof e.ajax.win == 
                                    "function") {
                                        w = e.ajax.win(c, x, H, R);
                                        if (w === false) {
                                            t.hide();
                                            return
                                        } else if (typeof w == "string" || typeof w == "object")
                                            x = w
                                    }
                                    m.html(x);
                                    F()
                                }
                            }}));
                        break;
                    case "iframe":
                        Q()
                }
            } else
                O()
        }
    }, F = function() {
        var a = e.width, c = e.height;
        a = a.toString().indexOf("%") > -1 ? parseInt((b(window).width() - e.margin * 2) * parseFloat(a) / 100, 10) + "px" : a == "auto" ? "auto" : a + "px";
        c = c.toString().indexOf("%") > -1 ? parseInt((b(window).height() - e.margin * 2) * parseFloat(c) / 100, 10) + "px" : c == "auto" ? "auto" : c + "px";
        m.wrapInner('<div style="width:' + a + ";height:" + c + 
        ";overflow: " + (e.scrolling == "auto" ? "auto" : e.scrolling == "yes" ? "scroll" : "hidden") + ';position:relative;"></div>');
        e.width = m.width();
        e.height = m.height();
        Q()
    }, Q = function() {
        var a, c;
        t.hide();
        if (f.is(":visible") && false === d.onCleanup(l, p, d)) {
            b.event.trigger("fancybox-cancel");
            h = false
        } else {
            h = true;
            b(j.add(u)).unbind();
            b(window).unbind("resize.fb scroll.fb");
            b(document).unbind("keydown.fb");
            f.is(":visible") && d.titlePosition !== "outside" && f.css("height", f.height());
            l = o;
            p = q;
            d = e;
            if (d.overlayShow) {
                u.css({"background-color": d.overlayColor,
                    opacity: d.overlayOpacity,cursor: d.hideOnOverlayClick ? "pointer" : "auto",height: b(document).height()});
                if (!u.is(":visible")) {
                    M && b("select:not(#fancybox-tmp select)").filter(function() {
                        return this.style.visibility !== "hidden"
                    }).css({visibility: "hidden"}).one("fancybox-cleanup", function() {
                        this.style.visibility = "inherit"
                    });
                    u.show()
                }
            } else
                u.hide();
            i = X();
            s = d.title || "";
            y = 0;
            n.empty().removeAttr("style").removeClass();
            if (d.titleShow !== false) {
                if (b.isFunction(d.titleFormat))
                    a = d.titleFormat(s, l, p, d);
                else
                    a = s && s.length ? 
                    d.titlePosition == "float" ? '<table id="fancybox-title-float-wrap" cellpadding="0" cellspacing="0"><tr><td id="fancybox-title-float-left"></td><td id="fancybox-title-float-main">' + s + '</td><td id="fancybox-title-float-right"></td></tr></table>' : '<div id="fancybox-title-' + d.titlePosition + '">' + s + "</div>" : false;
                s = a;
                if (!(!s || s === "")) {
                    n.addClass("fancybox-title-" + d.titlePosition).html(s).appendTo("body").show();
                    switch (d.titlePosition) {
                        case "inside":
                            n.css({width: i.width - d.padding * 2,marginLeft: d.padding,marginRight: d.padding});
                            y = n.outerHeight(true);
                            n.appendTo(D);
                            i.height += y;
                            break;
                        case "over":
                            n.css({marginLeft: d.padding,width: i.width - d.padding * 2,bottom: d.padding}).appendTo(D);
                            break;
                        case "float":
                            n.css("left", parseInt((n.width() - i.width - 40) / 2, 10) * -1).appendTo(f);
                            break;
                        default:
                            n.css({width: i.width - d.padding * 2,paddingLeft: d.padding,paddingRight: d.padding}).appendTo(f)
                    }
                }
            }
            n.hide();
            if (f.is(":visible")) {
                b(E.add(z).add(A)).hide();
                a = f.position();
                r = {top: a.top,left: a.left,width: f.width(),height: f.height()};
                c = r.width == i.width && r.height == 
                i.height;
                j.fadeTo(d.changeFade, 0.3, function() {
                    var g = function() {
                        j.html(m.contents()).fadeTo(d.changeFade, 1, S)
                    };
                    b.event.trigger("fancybox-change");
                    j.empty().removeAttr("filter").css({"border-width": d.padding,width: i.width - d.padding * 2,height: e.autoDimensions ? "auto" : i.height - y - d.padding * 2});
                    if (c)
                        g();
                    else {
                        B.prop = 0;
                        b(B).animate({prop: 1}, {duration: d.changeSpeed,easing: d.easingChange,step: T,complete: g})
                    }
                })
            } else {
                f.removeAttr("style");
                j.css("border-width", d.padding);
                if (d.transitionIn == "elastic") {
                    r = V();
                    j.html(m.contents());
                    f.show();
                    if (d.opacity)
                        i.opacity = 0;
                    B.prop = 0;
                    b(B).animate({prop: 1}, {duration: d.speedIn,easing: d.easingIn,step: T,complete: S})
                } else {
                    d.titlePosition == "inside" && y > 0 && n.show();
                    j.css({width: i.width - d.padding * 2,height: e.autoDimensions ? "auto" : i.height - y - d.padding * 2}).html(m.contents());
                    f.css(i).fadeIn(d.transitionIn == "none" ? 0 : d.speedIn, S)
                }
            }
        }
    }, Y = function() {
        if (d.enableEscapeButton || d.enableKeyboardNav)
            b(document).bind("keydown.fb", function(a) {
                if (a.keyCode == 27 && d.enableEscapeButton) {
                    a.preventDefault();
                    b.fancybox.close()
                } else if ((a.keyCode == 
                37 || a.keyCode == 39) && d.enableKeyboardNav && a.target.tagName !== "INPUT" && a.target.tagName !== "TEXTAREA" && a.target.tagName !== "SELECT") {
                    a.preventDefault();
                    b.fancybox[a.keyCode == 37 ? "prev" : "next"]()
                }
            });
        if (d.showNavArrows) {
            if (d.cyclic && l.length > 1 || p !== 0)
                z.show();
            if (d.cyclic && l.length > 1 || p != l.length - 1)
                A.show()
        } else {
            z.hide();
            A.hide()
        }
    }, S = function() {
        if (!b.support.opacity) {
            j.get(0).style.removeAttribute("filter");
            f.get(0).style.removeAttribute("filter")
        }
        e.autoDimensions && j.css("height", "auto");
        f.css("height", "auto");
        s && s.length && n.show();
        d.showCloseButton && E.show();
        Y();
        d.hideOnContentClick && j.bind("click", b.fancybox.close);
        d.hideOnOverlayClick && u.bind("click", b.fancybox.close);
        b(window).bind("resize.fb", b.fancybox.resize);
        d.centerOnScroll && b(window).bind("scroll.fb", b.fancybox.center);
        if (d.type == "iframe")
            b('<iframe id="fancybox-frame" name="fancybox-frame' + (new Date).getTime() + '" frameborder="0" hspace="0" ' + (b.browser.msie ? 'allowtransparency="true""' : "") + ' scrolling="' + e.scrolling + '" src="' + d.href + '"></iframe>').appendTo(j);
        f.show();
        h = false;
        b.fancybox.center();
        d.onComplete(l, p, d);
        var a, c;
        if (l.length - 1 > p) {
            a = l[p + 1].href;
            if (typeof a !== "undefined" && a.match(J)) {
                c = new Image;
                c.src = a
            }
        }
        if (p > 0) {
            a = l[p - 1].href;
            if (typeof a !== "undefined" && a.match(J)) {
                c = new Image;
                c.src = a
            }
        }
    }, T = function(a) {
        var c = {width: parseInt(r.width + (i.width - r.width) * a, 10),height: parseInt(r.height + (i.height - r.height) * a, 10),top: parseInt(r.top + (i.top - r.top) * a, 10),left: parseInt(r.left + (i.left - r.left) * a, 10)};
        if (typeof i.opacity !== "undefined")
            c.opacity = a < 0.5 ? 0.5 : a;
        f.css(c);
        j.css({width: c.width - d.padding * 2,height: c.height - y * a - d.padding * 2})
    }, U = function() {
        return [b(window).width() - d.margin * 2, b(window).height() - d.margin * 2, b(document).scrollLeft() + d.margin, b(document).scrollTop() + d.margin]
    }, X = function() {
        var a = U(), c = {}, g = d.autoScale, k = d.padding * 2;
        c.width = d.width.toString().indexOf("%") > -1 ? parseInt(a[0] * parseFloat(d.width) / 100, 10) : d.width + k;
        c.height = d.height.toString().indexOf("%") > -1 ? parseInt(a[1] * parseFloat(d.height) / 100, 10) : d.height + k;
        if (g && (c.width > a[0] || c.height > a[1]))
            if (e.type == 
            "image" || e.type == "swf") {
                g = d.width / d.height;
                if (c.width > a[0]) {
                    c.width = a[0];
                    c.height = parseInt((c.width - k) / g + k, 10)
                }
                if (c.height > a[1]) {
                    c.height = a[1];
                    c.width = parseInt((c.height - k) * g + k, 10)
                }
            } else {
                c.width = Math.min(c.width, a[0]);
                c.height = Math.min(c.height, a[1])
            }
        c.top = parseInt(Math.max(a[3] - 20, a[3] + (a[1] - c.height - 40) * 0.5), 10);
        c.left = parseInt(Math.max(a[2] - 20, a[2] + (a[0] - c.width - 40) * 0.5), 10);
        return c
    }, V = function() {
        var a = e.orig ? b(e.orig) : false, c = {};
        if (a && a.length) {
            c = a.offset();
            c.top += parseInt(a.css("paddingTop"), 
            10) || 0;
            c.left += parseInt(a.css("paddingLeft"), 10) || 0;
            c.top += parseInt(a.css("border-top-width"), 10) || 0;
            c.left += parseInt(a.css("border-left-width"), 10) || 0;
            c.width = a.width();
            c.height = a.height();
            c = {width: c.width + d.padding * 2,height: c.height + d.padding * 2,top: c.top - d.padding - 20,left: c.left - d.padding - 20}
        } else {
            a = U();
            c = {width: d.padding * 2,height: d.padding * 2,top: parseInt(a[3] + a[1] * 0.5, 10),left: parseInt(a[2] + a[0] * 0.5, 10)}
        }
        return c
    }, Z = function() {
        if (t.is(":visible")) {
            b("div", t).css("top", L * -40 + "px");
            L = (L + 1) % 12
        } else
            clearInterval(K)
    };
    b.fn.fancybox = function(a) {
        if (!b(this).length)
            return this;
        b(this).data("fancybox", b.extend({}, a, b.metadata ? b(this).metadata() : {})).unbind("click.fb").bind("click.fb", function(c) {
            c.preventDefault();
            if (!h) {
                h = true;
                b(this).blur();
                o = [];
                q = 0;
                c = b(this).attr("rel") || "";
                if (!c || c == "" || c === "nofollow")
                    o.push(this);
                else {
                    o = b("a[rel=" + c + "], area[rel=" + c + "]");
                    q = o.index(this)
                }
                I()
            }
        });
        return this
    };
    b.fancybox = function(a, c) {
        var g;
        if (!h) {
            h = true;
            g = typeof c !== "undefined" ? c : {};
            o = [];
            q = parseInt(g.index, 10) || 0;
            if (b.isArray(a)) {
                for (var k = 
                0, C = a.length; k < C; k++)
                    if (typeof a[k] == "object")
                        b(a[k]).data("fancybox", b.extend({}, g, a[k]));
                    else
                        a[k] = b({}).data("fancybox", b.extend({content: a[k]}, g));
                o = jQuery.merge(o, a)
            } else {
                if (typeof a == "object")
                    b(a).data("fancybox", b.extend({}, g, a));
                else
                    a = b({}).data("fancybox", b.extend({content: a}, g));
                o.push(a)
            }
            if (q > o.length || q < 0)
                q = 0;
            I()
        }
    };
    b.fancybox.showActivity = function() {
        clearInterval(K);
        t.show();
        K = setInterval(Z, 66)
    };
    b.fancybox.hideActivity = function() {
        t.hide()
    };
    b.fancybox.next = function() {
        return b.fancybox.pos(p + 
        1)
    };
    b.fancybox.prev = function() {
        return b.fancybox.pos(p - 1)
    };
    b.fancybox.pos = function(a) {
        if (!h) {
            a = parseInt(a);
            o = l;
            if (a > -1 && a < l.length) {
                q = a;
                I()
            } else if (d.cyclic && l.length > 1) {
                q = a >= l.length ? 0 : l.length - 1;
                I()
            }
        }
    };
    b.fancybox.cancel = function() {
        if (!h) {
            h = true;
            b.event.trigger("fancybox-cancel");
            N();
            e.onCancel(o, q, e);
            h = false
        }
    };
    b.fancybox.close = function() {
        function a() {
            u.fadeOut("fast");
            n.empty().hide();
            f.hide();
            b.event.trigger("fancybox-cleanup");
            j.empty();
            d.onClosed(l, p, d);
            l = e = [];
            p = q = 0;
            d = e = {};
            h = false
        }
        if (!(h || f.is(":hidden"))) {
            h = 
            true;
            if (d && false === d.onCleanup(l, p, d))
                h = false;
            else {
                N();
                b(E.add(z).add(A)).hide();
                b(j.add(u)).unbind();
                b(window).unbind("resize.fb scroll.fb");
                b(document).unbind("keydown.fb");
                j.find("iframe").attr("src", M && /^https/i.test(window.location.href || "") ? "javascript:void(false)" : "about:blank");
                d.titlePosition !== "inside" && n.empty();
                f.stop();
                if (d.transitionOut == "elastic") {
                    r = V();
                    var c = f.position();
                    i = {top: c.top,left: c.left,width: f.width(),height: f.height()};
                    if (d.opacity)
                        i.opacity = 1;
                    n.empty().hide();
                    B.prop = 1;
                    b(B).animate({prop: 0}, {duration: d.speedOut,easing: d.easingOut,step: T,complete: a})
                } else
                    f.fadeOut(d.transitionOut == "none" ? 0 : d.speedOut, a)
            }
        }
    };
    b.fancybox.resize = function() {
        u.is(":visible") && u.css("height", b(document).height());
        b.fancybox.center(true)
    };
    b.fancybox.center = function(a) {
        var c, g;
        if (!h) {
            g = a === true ? 1 : 0;
            c = U();
            !g && (f.width() > c[0] || f.height() > c[1]) || f.stop().animate({top: parseInt(Math.max(c[3] - 20, c[3] + (c[1] - j.height() - 40) * 0.5 - d.padding)),left: parseInt(Math.max(c[2] - 20, c[2] + (c[0] - j.width() - 40) * 0.5 - 
                d.padding))}, typeof a == "number" ? a : 200)
        }
    };
    b.fancybox.init = function() {
        if (!b("#fancybox-wrap").length) {
            b("body").append(m = b('<div id="fancybox-tmp"></div>'), t = b('<div id="fancybox-loading"><div></div></div>'), u = b('<div id="fancybox-overlay"></div>'), f = b('<div id="fancybox-wrap"></div>'));
            D = b('<div id="fancybox-outer"></div>').append('<div class="fancybox-bg" id="fancybox-bg-n"></div><div class="fancybox-bg" id="fancybox-bg-ne"></div><div class="fancybox-bg" id="fancybox-bg-e"></div><div class="fancybox-bg" id="fancybox-bg-se"></div><div class="fancybox-bg" id="fancybox-bg-s"></div><div class="fancybox-bg" id="fancybox-bg-sw"></div><div class="fancybox-bg" id="fancybox-bg-w"></div><div class="fancybox-bg" id="fancybox-bg-nw"></div>').appendTo(f);
            D.append(j = b('<div id="fancybox-content"></div>'), E = b('<a id="fancybox-close"></a>'), n = b('<div id="fancybox-title"></div>'), z = b('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'), A = b('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>'));
            E.click(b.fancybox.close);
            t.click(b.fancybox.cancel);
            z.click(function(a) {
                a.preventDefault();
                b.fancybox.prev()
            });
            A.click(function(a) {
                a.preventDefault();
                b.fancybox.next()
            });
            b.fn.mousewheel && f.bind("mousewheel.fb", function(a, c) {
                if (h)
                    a.preventDefault();
                else if (b(a.target).get(0).clientHeight == 0 || b(a.target).get(0).scrollHeight === b(a.target).get(0).clientHeight) {
                    a.preventDefault();
                    b.fancybox[c > 0 ? "prev" : "next"]()
                }
            });
            b.support.opacity || f.addClass("fancybox-ie");
            if (M) {
                t.addClass("fancybox-ie6");
                f.addClass("fancybox-ie6");
                b('<iframe id="fancybox-hide-sel-frame" src="' + (/^https/i.test(window.location.href || "") ? "javascript:void(false)" : "about:blank") + '" scrolling="no" border="0" frameborder="0" tabindex="-1"></iframe>').prependTo(D)
            }
        }
    };
    b.fn.fancybox.defaults = {padding: 10,margin: 40,opacity: false,modal: false,cyclic: false,scrolling: "auto",width: 560,height: 340,autoScale: true,autoDimensions: true,centerOnScroll: false,ajax: {},swf: {wmode: "transparent"},hideOnOverlayClick: true,hideOnContentClick: false,overlayShow: true,overlayOpacity: 0.7,overlayColor: "#777",titleShow: true,titlePosition: "float",titleFormat: null,titleFromAlt: false,transitionIn: "fade",transitionOut: "fade",speedIn: 300,speedOut: 300,changeSpeed: 300,changeFade: "fast",easingIn: "swing",
        easingOut: "swing",showCloseButton: true,showNavArrows: true,enableEscapeButton: true,enableKeyboardNav: true,onStart: function() {
        },onCancel: function() {
        },onComplete: function() {
        },onCleanup: function() {
        },onClosed: function() {
        },onError: function() {
        }};
    b(document).ready(function() {
        b.fancybox.init()
    })
})(jQuery);



