; (function($) {
    $.ui = { plugin: { add: function(module, option, set) { var proto = $.ui[module].prototype; for (var i in set) { proto.plugins[i] = proto.plugins[i] || []; proto.plugins[i].push([option, set[i]]); } }, call: function(instance, name, args) {
        var set = instance.plugins[name]; if (!set) { return; }
        for (var i = 0; i < set.length; i++) { if (instance.options[set[i][0]]) { set[i][1].apply(instance.element, args); } } 
    } 
    }, cssCache: {}, css: function(name) {
        if ($.ui.cssCache[name]) { return $.ui.cssCache[name]; }
        var tmp = $('<div class="ui-gen">').addClass(name).css({ position: 'absolute', top: '-5000px', left: '-5000px', display: 'block' }).appendTo('body'); $.ui.cssCache[name] = !!((!(/auto|default/).test(tmp.css('cursor')) || (/^[1-9]/).test(tmp.css('height')) || (/^[1-9]/).test(tmp.css('width')) || !(/none/).test(tmp.css('backgroundImage')) || !(/transparent|rgba\(0, 0, 0, 0\)/).test(tmp.css('backgroundColor')))); try { $('body').get(0).removeChild(tmp.get(0)); } catch (e) { }
        return $.ui.cssCache[name];
    }, disableSelection: function(el) { $(el).attr('unselectable', 'on').css('MozUserSelect', 'none'); }, enableSelection: function(el) { $(el).attr('unselectable', 'off').css('MozUserSelect', ''); }, hasScroll: function(e, a) { var scroll = /top/.test(a || "top") ? 'scrollTop' : 'scrollLeft', has = false; if (e[scroll] > 0) return true; e[scroll] = 1; has = e[scroll] > 0 ? true : false; e[scroll] = 0; return has; } 
    }; var _remove = $.fn.remove; $.fn.remove = function() { $("*", this).add(this).triggerHandler("remove"); return _remove.apply(this, arguments); }; function getter(namespace, plugin, method) { var methods = $[namespace][plugin].getter || []; methods = (typeof methods == "string" ? methods.split(/,?\s+/) : methods); return ($.inArray(method, methods) != -1); }
    $.widget = function(name, prototype) {
        var namespace = name.split(".")[0]; name = name.split(".")[1]; $.fn[name] = function(options) {
            var isMethodCall = (typeof options == 'string'), args = Array.prototype.slice.call(arguments, 1); if (isMethodCall && getter(namespace, name, options)) { var instance = $.data(this[0], name); return (instance ? instance[options].apply(instance, args) : undefined); }
            return this.each(function() { var instance = $.data(this, name); if (isMethodCall && instance && $.isFunction(instance[options])) { instance[options].apply(instance, args); } else if (!isMethodCall) { $.data(this, name, new $[namespace][name](this, options)); } });
        }; $[namespace][name] = function(element, options) { var self = this; this.widgetName = name; this.widgetBaseClass = namespace + '-' + name; this.options = $.extend({}, $.widget.defaults, $[namespace][name].defaults, options); this.element = $(element).bind('setData.' + name, function(e, key, value) { return self.setData(key, value); }).bind('getData.' + name, function(e, key) { return self.getData(key); }).bind('remove', function() { return self.destroy(); }); this.init(); }; $[namespace][name].prototype = $.extend({}, $.widget.prototype, prototype);
    }; $.widget.prototype = { init: function() { }, destroy: function() { this.element.removeData(this.widgetName); }, getData: function(key) { return this.options[key]; }, setData: function(key, value) { this.options[key] = value; if (key == 'disabled') { this.element[value ? 'addClass' : 'removeClass'](this.widgetBaseClass + '-disabled'); } }, enable: function() { this.setData('disabled', false); }, disable: function() { this.setData('disabled', true); } }; $.widget.defaults = { disabled: false }; $.ui.mouse = { mouseInit: function() {
        var self = this; this.element.bind('mousedown.' + this.widgetName, function(e) { return self.mouseDown(e); }); if ($.browser.msie) { this._mouseUnselectable = this.element.attr('unselectable'); this.element.attr('unselectable', 'on'); }
        this.started = false;
    }, mouseDestroy: function() { this.element.unbind('.' + this.widgetName); ($.browser.msie && this.element.attr('unselectable', this._mouseUnselectable)); }, mouseDown: function(e) {
        (this._mouseStarted && this.mouseUp(e)); this._mouseDownEvent = e; var self = this, btnIsLeft = (e.which == 1), elIsCancel = (typeof this.options.cancel == "string" ? $(e.target).parents().add(e.target).filter(this.options.cancel).length : false); if (!btnIsLeft || elIsCancel || !this.mouseCapture(e)) { return true; }
        this._mouseDelayMet = !this.options.delay; if (!this._mouseDelayMet) { this._mouseDelayTimer = setTimeout(function() { self._mouseDelayMet = true; }, this.options.delay); }
        if (this.mouseDistanceMet(e) && this.mouseDelayMet(e)) { this._mouseStarted = (this.mouseStart(e) !== false); if (!this._mouseStarted) { e.preventDefault(); return true; } }
        this._mouseMoveDelegate = function(e) { return self.mouseMove(e); }; this._mouseUpDelegate = function(e) { return self.mouseUp(e); }; $(document).bind('mousemove.' + this.widgetName, this._mouseMoveDelegate).bind('mouseup.' + this.widgetName, this._mouseUpDelegate); return false;
    }, mouseMove: function(e) {
        if ($.browser.msie && !e.button) { return this.mouseUp(e); }
        if (this._mouseStarted) { this.mouseDrag(e); return false; }
        if (this.mouseDistanceMet(e) && this.mouseDelayMet(e)) { this._mouseStarted = (this.mouseStart(this._mouseDownEvent, e) !== false); (this._mouseStarted ? this.mouseDrag(e) : this.mouseUp(e)); }
        return !this._mouseStarted;
    }, mouseUp: function(e) {
        $(document).unbind('mousemove.' + this.widgetName, this._mouseMoveDelegate).unbind('mouseup.' + this.widgetName, this._mouseUpDelegate); if (this._mouseStarted) { this._mouseStarted = false; this.mouseStop(e); }
        return false;
    }, mouseDistanceMet: function(e) { return (Math.max(Math.abs(this._mouseDownEvent.pageX - e.pageX), Math.abs(this._mouseDownEvent.pageY - e.pageY)) >= this.options.distance); }, mouseDelayMet: function(e) { return this._mouseDelayMet; }, mouseStart: function(e) { }, mouseDrag: function(e) { }, mouseStop: function(e) { }, mouseCapture: function(e) { return true; } 
    }; $.ui.mouse.defaults = { cancel: null, distance: 1, delay: 0 };
})(jQuery); (function($) {
    $.widget("ui.tabs", { init: function() { this.options.event += '.tabs'; this.tabify(true); }, setData: function(key, value) {
        if ((/^selected/).test(key))
            this.select(value); else { this.options[key] = value; this.tabify(); } 
    }, length: function() { return this.$tabs.length; }, tabId: function(a) { return a.title && a.title.replace(/\s/g, '_').replace(/[^A-Za-z0-9\-_:\.]/g, '') || this.options.idPrefix + $.data(a); }, ui: function(tab, panel) { return { options: this.options, tab: tab, panel: panel, index: this.$tabs.index(tab) }; }, tabify: function(init) {
        this.$lis = $('li:has(a[href])', this.element); this.$tabs = this.$lis.map(function() { return $('a', this)[0]; }); this.$panels = $([]); var self = this, o = this.options; this.$tabs.each(function(i, a) {
            if (a.hash && a.hash.replace('#', ''))
                self.$panels = self.$panels.add(a.hash); else if ($(a).attr('href') != '#') {
                $.data(a, 'href.tabs', a.href); $.data(a, 'load.tabs', a.href); var id = self.tabId(a); a.href = '#' + id; var $panel = $('#' + id); if (!$panel.length) { $panel = $(o.panelTemplate).attr('id', id).addClass(o.panelClass).insertAfter(self.$panels[i - 1] || self.element); $panel.data('destroy.tabs', true); }
                self.$panels = self.$panels.add($panel);
            }
            else
                o.disabled.push(i + 1);
        }); if (init) {
            this.element.addClass(o.navClass); this.$panels.each(function() { var $this = $(this); $this.addClass(o.panelClass); }); if (o.selected === undefined) {
                if (location.hash) {
                    this.$tabs.each(function(i, a) {
                        if (a.hash == location.hash) {
                            o.selected = i; if ($.browser.msie || $.browser.opera) { var $toShow = $(location.hash), toShowId = $toShow.attr('id'); $toShow.attr('id', ''); setTimeout(function() { $toShow.attr('id', toShowId); }, 500); }
                            scrollTo(0, 0); return false;
                        } 
                    });
                }
                else if (o.cookie) {
                    var index = parseInt($.cookie('ui-tabs' + $.data(self.element)), 10); if (index && self.$tabs[index])
                        o.selected = index;
                }
                else if (self.$lis.filter('.' + o.selectedClass).length)
                    o.selected = self.$lis.index(self.$lis.filter('.' + o.selectedClass)[0]);
            }
            o.selected = o.selected === null || o.selected !== undefined ? o.selected : 0; o.disabled = $.unique(o.disabled.concat($.map(this.$lis.filter('.' + o.disabledClass), function(n, i) { return self.$lis.index(n); }))).sort(); if ($.inArray(o.selected, o.disabled) != -1)
                o.disabled.splice($.inArray(o.selected, o.disabled), 1); this.$panels.addClass(o.hideClass); this.$lis.removeClass(o.selectedClass); if (o.selected !== null) {
                this.$panels.eq(o.selected).show().removeClass(o.hideClass); this.$lis.eq(o.selected).addClass(o.selectedClass); var onShow = function() { $(self.element).triggerHandler('tabsshow', [self.fakeEvent('tabsshow'), self.ui(self.$tabs[o.selected], self.$panels[o.selected])], o.show); }; if ($.data(this.$tabs[o.selected], 'load.tabs'))
                    this.load(o.selected, onShow); else
                    onShow();
            }
            $(window).bind('unload', function() { self.$tabs.unbind('.tabs'); self.$lis = self.$tabs = self.$panels = null; });
        }
        for (var i = 0, li; li = this.$lis[i]; i++)
            $(li)[$.inArray(i, o.disabled) != -1 && !$(li).hasClass(o.selectedClass) ? 'addClass' : 'removeClass'](o.disabledClass); if (o.cache === false)
            this.$tabs.removeData('cache.tabs'); var hideFx, showFx, baseFx = { 'min-width': 0, duration: 1 }, baseDuration = 'normal'; if (o.fx && o.fx.constructor == Array)
            hideFx = o.fx[0] || baseFx, showFx = o.fx[1] || baseFx; else
            hideFx = showFx = o.fx || baseFx; var resetCSS = { display: '', overflow: '', height: '' }; if (!$.browser.msie)
            resetCSS.opacity = ''; function hideTab(clicked, $hide, $show) {
                $hide.animate(hideFx, hideFx.duration || baseDuration, function() {
                    $hide.addClass(o.hideClass).css(resetCSS); if ($.browser.msie && hideFx.opacity)
                        $hide[0].style.filter = ''; if ($show)
                        showTab(clicked, $show, $hide);
                });
            }
        function showTab(clicked, $show, $hide) {
            if (showFx === baseFx)
                $show.css('display', 'block'); $show.animate(showFx, showFx.duration || baseDuration, function() {
                    $show.removeClass(o.hideClass).css(resetCSS); if ($.browser.msie && showFx.opacity)
                        $show[0].style.filter = ''; $(self.element).triggerHandler('tabsshow', [self.fakeEvent('tabsshow'), self.ui(clicked, $show[0])], o.show);
                });
        }
        function switchTab(clicked, $li, $hide, $show) { $li.addClass(o.selectedClass).siblings().removeClass(o.selectedClass); hideTab(clicked, $hide, $show); }
        this.$tabs.unbind('.tabs').bind(o.event, function() {
            var $li = $(this).parents('li:eq(0)'), $hide = self.$panels.filter(':visible'), $show = $(this.hash); if (($li.hasClass(o.selectedClass) && !o.unselect) || $li.hasClass(o.disabledClass) || $(this).hasClass(o.loadingClass) || $(self.element).triggerHandler('tabsselect', [self.fakeEvent('tabsselect'), self.ui(this, $show[0])], o.select) === false) { this.blur(); return false; }
            self.options.selected = self.$tabs.index(this); if (o.unselect) { if ($li.hasClass(o.selectedClass)) { self.options.selected = null; $li.removeClass(o.selectedClass); self.$panels.stop(); hideTab(this, $hide); this.blur(); return false; } else if (!$hide.length) { self.$panels.stop(); var a = this; self.load(self.$tabs.index(this), function() { $li.addClass(o.selectedClass).addClass(o.unselectClass); showTab(a, $show); }); this.blur(); return false; } }
            if (o.cookie)
                $.cookie('ui-tabs' + $.data(self.element), self.options.selected, o.cookie); self.$panels.stop(); if ($show.length) { var a = this; self.load(self.$tabs.index(this), $hide.length ? function() { switchTab(a, $li, $hide, $show); } : function() { $li.addClass(o.selectedClass); showTab(a, $show); }); } else
                throw 'jQuery UI Tabs: Mismatching fragment identifier.'; if ($.browser.msie)
                this.blur(); return false;
        }); if (!(/^click/).test(o.event))
            this.$tabs.bind('click.tabs', function() { return false; });
    }, add: function(url, label, index) {
        if (index == undefined)
            index = this.$tabs.length; var o = this.options; var $li = $(o.tabTemplate.replace(/#\{href\}/g, url).replace(/#\{label\}/g, label)); $li.data('destroy.tabs', true); var id = url.indexOf('#') == 0 ? url.replace('#', '') : this.tabId($('a:first-child', $li)[0]); var $panel = $('#' + id); if (!$panel.length) { $panel = $(o.panelTemplate).attr('id', id).addClass(o.hideClass).data('destroy.tabs', true); }
        $panel.addClass(o.panelClass); if (index >= this.$lis.length) { $li.appendTo(this.element); $panel.appendTo(this.element[0].parentNode); } else { $li.insertBefore(this.$lis[index]); $panel.insertBefore(this.$panels[index]); }
        o.disabled = $.map(o.disabled, function(n, i) { return n >= index ? ++n : n }); this.tabify(); if (this.$tabs.length == 1) {
            $li.addClass(o.selectedClass); $panel.removeClass(o.hideClass); var href = $.data(this.$tabs[0], 'load.tabs'); if (href)
                this.load(index, href);
        }
        this.element.triggerHandler('tabsadd', [this.fakeEvent('tabsadd'), this.ui(this.$tabs[index], this.$panels[index])], o.add);
    }, remove: function(index) {
        var o = this.options, $li = this.$lis.eq(index).remove(), $panel = this.$panels.eq(index).remove(); if ($li.hasClass(o.selectedClass) && this.$tabs.length > 1)
            this.select(index + (index + 1 < this.$tabs.length ? 1 : -1)); o.disabled = $.map($.grep(o.disabled, function(n, i) { return n != index; }), function(n, i) { return n >= index ? --n : n }); this.tabify(); this.element.triggerHandler('tabsremove', [this.fakeEvent('tabsremove'), this.ui($li.find('a')[0], $panel[0])], o.remove);
    }, enable: function(index) {
        var o = this.options; if ($.inArray(index, o.disabled) == -1)
            return; var $li = this.$lis.eq(index).removeClass(o.disabledClass); if ($.browser.safari) { $li.css('display', 'inline-block'); setTimeout(function() { $li.css('display', 'block'); }, 0); }
        o.disabled = $.grep(o.disabled, function(n, i) { return n != index; }); this.element.triggerHandler('tabsenable', [this.fakeEvent('tabsenable'), this.ui(this.$tabs[index], this.$panels[index])], o.enable);
    }, disable: function(index) { var self = this, o = this.options; if (index != o.selected) { this.$lis.eq(index).addClass(o.disabledClass); o.disabled.push(index); o.disabled.sort(); this.element.triggerHandler('tabsdisable', [this.fakeEvent('tabsdisable'), this.ui(this.$tabs[index], this.$panels[index])], o.disable); } }, select: function(index) {
        if (typeof index == 'string')
            index = this.$tabs.index(this.$tabs.filter('[href$=' + index + ']')[0]); this.$tabs.eq(index).trigger(this.options.event);
    }, load: function(index, callback) {
        var self = this, o = this.options, $a = this.$tabs.eq(index), a = $a[0], bypassCache = callback == undefined || callback === false, url = $a.data('load.tabs'); callback = callback || function() { }; if (!url || !bypassCache && $.data(a, 'cache.tabs')) { callback(); return; }
        var inner = function(parent) { var $parent = $(parent), $inner = $parent.find('*:last'); return $inner.length && $inner.is(':not(img)') && $inner || $parent; }; var cleanup = function() {
            self.$tabs.filter('.' + o.loadingClass).removeClass(o.loadingClass).each(function() {
                if (o.spinner)
                    inner(this).parent().html(inner(this).data('label.tabs'));
            }); self.xhr = null;
        }; if (o.spinner) { var label = inner(a).html(); inner(a).wrapInner('<em></em>').find('em').data('label.tabs', label).html(o.spinner); }
        var ajaxOptions = $.extend({}, o.ajaxOptions, { url: url, success: function(r, s) {
            $(a.hash).html(r); cleanup(); if (o.cache)
                $.data(a, 'cache.tabs', true); $(self.element).triggerHandler('tabsload', [self.fakeEvent('tabsload'), self.ui(self.$tabs[index], self.$panels[index])], o.load); o.ajaxOptions.success && o.ajaxOptions.success(r, s); callback();
        } 
        }); if (this.xhr) { this.xhr.abort(); cleanup(); }
        $a.addClass(o.loadingClass); setTimeout(function() { self.xhr = $.ajax(ajaxOptions); }, 0);
    }, url: function(index, url) { this.$tabs.eq(index).removeData('cache.tabs').data('load.tabs', url); }, destroy: function() {
        var o = this.options; this.element.unbind('.tabs').removeClass(o.navClass).removeData('tabs'); this.$tabs.each(function() {
            var href = $.data(this, 'href.tabs'); if (href)
                this.href = href; var $this = $(this).unbind('.tabs'); $.each(['href', 'load', 'cache'], function(i, prefix) { $this.removeData(prefix + '.tabs'); });
        }); this.$lis.add(this.$panels).each(function() {
            if ($.data(this, 'destroy.tabs'))
                $(this).remove(); else
                $(this).removeClass([o.selectedClass, o.unselectClass, o.disabledClass, o.panelClass, o.hideClass].join(' '));
        });
    }, fakeEvent: function(type) { return $.event.fix({ type: type, target: this.element[0] }); } 
    }); $.ui.tabs.defaults = { unselect: false, event: 'click', disabled: [], cookie: null, spinner: 'Loading&#8230;', cache: false, idPrefix: 'ui-tabs-', ajaxOptions: {}, fx: null, tabTemplate: '<li><a href="#{href}"><span>#{label}</span></a></li>', panelTemplate: '<div></div>', navClass: 'ui-tabs-nav', selectedClass: 'ui-tabs-selected', unselectClass: 'ui-tabs-unselect', disabledClass: 'ui-tabs-disabled', panelClass: 'ui-tabs-panel', hideClass: 'ui-tabs-hide', loadingClass: 'ui-tabs-loading' }; $.ui.tabs.getter = "length"; $.extend($.ui.tabs.prototype, { rotation: null, rotate: function(ms, continuing) {
        continuing = continuing || false; var self = this, t = this.options.selected; function start() { self.rotation = setInterval(function() { t = ++t < self.$tabs.length ? t : 0; self.select(t); }, ms); }
        function stop(e) { if (!e || e.clientX) { clearInterval(self.rotation); } }
        if (ms) {
            start(); if (!continuing)
                this.$tabs.bind(this.options.event, stop); else
                this.$tabs.bind(this.options.event, function() { stop(); t = self.options.selected; start(); });
        }
        else { stop(); this.$tabs.unbind(this.options.event, stop); } 
    } 
    });
})(jQuery);