var Shadowbox = function ()
{
    var ua = navigator.userAgent.toLowerCase(), S = 
    {
        version : "3.0b", adapter : null, current :- 1, gallery : [], cache : [], content : null, dimensions : null, 
        plugins : null, path : "", options : 
        {
            adapter : null, animate : true, animateFade : true, autoplayMovies : true, autoDimensions : false, 
            continuous : false, counterLimit : 10, counterType : "default", displayCounter : true, displayNav : true, 
            ease : function (x)
            {
                return 1 + Math.pow(x - 1, 3);
            },
            enableKeys : true, errors : 
            {
                fla : {
                    name : "Flash", url : "http://www.adobe.com/products/flashplayer/"
                },
                qt : {
                    name : "QuickTime", url : "http://www.apple.com/quicktime/download/"
                },
                wmp : {
                    name : "Windows Media Player", url : "http://www.microsoft.com/windows/windowsmedia/"
                },
                f4m : {
                    name : "Flip4Mac", url : "http://www.flip4mac.com/wmv_download.htm"
                }
            },
            ext : 
            {
                img : ["png", "jpg", "jpeg", "gif", "bmp"], swf : ["swf"], flv : ["flv"], qt : ["dv", 
                "mov", "moov", "movie", "mp4"], wmp : ["asf", "wm", "wmv"], qtwmp : ["avi", "mpg", "mpeg"], 
                iframe : ["asp", "aspx", "cgi", "cfm", "htm", "html", "jsp", "pl", "php", "php3", "php4", 
                "php5", "phtml", "rb", "rhtml", "shtml", "txt", "vbs"]
            },
            fadeDuration : 0.35, flashParams : {
                bgcolor : "#000000"
            },
            flashVars : {}, flashVersion : "9.0.115", handleOversize : "resize", handleUnsupported : "link", 
            initialHeight : 160, initialWidth : 320, language : "en", modal : false, onChange : null, 
            onClose : null, onFinish : null, onOpen : null, overlayColor : "#000", overlayOpacity : 0.8, 
            players : ["img"], resizeDuration : 0.35, showOverlay : true, showMovieControls : true, skipSetup : false, 
            slideshowDelay : 0, viewportPadding : 20
        },
        client : 
        {
            isIE : ua.indexOf("msie") > -1, isIE6 : ua.indexOf("msie 6") > -1, isIE7 : ua.indexOf("msie 7") > -1, 
            isGecko : ua.indexOf("gecko") > -1 && ua.indexOf("safari") ==- 1, isWebkit : ua.indexOf("applewebkit/") > -1, 
            isWindows : ua.indexOf("windows") > -1 || ua.indexOf("win32") > -1, isMac : ua.indexOf("macintosh") > -1 || ua.indexOf("mac os x") > -1, 
            isLinux : ua.indexOf("linux") > -1
        },
        regex : 
        {
            domain : /:\/\/(.*?)[:\/]/, inline : /#(.+)$/, rel : /^(light|shadow)box/i, gallery : /^(light|shadow)box\[(.*?)\]/i, 
            unsupported : /^unsupported-(\w+)/, param : /\s*([a-z_]*?)\s*=\s*(.+)\s*/
        },
        libraries : 
        {
            Prototype : "prototype", jQuery : "jquery", MooTools : "mootools", YAHOO : "yui", dojo : "dojo", 
            Ext : "ext"
        },
        applyOptions : function (opts)
        {
            if (opts) {
                default_options = apply({}, S.options);
                apply(S.options, opts)
            }
        },
        buildCacheObj : function (link, opts)
        {
            var href = link.href, obj = {
                el : link, title : link.getAttribute("title"), options : apply({},
                opts || {}), content : href
            };
            each(["player", "title", "height", "width", "gallery"], function (o)
            {
                if (typeof obj.options[o] != "undefined") {
                    obj[o] = obj.options[o];
                    delete obj.options[o]
                }
            });
            if (!obj.player) {
                obj.player = getPlayer(href)
            }
            var rel = link.getAttribute("rel");
            if (rel)
            {
                var m = rel.match(S.regex.gallery);
                if (m) {
                    obj.gallery = escape(m[2])
                }
                each(rel.split(";"), function (p)
                {
                    m = p.match(S.regex.param);
                    if (m) {
                        if (m[1] == "options") {
                            eval("apply(obj.options," + m[2] + ")")
                        }
                        else {
                            obj[m[1]] = m[2];
                        }
                    }
                })
            }
            return obj;
        },
        change : function (n)
        {
            if (!S.gallery) {
                return
            }
            if (!S.gallery[n]) {
                if (!S.options.continuous) {
                    return
                }
                else {
                    n = n < 0 ? S.gallery.length - 1 : 0;
                }
            }
            S.current = n;
            if (typeof slide_timer == "number") {
                clearTimeout(slide_timer);
                slide_timer = null;
                slide_delay = slide_start = 0
            }
            if (S.options.onChange) {
                S.options.onChange()
            }
            loadContent()
        },
        clearCache : function ()
        {
            each(S.cache, function (obj)
            {
                if (obj.el) {
                    S.lib.removeEvent(obj.el, "click", handleClick)
                }
            });
            S.cache = [];
        },
        close : function ()
        {
            if (!active) {
                return
            }
            active = false;
            listenKeys(false);
            if (S.content) {
                S.content.remove();
                S.content = null
            }
            if (typeof slide_timer == "number") {
                clearTimeout(slide_timer)
            }
            slide_timer = null;
            slide_delay = 0;
            if (S.options.onClose) {
                S.options.onClose()
            }
            S.skin.onClose();
            S.revertOptions();
            each(v_cache, function (c)
            {
                c[0].style.visibility = c[1];
            })
        },
        contentId : function ()
        {
            return content_id;
        },
        getCounter : function ()
        {
            var len = S.gallery.length;
            if (S.options.counterType == "skip")
            {
                var c = [], i = 0, end = len, limit = parseInt(S.options.counterLimit) || 0;
                if (limit < len && limit > 2)
                {
                    var h = Math.floor(limit / 2);
                    i = S.current - h;
                    if (i < 0) {
                        i += len
                    }
                    end = S.current + (limit - h);
                    if (end > len) {
                        end -= len
                    }
                }
                while (i != end) {
                    if (i == len) {
                        i = 0
                    }
                    c.push(i++);
                }
            }
            else {
                var c = (S.current + 1) + " " + S.lang.of + " " + len
            }
            return c;
        },
        getCurrent : function ()
        {
            return S.current > -1 ? S.gallery[S.current] : null;
        },
        hasNext : function ()
        {
            return S.gallery.length > 1 && (S.current != S.gallery.length - 1 || S.options.continuous);
        },
        init : function (opts)
        {
            if (initialized) {
                return
            }
            initialized = true;
            opts = opts || {};
            init_options = opts;
            if (opts) {
                apply(S.options, opts)
            }
            for (var e in S.options.ext) {
                S.regex[e] = new RegExp(".(" + S.options.ext[e].join("|") + ")s*$", "i")
            }
            var path_re = /(.+)shadowbox\.js/i, path;
            each(document.getElementsByTagName("script"), function (s)
            {
                if ((path = path_re.exec(s.src)) != null) {
                    S.path = path[1];
                    return false;
                }
            });
            if (S.options.adapter) {
                S.adapter = S.options.adapter
            }
            else
            {
                for (var lib in S.libraries) {
                    if (typeof window[lib] != "undefined") {
                        S.adapter = S.libraries[lib];
                        break
                    }
                }
                if (!S.adapter) {
                    S.adapter = "base";
                }
            }
            if (!S.lang) {
                U.include(S.path + "languages/shadowbox-" + S.options.language + ".js")
            }
            each(S.options.players, function (p)
            {
                if ((p == "swf" || p == "flv") && typeof window.swfobject == "undefined") {
                    U.include(S.path + "libraries/swfobject/swfobject.js")
                }
                if (!S[p]) {
                    U.include(S.path + "players/shadowbox-" + p + ".js")
                }
            });
            if (!S.lib) {
                U.include(S.path + "adapters/shadowbox-" + S.adapter + ".js")
            }
        },
        isActive : function ()
        {
            return active;
        },
        isPaused : function ()
        {
            return slide_timer == "paused";
        },
        load : function ()
        {
            if (S.skin.options) {
                apply(S.options, S.skin.options);
                apply(S.options, init_options)
            }
            var markup = S.skin.markup.replace(/\{(\w+)\}/g, function (m, p)
            {
                return S.lang[p];
            });
            S.lib.append(document.body, markup);
            if (S.skin.init) {
                S.skin.init()
            }
            var id;
            S.lib.addEvent(window, "resize", function ()
            {
                if (id) {
                    clearTimeout(id);
                    id = null
                }
                if (active)
                {
                    id = setTimeout(function ()
                    {
                        if (S.skin.onWindowResize) {
                            S.skin.onWindowResize()
                        }
                        var c = S.content;
                        if (c && c.onWindowResize) {
                            c.onWindowResize()
                        }
                    }, 50)
                }
            });
            if (!S.options.skipSetup) {
                S.setup()
            }
        },
        next : function ()
        {
            S.change(S.current + 1)
        },
        open : function (obj)
        {
            if (U.isLink(obj)) {
                obj = S.buildCacheObj(obj)
            }
            if (obj.constructor == Array) {
                S.gallery = obj;
                S.current = 0
            }
            else
            {
                if (!obj.gallery) {
                    S.gallery = [obj];
                    S.current = 0
                }
                else
                {
                    S.current = null;
                    S.gallery = [];
                    each(S.cache, function (c)
                    {
                        if (c.gallery && c.gallery == obj.gallery)
                        {
                            if (S.current == null && c.content == obj.content && c.title == obj.title) {
                                S.current = S.gallery.length
                            }
                            S.gallery.push(c);
                        }
                    });
                    if (S.current == null) {
                        S.gallery.unshift(obj);
                        S.current = 0;
                    }
                }
            }
            obj = S.getCurrent();
            if (obj.options) {
                S.revertOptions();
                S.applyOptions(obj.options)
            }
            var m, r, s, a, oe = S.options.errors, msg, el, i = 0;
            each(S.gallery, function (g)
            {
                r = false;
                if (g.player == "unsupported") {
                    r = true
                }
                else
                {
                    if (m = S.regex.unsupported.exec(g.player))
                    {
                        if (S.options.handleUnsupported == "link")
                        {
                            S.gallery[i].player = "html";
                            switch (m[1])
                            {
                                case "qtwmp":
                                    s = "either";
                                    a = [oe.qt.url, oe.qt.name, oe.wmp.url, oe.wmp.name];
                                    break;
                                case "qtf4m":
                                    s = "shared";
                                    a = [oe.qt.url, oe.qt.name, oe.f4m.url, oe.f4m.name];
                                    break;
                                default:
                                    s = "single";
                                    if (m[1] == "swf" || m[1] == "flv") {
                                        m[1] = "fla"
                                    }
                                    a = [oe[m[1]].url, oe[m[1]].name]
                            }
                            msg = S.lang.errors[s].replace(/\{(\d+)\}/g, function (m, n)
                            {
                                return a[n];
                            });
                            S.gallery[i].content = '<div class="sb-message">' + msg + "</div>"
                        }
                        else {
                            r = true;
                        }
                    }
                    else
                    {
                        if (g.player == "inline")
                        {
                            m = S.regex.inline.exec(g.content);
                            if (m)
                            {
                                var el = U.get(m[1]);
                                if (el) {
                                    S.gallery[i].content = el.innerHTML
                                }
                                else {
                                    throw "Cannot find element with id " + m[1]
                                }
                            }
                            else {
                                throw "Cannot find element id for inline content"
                            }
                        }
                        else
                        {
                            if (g.player == "swf" || g.player == "flv")
                            {
                                var version = g.options.flashVersion || S.options.flashVersion;
                                if (!swfobject.hasFlashPlayerVersion(version)) {
                                    g.width = 310;
                                    g.height = 177;
                                }
                            }
                        }
                    }
                }
                if (r)
                {
                    S.gallery.splice(i, 1);
                    if (i < S.current) {
                        --S.current
                    }
                    else {
                        if (i == S.current) {
                            S.current = i > 0 ? S.current - 1 : i;
                        }
                    }
                }
                else {
                    i++
                }
            });
            if (S.gallery.length)
            {
                if (!active)
                {
                    if (typeof S.options.onOpen == "function")
                    {
                        S.options.onOpen(obj)
                    }
                    v_cache = [];
                    each(["select", "object", "embed"], function (tag)
                    {
                        each(document.getElementsByTagName(tag), function (el)
                        {
                            v_cache.push([el, S.lib.getStyle(el, "visibility")]);
                            el.style.visibility = "hidden";
                        })
                    });
                    var h = S.options.autoDimensions && "height" in obj ? obj.height : S.options.initialHeight;
                    var w = S.options.autoDimensions && "width" in obj ? obj.width : S.options.initialWidth;
                    S.skin.onOpen(h, w, loadContent)
                }
                else {
                    loadContent()
                }
                active = true;
            }
        },
        pause : function ()
        {
            if (typeof slide_timer != "number") {
                return
            }
            var time = new Date().getTime();
            slide_delay = Math.max(0, slide_delay - (time - slide_start));
            if (slide_delay)
            {
                clearTimeout(slide_timer);
                slide_timer = "paused";
                if (S.skin.onPause) {
                    S.skin.onPause()
                }
            }
        },
        play : function ()
        {
            if (!S.hasNext()) {
                return
            }
            if (!slide_delay) {
                slide_delay = S.options.slideshowDelay * 1000
            }
            if (slide_delay)
            {
                slide_start = new Date().getTime();
                slide_timer = setTimeout(function ()
                {
                    slide_delay = slide_start = 0;
                    S.next()
                }, slide_delay);
                if (S.skin.onPlay) {
                    S.skin.onPlay()
                }
            }
        },
        previous : function ()
        {
            S.change(S.current - 1)
        },
        revertOptions : function ()
        {
            apply(S.options, default_options)
        },
        setDimensions : function (height, width, max_h, max_w, tb, lr, resizable)
        {
            var h = height = parseInt(height), w = width = parseInt(width), pad = parseInt(S.options.viewportPadding) || 0;
            var extra_h = 2 * pad + tb;
            if (h + extra_h >= max_h) {
                h = max_h - extra_h
            }
            var extra_w = 2 * pad + lr;
            if (w + extra_w >= max_w) {
                w = max_w - extra_w
            }
            var resize_h = height, resize_w = width, change_h = (height - h) / height, change_w = (width - w) / width, 
            oversized = (change_h > 0 || change_w > 0);
            if (resizable && oversized && S.options.handleOversize == "resize")
            {
                if (change_h > change_w) {
                    w = Math.round((width / height) * h)
                }
                else {
                    if (change_w > change_h) {
                        h = Math.round((height / width) * w);
                    }
                }
                resize_w = w;
                resize_h = h
            }
            S.dimensions = 
            {
                height : h + tb, width : w + lr, inner_h : h, inner_w : w, top : (max_h - (h + extra_h)) / 2 + pad, 
                left : (max_w - (w + extra_w)) / 2 + pad, oversized : oversized, resize_h : resize_h, 
                resize_w : resize_w
            };
            return S.dimensions;
        },
        setup : function (links, opts)
        {
            if (!links)
            {
                var links = [], rel;
                each(document.getElementsByTagName("a"), function (a)
                {
                    rel = a.getAttribute("rel");
                    if (rel && S.regex.rel.test(rel)) {
                        links.push(a)
                    }
                })
            }
            else {
                if (!links.length) {
                    links = [links];
                }
            }
            each(links, function (link)
            {
                if (typeof link.shadowboxCacheKey == "undefined") {
                    link.shadowboxCacheKey = S.cache.length;
                    S.lib.addEvent(link, "click", handleClick)
                }
                S.cache[link.shadowboxCacheKey] = S.buildCacheObj(link, opts);
            })
        }
    },
    U = S.util = 
    {
        animate : function (el, p, to, d, cb)
        {
            var from = parseFloat(S.lib.getStyle(el, p));
            if (isNaN(from)) {
                from = 0
            }
            var delta = to - from;
            if (delta == 0) {
                if (cb) {
                    cb()
                }
                return
            }
            var op = p == "opacity";
            function fn(ease)
            {
                var to = from + ease * delta;
                if (op) {
                    U.setOpacity(el, to)
                }
                else {
                    el.style[p] = to + "px";
                }
            }
            if (!d || (!op && !S.options.animate) || (op && !S.options.animateFade)) {
                fn(1);
                if (cb) {
                    cb()
                }
                return
            }
            d *= 1000;
            var begin = new Date().getTime(), end = begin + d, time, timer = setInterval(function ()
            {
                time = new Date().getTime();
                if (time >= end) {
                    clearInterval(timer);
                    fn(1);
                    if (cb) {
                        cb()
                    }
                }
                else {
                    fn(S.options.ease((time - begin) / d))
                }
            }, 10)
        },
        apply : function (o, e)
        {
            for (var p in e) {
                o[p] = e[p]
            }
            return o;
        },
        clearOpacity : function (el)
        {
            var s = el.style;
            if (window.ActiveXObject)
            {
                if (typeof s.filter == "string" && (/alpha/i).test(s.filter)) {
                    s.filter = s.filter.replace(/[\w\.]*alpha\(.*?\);?/i, "");
                }
            }
            else {
                s.opacity = "";
            }
        },
        each : function (obj, fn, scope)
        {
            for (var i = 0, len = obj.length; i < len; ++i) {
                if (fn.call(scope || obj[i], obj[i], i, obj) === false) {
                    return
                }
            }
        },
        get : function (id)
        {
            return document.getElementById(id);
        },
        include : function ()
        {
            var includes = {};
            return function (file)
            {
                if (includes[file]) {
                    return
                }
                includes[file] = true;
                document.write('<script type="text/javascript" src="' + file + '"><\/script>')
            }
        }(),
        isLink : function (obj)
        {
            if (!obj || !obj.tagName) {
                return false
            }
            var up = obj.tagName.toUpperCase();
            return up == "A" || up == "AREA";
        },
        removeChildren : function (el)
        {
            while (el.firstChild) {
                el.removeChild(el.firstChild)
            }
        },
        setOpacity : function (el, o)
        {
            var s = el.style;

            if (window.ActiveXObject)
            {
                s.zoom = 1;
                s.filter = (s.filter || "").replace(/alpha\([^\)]*\)/gi, "") + (o == 1 ? "" : " alpha(opacity=" + (o * 100) + ")")
            }
            else {
                s.opacity = o;
            }
        }
    },
    apply = U.apply, each = U.each, init_options, initialized = false, default_options = {},
    content_id = "sb-content", active = false, slide_timer, slide_start, slide_delay = 0, v_cache = [];
    if (navigator.plugins && navigator.plugins.length)
    {
        var names = [];
        each(navigator.plugins, function (p)
        {
            names.push(p.name)
        });
        names = names.join();
        var detectPlugin = function (n)
        {
            return names.indexOf(n) > -1;
        };
        var f4m = detectPlugin("Flip4Mac");
        S.plugins = 
        {
            fla : detectPlugin("Shockwave Flash"), qt : detectPlugin("QuickTime"), wmp :!f4m && detectPlugin("Windows Media"), 
            f4m : f4m
        }
    }
    else
    {
        function detectPlugin(n)
        {
            try {
                var axo = new ActiveXObject(n)
            }
            catch (e) {}
            return !!axo
        }
        S.plugins = 
        {
            fla : detectPlugin("ShockwaveFlash.ShockwaveFlash"), qt : detectPlugin("QuickTime.QuickTime"), 
            wmp : detectPlugin("wmplayer.ocx"), f4m : false
        }
    }
    function getPlayer(url)
    {
        var re = S.regex, p = S.plugins, m = url.match(re.domain), d = m && document.domain == m[1];
        if (url.indexOf("#") > -1 && d) {
            return "inline"
        }
        var q = url.indexOf("?");
        if (q > -1) {
            url = url.substring(0, q)
        }
        if (re.img.test(url)) {
            return "img"
        }
        if (re.swf.test(url)) {
            return p.fla ? "swf" : "unsupported-swf"
        }
        if (re.flv.test(url)) {
            return p.fla ? "flv" : "unsupported-flv"
        }
        if (re.qt.test(url)) {
            return p.qt ? "qt" : "unsupported-qt"
        }
        if (re.wmp.test(url))
        {
            if (p.wmp) {
                return "wmp"
            }
            if (p.f4m) {
                return "qt"
            }
            if (S.client.isMac) {
                return p.qt ? "unsupported-f4m" : "unsupported-qtf4m"
            }
            return "unsupported-wmp"
        }
        if (re.qtwmp.test(url))
        {
            if (p.qt) {
                return "qt"
            }
            if (p.wmp) {
                return "wmp"
            }
            return S.client.isMac ? "unsupported-qt" : "unsupported-qtwmp"
        }
        if (!d || re.iframe.test(url)) {
            return "iframe"
        }
        return "unsupported"
    }
    function handleClick(e)
    {
        var link;
        if (U.isLink(this)) {
            link = this
        }
        else
        {
            link = S.lib.getTarget(e);
            while (!U.isLink(link) && link.parentNode) {
                link = link.parentNode;
            }
        }
        if (link)
        {
            var key = link.shadowboxCacheKey;
            if (typeof key != "undefined" && typeof S.cache[key] != "undefined") {
                link = S.cache[key]
            }
            S.open(link);
            if (S.gallery.length) {
                S.lib.preventDefault(e)
            }
        }
    }
    function listenKeys(on)
    {
        if (!S.options.enableKeys) {
            return
        }
        S.lib[(on ? "add" : "remove") + "Event"](document, "keydown", handleKey)
    }
    function handleKey(e)
    {
        var code = S.lib.keyCode(e);
        S.lib.preventDefault(e);
        if (code == 81 || code == 88 || code == 27) {
            S.close()
        }
        else
        {
            if (code == 37) {
                S.previous()
            }
            else
            {
                if (code == 39) {
                    S.next()
                }
                else {
                    if (code == 32) {
                        S[(typeof slide_timer == "number" ? "pause" : "play")]()
                    }
                }
            }
        }
    }
    function loadContent()
    {
        var obj = S.getCurrent();
        if (!obj) {
            return
        }
        var p = obj.player == "inline" ? "html" : obj.player;
        if (typeof S[p] != "function")
        {
            throw "Unknown player: " + p
        }
        var change = false;
        if (S.content)
        {
            S.content.remove();
            change = true;
            S.revertOptions();
            if (obj.options) {
                S.applyOptions(obj.options)
            }
        }
        U.removeChildren(S.skin.bodyEl());
        S.content = new S[p](obj);
        listenKeys(false);
        S.skin.onLoad(S.content, change, function ()
        {
            if (!S.content) {
                return
            }
            if (typeof S.content.ready != "undefined")
            {
                var id = setInterval(function ()
                {
                    if (S.content) {
                        if (S.content.ready) {
                            clearInterval(id);
                            id = null;
                            S.skin.onReady(contentReady)
                        }
                    }
                    else {
                        clearInterval(id);
                        id = null;
                    }
                }, 100)
            }
            else {
                S.skin.onReady(contentReady)
            }
        });
        if (S.gallery.length > 1)
        {
            var next = S.gallery[S.current + 1] || S.gallery[0];
            if (next.player == "img") {
                var a = new Image();
                a.src = next.content
            }
            var prev = S.gallery[S.current - 1] || S.gallery[S.gallery.length - 1];
            if (prev.player == "img") {
                var b = new Image();
                b.src = prev.content;
            }
        }
    }
    function contentReady()
    {
        if (!S.content) {
            return
        }
        S.content.append(S.skin.bodyEl(), content_id, S.dimensions);
        S.skin.onFinish(finishContent)
    }
    function finishContent()
    {
        if (!S.content) {
            return
        }
        if (S.content.onLoad) {
            S.content.onLoad()
        }
        if (S.options.onFinish) {
            S.options.onFinish()
        }
        if (!S.isPaused()) {
            S.play()
        }
        listenKeys(true)
    }
    return S
}();
Shadowbox.skin = function ()
{
    var e = Shadowbox, d = e.util, o = false, k = ["sb-nav-close", "sb-nav-next", "sb-nav-play", "sb-nav-pause", 
    "sb-nav-previous"];
    function l()
    {
        d.get("sb-container").style.top = document.documentElement.scrollTop + "px"
    }
    function g(p)
    {
        var q = d.get("sb-overlay"), r = d.get("sb-container"), t = d.get("sb-wrapper");
        if (p)
        {
            if (e.client.isIE6) {
                l();
                e.lib.addEvent(window, "scroll", l)
            }
            if (e.options.showOverlay)
            {
                o = true;
                q.style.backgroundColor = e.options.overlayColor;
                d.setOpacity(q, 0);
                if (!e.options.modal) {
                    e.lib.addEvent(q, "click", e.close)
                }
                t.style.display = "none"
            }
            r.style.visibility = "visible";
            if (o)
            {
                var s = parseFloat(e.options.overlayOpacity);
                d.animate(q, "opacity", s, e.options.fadeDuration, p)
            }
            else {
                p()
            }
        }

        else
        {
            if (e.client.isIE6) {
                e.lib.removeEvent(window, "scroll", l)
            }
            e.lib.removeEvent(q, "click", e.close);
            if (o)
            {
                t.style.display = "none";
                d.animate(q, "opacity", 0, e.options.fadeDuration, function ()
                {
                    r.style.visibility = "hidden";
                    r.style.display = t.style.display = "";
                    d.clearOpacity(q)
                })
            }
            else {
                r.style.visibility = "hidden";
            }
        }
    }
    function b(r, p)
    {
        var q = d.get("sb-nav-" + r);
        if (q) {
            q.style.display = p ? "" : "none";
        }
    }
    function i(r, q)
    {
        var t = d.get("sb-loading"), v = e.getCurrent().player, u = (v == "img" || v == "html");
        if (r)
        {
            function s()
            {
                d.clearOpacity(t);
                if (q) {
                    q()
                }
            }
            d.setOpacity(t, 0);
            t.style.display = "";
            if (u) {
                d.animate(t, "opacity", 1, e.options.fadeDuration, s)
            }
            else {
                s()
            }
        }
        else
        {
            function s()
            {
                t.style.display = "none";
                d.clearOpacity(t);
                if (q) {
                    q()
                }
            }
            if (u) {
                d.animate(t, "opacity", 0, e.options.fadeDuration, s)
            }
            else {
                s()
            }
        }
    }
    function a(s)
    {
        var u = e.getCurrent();
        d.get("sb-title-inner").innerHTML = u.title || "";
        var x, r, t, y, q;
        if (e.options.displayNav)
        {
            x = true;
            var w = e.gallery.length;
            if (w > 1) {
                if (e.options.continuous) {
                    r = q = true
                }
                else {
                    r = (w - 1) > e.current;
                    q = e.current > 0;
                }
            }
            if (e.options.slideshowDelay > 0 && e.hasNext()) {
                y = !e.isPaused();
                t = !y
            }
        }
        else {
            x = r = t = y = q = false
        }
        b("close", x);
        b("next", r);
        b("play", t);
        b("pause", y);
        b("previous", q);
        var x = "";
        if (e.options.displayCounter && e.gallery.length > 1)
        {
            var v = e.getCounter();
            if (typeof v == "string") {
                x = v
            }
            else
            {
                d.each(v, function (z, p)
                {
                    x += '<a onclick="Shadowbox.change(' + p + ');"';
                    if (p == e.current) {
                        x += ' class="sb-counter-current"'
                    }
                    x += ">" + (p + 1) + "</a>"
                })
            }
        }
        d.get("sb-counter").innerHTML = x;
        s()
    }
    function h(r, q)
    {
        var w = d.get("sb-wrapper"), z = d.get("sb-title"), s = d.get("sb-info"), p = d.get("sb-title-inner"), 
        x = d.get("sb-info-inner"), y = parseInt(e.lib.getStyle(p, "height")) || 0, v = parseInt(e.lib.getStyle(x, 
        "height")) || 0;
        function u()
        {
            p.style.visibility = x.style.visibility = "hidden";
            a(q)
        }
        if (r)
        {
            d.animate(z, "height", 0, 0.35);
            d.animate(s, "height", 0, 0.35);
            d.animate(w, "paddingTop", y, 0.35);
            d.animate(w, "paddingBottom", v, 0.35, u)
        }
        else
        {
            z.style.height = s.style.height = "0px";
            w.style.paddingTop = y + "px";
            w.style.paddingBottom = v + "px";
            u()
        }
    }
    function j(r)
    {
        var q = d.get("sb-wrapper"), u = d.get("sb-title"), s = d.get("sb-info"), x = d.get("sb-title-inner"), 
        w = d.get("sb-info-inner"), v = parseInt(e.lib.getStyle(x, "height")) || 0, p = parseInt(e.lib.getStyle(w, 
        "height")) || 0;
        x.style.visibility = w.style.visibility = "";
        if (x.innerHTML != "") {
            d.animate(u, "height", v, 0.35);
            d.animate(q, "paddingTop", 0, 0.35)
        }
        d.animate(s, "height", p, 0.35);
        d.animate(q, "paddingBottom", 0, 0.35, r)
    }
    function c(q, x, w, p)
    {
        var y = d.get("sb-body"), v = d.get("sb-wrapper"), u = parseInt(q), r = parseInt(x);
        if (w)
        {
            d.animate(y, "height", u, e.options.resizeDuration);
            d.animate(v, "top", r, e.options.resizeDuration, p)
        }
        else {
            y.style.height = u + "px";
            v.style.top = r + "px";
            if (p) {
                p()
            }
        }
    }
    function f(u, x, v, p)
    {
        var t = d.get("sb-wrapper"), r = parseInt(u), q = parseInt(x);
        if (v)
        {
            d.animate(t, "width", r, e.options.resizeDuration);
            d.animate(t, "left", q, e.options.resizeDuration, p)
        }
        else {
            t.style.width = r + "px";
            t.style.left = q + "px";
            if (p) {
                p()
            }
        }
    }
    function n(p)
    {
        var r = e.content;
        if (!r) {
            return
        }
        var q = m(r.height, r.width, r.resizable);
        switch (e.options.animSequence)
        {
            case "hw":
                c(q.inner_h, q.top, true, function ()
                {
                    f(q.width, q.left, true, p)
                });
                break;
            case "wh":
                f(q.width, q.left, true, function ()
                {
                    c(q.inner_h, q.top, true, p)
                });
                break;
            default:
                f(q.width, q.left, true);
                c(q.inner_h, q.top, true, p)
        }
    }
    function m(p, s, r)
    {
        var q = d.get("sb-body-inner");
        sw = d.get("sb-wrapper"), so = d.get("sb-overlay"), tb = sw.offsetHeight - q.offsetHeight, lr = sw.offsetWidth - q.offsetWidth, 
        max_h = so.offsetHeight, max_w = so.offsetWidth;
        return e.setDimensions(p, s, max_h, max_w, tb, lr, r)
    }
    return {
        markup : '<div id="sb-container"><div id="sb-overlay"></div><div id="sb-wrapper"><div id="sb-title"><div id="sb-title-inner"></div></div><div id="sb-body"><div style="text-align:right; color:#96a83c; font-weight:bold; font-size:12px; cursor:pointer;" onclick="Shadowbox.close();">CLOSE [X]</div><div id="sb-body-inner"></div><div id="sb-loading"><a onclick="Shadowbox.close()">{cancel}</a></div></div><div id="sb-info"><div id="sb-info-inner"><div id="sb-counter"></div><div id="sb-nav"><a id="sb-nav-next" title="{next}" onclick="Shadowbox.next()"></a><a id="sb-nav-play" title="{play}" onclick="Shadowbox.play()"></a><a id="sb-nav-pause" title="{pause}" onclick="Shadowbox.pause()"></a><a id="sb-nav-previous" title="{previous}" onclick="Shadowbox.previous()"></a></div><div style="clear:both"></div></div></div></div></div>', 
        options : {
            animSequence : "sync"
        },
        init : function ()
        {
            if (e.client.isIE6)
            {
                d.get("sb-body").style.zoom = 1;
                var r, p, q = /url\("(.*\.png)"\)/;
                d.each(k, function (s)
                {
                    r = d.get(s);
                    p = e.lib.getStyle(r, "backgroundImage").match(q);
                    if (p)
                    {
                        r.style.backgroundImage = "none";
                        r.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,src=" + p[1] + ",sizingMethod=scale);";
                    }
                })
            }
        },
        bodyEl : function ()
        {
            return d.get("sb-body-inner");
        },
        onOpen : function (r, q, p)
        {
            d.get("sb-container").style.display = "block";
            var s = m(r, q);
            c(s.inner_h, s.top, false);
            f(s.width, s.left, false);
            g(p)
        },
        onLoad : function (q, r, p)
        {
            i(true);
            h(r, function ()
            {
                if (!q) {
                    return
                }
                if (!r) {
                    d.get("sb-wrapper").style.display = ""
                }
                p();
            })
        },
        onReady : function (p)
        {
            n(function ()
            {
                j(p)
            })
        },
        onFinish : function (p)
        {
            i(false, p)
        },
        onClose : function ()
        {
            g(false)
        },
        onPlay : function ()
        {
            b("play", false);
            b("pause", true)
        },
        onPause : function ()
        {
            b("pause", false);
            b("play", true)
        },
        onWindowResize : function ()
        {
            var r = e.content;
            if (!r) {
                return
            }
            var q = m(r.height, r.width, r.resizable);
            f(q.width, q.left, false);
            c(q.inner_h, q.top, false);
            var p = d.get(e.contentId());
            if (p)
            {
                if (r.resizable && e.options.handleOversize == "resize") {
                    p.height = q.resize_h;
                    p.width = q.resize_w;
                }
            }
        }
    }
}();








