// Extensions within:
// =================
//  jQuery.ScrollTo( target, duration, settings )
//  jQuery.cookie( val [,newvalue] )
//  jQuery.exists()                     // True when DOM element exists
//  jQuery.bottom()                     // Bottom edge calculation
//  jQuery.right()                      // Right edge calculation
//  $.toJSON()                          // Serialises an object for .NET runtime/webservice
//  jQuery.center( absolute )           // Centres an element on the page
//  jQuery.keepOnScreen()               // Ensures element stays on screen
//  Array.indexOf()                     // Returns ordinal index of element within the array
//  Jquery.unselectable()               // Makes elements not selectable
//  Also all these...
//  http://docs.jquery.com/UI/Draggables
//  http://docs.jquery.com/UI/Droppables
//  http://docs.jquery.com/UI/Resizables
//  http://docs.jquery.com/UI/Selectables
//  http://docs.jquery.com/UI/Sortables
//  http://docs.jquery.com/UI/Effects/
//  http://docs.jquery.com/UI/Effects/Blind
//  http://docs.jquery.com/UI/Effects/Bounce
//  http://docs.jquery.com/UI/Effects/Clip
//  http://docs.jquery.com/UI/Effects/Drop
//  http://docs.jquery.com/UI/Effects/Explode
//  http://docs.jquery.com/UI/Effects/Fold
//  http://docs.jquery.com/UI/Effects/Pulsate
//  http://docs.jquery.com/UI/Effects/Scale
//  http://docs.jquery.com/UI/Effects/Shake
//  http://docs.jquery.com/UI/Effects/Slide
//  http://docs.jquery.com/UI/Effects/Transfer
//  http://docs.jquery.com/UI/API/1.7.2/Tabs
//  http://benalman.com/projects/jquery-resize-plugin/

/**
 * jQuery.ScrollTo
 * Copyright (c) 2007-2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 9/11/2008
 *
 * @projectDescription Easy element scrolling using jQuery.
 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
 * Tested with jQuery 1.2.6. On FF 2/3, IE 6/7, Opera 9.2/5 and Safari 3. on Windows.
 *
 * @author Ariel Flesler
 * @version 1.4
 *
 * @id jQuery.scrollTo
 * @id jQuery.fn.scrollTo
 * @param {String, Number, DOMElement, jQuery, Object} target Where to scroll the matched elements.
 *	  The different options for target are:
 *		- A number position (will be applied to all axes).
 *		- A string position ('44', '100px', '+=90', etc ) will be applied to all axes
 *		- A jQuery/DOM element ( logically, child of the element to scroll )
 *		- A string selector, that will be relative to the element to scroll ( 'li:eq(2)', etc )
 *		- A hash { top:x, left:y }, x and y can be any kind of number/string like above.
 * @param {Number} duration The OVERALL length of the animation, this argument can be the settings object instead.
 * @param {Object,Function} settings Optional set of settings or the onAfter callback.
 *	 @option {String} axis Which axis must be scrolled, use 'x', 'y', 'xy' or 'yx'.
 *	 @option {Number} duration The OVERALL length of the animation.
 *	 @option {String} easing The easing method for the animation.
 *	 @option {Boolean} margin If true, the margin of the target element will be deducted from the final position.
 *	 @option {Object, Number} offset Add/deduct from the end position. One number for both axes or { top:x, left:y }.
 *	 @option {Object, Number} over Add/deduct the height/width multiplied by 'over', can be { top:x, left:y } when using both axes.
 *	 @option {Boolean} queue If true, and both axis are given, the 2nd axis will only be animated after the first one ends.
 *	 @option {Function} onAfter Function to be called after the scrolling ends. 
 *	 @option {Function} onAfterFirst If queuing is activated, this function will be called after the first scrolling ends.
 * @return {jQuery} Returns the same jQuery object, for chaining.
 *
 * @desc Scroll to a fixed position
 * @example $('div').scrollTo( 340 );
 *
 * @desc Scroll relatively to the actual position
 * @example $('div').scrollTo( '+=340px', { axis:'y' } );
 *
 * @dec Scroll using a selector (relative to the scrolled element)
 * @example $('div').scrollTo( 'p.paragraph:eq(2)', 500, { easing:'swing', queue:true, axis:'xy' } );
 *
 * @ Scroll to a DOM element (same for jQuery object)
 * @example var second_child = document.getElementById('container').firstChild.nextSibling;
 *			$('#container').scrollTo( second_child, { duration:500, axis:'x', onAfter:function(){
 *				alert('scrolled!!');																   
 *			}});
 *
 * @desc Scroll on both axes, to different values
 * @example $('div').scrollTo( { top: 300, left:'+=200' }, { axis:'xy', offset:-20 } );
 */
;(function( $ ){
	
	var $scrollTo = $.scrollTo = function( target, duration, settings ){
		$(window).scrollTo( target, duration, settings );
	};

	$scrollTo.defaults = {
		axis:'y',
		duration:1
	};

	// Returns the element that needs to be animated to scroll the window.
	// Kept for backwards compatibility (specially for localScroll & serialScroll)
	$scrollTo.window = function( scope ){
		return $(window).scrollable();
	};

	// Hack, hack, hack... stay away!
	// Returns the real elements to scroll (supports window/iframes, documents and regular nodes)
	$.fn.scrollable = function(){
		return this.map(function(){
			// Just store it, we might need it
			var win = this.parentWindow || this.defaultView,
				// If it's a document, get its iframe or the window if it's THE document
				elem = this.nodeName == '#document' ? win.frameElement || win : this,
				// Get the corresponding document
				doc = elem.contentDocument || (elem.contentWindow || elem).document,
				isWin = elem.setInterval;

			return elem.nodeName == 'IFRAME' || isWin && $.browser.safari ? doc.body
				: isWin ? doc.documentElement
				: this;
		});
	};

	$.fn.scrollTo = function( target, duration, settings ){
		if( typeof duration == 'object' ){
			settings = duration;
			duration = 0;
		}
		if( typeof settings == 'function' )
			settings = { onAfter:settings };
			
		settings = $.extend( {}, $scrollTo.defaults, settings );
		// Speed is still recognized for backwards compatibility
		duration = duration || settings.speed || settings.duration;
		// Make sure the settings are given right
		settings.queue = settings.queue && settings.axis.length > 1;
		
		if( settings.queue )
			// Let's keep the overall duration
			duration /= 2;
		settings.offset = both( settings.offset );
		settings.over = both( settings.over );

		return this.scrollable().each(function(){
			var elem = this,
				$elem = $(elem),
				targ = target, toff, attr = {},
				win = $elem.is('html,body');

			switch( typeof targ ){
				// A number will pass the regex
				case 'number':
				case 'string':
					if( /^([+-]=)?\d+(px)?$/.test(targ) ){
						targ = both( targ );
						// We are done
						break;
					}
					// Relative selector, no break!
					targ = $(targ,this);
				case 'object':
					// DOMElement / jQuery
					if( targ.is || targ.style )
						// Get the real position of the target 
						toff = (targ = $(targ)).offset();
			}
			$.each( settings.axis.split(''), function( i, axis ){
				var Pos	= axis == 'x' ? 'Left' : 'Top',
					pos = Pos.toLowerCase(),
					key = 'scroll' + Pos,
					old = elem[key],
					Dim = axis == 'x' ? 'Width' : 'Height',
					dim = Dim.toLowerCase();

				if( toff ){// jQuery / DOMElement
					attr[key] = toff[pos] + ( win ? 0 : old - $elem.offset()[pos] );

					// If it's a dom element, reduce the margin
					if( settings.margin ){
						attr[key] -= parseInt(targ.css('margin'+Pos)) || 0;
						attr[key] -= parseInt(targ.css('border'+Pos+'Width')) || 0;
					}
					
					attr[key] += settings.offset[pos] || 0;
					
					if( settings.over[pos] )
						// Scroll to a fraction of its width/height
						attr[key] += targ[dim]() * settings.over[pos];
				}else
					attr[key] = targ[pos];

				// Number or 'number'
				if( /^\d+$/.test(attr[key]) )
					// Check the limits
					attr[key] = attr[key] <= 0 ? 0 : Math.min( attr[key], max(Dim) );

				// Queueing axes
				if( !i && settings.queue ){
					// Don't waste time animating, if there's no need.
					if( old != attr[key] )
						// Intermediate animation
						animate( settings.onAfterFirst );
					// Don't animate this axis again in the next iteration.
					delete attr[key];
				}
			});			
			animate( settings.onAfter );			

			function animate( callback ){
				$elem.animate( attr, duration, settings.easing, callback && function(){
					callback.call(this, target, settings);
				});
			};
			function max( Dim ){
				var attr ='scroll'+Dim,
					doc = elem.ownerDocument;
				
				return win
						? Math.max( doc.documentElement[attr], doc.body[attr]  )
						: elem[attr];
			};
		}).end();
	};

	function both( val ){
		return typeof val == 'object' ? val : { top:val, left:val };
	};

})(jQuery);


/**
* Cookie plugin
*
* Copyright (c) 2006 Klaus Hartl (stilbuero.de)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/

/**
* Create a cookie with the given name and value and other optional parameters.
*
* @example $.cookie('the_cookie', 'the_value');
* @desc Set the value of a cookie.
* @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
* @desc Create a cookie with all available options.
* @example $.cookie('the_cookie', 'the_value');
* @desc Create a session cookie.
* @example $.cookie('the_cookie', null);
* @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
*       used when the cookie was set.
*
* @param String name The name of the cookie.
* @param String value The value of the cookie.
* @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
* @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
*                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
*                             If set to null or omitted, the cookie will be a session cookie and will not be retained
*                             when the the browser exits.
* @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
* @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
* @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
*                        require a secure protocol (like HTTPS).
* @type undefined
*
* @name $.cookie
* @cat Plugins/Cookie
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/

/**
* Get the value of a cookie with the given name.
*
* @example $.cookie('the_cookie');
* @desc Get the value of a cookie.
*
* @param String name The name of the cookie.
* @return The value of the cookie.
* @type String
*
* @name $.cookie
* @cat Plugins/Cookie
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};


/*
* Veetro Utility methods for each testing if an element exists,
* calculating bounds etc
*/

(function($) {
    $.fn.exists = function() { return this.length != 0; }
    $.fn.bottom = function() { return this.offset().top + this.outerHeight(); }
    $.fn.right = function() { return this.offset().left + this.outerWidth(); }
    $.fn.left = function() { return this.offset().left; }
    $.fn.top = function() { return this.offset().top; }
    $.fn.vals = function() { var s = []; this.each(function() { s.push(jQuery(this).val()); }); return s.join(',') }
    $.fn.toggle = function() { this.css('display', this.css('display') == 'none' ? 'block' : 'none'); }

    $.fn.watermark = function(html) {
        return this.each(function() {
            var input = jQuery(this);
            var thisHtml = html;
            if (!thisHtml)
                thisHtml = input.attr('title');
       
            if ( input.data('overlay') ) {
                var lastOverlayPos = input.data('lastoverlaypos');
                var currentPos = input.offset();
                if (lastOverlayPos
                    && (lastOverlayPos.left != currentPos.left || lastOverlayPos.top != currentPos.top))
                {
                    input.resize();
                }
                return; // already watermarked?
                input.data('overlay').remove();
                input.data('overlaypos').remove();
            }

            //if (typeof(window.watermarkcounter )=='undefined')
            //    window.watermarkcounter = 0;
            //id = '_wm_' +(window.watermarkcounter++);
            //input.data('wmid', id);
            //id="' + id + '" box="' + input.attr('id') + '" 
            //id="' + id + '_pos" 
            var pos = jQuery('<div style="position:absolute;width:1px;height:1px;overflow:hidden;">&nbsp;</div>');
            var overlay = jQuery('<div class="Watermark" style="position:absolute;">' + thisHtml + '</div>');
            overlay.data('input', input);
            input.data('overlay', overlay);
            input.data('overlaypos', pos);
            input.before(pos);
            input.before(overlay);
           
            overlay.click(function() {
                jQuery(this).data('input').focus();
            });

            input.focus(function() {
                var div = jQuery(this).data('overlay');
                div.css('display', 'none');
            });
            input.blur(function() {
                var div = jQuery(this).data('overlay');
                div.css('display', jQuery(this).val() ? 'none' : 'block');
            });
            input.change(function() {
                var div = jQuery(this).data('overlay');
                div.css('display', jQuery(this).val() ? 'none' : 'block');
            });
            input.resize(function() {
                var box = jQuery(this);
                var div = box.data('overlay');
                var pos = box.data('overlaypos');
                box.data('lastoverlaypos', box.offset());
                if (!pos.exists())
                    return;
                if (box.css('display') != 'none') {
                    var paddingY = 4;
                    div.css('width', (box.width()-paddingY) + 'px');
                    div.css('height', (box.outerHeight()-paddingY) + 'px');
                    if (box.outerHeight() > 0)
                        div.css('line-height', (box.outerHeight() - paddingY) + 'px');
                    var boxOffset = box.offset();
                    var posOffset = pos.offset();
                    if(boxOffset!=null && posOffset!=null)
                    {
                        div.css('margin-top', (boxOffset.top - posOffset.top) + 'px');
                        div.css('margin-left', ((boxOffset.left - posOffset.left)+(paddingY/2)) + 'px');
                    }
                    div.css('z-index', 1);
                    div.css('display', box.val() ? 'none' : 'block');
                    div.css('font-size', box.css('font-size'));
                    div.css('font-weight', box.css('font-weight'));
                    div.css('font-family', box.css('font-family'));
                    div.css('cursor', 'text');
                }
                else
                    div.css('display', 'none');
                //div.css('display', box.css('display'));
                //            div.css('padding-left', box.css('padding-left'));
                //            div.css('padding-top', box.css('padding-top'));
                //            div.css('padding-right', box.css('padding-right'));
                //            div.css('padding-bottom', box.css('padding-bottom'));
                //alert('rsize' + jQuery(this).outerWidth());
            });
      
            input.resize();
        });
    }
    $.fn.isMouseWithin = function() {
        if (typeof mouseX != 'number')
            return false;
        var offset = this.offset();
        var bottom = offset.top + this.outerHeight();
        var right = offset.left + this.outerWidth();
        return offset.left<=mouseX && right >= mouseX
             && offset.top<= mouseY && bottom >= mouseY;
    }
    $.fn.pointFromScreen = function(x,y) {
     return {
     // -1234 2000 100
        x:(this.left()*-1)+x, 
        y:(this.top()*-1)+y
     };
    }
    $.fn.hasClassEx = function(classNamesSpaceDelimited) {
        var ret = false;
        var names = classNamesSpaceDelimited.split(' ');
        this.each(function() {
            for(var x=0;x<names.length;x++)
            if ( (' ' + this.className + ' ').indexOf(' ' + names[x] + ' ') > -1 ) {
                    ret = true;
                return false;
                }
        });
        return ret;
    }
    $.fn.enterKey = function(code)
    {
       $(this).bind('keydown',{code:code},function(event){

            if (event.keyCode != '13')
                return;

            event.preventDefault();

            if ($.isFunction(event.data.code))
                code.call(this);
            else if ($.isString(event.data.code))
                eval(coevent.data.codede);
                
        });
    }
    $.fn.escapeKey = function(code)
    {
       $(this).bind('keydown',{code:code},function(event){
    
            if (event.keyCode != '27')
                return;

            event.preventDefault();

            if ($.isFunction(event.data.code))
                code.call(this);
            else if ($.isString(event.data.code))
                eval(coevent.data.codede);
                
        });
    }
    $.fn.pointToScreen = function(x,y) {
     return {
     // -1234 2000 1900
        x:this.left()+x, 
        y:this.top()+y
     };
    }
    $.fn.makeReadOnly = function() {
        return this.each(function() {
            var input = jQuery(this);
            if (input.attr('blockid'))
                return;
            var blockid = '_blc_' + (new Date()).getTime();
            input.attr('blockid', blockid);
            input.before('<div id="' + blockid + '" style="cursor:pointer;position:absolute;"></div>');
            input.bind('focus', function() {
                var input = jQuery(this);
                var blockid = input.attr('blockid');
                jQuery('#' + blockid).focus();
            });
            jQuery('#' + blockid).bind('mouseup', function() {
                jQuery("[blockid='" + jQuery(this).attr('id') + "']").mouseup();
            });
            input.resize(function() {
                var input = jQuery(this);
                var blockid = input.attr('blockid');
                var block = jQuery('#' + blockid);
                block.css({ width: input.outerWidth() + 'px', height: input.outerHeight() + 'px' });
            });
            input.resize();

        });
    }
})(jQuery);


/*
 * Original from http://code.google.com/p/jquery-json/
 * (Modified to work with ASP.NET json deserialiser)
 */
(function($) {
    var m = {
        '\b': '\\b',
        '\t': '\\t',
        '\n': '\\n',
        '\f': '\\f',
        '\r': '\\r',
        '"': '\\"',
        '\\': '\\\\'
    },
s = {
    'array': function(x) {
        var a = ['['], b, f, i, l = x.length, v;
        for (i = 0; i < l; i += 1) {
            v = x[i];
            f = s[typeof v];
            if (f) {
                v = f(v);
                if (typeof v == 'string') {
                    if (b) {
                        a[a.length] = ',';
                    }
                    a[a.length] = v;
                    b = true;
                }
            }
        }
        a[a.length] = ']';
        return a.join('');
    },
    'boolean': function(x) {
        return String(x);
    },
    'null': function(x) {
        return "null";
    },
    'number': function(x) {
        return isFinite(x) ? String(x) : 'null';
    },
    'object': function(x) {
        if (x) {
            if (x instanceof Array) {
                return s.array(x);
            }
            // Special JSON date hack for MS based service
            if (x instanceof Date) {
                return '"\\\/Date(' + (x.getTime()) + ')\\\/"'; //+(new Date().getTimezoneOffset()*60*-1000)
            }
            var a = ['{'], b, f, i, v;
            for (i in x) {
                v = x[i];
                f = s[typeof v];
                if (f) {
                    v = f(v);
                    if (typeof v == 'string') {
                        if (b) {
                            a[a.length] = ',';
                        }
                        a.push(s.string(i), ':', v);
                        b = true;
                    }
                }
            }
            a[a.length] = '}';
            return a.join('');
        }
        return 'null';
    },
    'string': function(x) {
        if (/["\\\x00-\x1f]/.test(x)) {
            x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) {
                var c = m[b];
                if (c) {
                    return c;
                }
                c = b.charCodeAt();
                return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
            });
        }
        return '"' + x + '"';
    }
};

    $.toJSON = function(v) {
        var f = isNaN(v) ? s[typeof v] : s['number'];
        if (f) return f(v);
    };

    $.parseJSON = function(v, safe) {
        if (safe === undefined) safe = $.parseJSON.safe;
        if (safe && !/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(v))
            return undefined;
        var re = new RegExp(/"\\\/Date\((-?\d+)\)\\\/"/g);
        v = v.replace(re, 'new Date($1)');
 
        return eval('(' + v + ')');
    };

    $.parseJSON.safe = false;

})(jQuery);



//
// Created Wednesday 17th of September 2008 by Andreas Lagerkvist
// Copyright © 2008 Andreas Lagerkvist (andreaslagerkvist.com)
//
(function($) {
$.fn.center = function(absolute) {
    return this.each(function() {
        var t = jQuery(this);

        t.css({
            position: absolute ? 'absolute' : 'fixed',
            left: '50%',
            top: '50%',
            zIndex: '99'
        }).css({
            marginLeft: '-' + (t.outerWidth() / 2) + 'px',
            marginTop: '-' + (t.outerHeight() / 2) + 'px'
        });

        if (absolute) {
            t.css({
                marginTop: parseInt(t.css('marginTop'), 10) + jQuery(window).scrollTop(),
                marginLeft: parseInt(t.css('marginLeft'), 10) + jQuery(window).scrollLeft()
            });
        }
        if (t.offset().top < jQuery(window).scrollTop())
            t.css({
                top: jQuery(window).scrollTop() + 'px',
                marginTop: '0px'
            });
    });
};

$.fn.keepOnScreen = function() {
    var windowWidth = jQuery(window).width();
    var windowHeight = jQuery(window).height();
    return this.each(function() {
        var t = jQuery(this);

        if (t.offset().top < 0)
            t.css({
                top: '0px',
                marginTop: '0px'
            });
        if (t.offset().left + t.outerWidth() > windowWidth)
            t.css({
                left: (windowWidth - t.outerWidth()) + 'px',
                marginLeft: '0px'
            });
        if (t.offset().left < 0)
            t.css({
                left: '0px',
                marginLeft: '0px'
            });
    });
}

$.fn.offCenter = function() {
    return this.each(function() {
        var t = jQuery(this);
        t.css({
            position: 'fixed',
            left: '90%',
            top: '5%',
            zIndex: '99'
        }).css({
            marginLeft: '-' + (t.outerWidth()) + 'px'
        });
        t.keepOnScreen();
    });
}
})(jQuery);


if (!Array.prototype.indexOf) {
    Array.prototype.indexOf = function(elt /*, from*/) {
        var len = this.length >>> 0;

        var from = Number(arguments[1]) || 0;
        from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
        if (from < 0)
            from += len;

        for (; from < len; from++) {
            if (from in this &&
          this[from] === elt)
                return from;
        }
        return -1;
    };
}



/*
* jQuery UI 1.7.2
*
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI
*/
jQuery.ui || (function(c) { var i = c.fn.remove, d = c.browser.mozilla && (parseFloat(c.browser.version) < 1.9); c.ui = { version: "1.7.2", plugin: { add: function(k, l, n) { var m = c.ui[k].prototype; for (var j in n) { m.plugins[j] = m.plugins[j] || []; m.plugins[j].push([l, n[j]]) } }, call: function(j, l, k) { var n = j.plugins[l]; if (!n || !j.element[0].parentNode) { return } for (var m = 0; m < n.length; m++) { if (j.options[n[m][0]]) { n[m][1].apply(j.element, k) } } } }, contains: function(k, j) { return document.compareDocumentPosition ? k.compareDocumentPosition(j) & 16 : k !== j && k.contains(j) }, hasScroll: function(m, k) { if (c(m).css("overflow") == "hidden") { return false } var j = (k && k == "left") ? "scrollLeft" : "scrollTop", l = false; if (m[j] > 0) { return true } m[j] = 1; l = (m[j] > 0); m[j] = 0; return l }, isOverAxis: function(k, j, l) { return (k > j) && (k < (j + l)) }, isOver: function(o, k, n, m, j, l) { return c.ui.isOverAxis(o, n, j) && c.ui.isOverAxis(k, m, l) }, keyCode: { BACKSPACE: 8, CAPS_LOCK: 20, COMMA: 188, CONTROL: 17, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, INSERT: 45, LEFT: 37, NUMPAD_ADD: 107, NUMPAD_DECIMAL: 110, NUMPAD_DIVIDE: 111, NUMPAD_ENTER: 108, NUMPAD_MULTIPLY: 106, NUMPAD_SUBTRACT: 109, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SHIFT: 16, SPACE: 32, TAB: 9, UP: 38} }; if (d) { var f = c.attr, e = c.fn.removeAttr, h = "http://www.w3.org/2005/07/aaa", a = /^aria-/, b = /^wairole:/; c.attr = function(k, j, l) { var m = l !== undefined; return (j == "role" ? (m ? f.call(this, k, j, "wairole:" + l) : (f.apply(this, arguments) || "").replace(b, "")) : (a.test(j) ? (m ? k.setAttributeNS(h, j.replace(a, "aaa:"), l) : f.call(this, k, j.replace(a, "aaa:"))) : f.apply(this, arguments))) }; c.fn.removeAttr = function(j) { return (a.test(j) ? this.each(function() { this.removeAttributeNS(h, j.replace(a, "")) }) : e.call(this, j)) } } c.fn.extend({ remove: function() { c("*", this).add(this).each(function() { c(this).triggerHandler("remove") }); return i.apply(this, arguments) }, enableSelection: function() { return this.attr("unselectable", "off").css("MozUserSelect", "").unbind("selectstart.ui") }, disableSelection: function() { return this.attr("unselectable", "on").css("MozUserSelect", "none").bind("selectstart.ui", function() { return false }) }, scrollParent: function() { var j; if ((c.browser.msie && (/(static|relative)/).test(this.css("position"))) || (/absolute/).test(this.css("position"))) { j = this.parents().filter(function() { return (/(relative|absolute|fixed)/).test(c.curCSS(this, "position", 1)) && (/(auto|scroll)/).test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1)) }).eq(0) } else { j = this.parents().filter(function() { return (/(auto|scroll)/).test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1)) }).eq(0) } return (/fixed/).test(this.css("position")) || !j.length ? c(document) : j } }); c.extend(c.expr[":"], { data: function(l, k, j) { return !!c.data(l, j[3]) }, focusable: function(k) { var l = k.nodeName.toLowerCase(), j = c.attr(k, "tabindex"); return (/input|select|textarea|button|object/.test(l) ? !k.disabled : "a" == l || "area" == l ? k.href || !isNaN(j) : !isNaN(j)) && !c(k)["area" == l ? "parents" : "closest"](":hidden").length }, tabbable: function(k) { var j = c.attr(k, "tabindex"); return (isNaN(j) || j >= 0) && c(k).is(":focusable") } }); function g(m, n, o, l) { function k(q) { var p = c[m][n][q] || []; return (typeof p == "string" ? p.split(/,?\s+/) : p) } var j = k("getter"); if (l.length == 1 && typeof l[0] == "string") { j = j.concat(k("getterSetter")) } return (c.inArray(o, j) != -1) } c.widget = function(k, j) { var l = k.split(".")[0]; k = k.split(".")[1]; c.fn[k] = function(p) { var n = (typeof p == "string"), o = Array.prototype.slice.call(arguments, 1); if (n && p.substring(0, 1) == "_") { return this } if (n && g(l, k, p, o)) { var m = c.data(this[0], k); return (m ? m[p].apply(m, o) : undefined) } return this.each(function() { var q = c.data(this, k); (!q && !n && c.data(this, k, new c[l][k](this, p))._init()); (q && n && c.isFunction(q[p]) && q[p].apply(q, o)) }) }; c[l] = c[l] || {}; c[l][k] = function(o, n) { var m = this; this.namespace = l; this.widgetName = k; this.widgetEventPrefix = c[l][k].eventPrefix || k; this.widgetBaseClass = l + "-" + k; this.options = c.extend({}, c.widget.defaults, c[l][k].defaults, c.metadata && c.metadata.get(o)[k], n); this.element = c(o).bind("setData." + k, function(q, p, r) { if (q.target == o) { return m._setData(p, r) } }).bind("getData." + k, function(q, p) { if (q.target == o) { return m._getData(p) } }).bind("remove", function() { return m.destroy() }) }; c[l][k].prototype = c.extend({}, c.widget.prototype, j); c[l][k].getterSetter = "option" }; c.widget.prototype = { _init: function() { }, destroy: function() { this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass + "-disabled " + this.namespace + "-state-disabled").removeAttr("aria-disabled") }, option: function(l, m) { var k = l, j = this; if (typeof l == "string") { if (m === undefined) { return this._getData(l) } k = {}; k[l] = m } c.each(k, function(n, o) { j._setData(n, o) }) }, _getData: function(j) { return this.options[j] }, _setData: function(j, k) { this.options[j] = k; if (j == "disabled") { this.element[k ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled " + this.namespace + "-state-disabled").attr("aria-disabled", k) } }, enable: function() { this._setData("disabled", false) }, disable: function() { this._setData("disabled", true) }, _trigger: function(l, m, n) { var p = this.options[l], j = (l == this.widgetEventPrefix ? l : this.widgetEventPrefix + l); m = c.Event(m); m.type = j; if (m.originalEvent) { for (var k = c.event.props.length, o; k; ) { o = c.event.props[--k]; m[o] = m.originalEvent[o] } } this.element.trigger(m, n); return !(c.isFunction(p) && p.call(this.element[0], m, n) === false || m.isDefaultPrevented()) } }; c.widget.defaults = { disabled: false }; c.ui.mouse = { _mouseInit: function() { var j = this; this.element.bind("mousedown." + this.widgetName, function(k) { return j._mouseDown(k) }).bind("click." + this.widgetName, function(k) { if (j._preventClickEvent) { j._preventClickEvent = false; k.stopImmediatePropagation(); return false } }); if (c.browser.msie) { this._mouseUnselectable = this.element.attr("unselectable"); this.element.attr("unselectable", "on") } this.started = false }, _mouseDestroy: function() { this.element.unbind("." + this.widgetName); (c.browser.msie && this.element.attr("unselectable", this._mouseUnselectable)) }, _mouseDown: function(l) { l.originalEvent = l.originalEvent || {}; if (l.originalEvent.mouseHandled) { return } (this._mouseStarted && this._mouseUp(l)); this._mouseDownEvent = l; var k = this, m = (l.which == 1), j = (typeof this.options.cancel == "string" ? c(l.target).parents().add(l.target).filter(this.options.cancel).length : false); if (!m || j || !this._mouseCapture(l)) { return true } this.mouseDelayMet = !this.options.delay; if (!this.mouseDelayMet) { this._mouseDelayTimer = setTimeout(function() { k.mouseDelayMet = true }, this.options.delay) } if (this._mouseDistanceMet(l) && this._mouseDelayMet(l)) { this._mouseStarted = (this._mouseStart(l) !== false); if (!this._mouseStarted) { l.preventDefault(); return true } } this._mouseMoveDelegate = function(n) { return k._mouseMove(n) }; this._mouseUpDelegate = function(n) { return k._mouseUp(n) }; c(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate); (c.browser.safari || l.preventDefault()); l.originalEvent.mouseHandled = true; return true }, _mouseMove: function(j) { if (c.browser.msie && !j.button) { return this._mouseUp(j) } if (this._mouseStarted) { this._mouseDrag(j); return j.preventDefault() } if (this._mouseDistanceMet(j) && this._mouseDelayMet(j)) { this._mouseStarted = (this._mouseStart(this._mouseDownEvent, j) !== false); (this._mouseStarted ? this._mouseDrag(j) : this._mouseUp(j)) } return !this._mouseStarted }, _mouseUp: function(j) { c(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate); if (this._mouseStarted) { this._mouseStarted = false; this._preventClickEvent = (j.target == this._mouseDownEvent.target); this._mouseStop(j) } return false }, _mouseDistanceMet: function(j) { return (Math.max(Math.abs(this._mouseDownEvent.pageX - j.pageX), Math.abs(this._mouseDownEvent.pageY - j.pageY)) >= this.options.distance) }, _mouseDelayMet: function(j) { return this.mouseDelayMet }, _mouseStart: function(j) { }, _mouseDrag: function(j) { }, _mouseStop: function(j) { }, _mouseCapture: function(j) { return true } }; c.ui.mouse.defaults = { cancel: null, distance: 1, delay: 0} })(jQuery); ; /*
 * jQuery UI Draggable 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Draggables
 *
 * Depends:
 *	ui.core.js
 */
(function(a) { a.widget("ui.draggable", a.extend({}, a.ui.mouse, { _init: function() { if (this.options.helper == "original" && !(/^(?:r|a|f)/).test(this.element.css("position"))) { this.element[0].style.position = "relative" } (this.options.addClasses && this.element.addClass("ui-draggable")); (this.options.disabled && this.element.addClass("ui-draggable-disabled")); this._mouseInit() }, destroy: function() { if (!this.element.data("draggable")) { return } this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"); this._mouseDestroy() }, _mouseCapture: function(b) { var c = this.options; if (this.helper || c.disabled || a(b.target).is(".ui-resizable-handle")) { return false } this.handle = this._getHandle(b); if (!this.handle) { return false } return true }, _mouseStart: function(b) { var c = this.options; this.helper = this._createHelper(b); this._cacheHelperProportions(); if (a.ui.ddmanager) { a.ui.ddmanager.current = this } this._cacheMargins(); this.cssPosition = this.helper.css("position"); this.scrollParent = this.helper.scrollParent(); this.offset = this.element.offset(); this.offset = { top: this.offset.top - this.margins.top, left: this.offset.left - this.margins.left }; a.extend(this.offset, { click: { left: b.pageX - this.offset.left, top: b.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() }); this.originalPosition = this._generatePosition(b); this.originalPageX = b.pageX; this.originalPageY = b.pageY; if (c.cursorAt) { this._adjustOffsetFromHelper(c.cursorAt) } if (c.containment) { this._setContainment() } this._trigger("start", b); this._cacheHelperProportions(); if (a.ui.ddmanager && !c.dropBehaviour) { a.ui.ddmanager.prepareOffsets(this, b) } this.helper.addClass("ui-draggable-dragging"); this._mouseDrag(b, true); return true }, _mouseDrag: function(b, d) { this.position = this._generatePosition(b); this.positionAbs = this._convertPositionTo("absolute"); if (!d) { var c = this._uiHash(); this._trigger("drag", b, c); this.position = c.position } if (!this.options.axis || this.options.axis != "y") { this.helper[0].style.left = this.position.left + "px" } if (!this.options.axis || this.options.axis != "x") { this.helper[0].style.top = this.position.top + "px" } if (a.ui.ddmanager) { a.ui.ddmanager.drag(this, b) } return false }, _mouseStop: function(c) { var d = false; if (a.ui.ddmanager && !this.options.dropBehaviour) { d = a.ui.ddmanager.drop(this, c) } if (this.dropped) { d = this.dropped; this.dropped = false } if ((this.options.revert == "invalid" && !d) || (this.options.revert == "valid" && d) || this.options.revert === true || (a.isFunction(this.options.revert) && this.options.revert.call(this.element, d))) { var b = this; a(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() { b._trigger("stop", c); b._clear() }) } else { this._trigger("stop", c); this._clear() } return false }, _getHandle: function(b) { var c = !this.options.handle || !a(this.options.handle, this.element).length ? true : false; a(this.options.handle, this.element).find("*").andSelf().each(function() { if (this == b.target) { c = true } }); return c }, _createHelper: function(c) { var d = this.options; var b = a.isFunction(d.helper) ? a(d.helper.apply(this.element[0], [c])) : (d.helper == "clone" ? this.element.clone() : this.element); if (!b.parents("body").length) { b.appendTo((d.appendTo == "parent" ? this.element[0].parentNode : d.appendTo)) } if (b[0] != this.element[0] && !(/(fixed|absolute)/).test(b.css("position"))) { b.css("position", "absolute") } return b }, _adjustOffsetFromHelper: function(b) { if (b.left != undefined) { this.offset.click.left = b.left + this.margins.left } if (b.right != undefined) { this.offset.click.left = this.helperProportions.width - b.right + this.margins.left } if (b.top != undefined) { this.offset.click.top = b.top + this.margins.top } if (b.bottom != undefined) { this.offset.click.top = this.helperProportions.height - b.bottom + this.margins.top } }, _getParentOffset: function() { this.offsetParent = this.helper.offsetParent(); var b = this.offsetParent.offset(); if (this.cssPosition == "absolute" && this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0])) { b.left += this.scrollParent.scrollLeft(); b.top += this.scrollParent.scrollTop() } if ((this.offsetParent[0] == document.body) || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && a.browser.msie)) { b = { top: 0, left: 0} } return { top: b.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left: b.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)} }, _getRelativeOffset: function() { if (this.cssPosition == "relative") { var b = this.element.position(); return { top: b.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), left: b.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()} } else { return { top: 0, left: 0} } }, _cacheMargins: function() { this.margins = { left: (parseInt(this.element.css("marginLeft"), 10) || 0), top: (parseInt(this.element.css("marginTop"), 10) || 0)} }, _cacheHelperProportions: function() { this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight()} }, _setContainment: function() { var e = this.options; if (e.containment == "parent") { e.containment = this.helper[0].parentNode } if (e.containment == "document" || e.containment == "window") { this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, a(e.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (a(e.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top] } if (!(/^(document|window|parent)$/).test(e.containment) && e.containment.constructor != Array) { var c = a(e.containment)[0]; if (!c) { return } var d = a(e.containment).offset(); var b = (a(c).css("overflow") != "hidden"); this.containment = [d.left + (parseInt(a(c).css("borderLeftWidth"), 10) || 0) + (parseInt(a(c).css("paddingLeft"), 10) || 0) - this.margins.left, d.top + (parseInt(a(c).css("borderTopWidth"), 10) || 0) + (parseInt(a(c).css("paddingTop"), 10) || 0) - this.margins.top, d.left + (b ? Math.max(c.scrollWidth, c.offsetWidth) : c.offsetWidth) - (parseInt(a(c).css("borderLeftWidth"), 10) || 0) - (parseInt(a(c).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, d.top + (b ? Math.max(c.scrollHeight, c.offsetHeight) : c.offsetHeight) - (parseInt(a(c).css("borderTopWidth"), 10) || 0) - (parseInt(a(c).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top] } else { if (e.containment.constructor == Array) { this.containment = e.containment } } }, _convertPositionTo: function(f, h) { if (!h) { h = this.position } var c = f == "absolute" ? 1 : -1; var e = this.options, b = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, g = (/(html|body)/i).test(b[0].tagName); return { top: (h.top + this.offset.relative.top * c + this.offset.parent.top * c - (a.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : (g ? 0 : b.scrollTop())) * c)), left: (h.left + this.offset.relative.left * c + this.offset.parent.left * c - (a.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : g ? 0 : b.scrollLeft()) * c))} }, _generatePosition: function(e) { var h = this.options, b = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, i = (/(html|body)/i).test(b[0].tagName); if (this.cssPosition == "relative" && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) { this.offset.relative = this._getRelativeOffset() } var d = e.pageX; var c = e.pageY; if (this.originalPosition) { if (this.containment) { if (e.pageX - this.offset.click.left < this.containment[0]) { d = this.containment[0] + this.offset.click.left } if (e.pageY - this.offset.click.top < this.containment[1]) { c = this.containment[1] + this.offset.click.top } if (e.pageX - this.offset.click.left > this.containment[2]) { d = this.containment[2] + this.offset.click.left } if (e.pageY - this.offset.click.top > this.containment[3]) { c = this.containment[3] + this.offset.click.top } } if (h.grid) { var g = this.originalPageY + Math.round((c - this.originalPageY) / h.grid[1]) * h.grid[1]; c = this.containment ? (!(g - this.offset.click.top < this.containment[1] || g - this.offset.click.top > this.containment[3]) ? g : (!(g - this.offset.click.top < this.containment[1]) ? g - h.grid[1] : g + h.grid[1])) : g; var f = this.originalPageX + Math.round((d - this.originalPageX) / h.grid[0]) * h.grid[0]; d = this.containment ? (!(f - this.offset.click.left < this.containment[0] || f - this.offset.click.left > this.containment[2]) ? f : (!(f - this.offset.click.left < this.containment[0]) ? f - h.grid[0] : f + h.grid[0])) : f } } return { top: (c - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (a.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : (i ? 0 : b.scrollTop())))), left: (d - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (a.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : i ? 0 : b.scrollLeft())))} }, _clear: function() { this.helper.removeClass("ui-draggable-dragging"); if (this.helper[0] != this.element[0] && !this.cancelHelperRemoval) { this.helper.remove() } this.helper = null; this.cancelHelperRemoval = false }, _trigger: function(b, c, d) { d = d || this._uiHash(); a.ui.plugin.call(this, b, [c, d]); if (b == "drag") { this.positionAbs = this._convertPositionTo("absolute") } return a.widget.prototype._trigger.call(this, b, c, d) }, plugins: {}, _uiHash: function(b) { return { helper: this.helper, position: this.position, absolutePosition: this.positionAbs, offset: this.positionAbs} } })); a.extend(a.ui.draggable, { version: "1.7.2", eventPrefix: "drag", defaults: { addClasses: true, appendTo: "parent", axis: false, cancel: ":input,option", connectToSortable: false, containment: false, cursor: "auto", cursorAt: false, delay: 0, distance: 1, grid: false, handle: false, helper: "original", iframeFix: false, opacity: false, refreshPositions: false, revert: false, revertDuration: 500, scope: "default", scroll: true, scrollSensitivity: 20, scrollSpeed: 20, snap: false, snapMode: "both", snapTolerance: 20, stack: false, zIndex: false} }); a.ui.plugin.add("draggable", "connectToSortable", { start: function(c, e) { var d = a(this).data("draggable"), f = d.options, b = a.extend({}, e, { item: d.element }); d.sortables = []; a(f.connectToSortable).each(function() { var g = a.data(this, "sortable"); if (g && !g.options.disabled) { d.sortables.push({ instance: g, shouldRevert: g.options.revert }); g._refreshItems(); g._trigger("activate", c, b) } }) }, stop: function(c, e) { var d = a(this).data("draggable"), b = a.extend({}, e, { item: d.element }); a.each(d.sortables, function() { if (this.instance.isOver) { this.instance.isOver = 0; d.cancelHelperRemoval = true; this.instance.cancelHelperRemoval = false; if (this.shouldRevert) { this.instance.options.revert = true } this.instance._mouseStop(c); this.instance.options.helper = this.instance.options._helper; if (d.options.helper == "original") { this.instance.currentItem.css({ top: "auto", left: "auto" }) } } else { this.instance.cancelHelperRemoval = false; this.instance._trigger("deactivate", c, b) } }) }, drag: function(c, f) { var e = a(this).data("draggable"), b = this; var d = function(i) { var n = this.offset.click.top, m = this.offset.click.left; var g = this.positionAbs.top, k = this.positionAbs.left; var j = i.height, l = i.width; var p = i.top, h = i.left; return a.ui.isOver(g + n, k + m, p, h, j, l) }; a.each(e.sortables, function(g) { this.instance.positionAbs = e.positionAbs; this.instance.helperProportions = e.helperProportions; this.instance.offset.click = e.offset.click; if (this.instance._intersectsWith(this.instance.containerCache)) { if (!this.instance.isOver) { this.instance.isOver = 1; this.instance.currentItem = a(b).clone().appendTo(this.instance.element).data("sortable-item", true); this.instance.options._helper = this.instance.options.helper; this.instance.options.helper = function() { return f.helper[0] }; c.target = this.instance.currentItem[0]; this.instance._mouseCapture(c, true); this.instance._mouseStart(c, true, true); this.instance.offset.click.top = e.offset.click.top; this.instance.offset.click.left = e.offset.click.left; this.instance.offset.parent.left -= e.offset.parent.left - this.instance.offset.parent.left; this.instance.offset.parent.top -= e.offset.parent.top - this.instance.offset.parent.top; e._trigger("toSortable", c); e.dropped = this.instance.element; e.currentItem = e.element; this.instance.fromOutside = e } if (this.instance.currentItem) { this.instance._mouseDrag(c) } } else { if (this.instance.isOver) { this.instance.isOver = 0; this.instance.cancelHelperRemoval = true; this.instance.options.revert = false; this.instance._trigger("out", c, this.instance._uiHash(this.instance)); this.instance._mouseStop(c, true); this.instance.options.helper = this.instance.options._helper; this.instance.currentItem.remove(); if (this.instance.placeholder) { this.instance.placeholder.remove() } e._trigger("fromSortable", c); e.dropped = false } } }) } }); a.ui.plugin.add("draggable", "cursor", { start: function(c, d) { if (!a(this).data("draggable")) return; var b = a("body"), e = a(this).data("draggable").options; if (b.css("cursor")) { e._cursor = b.css("cursor") } b.css("cursor", e.cursor) }, stop: function(b, c) { if (!a(this).data("draggable")) return; var d = a(this).data("draggable").options; if (d._cursor) { a("body").css("cursor", d._cursor) } } }); a.ui.plugin.add("draggable", "iframeFix", { start: function(b, c) { if (!a(this).data("draggable")) return; var d = a(this).data("draggable").options; a(d.iframeFix === true ? "iframe" : d.iframeFix).each(function() { a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({ width: this.offsetWidth + "px", height: this.offsetHeight + "px", position: "absolute", opacity: "0.001", zIndex: 1000 }).css(a(this).offset()).appendTo("body") }) }, stop: function(b, c) { a("div.ui-draggable-iframeFix").each(function() { this.parentNode.removeChild(this) }) } }); a.ui.plugin.add("draggable", "opacity", { start: function(c, d) { if (!a(this).data("draggable")) return; var b = a(d.helper), e = a(this).data("draggable").options; if (b.css("opacity")) { e._opacity = b.css("opacity") } b.css("opacity", e.opacity) }, stop: function(b, c) { if (!a(this).data("draggable")) return; var d = a(this).data("draggable").options; if (d._opacity) { a(c.helper).css("opacity", d._opacity) } } }); a.ui.plugin.add("draggable", "scroll", { start: function(c, d) { var b = a(this).data("draggable"); if (b.scrollParent[0] != document && b.scrollParent[0].tagName != "HTML") { b.overflowOffset = b.scrollParent.offset() } }, drag: function(d, e) { var c = a(this).data("draggable"), f = c.options, b = false; if (c.scrollParent[0] != document && c.scrollParent[0].tagName != "HTML") { if (!f.axis || f.axis != "x") { if ((c.overflowOffset.top + c.scrollParent[0].offsetHeight) - d.pageY < f.scrollSensitivity) { c.scrollParent[0].scrollTop = b = c.scrollParent[0].scrollTop + f.scrollSpeed } else { if (d.pageY - c.overflowOffset.top < f.scrollSensitivity) { c.scrollParent[0].scrollTop = b = c.scrollParent[0].scrollTop - f.scrollSpeed } } } if (!f.axis || f.axis != "y") { if ((c.overflowOffset.left + c.scrollParent[0].offsetWidth) - d.pageX < f.scrollSensitivity) { c.scrollParent[0].scrollLeft = b = c.scrollParent[0].scrollLeft + f.scrollSpeed } else { if (d.pageX - c.overflowOffset.left < f.scrollSensitivity) { c.scrollParent[0].scrollLeft = b = c.scrollParent[0].scrollLeft - f.scrollSpeed } } } } else { if (!f.axis || f.axis != "x") { if (d.pageY - a(document).scrollTop() < f.scrollSensitivity) { b = a(document).scrollTop(a(document).scrollTop() - f.scrollSpeed) } else { if (a(window).height() - (d.pageY - a(document).scrollTop()) < f.scrollSensitivity) { b = a(document).scrollTop(a(document).scrollTop() + f.scrollSpeed) } } } if (!f.axis || f.axis != "y") { if (d.pageX - a(document).scrollLeft() < f.scrollSensitivity) { b = a(document).scrollLeft(a(document).scrollLeft() - f.scrollSpeed) } else { if (a(window).width() - (d.pageX - a(document).scrollLeft()) < f.scrollSensitivity) { b = a(document).scrollLeft(a(document).scrollLeft() + f.scrollSpeed) } } } } if (b !== false && a.ui.ddmanager && !f.dropBehaviour) { a.ui.ddmanager.prepareOffsets(c, d) } } }); a.ui.plugin.add("draggable", "snap", { start: function(c, d) { var b = a(this).data("draggable"), e = b.options; b.snapElements = []; a(e.snap.constructor != String ? (e.snap.items || ":data(draggable)") : e.snap).each(function() { var g = a(this); var f = g.offset(); if (this != b.element[0]) { b.snapElements.push({ item: this, width: g.outerWidth(), height: g.outerHeight(), top: f.top, left: f.left }) } }) }, drag: function(u, p) { var g = a(this).data("draggable"), q = g.options; var y = q.snapTolerance; var x = p.offset.left, w = x + g.helperProportions.width, f = p.offset.top, e = f + g.helperProportions.height; for (var v = g.snapElements.length - 1; v >= 0; v--) { var s = g.snapElements[v].left, n = s + g.snapElements[v].width, m = g.snapElements[v].top, A = m + g.snapElements[v].height; if (!((s - y < x && x < n + y && m - y < f && f < A + y) || (s - y < x && x < n + y && m - y < e && e < A + y) || (s - y < w && w < n + y && m - y < f && f < A + y) || (s - y < w && w < n + y && m - y < e && e < A + y))) { if (g.snapElements[v].snapping) { (g.options.snap.release && g.options.snap.release.call(g.element, u, a.extend(g._uiHash(), { snapItem: g.snapElements[v].item }))) } g.snapElements[v].snapping = false; continue } if (q.snapMode != "inner") { var c = Math.abs(m - e) <= y; var z = Math.abs(A - f) <= y; var j = Math.abs(s - w) <= y; var k = Math.abs(n - x) <= y; if (c) { p.position.top = g._convertPositionTo("relative", { top: m - g.helperProportions.height, left: 0 }).top - g.margins.top } if (z) { p.position.top = g._convertPositionTo("relative", { top: A, left: 0 }).top - g.margins.top } if (j) { p.position.left = g._convertPositionTo("relative", { top: 0, left: s - g.helperProportions.width }).left - g.margins.left } if (k) { p.position.left = g._convertPositionTo("relative", { top: 0, left: n }).left - g.margins.left } } var h = (c || z || j || k); if (q.snapMode != "outer") { var c = Math.abs(m - f) <= y; var z = Math.abs(A - e) <= y; var j = Math.abs(s - x) <= y; var k = Math.abs(n - w) <= y; if (c) { p.position.top = g._convertPositionTo("relative", { top: m, left: 0 }).top - g.margins.top } if (z) { p.position.top = g._convertPositionTo("relative", { top: A - g.helperProportions.height, left: 0 }).top - g.margins.top } if (j) { p.position.left = g._convertPositionTo("relative", { top: 0, left: s }).left - g.margins.left } if (k) { p.position.left = g._convertPositionTo("relative", { top: 0, left: n - g.helperProportions.width }).left - g.margins.left } } if (!g.snapElements[v].snapping && (c || z || j || k || h)) { (g.options.snap.snap && g.options.snap.snap.call(g.element, u, a.extend(g._uiHash(), { snapItem: g.snapElements[v].item }))) } g.snapElements[v].snapping = (c || z || j || k || h) } } }); a.ui.plugin.add("draggable", "stack", { start: function(b, c) { if (!a(this).data("draggable")) return; var e = a(this).data("draggable").options; var d = a.makeArray(a(e.stack.group)).sort(function(g, f) { return (parseInt(a(g).css("zIndex"), 10) || e.stack.min) - (parseInt(a(f).css("zIndex"), 10) || e.stack.min) }); a(d).each(function(f) { this.style.zIndex = e.stack.min + f }); this[0].style.zIndex = e.stack.min + d.length } }); a.ui.plugin.add("draggable", "zIndex", { start: function(c, d) { if (!a(this).data("draggable")) return; var b = a(d.helper), e = a(this).data("draggable").options; if (b.css("zIndex")) { e._zIndex = b.css("zIndex") } b.css("zIndex", e.zIndex) }, stop: function(b, c) { if (!a(this).data("draggable")) return; var d = a(this).data("draggable").options; if (d._zIndex) { a(c.helper).css("zIndex", d._zIndex) } } }) })(jQuery); ; /*
 * jQuery UI Droppable 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Droppables
 *
 * Depends:
 *	ui.core.js
 *	ui.draggable.js
 */
(function(a) { a.widget("ui.droppable", { _init: function() { var c = this.options, b = c.accept; this.isover = 0; this.isout = 1; this.options.accept = this.options.accept && a.isFunction(this.options.accept) ? this.options.accept : function(e) { return e.is(b) }; this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight }; a.ui.ddmanager.droppables[this.options.scope] = a.ui.ddmanager.droppables[this.options.scope] || []; a.ui.ddmanager.droppables[this.options.scope].push(this); (this.options.addClasses && this.element.addClass("ui-droppable")) }, destroy: function() { var b = a.ui.ddmanager.droppables[this.options.scope]; for (var c = 0; c < b.length; c++) { if (b[c] == this) { b.splice(c, 1) } } this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable") }, _setData: function(b, c) { if (b == "accept") { this.options.accept = c && a.isFunction(c) ? c : function(e) { return e.is(c) } } else { a.widget.prototype._setData.apply(this, arguments) } }, _activate: function(c) { var b = a.ui.ddmanager.current; if (this.options.activeClass) { this.element.addClass(this.options.activeClass) } (b && this._trigger("activate", c, this.ui(b))) }, _deactivate: function(c) { var b = a.ui.ddmanager.current; if (this.options.activeClass) { this.element.removeClass(this.options.activeClass) } (b && this._trigger("deactivate", c, this.ui(b))) }, _over: function(c) { var b = a.ui.ddmanager.current; if (!b || (b.currentItem || b.element)[0] == this.element[0]) { return } if (this.options.accept.call(this.element[0], (b.currentItem || b.element))) { if (this.options.hoverClass) { this.element.addClass(this.options.hoverClass) } this._trigger("over", c, this.ui(b)) } }, _out: function(c) { var b = a.ui.ddmanager.current; if (!b || (b.currentItem || b.element)[0] == this.element[0]) { return } if (this.options.accept.call(this.element[0], (b.currentItem || b.element))) { if (this.options.hoverClass) { this.element.removeClass(this.options.hoverClass) } this._trigger("out", c, this.ui(b)) } }, _drop: function(c, d) { var b = d || a.ui.ddmanager.current; if (!b || (b.currentItem || b.element)[0] == this.element[0]) { return false } var e = false; this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() { var f = a.data(this, "droppable"); if (f.options.greedy && a.ui.intersect(b, a.extend(f, { offset: f.element.offset() }), f.options.tolerance)) { e = true; return false } }); if (e) { return false } if (this.options.accept.call(this.element[0], (b.currentItem || b.element))) { if (this.options.activeClass) { this.element.removeClass(this.options.activeClass) } if (this.options.hoverClass) { this.element.removeClass(this.options.hoverClass) } this._trigger("drop", c, this.ui(b)); return this.element } return false }, ui: function(b) { return { draggable: (b.currentItem || b.element), helper: b.helper, position: b.position, absolutePosition: b.positionAbs, offset: b.positionAbs} } }); a.extend(a.ui.droppable, { version: "1.7.2", eventPrefix: "drop", defaults: { accept: "*", activeClass: false, addClasses: true, greedy: false, hoverClass: false, scope: "default", tolerance: "intersect"} }); a.ui.intersect = function(q, j, o) { if (!j.offset) { return false } var e = (q.positionAbs || q.position.absolute).left, d = e + q.helperProportions.width, n = (q.positionAbs || q.position.absolute).top, m = n + q.helperProportions.height; var g = j.offset.left, c = g + j.proportions.width, p = j.offset.top, k = p + j.proportions.height; switch (o) { case "fit": return (g < e && d < c && p < n && m < k); break; case "intersect": return (g < e + (q.helperProportions.width / 2) && d - (q.helperProportions.width / 2) < c && p < n + (q.helperProportions.height / 2) && m - (q.helperProportions.height / 2) < k); break; case "pointer": var h = ((q.positionAbs || q.position.absolute).left + (q.clickOffset || q.offset.click).left), i = ((q.positionAbs || q.position.absolute).top + (q.clickOffset || q.offset.click).top), f = a.ui.isOver(i, h, p, g, j.proportions.height, j.proportions.width); return f; break; case "touch": return ((n >= p && n <= k) || (m >= p && m <= k) || (n < p && m > k)) && ((e >= g && e <= c) || (d >= g && d <= c) || (e < g && d > c)); break; default: return false; break } }; a.ui.ddmanager = { current: null, droppables: { "default": [] }, prepareOffsets: function(e, g) { var b = a.ui.ddmanager.droppables[e.options.scope]; var f = g ? g.type : null; var h = (e.currentItem || e.element).find(":data(droppable)").andSelf(); droppablesLoop: for (var d = 0; d < b.length; d++) { if (b[d].options.disabled || (e && !b[d].options.accept.call(b[d].element[0], (e.currentItem || e.element)))) { continue } for (var c = 0; c < h.length; c++) { if (h[c] == b[d].element[0]) { b[d].proportions.height = 0; continue droppablesLoop } } b[d].visible = b[d].element.css("display") != "none"; if (!b[d].visible) { continue } b[d].offset = b[d].element.offset(); b[d].proportions = { width: b[d].element[0].offsetWidth, height: b[d].element[0].offsetHeight }; if (f == "mousedown") { b[d]._activate.call(b[d], g) } } }, drop: function(b, c) { var d = false; a.each(a.ui.ddmanager.droppables[b.options.scope], function() { if (!this.options) { return } if (!this.options.disabled && this.visible && a.ui.intersect(b, this, this.options.tolerance)) { d = this._drop.call(this, c) } if (!this.options.disabled && this.visible && this.options.accept.call(this.element[0], (b.currentItem || b.element))) { this.isout = 1; this.isover = 0; this._deactivate.call(this, c) } }); return d }, drag: function(b, c) { if (b.options.refreshPositions) { a.ui.ddmanager.prepareOffsets(b, c) } a.each(a.ui.ddmanager.droppables[b.options.scope], function() { if (this.options.disabled || this.greedyChild || !this.visible) { return } var e = a.ui.intersect(b, this, this.options.tolerance); var g = !e && this.isover == 1 ? "isout" : (e && this.isover == 0 ? "isover" : null); if (!g) { return } var f; if (this.options.greedy) { var d = this.element.parents(":data(droppable):eq(0)"); if (d.length) { f = a.data(d[0], "droppable"); f.greedyChild = (g == "isover" ? 1 : 0) } } if (f && g == "isover") { f.isover = 0; f.isout = 1; f._out.call(f, c) } this[g] = 1; this[g == "isout" ? "isover" : "isout"] = 0; this[g == "isover" ? "_over" : "_out"].call(this, c); if (f && g == "isout") { f.isout = 0; f.isover = 1; f._over.call(f, c) } }) } } })(jQuery); ; /*
 * jQuery UI Resizable 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Resizables
 *
 * Depends:
 *	ui.core.js
 */
(function(c) { c.widget("ui.resizable", c.extend({}, c.ui.mouse, { _init: function() { var e = this, j = this.options; this.element.addClass("ui-resizable"); c.extend(this, { _aspectRatio: !!(j.aspectRatio), aspectRatio: j.aspectRatio, originalElement: this.element, _proportionallyResizeElements: [], _helper: j.helper || j.ghost || j.animate ? j.helper || "ui-resizable-helper" : null }); if (this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) { if (/relative/.test(this.element.css("position")) && c.browser.opera) { this.element.css({ position: "relative", top: "auto", left: "auto" }) } this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({ position: this.element.css("position"), width: this.element.outerWidth(), height: this.element.outerHeight(), top: this.element.css("top"), left: this.element.css("left") })); this.element = this.element.parent().data("resizable", this.element.data("resizable")); this.elementIsWrapper = true; this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") }); this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0 }); this.originalResizeStyle = this.originalElement.css("resize"); this.originalElement.css("resize", "none"); this._proportionallyResizeElements.push(this.originalElement.css({ position: "static", zoom: 1, display: "block" })); this.originalElement.css({ margin: this.originalElement.css("margin") }); this._proportionallyResize() } this.handles = j.handles || (!c(".ui-resizable-handle", this.element).length ? "e,s,se" : { n: ".ui-resizable-n", e: ".ui-resizable-e", s: ".ui-resizable-s", w: ".ui-resizable-w", se: ".ui-resizable-se", sw: ".ui-resizable-sw", ne: ".ui-resizable-ne", nw: ".ui-resizable-nw" }); if (this.handles.constructor == String) { if (this.handles == "all") { this.handles = "n,e,s,w,se,sw,ne,nw" } var k = this.handles.split(","); this.handles = {}; for (var f = 0; f < k.length; f++) { var h = c.trim(k[f]), d = "ui-resizable-" + h; var g = c('<div class="ui-resizable-handle ' + d + '"></div>'); if (/sw|se|ne|nw/.test(h)) { g.css({ zIndex: ++j.zIndex }) } if ("se" == h) { g.addClass("ui-icon ui-icon-gripsmall-diagonal-se") } this.handles[h] = ".ui-resizable-" + h; this.element.append(g) } } this._renderAxis = function(p) { p = p || this.element; for (var m in this.handles) { if (this.handles[m].constructor == String) { this.handles[m] = c(this.handles[m], this.element).show() } if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { var n = c(this.handles[m], this.element), o = 0; o = /sw|ne|nw|se|n|s/.test(m) ? n.outerHeight() : n.outerWidth(); var l = ["padding", /ne|nw|n/.test(m) ? "Top" : /se|sw|s/.test(m) ? "Bottom" : /^e$/.test(m) ? "Right" : "Left"].join(""); p.css(l, o); this._proportionallyResize() } if (!c(this.handles[m]).length) { continue } } }; this._renderAxis(this.element); this._handles = c(".ui-resizable-handle", this.element).disableSelection(); this._handles.mouseover(function() { if (!e.resizing) { if (this.className) { var i = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i) } e.axis = i && i[1] ? i[1] : "se" } }); if (j.autoHide) { this._handles.hide(); c(this.element).addClass("ui-resizable-autohide").hover(function() { c(this).removeClass("ui-resizable-autohide"); e._handles.show() }, function() { if (!e.resizing) { c(this).addClass("ui-resizable-autohide"); e._handles.hide() } }) } this._mouseInit() }, destroy: function() { this._mouseDestroy(); var d = function(f) { c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove() }; if (this.elementIsWrapper) { d(this.element); var e = this.element; e.parent().append(this.originalElement.css({ position: e.css("position"), width: e.outerWidth(), height: e.outerHeight(), top: e.css("top"), left: e.css("left") })).end().remove() } this.originalElement.css("resize", this.originalResizeStyle); d(this.originalElement) }, _mouseCapture: function(e) { var f = false; for (var d in this.handles) { if (c(this.handles[d])[0] == e.target) { f = true } } return this.options.disabled || !!f }, _mouseStart: function(f) { var i = this.options, e = this.element.position(), d = this.element; this.resizing = true; this.documentScroll = { top: c(document).scrollTop(), left: c(document).scrollLeft() }; if (d.is(".ui-draggable") || (/absolute/).test(d.css("position"))) { d.css({ position: "absolute", top: e.top, left: e.left }) } if (c.browser.opera && (/relative/).test(d.css("position"))) { d.css({ position: "relative", top: "auto", left: "auto" }) } this._renderProxy(); var j = b(this.helper.css("left")), g = b(this.helper.css("top")); if (i.containment) { j += c(i.containment).scrollLeft() || 0; g += c(i.containment).scrollTop() || 0 } this.offset = this.helper.offset(); this.position = { left: j, top: g }; this.size = this._helper ? { width: d.outerWidth(), height: d.outerHeight()} : { width: d.width(), height: d.height() }; this.originalSize = this._helper ? { width: d.outerWidth(), height: d.outerHeight()} : { width: d.width(), height: d.height() }; this.originalPosition = { left: j, top: g }; this.sizeDiff = { width: d.outerWidth() - d.width(), height: d.outerHeight() - d.height() }; this.originalMousePosition = { left: f.pageX, top: f.pageY }; this.aspectRatio = (typeof i.aspectRatio == "number") ? i.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1); var h = c(".ui-resizable-" + this.axis).css("cursor"); c("body").css("cursor", h == "auto" ? this.axis + "-resize" : h); d.addClass("ui-resizable-resizing"); this._propagate("start", f); return true }, _mouseDrag: function(d) { var g = this.helper, f = this.options, l = {}, p = this, i = this.originalMousePosition, m = this.axis; var q = (d.pageX - i.left) || 0, n = (d.pageY - i.top) || 0; var h = this._change[m]; if (!h) { return false } var k = h.apply(this, [d, q, n]), j = c.browser.msie && c.browser.version < 7, e = this.sizeDiff; if (this._aspectRatio || d.shiftKey) { k = this._updateRatio(k, d) } k = this._respectSize(k, d); this._propagate("resize", d); g.css({ top: this.position.top + "px", left: this.position.left + "px", width: this.size.width + "px", height: this.size.height + "px" }); if (!this._helper && this._proportionallyResizeElements.length) { this._proportionallyResize() } this._updateCache(k); this._trigger("resize", d, this.ui()); return false }, _mouseStop: function(g) { this.resizing = false; var h = this.options, l = this; if (this._helper) { var f = this._proportionallyResizeElements, d = f.length && (/textarea/i).test(f[0].nodeName), e = d && c.ui.hasScroll(f[0], "left") ? 0 : l.sizeDiff.height, j = d ? 0 : l.sizeDiff.width; var m = { width: (l.size.width - j), height: (l.size.height - e) }, i = (parseInt(l.element.css("left"), 10) + (l.position.left - l.originalPosition.left)) || null, k = (parseInt(l.element.css("top"), 10) + (l.position.top - l.originalPosition.top)) || null; if (!h.animate) { this.element.css(c.extend(m, { top: k, left: i })) } l.helper.height(l.size.height); l.helper.width(l.size.width); if (this._helper && !h.animate) { this._proportionallyResize() } } c("body").css("cursor", "auto"); this.element.removeClass("ui-resizable-resizing"); this._propagate("stop", g); if (this._helper) { this.helper.remove() } return false }, _updateCache: function(d) { var e = this.options; this.offset = this.helper.offset(); if (a(d.left)) { this.position.left = d.left } if (a(d.top)) { this.position.top = d.top } if (a(d.height)) { this.size.height = d.height } if (a(d.width)) { this.size.width = d.width } }, _updateRatio: function(g, f) { var h = this.options, i = this.position, e = this.size, d = this.axis; if (g.height) { g.width = (e.height * this.aspectRatio) } else { if (g.width) { g.height = (e.width / this.aspectRatio) } } if (d == "sw") { g.left = i.left + (e.width - g.width); g.top = null } if (d == "nw") { g.top = i.top + (e.height - g.height); g.left = i.left + (e.width - g.width) } return g }, _respectSize: function(k, f) { var i = this.helper, h = this.options, q = this._aspectRatio || f.shiftKey, p = this.axis, s = a(k.width) && h.maxWidth && (h.maxWidth < k.width), l = a(k.height) && h.maxHeight && (h.maxHeight < k.height), g = a(k.width) && h.minWidth && (h.minWidth > k.width), r = a(k.height) && h.minHeight && (h.minHeight > k.height); if (g) { k.width = h.minWidth } if (r) { k.height = h.minHeight } if (s) { k.width = h.maxWidth } if (l) { k.height = h.maxHeight } var e = this.originalPosition.left + this.originalSize.width, n = this.position.top + this.size.height; var j = /sw|nw|w/.test(p), d = /nw|ne|n/.test(p); if (g && j) { k.left = e - h.minWidth } if (s && j) { k.left = e - h.maxWidth } if (r && d) { k.top = n - h.minHeight } if (l && d) { k.top = n - h.maxHeight } var m = !k.width && !k.height; if (m && !k.left && k.top) { k.top = null } else { if (m && !k.top && k.left) { k.left = null } } return k }, _proportionallyResize: function() { var j = this.options; if (!this._proportionallyResizeElements.length) { return } var f = this.helper || this.element; for (var e = 0; e < this._proportionallyResizeElements.length; e++) { var g = this._proportionallyResizeElements[e]; if (!this.borderDif) { var d = [g.css("borderTopWidth"), g.css("borderRightWidth"), g.css("borderBottomWidth"), g.css("borderLeftWidth")], h = [g.css("paddingTop"), g.css("paddingRight"), g.css("paddingBottom"), g.css("paddingLeft")]; this.borderDif = c.map(d, function(k, m) { var l = parseInt(k, 10) || 0, n = parseInt(h[m], 10) || 0; return l + n }) } if (c.browser.msie && !(!(c(f).is(":hidden") || c(f).parents(":hidden").length))) { continue } g.css({ height: (f.height() - this.borderDif[0] - this.borderDif[2]) || 0, width: (f.width() - this.borderDif[1] - this.borderDif[3]) || 0 }) } }, _renderProxy: function() { var e = this.element, h = this.options; this.elementOffset = e.offset(); if (this._helper) { this.helper = this.helper || c('<div style="overflow:hidden;"></div>'); var d = c.browser.msie && c.browser.version < 7, f = (d ? 1 : 0), g = (d ? 2 : -1); this.helper.addClass(this._helper).css({ width: this.element.outerWidth() + g, height: this.element.outerHeight() + g, position: "absolute", left: this.elementOffset.left - f + "px", top: this.elementOffset.top - f + "px", zIndex: ++h.zIndex }); this.helper.appendTo("body").disableSelection() } else { this.helper = this.element } }, _change: { e: function(f, e, d) { return { width: this.originalSize.width + e} }, w: function(g, e, d) { var i = this.options, f = this.originalSize, h = this.originalPosition; return { left: h.left + e, width: f.width - e} }, n: function(g, e, d) { var i = this.options, f = this.originalSize, h = this.originalPosition; return { top: h.top + d, height: f.height - d} }, s: function(f, e, d) { return { height: this.originalSize.height + d} }, se: function(f, e, d) { return c.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [f, e, d])) }, sw: function(f, e, d) { return c.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [f, e, d])) }, ne: function(f, e, d) { return c.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [f, e, d])) }, nw: function(f, e, d) { return c.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [f, e, d])) } }, _propagate: function(e, d) { c.ui.plugin.call(this, e, [d, this.ui()]); (e != "resize" && this._trigger(e, d, this.ui())) }, plugins: {}, ui: function() { return { originalElement: this.originalElement, element: this.element, helper: this.helper, position: this.position, size: this.size, originalSize: this.originalSize, originalPosition: this.originalPosition} } })); c.extend(c.ui.resizable, { version: "1.7.2", eventPrefix: "resize", defaults: { alsoResize: false, animate: false, animateDuration: "slow", animateEasing: "swing", aspectRatio: false, autoHide: false, cancel: ":input,option", containment: false, delay: 0, distance: 1, ghost: false, grid: false, handles: "e,s,se", helper: false, maxHeight: null, maxWidth: null, minHeight: 10, minWidth: 10, zIndex: 1000} }); c.ui.plugin.add("resizable", "alsoResize", { start: function(e, f) { var d = c(this).data("resizable"), g = d.options; _store = function(h) { c(h).each(function() { c(this).data("resizable-alsoresize", { width: parseInt(c(this).width(), 10), height: parseInt(c(this).height(), 10), left: parseInt(c(this).css("left"), 10), top: parseInt(c(this).css("top"), 10) }) }) }; if (typeof (g.alsoResize) == "object" && !g.alsoResize.parentNode) { if (g.alsoResize.length) { g.alsoResize = g.alsoResize[0]; _store(g.alsoResize) } else { c.each(g.alsoResize, function(h, i) { _store(h) }) } } else { _store(g.alsoResize) } }, resize: function(f, h) { var e = c(this).data("resizable"), i = e.options, g = e.originalSize, k = e.originalPosition; var j = { height: (e.size.height - g.height) || 0, width: (e.size.width - g.width) || 0, top: (e.position.top - k.top) || 0, left: (e.position.left - k.left) || 0 }, d = function(l, m) { c(l).each(function() { var p = c(this), q = c(this).data("resizable-alsoresize"), o = {}, n = m && m.length ? m : ["width", "height", "top", "left"]; c.each(n || ["width", "height", "top", "left"], function(r, t) { var s = (q[t] || 0) + (j[t] || 0); if (s && s >= 0) { o[t] = s || null } }); if (/relative/.test(p.css("position")) && c.browser.opera) { e._revertToRelativePosition = true; p.css({ position: "absolute", top: "auto", left: "auto" }) } p.css(o) }) }; if (typeof (i.alsoResize) == "object" && !i.alsoResize.nodeType) { c.each(i.alsoResize, function(l, m) { d(l, m) }) } else { d(i.alsoResize) } }, stop: function(e, f) { var d = c(this).data("resizable"); if (d._revertToRelativePosition && c.browser.opera) { d._revertToRelativePosition = false; el.css({ position: "relative" }) } c(this).removeData("resizable-alsoresize-start") } }); c.ui.plugin.add("resizable", "animate", { stop: function(h, m) { var n = c(this).data("resizable"), i = n.options; var g = n._proportionallyResizeElements, d = g.length && (/textarea/i).test(g[0].nodeName), e = d && c.ui.hasScroll(g[0], "left") ? 0 : n.sizeDiff.height, k = d ? 0 : n.sizeDiff.width; var f = { width: (n.size.width - k), height: (n.size.height - e) }, j = (parseInt(n.element.css("left"), 10) + (n.position.left - n.originalPosition.left)) || null, l = (parseInt(n.element.css("top"), 10) + (n.position.top - n.originalPosition.top)) || null; n.element.animate(c.extend(f, l && j ? { top: l, left: j} : {}), { duration: i.animateDuration, easing: i.animateEasing, step: function() { var o = { width: parseInt(n.element.css("width"), 10), height: parseInt(n.element.css("height"), 10), top: parseInt(n.element.css("top"), 10), left: parseInt(n.element.css("left"), 10) }; if (g && g.length) { c(g[0]).css({ width: o.width, height: o.height }) } n._updateCache(o); n._propagate("resize", h) } }) } }); c.ui.plugin.add("resizable", "containment", { start: function(e, q) { var s = c(this).data("resizable"), i = s.options, k = s.element; var f = i.containment, j = (f instanceof c) ? f.get(0) : (/parent/.test(f)) ? k.parent().get(0) : f; if (!j) { return } s.containerElement = c(j); if (/document/.test(f) || f == document) { s.containerOffset = { left: 0, top: 0 }; s.containerPosition = { left: 0, top: 0 }; s.parentData = { element: c(document), left: 0, top: 0, width: c(document).width(), height: c(document).height() || document.body.parentNode.scrollHeight} } else { var m = c(j), h = []; c(["Top", "Right", "Left", "Bottom"]).each(function(p, o) { h[p] = b(m.css("padding" + o)) }); s.containerOffset = m.offset(); s.containerPosition = m.position(); s.containerSize = { height: (m.innerHeight() - h[3]), width: (m.innerWidth() - h[1]) }; var n = s.containerOffset, d = s.containerSize.height, l = s.containerSize.width, g = (c.ui.hasScroll(j, "left") ? j.scrollWidth : l), r = (c.ui.hasScroll(j) ? j.scrollHeight : d); s.parentData = { element: j, left: n.left, top: n.top, width: g, height: r} } }, resize: function(f, p) { var s = c(this).data("resizable"), h = s.options, e = s.containerSize, n = s.containerOffset, l = s.size, m = s.position, q = s._aspectRatio || f.shiftKey, d = { top: 0, left: 0 }, g = s.containerElement; if (g[0] != document && (/static/).test(g.css("position"))) { d = n } if (m.left < (s._helper ? n.left : 0)) { s.size.width = s.size.width + (s._helper ? (s.position.left - n.left) : (s.position.left - d.left)); if (q) { s.size.height = s.size.width / h.aspectRatio } s.position.left = h.helper ? n.left : 0 } if (m.top < (s._helper ? n.top : 0)) { s.size.height = s.size.height + (s._helper ? (s.position.top - n.top) : s.position.top); if (q) { s.size.width = s.size.height * h.aspectRatio } s.position.top = s._helper ? n.top : 0 } s.offset.left = s.parentData.left + s.position.left; s.offset.top = s.parentData.top + s.position.top; var k = Math.abs((s._helper ? s.offset.left - d.left : (s.offset.left - d.left)) + s.sizeDiff.width), r = Math.abs((s._helper ? s.offset.top - d.top : (s.offset.top - n.top)) + s.sizeDiff.height); var j = s.containerElement.get(0) == s.element.parent().get(0), i = /relative|absolute/.test(s.containerElement.css("position")); if (j && i) { k -= s.parentData.left } if (k + s.size.width >= s.parentData.width) { s.size.width = s.parentData.width - k; if (q) { s.size.height = s.size.width / s.aspectRatio } } if (r + s.size.height >= s.parentData.height) { s.size.height = s.parentData.height - r; if (q) { s.size.width = s.size.height * s.aspectRatio } } }, stop: function(e, m) { var p = c(this).data("resizable"), f = p.options, k = p.position, l = p.containerOffset, d = p.containerPosition, g = p.containerElement; var i = c(p.helper), q = i.offset(), n = i.outerWidth() - p.sizeDiff.width, j = i.outerHeight() - p.sizeDiff.height; if (p._helper && !f.animate && (/relative/).test(g.css("position"))) { c(this).css({ left: q.left - d.left - l.left, width: n, height: j }) } if (p._helper && !f.animate && (/static/).test(g.css("position"))) { c(this).css({ left: q.left - d.left - l.left, width: n, height: j }) } } }); c.ui.plugin.add("resizable", "ghost", { start: function(f, g) { var d = c(this).data("resizable"), h = d.options, e = d.size; d.ghost = d.originalElement.clone(); d.ghost.css({ opacity: 0.25, display: "block", position: "relative", height: e.height, width: e.width, margin: 0, left: 0, top: 0 }).addClass("ui-resizable-ghost").addClass(typeof h.ghost == "string" ? h.ghost : ""); d.ghost.appendTo(d.helper) }, resize: function(e, f) { var d = c(this).data("resizable"), g = d.options; if (d.ghost) { d.ghost.css({ position: "relative", height: d.size.height, width: d.size.width }) } }, stop: function(e, f) { var d = c(this).data("resizable"), g = d.options; if (d.ghost && d.helper) { d.helper.get(0).removeChild(d.ghost.get(0)) } } }); c.ui.plugin.add("resizable", "grid", { resize: function(d, l) { var n = c(this).data("resizable"), g = n.options, j = n.size, h = n.originalSize, i = n.originalPosition, m = n.axis, k = g._aspectRatio || d.shiftKey; g.grid = typeof g.grid == "number" ? [g.grid, g.grid] : g.grid; var f = Math.round((j.width - h.width) / (g.grid[0] || 1)) * (g.grid[0] || 1), e = Math.round((j.height - h.height) / (g.grid[1] || 1)) * (g.grid[1] || 1); if (/^(se|s|e)$/.test(m)) { n.size.width = h.width + f; n.size.height = h.height + e } else { if (/^(ne)$/.test(m)) { n.size.width = h.width + f; n.size.height = h.height + e; n.position.top = i.top - e } else { if (/^(sw)$/.test(m)) { n.size.width = h.width + f; n.size.height = h.height + e; n.position.left = i.left - f } else { n.size.width = h.width + f; n.size.height = h.height + e; n.position.top = i.top - e; n.position.left = i.left - f } } } } }); var b = function(d) { return parseInt(d, 10) || 0 }; var a = function(d) { return !isNaN(parseInt(d, 10)) } })(jQuery); ; /*
 * jQuery UI Selectable 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Selectables
 *
 * Depends:
 *	ui.core.js
 */
(function(a) { a.widget("ui.selectable", a.extend({}, a.ui.mouse, { _init: function() { var b = this; this.element.addClass("ui-selectable"); this.dragged = false; var c; this.refresh = function() { c = a(b.options.filter, b.element[0]); c.each(function() { var d = a(this); var e = d.offset(); a.data(this, "selectable-item", { element: this, $element: d, left: e.left, top: e.top, right: e.left + d.outerWidth(), bottom: e.top + d.outerHeight(), startselected: false, selected: d.hasClass("ui-selected"), selecting: d.hasClass("ui-selecting"), unselecting: d.hasClass("ui-unselecting") }) }) }; this.refresh(); this.selectees = c.addClass("ui-selectee"); this._mouseInit(); this.helper = a(document.createElement("div")).css({ border: "1px dotted black" }).addClass("ui-selectable-helper") }, destroy: function() { this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"); this._mouseDestroy() }, _mouseStart: function(d) { var b = this; this.opos = [d.pageX, d.pageY]; if (this.options.disabled) { return } var c = this.options; this.selectees = a(c.filter, this.element[0]); this._trigger("start", d); a(c.appendTo).append(this.helper); this.helper.css({ "z-index": 100, position: "absolute", left: d.clientX, top: d.clientY, width: 0, height: 0 }); if (c.autoRefresh) { this.refresh() } this.selectees.filter(".ui-selected").each(function() { var e = a.data(this, "selectable-item"); e.startselected = true; if (!d.metaKey) { e.$element.removeClass("ui-selected"); e.selected = false; e.$element.addClass("ui-unselecting"); e.unselecting = true; b._trigger("unselecting", d, { unselecting: e.element }) } }); a(d.target).parents().andSelf().each(function() { var e = a.data(this, "selectable-item"); if (e) { e.$element.removeClass("ui-unselecting").addClass("ui-selecting"); e.unselecting = false; e.selecting = true; e.selected = true; b._trigger("selecting", d, { selecting: e.element }); return false } }) }, _mouseDrag: function(i) { var c = this; this.dragged = true; if (this.options.disabled) { return } var e = this.options; var d = this.opos[0], h = this.opos[1], b = i.pageX, g = i.pageY; if (d > b) { var f = b; b = d; d = f } if (h > g) { var f = g; g = h; h = f } this.helper.css({ left: d, top: h, width: b - d, height: g - h }); this.selectees.each(function() { var j = a.data(this, "selectable-item"); if (!j || j.element == c.element[0]) { return } var k = false; if (e.tolerance == "touch") { k = (!(j.left > b || j.right < d || j.top > g || j.bottom < h)) } else { if (e.tolerance == "fit") { k = (j.left > d && j.right < b && j.top > h && j.bottom < g) } } if (k) { if (j.selected) { j.$element.removeClass("ui-selected"); j.selected = false } if (j.unselecting) { j.$element.removeClass("ui-unselecting"); j.unselecting = false } if (!j.selecting) { j.$element.addClass("ui-selecting"); j.selecting = true; c._trigger("selecting", i, { selecting: j.element }) } } else { if (j.selecting) { if (i.metaKey && j.startselected) { j.$element.removeClass("ui-selecting"); j.selecting = false; j.$element.addClass("ui-selected"); j.selected = true } else { j.$element.removeClass("ui-selecting"); j.selecting = false; if (j.startselected) { j.$element.addClass("ui-unselecting"); j.unselecting = true } c._trigger("unselecting", i, { unselecting: j.element }) } } if (j.selected) { if (!i.metaKey && !j.startselected) { j.$element.removeClass("ui-selected"); j.selected = false; j.$element.addClass("ui-unselecting"); j.unselecting = true; c._trigger("unselecting", i, { unselecting: j.element }) } } } }); return false }, _mouseStop: function(d) { var b = this; this.dragged = false; var c = this.options; a(".ui-unselecting", this.element[0]).each(function() { var e = a.data(this, "selectable-item"); e.$element.removeClass("ui-unselecting"); e.unselecting = false; e.startselected = false; b._trigger("unselected", d, { unselected: e.element }) }); a(".ui-selecting", this.element[0]).each(function() { var e = a.data(this, "selectable-item"); e.$element.removeClass("ui-selecting").addClass("ui-selected"); e.selecting = false; e.selected = true; e.startselected = true; b._trigger("selected", d, { selected: e.element }) }); this._trigger("stop", d); this.helper.remove(); return false } })); a.extend(a.ui.selectable, { version: "1.7.2", defaults: { appendTo: "body", autoRefresh: true, cancel: ":input,option", delay: 0, distance: 0, filter: "*", tolerance: "touch"} }) })(jQuery); ; /*
 * jQuery UI Sortable 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Sortables
 *
 * Depends:
 *	ui.core.js
 */
(function(a) { a.widget("ui.sortable", a.extend({}, a.ui.mouse, { _init: function() { var b = this.options; this.containerCache = {}; this.element.addClass("ui-sortable"); this.refresh(); this.floating = this.items.length ? (/left|right/).test(this.items[0].item.css("float")) : false; this.offset = this.element.offset(); this._mouseInit() }, destroy: function() { this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable"); this._mouseDestroy(); for (var b = this.items.length - 1; b >= 0; b--) { this.items[b].item.removeData("sortable-item") } }, _mouseCapture: function(e, f) { if (this.reverting) { return false } if (this.options.disabled || this.options.type == "static") { return false } this._refreshItems(e); var d = null, c = this, b = a(e.target).parents().each(function() { if (a.data(this, "sortable-item") == c) { d = a(this); return false } }); if (a.data(e.target, "sortable-item") == c) { d = a(e.target) } if (!d) { return false } if (this.options.handle && !f) { var g = false; a(this.options.handle, d).find("*").andSelf().each(function() { if (this == e.target) { g = true } }); if (!g) { return false } } this.currentItem = d; this._removeCurrentsFromItems(); return true }, _mouseStart: function(e, f, b) { var g = this.options, c = this; this.currentContainer = this; this.refreshPositions(); this.helper = this._createHelper(e); this._cacheHelperProportions(); this._cacheMargins(); this.scrollParent = this.helper.scrollParent(); this.offset = this.currentItem.offset(); this.offset = { top: this.offset.top - this.margins.top, left: this.offset.left - this.margins.left }; this.helper.css("position", "absolute"); this.cssPosition = this.helper.css("position"); a.extend(this.offset, { click: { left: e.pageX - this.offset.left, top: e.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() }); this.originalPosition = this._generatePosition(e); this.originalPageX = e.pageX; this.originalPageY = e.pageY; if (g.cursorAt) { this._adjustOffsetFromHelper(g.cursorAt) } this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }; if (this.helper[0] != this.currentItem[0]) { this.currentItem.hide() } this._createPlaceholder(); if (g.containment) { this._setContainment() } if (g.cursor) { if (a("body").css("cursor")) { this._storedCursor = a("body").css("cursor") } a("body").css("cursor", g.cursor) } if (g.opacity) { if (this.helper.css("opacity")) { this._storedOpacity = this.helper.css("opacity") } this.helper.css("opacity", g.opacity) } if (g.zIndex) { if (this.helper.css("zIndex")) { this._storedZIndex = this.helper.css("zIndex") } this.helper.css("zIndex", g.zIndex) } if (this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML") { this.overflowOffset = this.scrollParent.offset() } this._trigger("start", e, this._uiHash()); if (!this._preserveHelperProportions) { this._cacheHelperProportions() } if (!b) { for (var d = this.containers.length - 1; d >= 0; d--) { this.containers[d]._trigger("activate", e, c._uiHash(this)) } } if (a.ui.ddmanager) { a.ui.ddmanager.current = this } if (a.ui.ddmanager && !g.dropBehaviour) { a.ui.ddmanager.prepareOffsets(this, e) } this.dragging = true; this.helper.addClass("ui-sortable-helper"); this._mouseDrag(e); return true }, _mouseDrag: function(f) { this.position = this._generatePosition(f); this.positionAbs = this._convertPositionTo("absolute"); if (!this.lastPositionAbs) { this.lastPositionAbs = this.positionAbs } if (this.options.scroll) { var g = this.options, b = false; if (this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML") { if ((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - f.pageY < g.scrollSensitivity) { this.scrollParent[0].scrollTop = b = this.scrollParent[0].scrollTop + g.scrollSpeed } else { if (f.pageY - this.overflowOffset.top < g.scrollSensitivity) { this.scrollParent[0].scrollTop = b = this.scrollParent[0].scrollTop - g.scrollSpeed } } if ((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - f.pageX < g.scrollSensitivity) { this.scrollParent[0].scrollLeft = b = this.scrollParent[0].scrollLeft + g.scrollSpeed } else { if (f.pageX - this.overflowOffset.left < g.scrollSensitivity) { this.scrollParent[0].scrollLeft = b = this.scrollParent[0].scrollLeft - g.scrollSpeed } } } else { if (f.pageY - a(document).scrollTop() < g.scrollSensitivity) { b = a(document).scrollTop(a(document).scrollTop() - g.scrollSpeed) } else { if (a(window).height() - (f.pageY - a(document).scrollTop()) < g.scrollSensitivity) { b = a(document).scrollTop(a(document).scrollTop() + g.scrollSpeed) } } if (f.pageX - a(document).scrollLeft() < g.scrollSensitivity) { b = a(document).scrollLeft(a(document).scrollLeft() - g.scrollSpeed) } else { if (a(window).width() - (f.pageX - a(document).scrollLeft()) < g.scrollSensitivity) { b = a(document).scrollLeft(a(document).scrollLeft() + g.scrollSpeed) } } } if (b !== false && a.ui.ddmanager && !g.dropBehaviour) { a.ui.ddmanager.prepareOffsets(this, f) } } this.positionAbs = this._convertPositionTo("absolute"); if (!this.options.axis || this.options.axis != "y") { this.helper[0].style.left = this.position.left + "px" } if (!this.options.axis || this.options.axis != "x") { this.helper[0].style.top = this.position.top + "px" } for (var d = this.items.length - 1; d >= 0; d--) { var e = this.items[d], c = e.item[0], h = this._intersectsWithPointer(e); if (!h) { continue } if (c != this.currentItem[0] && this.placeholder[h == 1 ? "next" : "prev"]()[0] != c && !a.ui.contains(this.placeholder[0], c) && (this.options.type == "semi-dynamic" ? !a.ui.contains(this.element[0], c) : true)) { this.direction = h == 1 ? "down" : "up"; if (this.options.tolerance == "pointer" || this._intersectsWithSides(e)) { this._rearrange(f, e) } else { break } this._trigger("change", f, this._uiHash()); break } } this._contactContainers(f); if (a.ui.ddmanager) { a.ui.ddmanager.drag(this, f) } this._trigger("sort", f, this._uiHash()); this.lastPositionAbs = this.positionAbs; return false }, _mouseStop: function(c, d) { if (!c) { return } if (a.ui.ddmanager && !this.options.dropBehaviour) { a.ui.ddmanager.drop(this, c) } if (this.options.revert) { var b = this; var e = b.placeholder.offset(); b.reverting = true; a(this.helper).animate({ left: e.left - this.offset.parent.left - b.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft), top: e.top - this.offset.parent.top - b.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop) }, parseInt(this.options.revert, 10) || 500, function() { b._clear(c) }) } else { this._clear(c, d) } return false }, cancel: function() { var b = this; if (this.dragging) { this._mouseUp(); if (this.options.helper == "original") { this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") } else { this.currentItem.show() } for (var c = this.containers.length - 1; c >= 0; c--) { this.containers[c]._trigger("deactivate", null, b._uiHash(this)); if (this.containers[c].containerCache.over) { this.containers[c]._trigger("out", null, b._uiHash(this)); this.containers[c].containerCache.over = 0 } } } if (this.placeholder[0].parentNode) { this.placeholder[0].parentNode.removeChild(this.placeholder[0]) } if (this.options.helper != "original" && this.helper && this.helper[0].parentNode) { this.helper.remove() } a.extend(this, { helper: null, dragging: false, reverting: false, _noFinalSort: null }); if (this.domPosition.prev) { a(this.domPosition.prev).after(this.currentItem) } else { a(this.domPosition.parent).prepend(this.currentItem) } return true }, serialize: function(d) { var b = this._getItemsAsjQuery(d && d.connected); var c = []; d = d || {}; a(b).each(function() { var e = (a(d.item || this).attr(d.attribute || "id") || "").match(d.expression || (/(.+)[-=_](.+)/)); if (e) { c.push((d.key || e[1] + "[]") + "=" + (d.key && d.expression ? e[1] : e[2])) } }); return c.join("&") }, toArray: function(d) { var b = this._getItemsAsjQuery(d && d.connected); var c = []; d = d || {}; b.each(function() { c.push(a(d.item || this).attr(d.attribute || "id") || "") }); return c }, _intersectsWith: function(m) { var e = this.positionAbs.left, d = e + this.helperProportions.width, k = this.positionAbs.top, j = k + this.helperProportions.height; var f = m.left, c = f + m.width, n = m.top, i = n + m.height; var o = this.offset.click.top, h = this.offset.click.left; var g = (k + o) > n && (k + o) < i && (e + h) > f && (e + h) < c; if (this.options.tolerance == "pointer" || this.options.forcePointerForContainers || (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? "width" : "height"] > m[this.floating ? "width" : "height"])) { return g } else { return (f < e + (this.helperProportions.width / 2) && d - (this.helperProportions.width / 2) < c && n < k + (this.helperProportions.height / 2) && j - (this.helperProportions.height / 2) < i) } }, _intersectsWithPointer: function(d) { var e = a.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, d.top, d.height), c = a.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, d.left, d.width), g = e && c, b = this._getDragVerticalDirection(), f = this._getDragHorizontalDirection(); if (!g) { return false } return this.floating ? (((f && f == "right") || b == "down") ? 2 : 1) : (b && (b == "down" ? 2 : 1)) }, _intersectsWithSides: function(e) { var c = a.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, e.top + (e.height / 2), e.height), d = a.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, e.left + (e.width / 2), e.width), b = this._getDragVerticalDirection(), f = this._getDragHorizontalDirection(); if (this.floating && f) { return ((f == "right" && d) || (f == "left" && !d)) } else { return b && ((b == "down" && c) || (b == "up" && !c)) } }, _getDragVerticalDirection: function() { var b = this.positionAbs.top - this.lastPositionAbs.top; return b != 0 && (b > 0 ? "down" : "up") }, _getDragHorizontalDirection: function() { var b = this.positionAbs.left - this.lastPositionAbs.left; return b != 0 && (b > 0 ? "right" : "left") }, refresh: function(b) { this._refreshItems(b); this.refreshPositions() }, _connectWith: function() { var b = this.options; return b.connectWith.constructor == String ? [b.connectWith] : b.connectWith }, _getItemsAsjQuery: function(b) { var l = this; var g = []; var e = []; var h = this._connectWith(); if (h && b) { for (var d = h.length - 1; d >= 0; d--) { var k = a(h[d]); for (var c = k.length - 1; c >= 0; c--) { var f = a.data(k[c], "sortable"); if (f && f != this && !f.options.disabled) { e.push([a.isFunction(f.options.items) ? f.options.items.call(f.element) : a(f.options.items, f.element).not(".ui-sortable-helper"), f]) } } } } e.push([a.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : a(this.options.items, this.element).not(".ui-sortable-helper"), this]); for (var d = e.length - 1; d >= 0; d--) { e[d][0].each(function() { g.push(this) }) } return a(g) }, _removeCurrentsFromItems: function() { var d = this.currentItem.find(":data(sortable-item)"); for (var c = 0; c < this.items.length; c++) { for (var b = 0; b < d.length; b++) { if (d[b] == this.items[c].item[0]) { this.items.splice(c, 1) } } } }, _refreshItems: function(b) { this.items = []; this.containers = [this]; var h = this.items; var p = this; var f = [[a.isFunction(this.options.items) ? this.options.items.call(this.element[0], b, { item: this.currentItem }) : a(this.options.items, this.element), this]]; var l = this._connectWith(); if (l) { for (var e = l.length - 1; e >= 0; e--) { var m = a(l[e]); for (var d = m.length - 1; d >= 0; d--) { var g = a.data(m[d], "sortable"); if (g && g != this && !g.options.disabled) { f.push([a.isFunction(g.options.items) ? g.options.items.call(g.element[0], b, { item: this.currentItem }) : a(g.options.items, g.element), g]); this.containers.push(g) } } } } for (var e = f.length - 1; e >= 0; e--) { var k = f[e][1]; var c = f[e][0]; for (var d = 0, n = c.length; d < n; d++) { var o = a(c[d]); o.data("sortable-item", k); h.push({ item: o, instance: k, width: 0, height: 0, left: 0, top: 0 }) } } }, refreshPositions: function(b) { if (this.offsetParent && this.helper) { this.offset.parent = this._getParentOffset() } for (var d = this.items.length - 1; d >= 0; d--) { var e = this.items[d]; if (e.instance != this.currentContainer && this.currentContainer && e.item[0] != this.currentItem[0]) { continue } var c = this.options.toleranceElement ? a(this.options.toleranceElement, e.item) : e.item; if (!b) { e.width = c.outerWidth(); e.height = c.outerHeight() } var f = c.offset(); e.left = f.left; e.top = f.top } if (this.options.custom && this.options.custom.refreshContainers) { this.options.custom.refreshContainers.call(this) } else { for (var d = this.containers.length - 1; d >= 0; d--) { var f = this.containers[d].element.offset(); this.containers[d].containerCache.left = f.left; this.containers[d].containerCache.top = f.top; this.containers[d].containerCache.width = this.containers[d].element.outerWidth(); this.containers[d].containerCache.height = this.containers[d].element.outerHeight() } } }, _createPlaceholder: function(d) { var b = d || this, e = b.options; if (!e.placeholder || e.placeholder.constructor == String) { var c = e.placeholder; e.placeholder = { element: function() { var f = a(document.createElement(b.currentItem[0].nodeName)).addClass(c || b.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper")[0]; if (!c) { f.style.visibility = "hidden" } return f }, update: function(f, g) { if (c && !e.forcePlaceholderSize) { return } if (!g.height()) { g.height(b.currentItem.innerHeight() - parseInt(b.currentItem.css("paddingTop") || 0, 10) - parseInt(b.currentItem.css("paddingBottom") || 0, 10)) } if (!g.width()) { g.width(b.currentItem.innerWidth() - parseInt(b.currentItem.css("paddingLeft") || 0, 10) - parseInt(b.currentItem.css("paddingRight") || 0, 10)) } } } } b.placeholder = a(e.placeholder.element.call(b.element, b.currentItem)); b.currentItem.after(b.placeholder); e.placeholder.update(b, b.placeholder) }, _contactContainers: function(d) { for (var c = this.containers.length - 1; c >= 0; c--) { if (this._intersectsWith(this.containers[c].containerCache)) { if (!this.containers[c].containerCache.over) { if (this.currentContainer != this.containers[c]) { var h = 10000; var g = null; var e = this.positionAbs[this.containers[c].floating ? "left" : "top"]; for (var b = this.items.length - 1; b >= 0; b--) { if (!a.ui.contains(this.containers[c].element[0], this.items[b].item[0])) { continue } var f = this.items[b][this.containers[c].floating ? "left" : "top"]; if (Math.abs(f - e) < h) { h = Math.abs(f - e); g = this.items[b] } } if (!g && !this.options.dropOnEmpty) { continue } this.currentContainer = this.containers[c]; g ? this._rearrange(d, g, null, true) : this._rearrange(d, null, this.containers[c].element, true); this._trigger("change", d, this._uiHash()); this.containers[c]._trigger("change", d, this._uiHash(this)); this.options.placeholder.update(this.currentContainer, this.placeholder) } this.containers[c]._trigger("over", d, this._uiHash(this)); this.containers[c].containerCache.over = 1 } } else { if (this.containers[c].containerCache.over) { this.containers[c]._trigger("out", d, this._uiHash(this)); this.containers[c].containerCache.over = 0 } } } }, _createHelper: function(c) { var d = this.options; var b = a.isFunction(d.helper) ? a(d.helper.apply(this.element[0], [c, this.currentItem])) : (d.helper == "clone" ? this.currentItem.clone() : this.currentItem); if (!b.parents("body").length) { a(d.appendTo != "parent" ? d.appendTo : this.currentItem[0].parentNode)[0].appendChild(b[0]) } if (b[0] == this.currentItem[0]) { this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left")} } if (b[0].style.width == "" || d.forceHelperSize) { b.width(this.currentItem.width()) } if (b[0].style.height == "" || d.forceHelperSize) { b.height(this.currentItem.height()) } return b }, _adjustOffsetFromHelper: function(b) { if (b.left != undefined) { this.offset.click.left = b.left + this.margins.left } if (b.right != undefined) { this.offset.click.left = this.helperProportions.width - b.right + this.margins.left } if (b.top != undefined) { this.offset.click.top = b.top + this.margins.top } if (b.bottom != undefined) { this.offset.click.top = this.helperProportions.height - b.bottom + this.margins.top } }, _getParentOffset: function() { this.offsetParent = this.helper.offsetParent(); var b = this.offsetParent.offset(); if (this.cssPosition == "absolute" && this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0])) { b.left += this.scrollParent.scrollLeft(); b.top += this.scrollParent.scrollTop() } if ((this.offsetParent[0] == document.body) || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && a.browser.msie)) { b = { top: 0, left: 0} } return { top: b.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left: b.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)} }, _getRelativeOffset: function() { if (this.cssPosition == "relative") { var b = this.currentItem.position(); return { top: b.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), left: b.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()} } else { return { top: 0, left: 0} } }, _cacheMargins: function() { this.margins = { left: (parseInt(this.currentItem.css("marginLeft"), 10) || 0), top: (parseInt(this.currentItem.css("marginTop"), 10) || 0)} }, _cacheHelperProportions: function() { this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight()} }, _setContainment: function() { var e = this.options; if (e.containment == "parent") { e.containment = this.helper[0].parentNode } if (e.containment == "document" || e.containment == "window") { this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, a(e.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (a(e.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top] } if (!(/^(document|window|parent)$/).test(e.containment)) { var c = a(e.containment)[0]; var d = a(e.containment).offset(); var b = (a(c).css("overflow") != "hidden"); this.containment = [d.left + (parseInt(a(c).css("borderLeftWidth"), 10) || 0) + (parseInt(a(c).css("paddingLeft"), 10) || 0) - this.margins.left, d.top + (parseInt(a(c).css("borderTopWidth"), 10) || 0) + (parseInt(a(c).css("paddingTop"), 10) || 0) - this.margins.top, d.left + (b ? Math.max(c.scrollWidth, c.offsetWidth) : c.offsetWidth) - (parseInt(a(c).css("borderLeftWidth"), 10) || 0) - (parseInt(a(c).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, d.top + (b ? Math.max(c.scrollHeight, c.offsetHeight) : c.offsetHeight) - (parseInt(a(c).css("borderTopWidth"), 10) || 0) - (parseInt(a(c).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top] } }, _convertPositionTo: function(f, h) { if (!h) { h = this.position } var c = f == "absolute" ? 1 : -1; var e = this.options, b = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, g = (/(html|body)/i).test(b[0].tagName); return { top: (h.top + this.offset.relative.top * c + this.offset.parent.top * c - (a.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : (g ? 0 : b.scrollTop())) * c)), left: (h.left + this.offset.relative.left * c + this.offset.parent.left * c - (a.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : g ? 0 : b.scrollLeft()) * c))} }, _generatePosition: function(e) { var h = this.options, b = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, i = (/(html|body)/i).test(b[0].tagName); if (this.cssPosition == "relative" && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) { this.offset.relative = this._getRelativeOffset() } var d = e.pageX; var c = e.pageY; if (this.originalPosition) { if (this.containment) { if (e.pageX - this.offset.click.left < this.containment[0]) { d = this.containment[0] + this.offset.click.left } if (e.pageY - this.offset.click.top < this.containment[1]) { c = this.containment[1] + this.offset.click.top } if (e.pageX - this.offset.click.left > this.containment[2]) { d = this.containment[2] + this.offset.click.left } if (e.pageY - this.offset.click.top > this.containment[3]) { c = this.containment[3] + this.offset.click.top } } if (h.grid) { var g = this.originalPageY + Math.round((c - this.originalPageY) / h.grid[1]) * h.grid[1]; c = this.containment ? (!(g - this.offset.click.top < this.containment[1] || g - this.offset.click.top > this.containment[3]) ? g : (!(g - this.offset.click.top < this.containment[1]) ? g - h.grid[1] : g + h.grid[1])) : g; var f = this.originalPageX + Math.round((d - this.originalPageX) / h.grid[0]) * h.grid[0]; d = this.containment ? (!(f - this.offset.click.left < this.containment[0] || f - this.offset.click.left > this.containment[2]) ? f : (!(f - this.offset.click.left < this.containment[0]) ? f - h.grid[0] : f + h.grid[0])) : f } } return { top: (c - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (a.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : (i ? 0 : b.scrollTop())))), left: (d - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (a.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : i ? 0 : b.scrollLeft())))} }, _rearrange: function(g, f, c, e) { c ? c[0].appendChild(this.placeholder[0]) : f.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == "down" ? f.item[0] : f.item[0].nextSibling)); this.counter = this.counter ? ++this.counter : 1; var d = this, b = this.counter; window.setTimeout(function() { if (b == d.counter) { d.refreshPositions(!e) } }, 0) }, _clear: function(d, e) { this.reverting = false; var f = [], b = this; if (!this._noFinalSort && this.currentItem[0].parentNode) { this.placeholder.before(this.currentItem) } this._noFinalSort = null; if (this.helper[0] == this.currentItem[0]) { for (var c in this._storedCSS) { if (this._storedCSS[c] == "auto" || this._storedCSS[c] == "static") { this._storedCSS[c] = "" } } this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") } else { this.currentItem.show() } if (this.fromOutside && !e) { f.push(function(g) { this._trigger("receive", g, this._uiHash(this.fromOutside)) }) } if ((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !e) { f.push(function(g) { this._trigger("update", g, this._uiHash()) }) } if (!a.ui.contains(this.element[0], this.currentItem[0])) { if (!e) { f.push(function(g) { this._trigger("remove", g, this._uiHash()) }) } for (var c = this.containers.length - 1; c >= 0; c--) { if (a.ui.contains(this.containers[c].element[0], this.currentItem[0]) && !e) { f.push((function(g) { return function(h) { g._trigger("receive", h, this._uiHash(this)) } }).call(this, this.containers[c])); f.push((function(g) { return function(h) { g._trigger("update", h, this._uiHash(this)) } }).call(this, this.containers[c])) } } } for (var c = this.containers.length - 1; c >= 0; c--) { if (!e) { f.push((function(g) { return function(h) { g._trigger("deactivate", h, this._uiHash(this)) } }).call(this, this.containers[c])) } if (this.containers[c].containerCache.over) { f.push((function(g) { return function(h) { g._trigger("out", h, this._uiHash(this)) } }).call(this, this.containers[c])); this.containers[c].containerCache.over = 0 } } if (this._storedCursor) { a("body").css("cursor", this._storedCursor) } if (this._storedOpacity) { this.helper.css("opacity", this._storedOpacity) } if (this._storedZIndex) { this.helper.css("zIndex", this._storedZIndex == "auto" ? "" : this._storedZIndex) } this.dragging = false; if (this.cancelHelperRemoval) { if (!e) { this._trigger("beforeStop", d, this._uiHash()); for (var c = 0; c < f.length; c++) { f[c].call(this, d) } this._trigger("stop", d, this._uiHash()) } return false } if (!e) { this._trigger("beforeStop", d, this._uiHash()) } this.placeholder[0].parentNode.removeChild(this.placeholder[0]); if (this.helper[0] != this.currentItem[0]) { this.helper.remove() } this.helper = null; if (!e) { for (var c = 0; c < f.length; c++) { f[c].call(this, d) } this._trigger("stop", d, this._uiHash()) } this.fromOutside = false; return true }, _trigger: function() { if (a.widget.prototype._trigger.apply(this, arguments) === false) { this.cancel() } }, _uiHash: function(c) { var b = c || this; return { helper: b.helper, placeholder: b.placeholder || a([]), position: b.position, absolutePosition: b.positionAbs, offset: b.positionAbs, item: b.currentItem, sender: c ? c.element : null} } })); a.extend(a.ui.sortable, { getter: "serialize toArray", version: "1.7.2", eventPrefix: "sort", defaults: { appendTo: "parent", axis: false, cancel: ":input,option", connectWith: false, containment: false, cursor: "auto", cursorAt: false, delay: 0, distance: 1, dropOnEmpty: true, forcePlaceholderSize: false, forceHelperSize: false, grid: false, handle: false, helper: "original", items: "> *", opacity: false, placeholder: false, revert: false, scroll: true, scrollSensitivity: 20, scrollSpeed: 20, scope: "default", tolerance: "intersect", zIndex: 1000} }) })(jQuery); ; /*
 * jQuery UI Effects 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/
 */
jQuery.effects || (function(d) { d.effects = { version: "1.7.2", save: function(g, h) { for (var f = 0; f < h.length; f++) { if (h[f] !== null) { g.data("ec.storage." + h[f], g[0].style[h[f]]) } } }, restore: function(g, h) { for (var f = 0; f < h.length; f++) { if (h[f] !== null) { g.css(h[f], g.data("ec.storage." + h[f])) } } }, setMode: function(f, g) { if (g == "toggle") { g = f.is(":hidden") ? "show" : "hide" } return g }, getBaseline: function(g, h) { var i, f; switch (g[0]) { case "top": i = 0; break; case "middle": i = 0.5; break; case "bottom": i = 1; break; default: i = g[0] / h.height } switch (g[1]) { case "left": f = 0; break; case "center": f = 0.5; break; case "right": f = 1; break; default: f = g[1] / h.width } return { x: f, y: i} }, createWrapper: function(f) { if (f.parent().is(".ui-effects-wrapper")) { return f.parent() } var g = { width: f.outerWidth(true), height: f.outerHeight(true), "float": f.css("float") }; f.wrap('<div class="ui-effects-wrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>'); var j = f.parent(); if (f.css("position") == "static") { j.css({ position: "relative" }); f.css({ position: "relative" }) } else { var i = f.css("top"); if (isNaN(parseInt(i, 10))) { i = "auto" } var h = f.css("left"); if (isNaN(parseInt(h, 10))) { h = "auto" } j.css({ position: f.css("position"), top: i, left: h, zIndex: f.css("z-index") }).show(); f.css({ position: "relative", top: 0, left: 0 }) } j.css(g); return j }, removeWrapper: function(f) { if (f.parent().is(".ui-effects-wrapper")) { return f.parent().replaceWith(f) } return f }, setTransition: function(g, i, f, h) { h = h || {}; d.each(i, function(k, j) { unit = g.cssUnit(j); if (unit[0] > 0) { h[j] = unit[0] * f + unit[1] } }); return h }, animateClass: function(h, i, k, j) { var f = (typeof k == "function" ? k : (j ? j : null)); var g = (typeof k == "string" ? k : null); return this.each(function() { var q = {}; var o = d(this); var p = o.attr("style") || ""; if (typeof p == "object") { p = p.cssText } if (h.toggle) { o.hasClass(h.toggle) ? h.remove = h.toggle : h.add = h.toggle } var l = d.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle)); if (h.add) { o.addClass(h.add) } if (h.remove) { o.removeClass(h.remove) } var m = d.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle)); if (h.add) { o.removeClass(h.add) } if (h.remove) { o.addClass(h.remove) } for (var r in m) { if (typeof m[r] != "function" && m[r] && r.indexOf("Moz") == -1 && r.indexOf("length") == -1 && m[r] != l[r] && (r.match(/color/i) || (!r.match(/color/i) && !isNaN(parseInt(m[r], 10)))) && (l.position != "static" || (l.position == "static" && !r.match(/left|top|bottom|right/)))) { q[r] = m[r] } } o.animate(q, i, g, function() { if (typeof d(this).attr("style") == "object") { d(this).attr("style")["cssText"] = ""; d(this).attr("style")["cssText"] = p } else { d(this).attr("style", p) } if (h.add) { d(this).addClass(h.add) } if (h.remove) { d(this).removeClass(h.remove) } if (f) { f.apply(this, arguments) } }) }) } }; function c(g, f) { var i = g[1] && g[1].constructor == Object ? g[1] : {}; if (f) { i.mode = f } var h = g[1] && g[1].constructor != Object ? g[1] : (i.duration ? i.duration : g[2]); h = d.fx.off ? 0 : typeof h === "number" ? h : d.fx.speeds[h] || d.fx.speeds._default; var j = i.callback || (d.isFunction(g[1]) && g[1]) || (d.isFunction(g[2]) && g[2]) || (d.isFunction(g[3]) && g[3]); return [g[0], i, h, j] } d.fn.extend({ _show: d.fn.show, _hide: d.fn.hide, __toggle: d.fn.toggle, _addClass: d.fn.addClass, _removeClass: d.fn.removeClass, _toggleClass: d.fn.toggleClass, effect: function(g, f, h, i) { return d.effects[g] ? d.effects[g].call(this, { method: g, options: f || {}, duration: h, callback: i }) : null }, show: function() { if (!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0]))) { return this._show.apply(this, arguments) } else { return this.effect.apply(this, c(arguments, "show")) } }, hide: function() { if (!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0]))) { return this._hide.apply(this, arguments) } else { return this.effect.apply(this, c(arguments, "hide")) } }, toggle: function() { if (!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0])) || (d.isFunction(arguments[0]) || typeof arguments[0] == "boolean")) { return this.__toggle.apply(this, arguments) } else { return this.effect.apply(this, c(arguments, "toggle")) } }, addClass: function(g, f, i, h) { return f ? d.effects.animateClass.apply(this, [{ add: g }, f, i, h]) : this._addClass(g) }, removeClass: function(g, f, i, h) { return f ? d.effects.animateClass.apply(this, [{ remove: g }, f, i, h]) : this._removeClass(g) }, toggleClass: function(g, f, i, h) { return ((typeof f !== "boolean") && f) ? d.effects.animateClass.apply(this, [{ toggle: g }, f, i, h]) : this._toggleClass(g, f) }, morph: function(f, h, g, j, i) { return d.effects.animateClass.apply(this, [{ add: h, remove: f }, g, j, i]) }, switchClass: function() { return this.morph.apply(this, arguments) }, cssUnit: function(f) { var g = this.css(f), h = []; d.each(["em", "px", "%", "pt"], function(j, k) { if (g.indexOf(k) > 0) { h = [parseFloat(g), k] } }); return h } }); d.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "color", "outlineColor"], function(g, f) { d.fx.step[f] = function(h) { if (h.state == 0) { h.start = e(h.elem, f); h.end = b(h.end) } h.elem.style[f] = "rgb(" + [Math.max(Math.min(parseInt((h.pos * (h.end[0] - h.start[0])) + h.start[0], 10), 255), 0), Math.max(Math.min(parseInt((h.pos * (h.end[1] - h.start[1])) + h.start[1], 10), 255), 0), Math.max(Math.min(parseInt((h.pos * (h.end[2] - h.start[2])) + h.start[2], 10), 255), 0)].join(",") + ")" } }); function b(g) { var f; if (g && g.constructor == Array && g.length == 3) { return g } if (f = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(g)) { return [parseInt(f[1], 10), parseInt(f[2], 10), parseInt(f[3], 10)] } if (f = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(g)) { return [parseFloat(f[1]) * 2.55, parseFloat(f[2]) * 2.55, parseFloat(f[3]) * 2.55] } if (f = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)) { return [parseInt(f[1], 16), parseInt(f[2], 16), parseInt(f[3], 16)] } if (f = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)) { return [parseInt(f[1] + f[1], 16), parseInt(f[2] + f[2], 16), parseInt(f[3] + f[3], 16)] } if (f = /rgba\(0, 0, 0, 0\)/.exec(g)) { return a.transparent } return a[d.trim(g).toLowerCase()] } function e(h, f) { var g; do { g = d.curCSS(h, f); if (g != "" && g != "transparent" || d.nodeName(h, "body")) { break } f = "backgroundColor" } while (h = h.parentNode); return b(g) } var a = { aqua: [0, 255, 255], azure: [240, 255, 255], beige: [245, 245, 220], black: [0, 0, 0], blue: [0, 0, 255], brown: [165, 42, 42], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgrey: [169, 169, 169], darkgreen: [0, 100, 0], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkviolet: [148, 0, 211], fuchsia: [255, 0, 255], gold: [255, 215, 0], green: [0, 128, 0], indigo: [75, 0, 130], khaki: [240, 230, 140], lightblue: [173, 216, 230], lightcyan: [224, 255, 255], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightyellow: [255, 255, 224], lime: [0, 255, 0], magenta: [255, 0, 255], maroon: [128, 0, 0], navy: [0, 0, 128], olive: [128, 128, 0], orange: [255, 165, 0], pink: [255, 192, 203], purple: [128, 0, 128], violet: [128, 0, 128], red: [255, 0, 0], silver: [192, 192, 192], white: [255, 255, 255], yellow: [255, 255, 0], transparent: [255, 255, 255] }; d.easing.jswing = d.easing.swing; d.extend(d.easing, { def: "easeOutQuad", swing: function(g, h, f, j, i) { return d.easing[d.easing.def](g, h, f, j, i) }, easeInQuad: function(g, h, f, j, i) { return j * (h /= i) * h + f }, easeOutQuad: function(g, h, f, j, i) { return -j * (h /= i) * (h - 2) + f }, easeInOutQuad: function(g, h, f, j, i) { if ((h /= i / 2) < 1) { return j / 2 * h * h + f } return -j / 2 * ((--h) * (h - 2) - 1) + f }, easeInCubic: function(g, h, f, j, i) { return j * (h /= i) * h * h + f }, easeOutCubic: function(g, h, f, j, i) { return j * ((h = h / i - 1) * h * h + 1) + f }, easeInOutCubic: function(g, h, f, j, i) { if ((h /= i / 2) < 1) { return j / 2 * h * h * h + f } return j / 2 * ((h -= 2) * h * h + 2) + f }, easeInQuart: function(g, h, f, j, i) { return j * (h /= i) * h * h * h + f }, easeOutQuart: function(g, h, f, j, i) { return -j * ((h = h / i - 1) * h * h * h - 1) + f }, easeInOutQuart: function(g, h, f, j, i) { if ((h /= i / 2) < 1) { return j / 2 * h * h * h * h + f } return -j / 2 * ((h -= 2) * h * h * h - 2) + f }, easeInQuint: function(g, h, f, j, i) { return j * (h /= i) * h * h * h * h + f }, easeOutQuint: function(g, h, f, j, i) { return j * ((h = h / i - 1) * h * h * h * h + 1) + f }, easeInOutQuint: function(g, h, f, j, i) { if ((h /= i / 2) < 1) { return j / 2 * h * h * h * h * h + f } return j / 2 * ((h -= 2) * h * h * h * h + 2) + f }, easeInSine: function(g, h, f, j, i) { return -j * Math.cos(h / i * (Math.PI / 2)) + j + f }, easeOutSine: function(g, h, f, j, i) { return j * Math.sin(h / i * (Math.PI / 2)) + f }, easeInOutSine: function(g, h, f, j, i) { return -j / 2 * (Math.cos(Math.PI * h / i) - 1) + f }, easeInExpo: function(g, h, f, j, i) { return (h == 0) ? f : j * Math.pow(2, 10 * (h / i - 1)) + f }, easeOutExpo: function(g, h, f, j, i) { return (h == i) ? f + j : j * (-Math.pow(2, -10 * h / i) + 1) + f }, easeInOutExpo: function(g, h, f, j, i) { if (h == 0) { return f } if (h == i) { return f + j } if ((h /= i / 2) < 1) { return j / 2 * Math.pow(2, 10 * (h - 1)) + f } return j / 2 * (-Math.pow(2, -10 * --h) + 2) + f }, easeInCirc: function(g, h, f, j, i) { return -j * (Math.sqrt(1 - (h /= i) * h) - 1) + f }, easeOutCirc: function(g, h, f, j, i) { return j * Math.sqrt(1 - (h = h / i - 1) * h) + f }, easeInOutCirc: function(g, h, f, j, i) { if ((h /= i / 2) < 1) { return -j / 2 * (Math.sqrt(1 - h * h) - 1) + f } return j / 2 * (Math.sqrt(1 - (h -= 2) * h) + 1) + f }, easeInElastic: function(g, i, f, m, l) { var j = 1.70158; var k = 0; var h = m; if (i == 0) { return f } if ((i /= l) == 1) { return f + m } if (!k) { k = l * 0.3 } if (h < Math.abs(m)) { h = m; var j = k / 4 } else { var j = k / (2 * Math.PI) * Math.asin(m / h) } return -(h * Math.pow(2, 10 * (i -= 1)) * Math.sin((i * l - j) * (2 * Math.PI) / k)) + f }, easeOutElastic: function(g, i, f, m, l) { var j = 1.70158; var k = 0; var h = m; if (i == 0) { return f } if ((i /= l) == 1) { return f + m } if (!k) { k = l * 0.3 } if (h < Math.abs(m)) { h = m; var j = k / 4 } else { var j = k / (2 * Math.PI) * Math.asin(m / h) } return h * Math.pow(2, -10 * i) * Math.sin((i * l - j) * (2 * Math.PI) / k) + m + f }, easeInOutElastic: function(g, i, f, m, l) { var j = 1.70158; var k = 0; var h = m; if (i == 0) { return f } if ((i /= l / 2) == 2) { return f + m } if (!k) { k = l * (0.3 * 1.5) } if (h < Math.abs(m)) { h = m; var j = k / 4 } else { var j = k / (2 * Math.PI) * Math.asin(m / h) } if (i < 1) { return -0.5 * (h * Math.pow(2, 10 * (i -= 1)) * Math.sin((i * l - j) * (2 * Math.PI) / k)) + f } return h * Math.pow(2, -10 * (i -= 1)) * Math.sin((i * l - j) * (2 * Math.PI) / k) * 0.5 + m + f }, easeInBack: function(g, h, f, k, j, i) { if (i == undefined) { i = 1.70158 } return k * (h /= j) * h * ((i + 1) * h - i) + f }, easeOutBack: function(g, h, f, k, j, i) { if (i == undefined) { i = 1.70158 } return k * ((h = h / j - 1) * h * ((i + 1) * h + i) + 1) + f }, easeInOutBack: function(g, h, f, k, j, i) { if (i == undefined) { i = 1.70158 } if ((h /= j / 2) < 1) { return k / 2 * (h * h * (((i *= (1.525)) + 1) * h - i)) + f } return k / 2 * ((h -= 2) * h * (((i *= (1.525)) + 1) * h + i) + 2) + f }, easeInBounce: function(g, h, f, j, i) { return j - d.easing.easeOutBounce(g, i - h, 0, j, i) + f }, easeOutBounce: function(g, h, f, j, i) { if ((h /= i) < (1 / 2.75)) { return j * (7.5625 * h * h) + f } else { if (h < (2 / 2.75)) { return j * (7.5625 * (h -= (1.5 / 2.75)) * h + 0.75) + f } else { if (h < (2.5 / 2.75)) { return j * (7.5625 * (h -= (2.25 / 2.75)) * h + 0.9375) + f } else { return j * (7.5625 * (h -= (2.625 / 2.75)) * h + 0.984375) + f } } } }, easeInOutBounce: function(g, h, f, j, i) { if (h < i / 2) { return d.easing.easeInBounce(g, h * 2, 0, j, i) * 0.5 + f } return d.easing.easeOutBounce(g, h * 2 - i, 0, j, i) * 0.5 + j * 0.5 + f } }) })(jQuery); ; /*
 * jQuery UI Effects Blind 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Blind
 *
 * Depends:
 *	effects.core.js
 */
(function(a) { a.effects.blind = function(b) { return this.queue(function() { var d = a(this), c = ["position", "top", "left"]; var h = a.effects.setMode(d, b.options.mode || "hide"); var g = b.options.direction || "vertical"; a.effects.save(d, c); d.show(); var j = a.effects.createWrapper(d).css({ overflow: "hidden" }); var e = (g == "vertical") ? "height" : "width"; var i = (g == "vertical") ? j.height() : j.width(); if (h == "show") { j.css(e, 0) } var f = {}; f[e] = h == "show" ? i : 0; j.animate(f, b.duration, b.options.easing, function() { if (h == "hide") { d.hide() } a.effects.restore(d, c); a.effects.removeWrapper(d); if (b.callback) { b.callback.apply(d[0], arguments) } d.dequeue() }) }) } })(jQuery); ; /*
 * jQuery UI Effects Bounce 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Bounce
 *
 * Depends:
 *	effects.core.js
 */
(function(a) { a.effects.bounce = function(b) { return this.queue(function() { var e = a(this), l = ["position", "top", "left"]; var k = a.effects.setMode(e, b.options.mode || "effect"); var n = b.options.direction || "up"; var c = b.options.distance || 20; var d = b.options.times || 5; var g = b.duration || 250; if (/show|hide/.test(k)) { l.push("opacity") } a.effects.save(e, l); e.show(); a.effects.createWrapper(e); var f = (n == "up" || n == "down") ? "top" : "left"; var p = (n == "up" || n == "left") ? "pos" : "neg"; var c = b.options.distance || (f == "top" ? e.outerHeight({ margin: true }) / 3 : e.outerWidth({ margin: true }) / 3); if (k == "show") { e.css("opacity", 0).css(f, p == "pos" ? -c : c) } if (k == "hide") { c = c / (d * 2) } if (k != "hide") { d-- } if (k == "show") { var h = { opacity: 1 }; h[f] = (p == "pos" ? "+=" : "-=") + c; e.animate(h, g / 2, b.options.easing); c = c / 2; d-- } for (var j = 0; j < d; j++) { var o = {}, m = {}; o[f] = (p == "pos" ? "-=" : "+=") + c; m[f] = (p == "pos" ? "+=" : "-=") + c; e.animate(o, g / 2, b.options.easing).animate(m, g / 2, b.options.easing); c = (k == "hide") ? c * 2 : c / 2 } if (k == "hide") { var h = { opacity: 0 }; h[f] = (p == "pos" ? "-=" : "+=") + c; e.animate(h, g / 2, b.options.easing, function() { e.hide(); a.effects.restore(e, l); a.effects.removeWrapper(e); if (b.callback) { b.callback.apply(this, arguments) } }) } else { var o = {}, m = {}; o[f] = (p == "pos" ? "-=" : "+=") + c; m[f] = (p == "pos" ? "+=" : "-=") + c; e.animate(o, g / 2, b.options.easing).animate(m, g / 2, b.options.easing, function() { a.effects.restore(e, l); a.effects.removeWrapper(e); if (b.callback) { b.callback.apply(this, arguments) } }) } e.queue("fx", function() { e.dequeue() }); e.dequeue() }) } })(jQuery); ; /*
 * jQuery UI Effects Clip 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Clip
 *
 * Depends:
 *	effects.core.js
 */
(function(a) { a.effects.clip = function(b) { return this.queue(function() { var f = a(this), j = ["position", "top", "left", "height", "width"]; var i = a.effects.setMode(f, b.options.mode || "hide"); var k = b.options.direction || "vertical"; a.effects.save(f, j); f.show(); var c = a.effects.createWrapper(f).css({ overflow: "hidden" }); var e = f[0].tagName == "IMG" ? c : f; var g = { size: (k == "vertical") ? "height" : "width", position: (k == "vertical") ? "top" : "left" }; var d = (k == "vertical") ? e.height() : e.width(); if (i == "show") { e.css(g.size, 0); e.css(g.position, d / 2) } var h = {}; h[g.size] = i == "show" ? d : 0; h[g.position] = i == "show" ? 0 : d / 2; e.animate(h, { queue: false, duration: b.duration, easing: b.options.easing, complete: function() { if (i == "hide") { f.hide() } a.effects.restore(f, j); a.effects.removeWrapper(f); if (b.callback) { b.callback.apply(f[0], arguments) } f.dequeue() } }) }) } })(jQuery); ; /*
 * jQuery UI Effects Drop 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Drop
 *
 * Depends:
 *	effects.core.js
 */
(function(a) { a.effects.drop = function(b) { return this.queue(function() { var e = a(this), d = ["position", "top", "left", "opacity"]; var i = a.effects.setMode(e, b.options.mode || "hide"); var h = b.options.direction || "left"; a.effects.save(e, d); e.show(); a.effects.createWrapper(e); var f = (h == "up" || h == "down") ? "top" : "left"; var c = (h == "up" || h == "left") ? "pos" : "neg"; var j = b.options.distance || (f == "top" ? e.outerHeight({ margin: true }) / 2 : e.outerWidth({ margin: true }) / 2); if (i == "show") { e.css("opacity", 0).css(f, c == "pos" ? -j : j) } var g = { opacity: i == "show" ? 1 : 0 }; g[f] = (i == "show" ? (c == "pos" ? "+=" : "-=") : (c == "pos" ? "-=" : "+=")) + j; e.animate(g, { queue: false, duration: b.duration, easing: b.options.easing, complete: function() { if (i == "hide") { e.hide() } a.effects.restore(e, d); a.effects.removeWrapper(e); if (b.callback) { b.callback.apply(this, arguments) } e.dequeue() } }) }) } })(jQuery); ; /*
 * jQuery UI Effects Explode 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Explode
 *
 * Depends:
 *	effects.core.js
 */
(function(a) { a.effects.explode = function(b) { return this.queue(function() { var k = b.options.pieces ? Math.round(Math.sqrt(b.options.pieces)) : 3; var e = b.options.pieces ? Math.round(Math.sqrt(b.options.pieces)) : 3; b.options.mode = b.options.mode == "toggle" ? (a(this).is(":visible") ? "hide" : "show") : b.options.mode; var h = a(this).show().css("visibility", "hidden"); var l = h.offset(); l.top -= parseInt(h.css("marginTop"), 10) || 0; l.left -= parseInt(h.css("marginLeft"), 10) || 0; var g = h.outerWidth(true); var c = h.outerHeight(true); for (var f = 0; f < k; f++) { for (var d = 0; d < e; d++) { h.clone().appendTo("body").wrap("<div></div>").css({ position: "absolute", visibility: "visible", left: -d * (g / e), top: -f * (c / k) }).parent().addClass("ui-effects-explode").css({ position: "absolute", overflow: "hidden", width: g / e, height: c / k, left: l.left + d * (g / e) + (b.options.mode == "show" ? (d - Math.floor(e / 2)) * (g / e) : 0), top: l.top + f * (c / k) + (b.options.mode == "show" ? (f - Math.floor(k / 2)) * (c / k) : 0), opacity: b.options.mode == "show" ? 0 : 1 }).animate({ left: l.left + d * (g / e) + (b.options.mode == "show" ? 0 : (d - Math.floor(e / 2)) * (g / e)), top: l.top + f * (c / k) + (b.options.mode == "show" ? 0 : (f - Math.floor(k / 2)) * (c / k)), opacity: b.options.mode == "show" ? 1 : 0 }, b.duration || 500) } } setTimeout(function() { b.options.mode == "show" ? h.css({ visibility: "visible" }) : h.css({ visibility: "visible" }).hide(); if (b.callback) { b.callback.apply(h[0]) } h.dequeue(); a("div.ui-effects-explode").remove() }, b.duration || 500) }) } })(jQuery); ; /*
 * jQuery UI Effects Fold 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Fold
 *
 * Depends:
 *	effects.core.js
 */
(function(a) { a.effects.fold = function(b) { return this.queue(function() { var e = a(this), k = ["position", "top", "left"]; var h = a.effects.setMode(e, b.options.mode || "hide"); var o = b.options.size || 15; var n = !(!b.options.horizFirst); var g = b.duration ? b.duration / 2 : a.fx.speeds._default / 2; a.effects.save(e, k); e.show(); var d = a.effects.createWrapper(e).css({ overflow: "hidden" }); var i = ((h == "show") != n); var f = i ? ["width", "height"] : ["height", "width"]; var c = i ? [d.width(), d.height()] : [d.height(), d.width()]; var j = /([0-9]+)%/.exec(o); if (j) { o = parseInt(j[1], 10) / 100 * c[h == "hide" ? 0 : 1] } if (h == "show") { d.css(n ? { height: 0, width: o} : { height: o, width: 0 }) } var m = {}, l = {}; m[f[0]] = h == "show" ? c[0] : o; l[f[1]] = h == "show" ? c[1] : 0; d.animate(m, g, b.options.easing).animate(l, g, b.options.easing, function() { if (h == "hide") { e.hide() } a.effects.restore(e, k); a.effects.removeWrapper(e); if (b.callback) { b.callback.apply(e[0], arguments) } e.dequeue() }) }) } })(jQuery); ; /*
 * jQuery UI Effects Highlight 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Highlight
 *
 * Depends:
 *	effects.core.js
 */
(function(a) { a.effects.highlight = function(b) { return this.queue(function() { var e = a(this), d = ["backgroundImage", "backgroundColor", "opacity"]; var h = a.effects.setMode(e, b.options.mode || "show"); var c = b.options.color || "#ffff99"; var g = e.css("backgroundColor"); a.effects.save(e, d); e.show(); e.css({ backgroundImage: "none", backgroundColor: c }); var f = { backgroundColor: g }; if (h == "hide") { f.opacity = 0 } e.animate(f, { queue: false, duration: b.duration, easing: b.options.easing, complete: function() { if (h == "hide") { e.hide() } a.effects.restore(e, d); if (h == "show" && a.browser.msie) { this.style.removeAttribute("filter") } if (b.callback) { b.callback.apply(this, arguments) } e.dequeue() } }) }) } })(jQuery); ; /*
 * jQuery UI Effects Pulsate 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Pulsate
 *
 * Depends:
 *	effects.core.js
 */
(function(a) { a.effects.pulsate = function(b) { return this.queue(function() { var d = a(this); var g = a.effects.setMode(d, b.options.mode || "show"); var f = b.options.times || 5; var e = b.duration ? b.duration / 2 : a.fx.speeds._default / 2; if (g == "hide") { f-- } if (d.is(":hidden")) { d.css("opacity", 0); d.show(); d.animate({ opacity: 1 }, e, b.options.easing); f = f - 2 } for (var c = 0; c < f; c++) { d.animate({ opacity: 0 }, e, b.options.easing).animate({ opacity: 1 }, e, b.options.easing) } if (g == "hide") { d.animate({ opacity: 0 }, e, b.options.easing, function() { d.hide(); if (b.callback) { b.callback.apply(this, arguments) } }) } else { d.animate({ opacity: 0 }, e, b.options.easing).animate({ opacity: 1 }, e, b.options.easing, function() { if (b.callback) { b.callback.apply(this, arguments) } }) } d.queue("fx", function() { d.dequeue() }); d.dequeue() }) } })(jQuery); ; /*
 * jQuery UI Effects Scale 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Scale
 *
 * Depends:
 *	effects.core.js
 */
(function(a) { a.effects.puff = function(b) { return this.queue(function() { var f = a(this); var c = a.extend(true, {}, b.options); var h = a.effects.setMode(f, b.options.mode || "hide"); var g = parseInt(b.options.percent, 10) || 150; c.fade = true; var e = { height: f.height(), width: f.width() }; var d = g / 100; f.from = (h == "hide") ? e : { height: e.height * d, width: e.width * d }; c.from = f.from; c.percent = (h == "hide") ? g : 100; c.mode = h; f.effect("scale", c, b.duration, b.callback); f.dequeue() }) }; a.effects.scale = function(b) { return this.queue(function() { var g = a(this); var d = a.extend(true, {}, b.options); var j = a.effects.setMode(g, b.options.mode || "effect"); var h = parseInt(b.options.percent, 10) || (parseInt(b.options.percent, 10) == 0 ? 0 : (j == "hide" ? 0 : 100)); var i = b.options.direction || "both"; var c = b.options.origin; if (j != "effect") { d.origin = c || ["middle", "center"]; d.restore = true } var f = { height: g.height(), width: g.width() }; g.from = b.options.from || (j == "show" ? { height: 0, width: 0} : f); var e = { y: i != "horizontal" ? (h / 100) : 1, x: i != "vertical" ? (h / 100) : 1 }; g.to = { height: f.height * e.y, width: f.width * e.x }; if (b.options.fade) { if (j == "show") { g.from.opacity = 0; g.to.opacity = 1 } if (j == "hide") { g.from.opacity = 1; g.to.opacity = 0 } } d.from = g.from; d.to = g.to; d.mode = j; g.effect("size", d, b.duration, b.callback); g.dequeue() }) }; a.effects.size = function(b) { return this.queue(function() { var c = a(this), n = ["position", "top", "left", "width", "height", "overflow", "opacity"]; var m = ["position", "top", "left", "overflow", "opacity"]; var j = ["width", "height", "overflow"]; var p = ["fontSize"]; var k = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"]; var f = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"]; var g = a.effects.setMode(c, b.options.mode || "effect"); var i = b.options.restore || false; var e = b.options.scale || "both"; var o = b.options.origin; var d = { height: c.height(), width: c.width() }; c.from = b.options.from || d; c.to = b.options.to || d; if (o) { var h = a.effects.getBaseline(o, d); c.from.top = (d.height - c.from.height) * h.y; c.from.left = (d.width - c.from.width) * h.x; c.to.top = (d.height - c.to.height) * h.y; c.to.left = (d.width - c.to.width) * h.x } var l = { from: { y: c.from.height / d.height, x: c.from.width / d.width }, to: { y: c.to.height / d.height, x: c.to.width / d.width} }; if (e == "box" || e == "both") { if (l.from.y != l.to.y) { n = n.concat(k); c.from = a.effects.setTransition(c, k, l.from.y, c.from); c.to = a.effects.setTransition(c, k, l.to.y, c.to) } if (l.from.x != l.to.x) { n = n.concat(f); c.from = a.effects.setTransition(c, f, l.from.x, c.from); c.to = a.effects.setTransition(c, f, l.to.x, c.to) } } if (e == "content" || e == "both") { if (l.from.y != l.to.y) { n = n.concat(p); c.from = a.effects.setTransition(c, p, l.from.y, c.from); c.to = a.effects.setTransition(c, p, l.to.y, c.to) } } a.effects.save(c, i ? n : m); c.show(); a.effects.createWrapper(c); c.css("overflow", "hidden").css(c.from); if (e == "content" || e == "both") { k = k.concat(["marginTop", "marginBottom"]).concat(p); f = f.concat(["marginLeft", "marginRight"]); j = n.concat(k).concat(f); c.find("*[width]").each(function() { child = a(this); if (i) { a.effects.save(child, j) } var q = { height: child.height(), width: child.width() }; child.from = { height: q.height * l.from.y, width: q.width * l.from.x }; child.to = { height: q.height * l.to.y, width: q.width * l.to.x }; if (l.from.y != l.to.y) { child.from = a.effects.setTransition(child, k, l.from.y, child.from); child.to = a.effects.setTransition(child, k, l.to.y, child.to) } if (l.from.x != l.to.x) { child.from = a.effects.setTransition(child, f, l.from.x, child.from); child.to = a.effects.setTransition(child, f, l.to.x, child.to) } child.css(child.from); child.animate(child.to, b.duration, b.options.easing, function() { if (i) { a.effects.restore(child, j) } }) }) } c.animate(c.to, { queue: false, duration: b.duration, easing: b.options.easing, complete: function() { if (g == "hide") { c.hide() } a.effects.restore(c, i ? n : m); a.effects.removeWrapper(c); if (b.callback) { b.callback.apply(this, arguments) } c.dequeue() } }) }) } })(jQuery); ; /*
 * jQuery UI Effects Shake 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Shake
 *
 * Depends:
 *	effects.core.js
 */
(function(a) { a.effects.shake = function(b) { return this.queue(function() { var e = a(this), l = ["position", "top", "left"]; var k = a.effects.setMode(e, b.options.mode || "effect"); var n = b.options.direction || "left"; var c = b.options.distance || 20; var d = b.options.times || 3; var g = b.duration || b.options.duration || 140; a.effects.save(e, l); e.show(); a.effects.createWrapper(e); var f = (n == "up" || n == "down") ? "top" : "left"; var p = (n == "up" || n == "left") ? "pos" : "neg"; var h = {}, o = {}, m = {}; h[f] = (p == "pos" ? "-=" : "+=") + c; o[f] = (p == "pos" ? "+=" : "-=") + c * 2; m[f] = (p == "pos" ? "-=" : "+=") + c * 2; e.animate(h, g, b.options.easing); for (var j = 1; j < d; j++) { e.animate(o, g, b.options.easing).animate(m, g, b.options.easing) } e.animate(o, g, b.options.easing).animate(h, g / 2, b.options.easing, function() { a.effects.restore(e, l); a.effects.removeWrapper(e); if (b.callback) { b.callback.apply(this, arguments) } }); e.queue("fx", function() { e.dequeue() }); e.dequeue() }) } })(jQuery); ; /*
 * jQuery UI Effects Slide 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Slide
 *
 * Depends:
 *	effects.core.js
 */
(function(a) { a.effects.slide = function(b) { return this.queue(function() { var e = a(this), d = ["position", "top", "left"]; var i = a.effects.setMode(e, b.options.mode || "show"); var h = b.options.direction || "left"; a.effects.save(e, d); e.show(); a.effects.createWrapper(e).css({ overflow: "hidden" }); var f = (h == "up" || h == "down") ? "top" : "left"; var c = (h == "up" || h == "left") ? "pos" : "neg"; var j = b.options.distance || (f == "top" ? e.outerHeight({ margin: true }) : e.outerWidth({ margin: true })); if (i == "show") { e.css(f, c == "pos" ? -j : j) } var g = {}; g[f] = (i == "show" ? (c == "pos" ? "+=" : "-=") : (c == "pos" ? "-=" : "+=")) + j; e.animate(g, { queue: false, duration: b.duration, easing: b.options.easing, complete: function() { if (i == "hide") { e.hide() } a.effects.restore(e, d); a.effects.removeWrapper(e); if (b.callback) { b.callback.apply(this, arguments) } e.dequeue() } }) }) } })(jQuery); ; /*
 * jQuery UI Effects Transfer 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Transfer
 *
 * Depends:
 *	effects.core.js
 */
(function(a) { a.effects.transfer = function(b) { return this.queue(function() { var f = a(this), h = a(b.options.to), e = h.offset(), g = { top: e.top, left: e.left, height: h.innerHeight(), width: h.innerWidth() }, d = f.offset(), c = a('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(b.options.className).css({ top: d.top, left: d.left, height: f.innerHeight(), width: f.innerWidth(), position: "absolute" }).animate(g, b.duration, b.options.easing, function() { c.remove(); (b.callback && b.callback.apply(f[0], arguments)); f.dequeue() }) }) } })(jQuery); ;


/**
* @author Samele Artuso <samuele.a@gmail.com>
*/
(function($) {
    $.fn.unselectable = function() {
        return this.each(function() {

            $(this)
				.css('-moz-user-select', 'none')		// FF
				.css('-khtml-user-select', 'none')		// Safari, Google Chrome
				.css('user-select', 'none'); 		// CSS 3

            if ($.browser.msie) {						// IE
                $(this).each(function() {
                    this.ondrag = function() {
                        return false;
                    };
                });
                $(this).each(function() {
                    this.onselectstart = function() {
                        return (false);
                    };
                });
            } else if ($.browser.opera) {
                $(this).attr('unselectable', 'on');
            }
        });
    };
    $.fn.selectable = function() {
        return this.each(function() {

            $(this)
				.css('-moz-user-select', '')		// FF
				.css('-khtml-user-select', '')		// Safari, Google Chrome
				.css('user-select', ''); 		// CSS 3

            if ($.browser.msie) {						// IE
                $(this).each(function() {
                    this.ondrag = function() {
                        return true;
                    };
                });
                $(this).each(function() {
                    this.onselectstart = function() {
                        return (true);
                    };
                });
            } else if ($.browser.opera) {
                $(this).attr('unselectable', 'off');
            }
        });
    };

})(jQuery);


/*
* jQuery resize event - v1.0 - 2/10/2010
* http://benalman.com/projects/jquery-resize-plugin/
* 
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
*/
(function($, h, c) { var a = $([]), e = $.resize = $.extend($.resize, {}), i, k = "setTimeout", j = "resize", d = j + "-special-event", b = "delay", f = "throttleWindow"; e[b] = 250; e[f] = true; $.event.special[j] = { setup: function() { if (!e[f] && this[k]) { return false } var l = $(this); a = a.add(l); l.data(d, { width: l.width(), height: l.height() }); if (a.length === 1) { g() } }, teardown: function() { if (!e[f] && this[k]) { return false } var l = $(this); a = a.not(l); l.removeData(d); if (!a.length) { clearTimeout(i) } }, add: function(l) { if (!e[f] && this[k]) { return false } var n; function m(s, o, p) { var q = $(this), r = q.data(d); r.w = o !== c ? o : q.width(); r.h = p !== c ? p : q.height(); n.apply(this, arguments) } if ($.isFunction(l)) { n = l; return m } else { n = l.handler; l.handler = m } } }; function g() { a.each(function() { var n = $(this), m = n.width(), l = n.height(), o = n.data(d); if (m !== o.w || l !== o.h) { n.trigger(j, [o.w = m, o.h = l]) } }); i = h[k](g, e[b]) } })(jQuery, this);


/*
 * jQuery UI Tabs 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Tabs
 *
 * Depends:
 *	ui.core.js
 */
(function (a) { a.widget("ui.tabs", { _init: function () { if (this.options.deselectable !== undefined) { this.options.collapsible = this.options.deselectable } this._tabify(true) }, _setData: function (b, c) { if (b == "selected") { if (this.options.collapsible && c == this.options.selected) { return } this.select(c) } else { this.options[b] = c; if (b == "deselectable") { this.options.collapsible = c } this._tabify() } }, _tabId: function (b) { return b.title && b.title.replace(/\s/g, "_").replace(/[^A-Za-z0-9\-_:\.]/g, "") || this.options.idPrefix + a.data(b) }, _sanitizeSelector: function (b) { return b.replace(/:/g, "\\:") }, _cookie: function () { var b = this.cookie || (this.cookie = this.options.cookie.name || "ui-tabs-" + a.data(this.list[0])); return a.cookie.apply(null, [b].concat(a.makeArray(arguments))) }, _ui: function (c, b) { return { tab: c, panel: b, index: this.anchors.index(c)} }, _cleanup: function () { this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function () { var b = a(this); b.html(b.data("label.tabs")).removeData("label.tabs") }) }, _tabify: function (n) { this.list = this.element.children("ul:first"); this.lis = a("li:has(a[href])", this.list); this.anchors = this.lis.map(function () { return a("a", this)[0] }); this.panels = a([]); var p = this, d = this.options; var c = /^#.+/; this.anchors.each(function (r, o) { var q = a(o).attr("href"); var s = q.split("#")[0], u; if (s && (s === location.toString().split("#")[0] || (u = a("base")[0]) && s === u.href)) { q = o.hash; o.href = q } if (c.test(q)) { p.panels = p.panels.add(p._sanitizeSelector(q)) } else { if (q != "#") { a.data(o, "href.tabs", q); a.data(o, "load.tabs", q.replace(/#.*$/, "")); var w = p._tabId(o); o.href = "#" + w; var v = a("#" + w); if (!v.length) { v = a(d.panelTemplate).attr("id", w).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(p.panels[r - 1] || p.list); v.data("destroy.tabs", true) } p.panels = p.panels.add(v) } else { d.disabled.push(r) } } }); if (n) { this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"); this.lis.addClass("ui-state-default ui-corner-top"); this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"); if (d.selected === undefined) { if (location.hash) { this.anchors.each(function (q, o) { if (o.hash == location.hash) { d.selected = q; return false } }) } if (typeof d.selected != "number" && d.cookie) { d.selected = parseInt(p._cookie(), 10) } if (typeof d.selected != "number" && this.lis.filter(".ui-tabs-selected").length) { d.selected = this.lis.index(this.lis.filter(".ui-tabs-selected")) } d.selected = d.selected || 0 } else { if (d.selected === null) { d.selected = -1 } } d.selected = ((d.selected >= 0 && this.anchors[d.selected]) || d.selected < 0) ? d.selected : 0; d.disabled = a.unique(d.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"), function (q, o) { return p.lis.index(q) }))).sort(); if (a.inArray(d.selected, d.disabled) != -1) { d.disabled.splice(a.inArray(d.selected, d.disabled), 1) } this.panels.addClass("ui-tabs-hide"); this.lis.removeClass("ui-tabs-selected ui-state-active"); if (d.selected >= 0 && this.anchors.length) { this.panels.eq(d.selected).removeClass("ui-tabs-hide"); this.lis.eq(d.selected).addClass("ui-tabs-selected ui-state-active"); p.element.queue("tabs", function () { p._trigger("show", null, p._ui(p.anchors[d.selected], p.panels[d.selected])) }); this.load(d.selected) } a(window).bind("unload", function () { p.lis.add(p.anchors).unbind(".tabs"); p.lis = p.anchors = p.panels = null }) } else { d.selected = this.lis.index(this.lis.filter(".ui-tabs-selected")) } this.element[d.collapsible ? "addClass" : "removeClass"]("ui-tabs-collapsible"); if (d.cookie) { this._cookie(d.selected, d.cookie) } for (var g = 0, m; (m = this.lis[g]); g++) { a(m)[a.inArray(g, d.disabled) != -1 && !a(m).hasClass("ui-tabs-selected") ? "addClass" : "removeClass"]("ui-state-disabled") } if (d.cache === false) { this.anchors.removeData("cache.tabs") } this.lis.add(this.anchors).unbind(".tabs"); if (d.event != "mouseover") { var f = function (o, i) { if (i.is(":not(.ui-state-disabled)")) { i.addClass("ui-state-" + o) } }; var j = function (o, i) { i.removeClass("ui-state-" + o) }; this.lis.bind("mouseover.tabs", function () { f("hover", a(this)) }); this.lis.bind("mouseout.tabs", function () { j("hover", a(this)) }); this.anchors.bind("focus.tabs", function () { f("focus", a(this).closest("li")) }); this.anchors.bind("blur.tabs", function () { j("focus", a(this).closest("li")) }) } var b, h; if (d.fx) { if (a.isArray(d.fx)) { b = d.fx[0]; h = d.fx[1] } else { b = h = d.fx } } function e(i, o) { i.css({ display: "" }); if (a.browser.msie && o.opacity) { i[0].style.removeAttribute("filter") } } var k = h ? function (i, o) { a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active"); o.hide().removeClass("ui-tabs-hide").animate(h, h.duration || "normal", function () { e(o, h); p._trigger("show", null, p._ui(i, o[0])) }) } : function (i, o) { a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active"); o.removeClass("ui-tabs-hide"); p._trigger("show", null, p._ui(i, o[0])) }; var l = b ? function (o, i) { i.animate(b, b.duration || "normal", function () { p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default"); i.addClass("ui-tabs-hide"); e(i, b); p.element.dequeue("tabs") }) } : function (o, i, q) { p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default"); i.addClass("ui-tabs-hide"); p.element.dequeue("tabs") }; this.anchors.bind(d.event + ".tabs", function () { var o = this, r = a(this).closest("li"), i = p.panels.filter(":not(.ui-tabs-hide)"), q = a(p._sanitizeSelector(this.hash)); if ((r.hasClass("ui-tabs-selected") && !d.collapsible) || r.hasClass("ui-state-disabled") || r.hasClass("ui-state-processing") || p._trigger("select", null, p._ui(this, q[0])) === false) { this.blur(); return false } d.selected = p.anchors.index(this); p.abort(); if (d.collapsible) { if (r.hasClass("ui-tabs-selected")) { d.selected = -1; if (d.cookie) { p._cookie(d.selected, d.cookie) } p.element.queue("tabs", function () { l(o, i) }).dequeue("tabs"); this.blur(); return false } else { if (!i.length) { if (d.cookie) { p._cookie(d.selected, d.cookie) } p.element.queue("tabs", function () { k(o, q) }); p.load(p.anchors.index(this)); this.blur(); return false } } } if (d.cookie) { p._cookie(d.selected, d.cookie) } if (q.length) { if (i.length) { p.element.queue("tabs", function () { l(o, i) }) } p.element.queue("tabs", function () { k(o, q) }); p.load(p.anchors.index(this)) } else { throw "jQuery UI Tabs: Mismatching fragment identifier." } if (a.browser.msie) { this.blur() } }); this.anchors.bind("click.tabs", function () { return false }) }, destroy: function () { var b = this.options; this.abort(); this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"); this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"); this.anchors.each(function () { var c = a.data(this, "href.tabs"); if (c) { this.href = c } var d = a(this).unbind(".tabs"); a.each(["href", "load", "cache"], function (e, f) { d.removeData(f + ".tabs") }) }); this.lis.unbind(".tabs").add(this.panels).each(function () { if (a.data(this, "destroy.tabs")) { a(this).remove() } else { a(this).removeClass(["ui-state-default", "ui-corner-top", "ui-tabs-selected", "ui-state-active", "ui-state-hover", "ui-state-focus", "ui-state-disabled", "ui-tabs-panel", "ui-widget-content", "ui-corner-bottom", "ui-tabs-hide"].join(" ")) } }); if (b.cookie) { this._cookie(null, b.cookie) } }, add: function (e, d, c) { if (c === undefined) { c = this.anchors.length } var b = this, g = this.options, i = a(g.tabTemplate.replace(/#\{href\}/g, e).replace(/#\{label\}/g, d)), h = !e.indexOf("#") ? e.replace("#", "") : this._tabId(a("a", i)[0]); i.addClass("ui-state-default ui-corner-top").data("destroy.tabs", true); var f = a("#" + h); if (!f.length) { f = a(g.panelTemplate).attr("id", h).data("destroy.tabs", true) } f.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"); if (c >= this.lis.length) { i.appendTo(this.list); f.appendTo(this.list[0].parentNode) } else { i.insertBefore(this.lis[c]); f.insertBefore(this.panels[c]) } g.disabled = a.map(g.disabled, function (k, j) { return k >= c ? ++k : k }); this._tabify(); if (this.anchors.length == 1) { i.addClass("ui-tabs-selected ui-state-active"); f.removeClass("ui-tabs-hide"); this.element.queue("tabs", function () { b._trigger("show", null, b._ui(b.anchors[0], b.panels[0])) }); this.load(0) } this._trigger("add", null, this._ui(this.anchors[c], this.panels[c])) }, remove: function (b) { var d = this.options, e = this.lis.eq(b).remove(), c = this.panels.eq(b).remove(); if (e.hasClass("ui-tabs-selected") && this.anchors.length > 1) { this.select(b + (b + 1 < this.anchors.length ? 1 : -1)) } d.disabled = a.map(a.grep(d.disabled, function (g, f) { return g != b }), function (g, f) { return g >= b ? --g : g }); this._tabify(); this._trigger("remove", null, this._ui(e.find("a")[0], c[0])) }, enable: function (b) { var c = this.options; if (a.inArray(b, c.disabled) == -1) { return } this.lis.eq(b).removeClass("ui-state-disabled"); c.disabled = a.grep(c.disabled, function (e, d) { return e != b }); this._trigger("enable", null, this._ui(this.anchors[b], this.panels[b])) }, disable: function (c) { var b = this, d = this.options; if (c != d.selected) { this.lis.eq(c).addClass("ui-state-disabled"); d.disabled.push(c); d.disabled.sort(); this._trigger("disable", null, this._ui(this.anchors[c], this.panels[c])) } }, select: function (b) { if (typeof b == "string") { b = this.anchors.index(this.anchors.filter("[href$=" + b + "]")) } else { if (b === null) { b = -1 } } if (b == -1 && this.options.collapsible) { b = this.options.selected } this.anchors.eq(b).trigger(this.options.event + ".tabs") }, load: function (e) { var c = this, g = this.options, b = this.anchors.eq(e)[0], d = a.data(b, "load.tabs"); this.abort(); if (!d || this.element.queue("tabs").length !== 0 && a.data(b, "cache.tabs")) { this.element.dequeue("tabs"); return } this.lis.eq(e).addClass("ui-state-processing"); if (g.spinner) { var f = a("span", b); f.data("label.tabs", f.html()).html(g.spinner) } this.xhr = a.ajax(a.extend({}, g.ajaxOptions, { url: d, success: function (i, h) { a(c._sanitizeSelector(b.hash)).html(i); c._cleanup(); if (g.cache) { a.data(b, "cache.tabs", true) } c._trigger("load", null, c._ui(c.anchors[e], c.panels[e])); try { g.ajaxOptions.success(i, h) } catch (j) { } c.element.dequeue("tabs") } })) }, abort: function () { this.element.queue([]); this.panels.stop(false, true); if (this.xhr) { this.xhr.abort(); delete this.xhr } this._cleanup() }, url: function (c, b) { this.anchors.eq(c).removeData("cache.tabs").data("load.tabs", b) }, length: function () { return this.anchors.length } }); a.extend(a.ui.tabs, { version: "1.7.2", getter: "length", defaults: { ajaxOptions: null, cache: false, cookie: null, collapsible: false, disabled: [], event: "click", fx: null, idPrefix: "ui-tabs-", panelTemplate: "<div></div>", spinner: "<em>Loading&#8230;</em>", tabTemplate: '<li><a href="#{href}"><span>#{label}</span></a></li>'} }); a.extend(a.ui.tabs.prototype, { rotation: null, rotate: function (d, f) { var b = this, g = this.options; var c = b._rotate || (b._rotate = function (h) { clearTimeout(b.rotation); b.rotation = setTimeout(function () { var i = g.selected; b.select(++i < b.anchors.length ? i : 0) }, d); if (h) { h.stopPropagation() } }); var e = b._unrotate || (b._unrotate = !f ? function (h) { if (h.clientX) { b.rotate(null) } } : function (h) { t = g.selected; c() }); if (d) { this.element.bind("tabsshow", c); this.anchors.bind(g.event + ".tabs", e); c() } else { clearTimeout(b.rotation); this.element.unbind("tabsshow", c); this.anchors.unbind(g.event + ".tabs", e); delete this._rotate; delete this._unrotate } } }) })(jQuery); ;

/* Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net)
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
* and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
* Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
* Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
*
* Version: 3.0.2
* 
* Requires: 1.2.2+
*/
(function (c) { var a = ["DOMMouseScroll", "mousewheel"]; c.event.special.mousewheel = { setup: function () { if (this.addEventListener) { for (var d = a.length; d; ) { this.addEventListener(a[--d], b, false) } } else { this.onmousewheel = b } }, teardown: function () { if (this.removeEventListener) { for (var d = a.length; d; ) { this.removeEventListener(a[--d], b, false) } } else { this.onmousewheel = null } } }; c.fn.extend({ mousewheel: function (d) { return d ? this.bind("mousewheel", d) : this.trigger("mousewheel") }, unmousewheel: function (d) { return this.unbind("mousewheel", d) } }); function b(f) { var d = [].slice.call(arguments, 1), g = 0, e = true; f = c.event.fix(f || window.event); f.type = "mousewheel"; if (f.wheelDelta) { g = f.wheelDelta / 120 } if (f.detail) { g = -f.detail / 3 } d.unshift(f, g); return c.event.handle.apply(this, d) } })(jQuery);
/*
 * Global Stylesheet jQuery Plugin
 * Version: 0.1
 * 
 * Enables CSS modification that uses a 'global' stylesheet, rather than inline CSS.
 *
 * Copyright (c) 2009 Jeremy Shipman (http://www.burnbright.co.nz)
 * 
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 * 
 * INSTRUCTIONS:
 * use in the same way as the jQuery css function. Eg:
 *  $("some selector").globalcss("style","value");
 *
 * use the globalsetylesheet.print() function to return a string of the global stylesheet
 */
(function($) {

	//global singleton class for 
	globalstylesheet = new function globalStylesheet(){
		if(!document.styleSheets){
			alert("document.Stylesheets not found");
			return false;
		}
		
		var sheet = null;
		var setrules = Array(); // rule cache
		
		//set up a dummy noded
		var cssNode = document.createElement('style');
		cssNode.type = 'text/css';
		cssNode.rel = 'stylesheet';
		cssNode.media = 'screen';
		cssNode.title = 'globalStyleSheet';
		document.getElementsByTagName("head")[0].appendChild(cssNode);
		
		//find the newly created stylesheet and store reference
		for(var i = 0; i < document.styleSheets.length; i++){
			if(document.styleSheets[i].title == "globalStyleSheet"){
				sheet = document.styleSheets[i];
			}
		}
		
		//set a CSS rule
		this.setRule = function setRule(selector,ruleText){
			if(setrules[selector] != undefined){
				return setrules[selector];
			}else{
				if(sheet.addRule){ // IE
					sheet.addRule(selector,ruleText,0);
				}else{
					sheet.insertRule(selector+'{'+ruleText+'}',0);
				}
				setrules[selector] = this.getRule(selector);
			}
			return setrules[selector];
		}
		
		//get a saved CSS rule
		this.getRule = function getRule(selector){
			if(setrules[selector] != undefined){
				return setrules[selector];
			}else{
				var rules = allRules();
				for(var i = 0; i < rules.length; i++){
					if(rules[i].selectorText == selector){
						return rules[i];
					}
				}
			}
			return false;
		}
		
		//helper function to get all rules
		function allRules(){
			if(sheet.cssRules){ //IE
				return sheet.cssRules;
			}else{
				return sheet.rules;
			}
		}
		
		//print out the stylesheet
		this.print = function print(){
			var styleinfo = "";
			var rules = allRules();
			for(var i = 0; i < rules.length; i++){
				styleinfo+= rules[i].cssText+"\n"
			}
			return styleinfo;
		}
		
		//use jQuery's css selector function to set the style object
		this.css = function css(jquery,key,value){
			rule = this.setRule(jquery.selector,key+":"+value+";");
			jQuery(rule).css(key,value); 
		}
	}
	
	//hook new function into jQuery
	jQuery.fn.extend({
		globalcss : function globalcss(key,value){
			globalstylesheet.css(this,key,value);
		}
	});

})(jQuery);