1 new changeset in galaxy-central:
http://bitbucket.org/galaxy/galaxy-central/changeset/632a7a0f3caa/ changeset: r5124:632a7a0f3caa user: kanwei date: 2011-02-24 23:23:16 summary: Update jQuery to 1.5.1, and also jquery.form as old one was incompatible with 1.5 affected #: 4 files (7.5 KB)
--- a/static/scripts/jquery.form.js Thu Feb 24 16:19:03 2011 -0500 +++ b/static/scripts/jquery.form.js Thu Feb 24 17:23:16 2011 -0500 @@ -1,632 +1,803 @@ -/* - * jQuery Form Plugin - * version: 2.21 (08-FEB-2009) - * @requires jQuery v1.2.2 or later - * - * Examples and documentation at: http://malsup.com/jquery/form/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - */ -;(function($) { - -/* - Usage Note: - ----------- - Do not use both ajaxSubmit and ajaxForm on the same form. These - functions are intended to be exclusive. Use ajaxSubmit if you want - to bind your own submit handler to the form. For example, - - $(document).ready(function() { - $('#myForm').bind('submit', function() { - $(this).ajaxSubmit({ - target: '#output' - }); - return false; // <-- important! - }); - }); - - Use ajaxForm when you want the plugin to manage all the event binding - for you. For example, - - $(document).ready(function() { - $('#myForm').ajaxForm({ - target: '#output' - }); - }); - - When using ajaxForm, the ajaxSubmit function will be invoked for you - at the appropriate time. -*/ - -/** - * ajaxSubmit() provides a mechanism for immediately submitting - * an HTML form using AJAX. - */ -$.fn.ajaxSubmit = function(options) { - // fast fail if nothing selected (http://dev.jquery.com/ticket/2752) - if (!this.length) { - log('ajaxSubmit: skipping submit process - no element selected'); - return this; - } - - if (typeof options == 'function') - options = { success: options }; - - options = $.extend({ - url: this.attr('action') || window.location.toString(), - type: this.attr('method') || 'GET' - }, options || {}); - - // hook for manipulating the form data before it is extracted; - // convenient for use with rich editors like tinyMCE or FCKEditor - var veto = {}; - this.trigger('form-pre-serialize', [this, options, veto]); - if (veto.veto) { - log('ajaxSubmit: submit vetoed via form-pre-serialize trigger'); - return this; - } - - // provide opportunity to alter form data before it is serialized - if (options.beforeSerialize && options.beforeSerialize(this, options) === false) { - log('ajaxSubmit: submit aborted via beforeSerialize callback'); - return this; - } - - var a = this.formToArray(options.semantic); - if (options.data) { - options.extraData = options.data; - for (var n in options.data) { - if(options.data[n] instanceof Array) { - for (var k in options.data[n]) - a.push( { name: n, value: options.data[n][k] } ) - } - else - a.push( { name: n, value: options.data[n] } ); - } - } - - // give pre-submit callback an opportunity to abort the submit - if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) { - log('ajaxSubmit: submit aborted via beforeSubmit callback'); - return this; - } - - // fire vetoable 'validate' event - this.trigger('form-submit-validate', [a, this, options, veto]); - if (veto.veto) { - log('ajaxSubmit: submit vetoed via form-submit-validate trigger'); - return this; - } - - var q = $.param(a); - - if (options.type.toUpperCase() == 'GET') { - options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q; - options.data = null; // data is null for 'get' - } - else - options.data = q; // data is the query string for 'post' - - var $form = this, callbacks = []; - if (options.resetForm) callbacks.push(function() { $form.resetForm(); }); - if (options.clearForm) callbacks.push(function() { $form.clearForm(); }); - - // perform a load on the target only if dataType is not provided - if (!options.dataType && options.target) { - var oldSuccess = options.success || function(){}; - callbacks.push(function(data) { - $(options.target).html(data).each(oldSuccess, arguments); - }); - } - else if (options.success) - callbacks.push(options.success); - - options.success = function(data, status) { - for (var i=0, max=callbacks.length; i < max; i++) - callbacks[i].apply(options, [data, status, $form]); - }; - - // are there files to upload? - var files = $('input:file', this).fieldValue(); - var found = false; - for (var j=0; j < files.length; j++) - if (files[j]) - found = true; - - // options.iframe allows user to force iframe mode - if (options.iframe || found) { - // hack to fix Safari hang (thanks to Tim Molendijk for this) - // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510d... - if (options.closeKeepAlive) - $.get(options.closeKeepAlive, fileUpload); - else - fileUpload(); - } - else - $.ajax(options); - - // fire 'notify' event - this.trigger('form-submit-notify', [this, options]); - return this; - - - // private function for handling file uploads (hat tip to YAHOO!) - function fileUpload() { - var form = $form[0]; - - if ($(':input[name=submit]', form).length) { - alert('Error: Form elements must not be named "submit".'); - return; - } - - var opts = $.extend({}, $.ajaxSettings, options); - var s = jQuery.extend(true, {}, $.extend(true, {}, $.ajaxSettings), opts); - - var id = 'jqFormIO' + (new Date().getTime()); - var $io = $('<iframe id="' + id + '" name="' + id + '" src="about:blank" />'); - var io = $io[0]; - - $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' }); - - var xhr = { // mock object - aborted: 0, - responseText: null, - responseXML: null, - status: 0, - statusText: 'n/a', - getAllResponseHeaders: function() {}, - getResponseHeader: function() {}, - setRequestHeader: function() {}, - abort: function() { - this.aborted = 1; - $io.attr('src','about:blank'); // abort op in progress - } - }; - - var g = opts.global; - // trigger ajax global events so that activity/block indicators work like normal - if (g && ! $.active++) $.event.trigger("ajaxStart"); - if (g) $.event.trigger("ajaxSend", [xhr, opts]); - - if (s.beforeSend && s.beforeSend(xhr, s) === false) { - s.global && jQuery.active--; - return; - } - if (xhr.aborted) - return; - - var cbInvoked = 0; - var timedOut = 0; - - // add submitting element to data if we know it - var sub = form.clk; - if (sub) { - var n = sub.name; - if (n && !sub.disabled) { - options.extraData = options.extraData || {}; - options.extraData[n] = sub.value; - if (sub.type == "image") { - options.extraData[name+'.x'] = form.clk_x; - options.extraData[name+'.y'] = form.clk_y; - } - } - } - - // take a breath so that pending repaints get some cpu time before the upload starts - setTimeout(function() { - // make sure form attrs are set - var t = $form.attr('target'), a = $form.attr('action'); - - // update form attrs in IE friendly way - form.setAttribute('target',id); - if (form.getAttribute('method') != 'POST') - form.setAttribute('method', 'POST'); - if (form.getAttribute('action') != opts.url) - form.setAttribute('action', opts.url); - - // ie borks in some cases when setting encoding - if (! options.skipEncodingOverride) { - $form.attr({ - encoding: 'multipart/form-data', - enctype: 'multipart/form-data' - }); - } - - // support timout - if (opts.timeout) - setTimeout(function() { timedOut = true; cb(); }, opts.timeout); - - // add "extra" data to form if provided in options - var extraInputs = []; - try { - if (options.extraData) - for (var n in options.extraData) - extraInputs.push( - $('<input type="hidden" name="'+n+'" value="'+options.extraData[n]+'" />') - .appendTo(form)[0]); - - // add iframe to doc and submit the form - $io.appendTo('body'); - io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false); - form.submit(); - } - finally { - // reset attrs and remove "extra" input elements - form.setAttribute('action',a); - t ? form.setAttribute('target', t) : $form.removeAttr('target'); - $(extraInputs).remove(); - } - }, 10); - - var nullCheckFlag = 0; - - function cb() { - if (cbInvoked++) return; - - io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false); - - var ok = true; - try { - if (timedOut) throw 'timeout'; - // extract the server response from the iframe - var data, doc; - - doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document; - - if ((doc.body == null || doc.body.innerHTML == '') && !nullCheckFlag) { - // in some browsers (cough, Opera 9.2.x) the iframe DOM is not always traversable when - // the onload callback fires, so we give them a 2nd chance - nullCheckFlag = 1; - cbInvoked--; - setTimeout(cb, 100); - return; - } - - xhr.responseText = doc.body ? doc.body.innerHTML : null; - xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc; - xhr.getResponseHeader = function(header){ - var headers = {'content-type': opts.dataType}; - return headers[header]; - }; - - if (opts.dataType == 'json' || opts.dataType == 'script') { - var ta = doc.getElementsByTagName('textarea')[0]; - xhr.responseText = ta ? ta.value : xhr.responseText; - } - else if (opts.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) { - xhr.responseXML = toXml(xhr.responseText); - } - data = $.httpData(xhr, opts.dataType); - } - catch(e){ - ok = false; - $.handleError(opts, xhr, 'error', e); - } - - // ordering of these callbacks/triggers is odd, but that's how $.ajax does it - if (ok) { - opts.success(data, 'success'); - if (g) $.event.trigger("ajaxSuccess", [xhr, opts]); - } - if (g) $.event.trigger("ajaxComplete", [xhr, opts]); - if (g && ! --$.active) $.event.trigger("ajaxStop"); - if (opts.complete) opts.complete(xhr, ok ? 'success' : 'error'); - - // clean up - setTimeout(function() { - $io.remove(); - xhr.responseXML = null; - }, 100); - }; - - function toXml(s, doc) { - if (window.ActiveXObject) { - doc = new ActiveXObject('Microsoft.XMLDOM'); - doc.async = 'false'; - doc.loadXML(s); - } - else - doc = (new DOMParser()).parseFromString(s, 'text/xml'); - return (doc && doc.documentElement && doc.documentElement.tagName != 'parsererror') ? doc : null; - }; - }; -}; - -/** - * ajaxForm() provides a mechanism for fully automating form submission. - * - * The advantages of using this method instead of ajaxSubmit() are: - * - * 1: This method will include coordinates for <input type="image" /> elements (if the element - * is used to submit the form). - * 2. This method will include the submit element's name/value data (for the element that was - * used to submit the form). - * 3. This method binds the submit() method to the form for you. - * - * The options argument for ajaxForm works exactly as it does for ajaxSubmit. ajaxForm merely - * passes the options argument along after properly binding events for submit elements and - * the form itself. - */ -$.fn.ajaxForm = function(options) { - return this.ajaxFormUnbind().bind('submit.form-plugin',function() { - $(this).ajaxSubmit(options); - return false; - }).each(function() { - // store options in hash - $(":submit,input:image", this).bind('click.form-plugin',function(e) { - var form = this.form; - form.clk = this; - if (this.type == 'image') { - if (e.offsetX != undefined) { - form.clk_x = e.offsetX; - form.clk_y = e.offsetY; - } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin - var offset = $(this).offset(); - form.clk_x = e.pageX - offset.left; - form.clk_y = e.pageY - offset.top; - } else { - form.clk_x = e.pageX - this.offsetLeft; - form.clk_y = e.pageY - this.offsetTop; - } - } - // clear form vars - setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 10); - }); - }); -}; - -// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm -$.fn.ajaxFormUnbind = function() { - this.unbind('submit.form-plugin'); - return this.each(function() { - $(":submit,input:image", this).unbind('click.form-plugin'); - }); - -}; - -/** - * formToArray() gathers form element data into an array of objects that can - * be passed to any of the following ajax functions: $.get, $.post, or load. - * Each object in the array has both a 'name' and 'value' property. An example of - * an array for a simple login form might be: - * - * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ] - * - * It is this array that is passed to pre-submit callback functions provided to the - * ajaxSubmit() and ajaxForm() methods. - */ -$.fn.formToArray = function(semantic) { - var a = []; - if (this.length == 0) return a; - - var form = this[0]; - var els = semantic ? form.getElementsByTagName('*') : form.elements; - if (!els) return a; - for(var i=0, max=els.length; i < max; i++) { - var el = els[i]; - var n = el.name; - if (!n) continue; - - if (semantic && form.clk && el.type == "image") { - // handle image inputs on the fly when semantic == true - if(!el.disabled && form.clk == el) - a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y}); - continue; - } - - var v = $.fieldValue(el, true); - if (v && v.constructor == Array) { - for(var j=0, jmax=v.length; j < jmax; j++) - a.push({name: n, value: v[j]}); - } - else if (v !== null && typeof v != 'undefined') - a.push({name: n, value: v}); - } - - if (!semantic && form.clk) { - // input type=='image' are not found in elements array! handle them here - var inputs = form.getElementsByTagName("input"); - for(var i=0, max=inputs.length; i < max; i++) { - var input = inputs[i]; - var n = input.name; - if(n && !input.disabled && input.type == "image" && form.clk == input) - a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y}); - } - } - return a; -}; - -/** - * Serializes form data into a 'submittable' string. This method will return a string - * in the format: name1=value1&name2=value2 - */ -$.fn.formSerialize = function(semantic) { - //hand off to jQuery.param for proper encoding - return $.param(this.formToArray(semantic)); -}; - -/** - * Serializes all field elements in the jQuery object into a query string. - * This method will return a string in the format: name1=value1&name2=value2 - */ -$.fn.fieldSerialize = function(successful) { - var a = []; - this.each(function() { - var n = this.name; - if (!n) return; - var v = $.fieldValue(this, successful); - if (v && v.constructor == Array) { - for (var i=0,max=v.length; i < max; i++) - a.push({name: n, value: v[i]}); - } - else if (v !== null && typeof v != 'undefined') - a.push({name: this.name, value: v}); - }); - //hand off to jQuery.param for proper encoding - return $.param(a); -}; - -/** - * Returns the value(s) of the element in the matched set. For example, consider the following form: - * - * <form><fieldset> - * <input name="A" type="text" /> - * <input name="A" type="text" /> - * <input name="B" type="checkbox" value="B1" /> - * <input name="B" type="checkbox" value="B2"/> - * <input name="C" type="radio" value="C1" /> - * <input name="C" type="radio" value="C2" /> - * </fieldset></form> - * - * var v = $(':text').fieldValue(); - * // if no values are entered into the text inputs - * v == ['',''] - * // if values entered into the text inputs are 'foo' and 'bar' - * v == ['foo','bar'] - * - * var v = $(':checkbox').fieldValue(); - * // if neither checkbox is checked - * v === undefined - * // if both checkboxes are checked - * v == ['B1', 'B2'] - * - * var v = $(':radio').fieldValue(); - * // if neither radio is checked - * v === undefined - * // if first radio is checked - * v == ['C1'] - * - * The successful argument controls whether or not the field element must be 'successful' - * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls). - * The default value of the successful argument is true. If this value is false the value(s) - * for each element is returned. - * - * Note: This method *always* returns an array. If no valid value can be determined the - * array will be empty, otherwise it will contain one or more values. - */ -$.fn.fieldValue = function(successful) { - for (var val=[], i=0, max=this.length; i < max; i++) { - var el = this[i]; - var v = $.fieldValue(el, successful); - if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) - continue; - v.constructor == Array ? $.merge(val, v) : val.push(v); - } - return val; -}; - -/** - * Returns the value of the field element. - */ -$.fieldValue = function(el, successful) { - var n = el.name, t = el.type, tag = el.tagName.toLowerCase(); - if (typeof successful == 'undefined') successful = true; - - if (successful && (!n || el.disabled || t == 'reset' || t == 'button' || - (t == 'checkbox' || t == 'radio') && !el.checked || - (t == 'submit' || t == 'image') && el.form && el.form.clk != el || - tag == 'select' && el.selectedIndex == -1)) - return null; - - if (tag == 'select') { - var index = el.selectedIndex; - if (index < 0) return null; - var a = [], ops = el.options; - var one = (t == 'select-one'); - var max = (one ? index+1 : ops.length); - for(var i=(one ? index : 0); i < max; i++) { - var op = ops[i]; - if (op.selected) { - var v = op.value; - if (!v) // extra pain for IE... - v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value; - if (one) return v; - a.push(v); - } - } - return a; - } - return el.value; -}; - -/** - * Clears the form data. Takes the following actions on the form's input fields: - * - input text fields will have their 'value' property set to the empty string - * - select elements will have their 'selectedIndex' property set to -1 - * - checkbox and radio inputs will have their 'checked' property set to false - * - inputs of type submit, button, reset, and hidden will *not* be effected - * - button elements will *not* be effected - */ -$.fn.clearForm = function() { - return this.each(function() { - $('input,select,textarea', this).clearFields(); - }); -}; - -/** - * Clears the selected form elements. - */ -$.fn.clearFields = $.fn.clearInputs = function() { - return this.each(function() { - var t = this.type, tag = this.tagName.toLowerCase(); - if (t == 'text' || t == 'password' || tag == 'textarea') - this.value = ''; - else if (t == 'checkbox' || t == 'radio') - this.checked = false; - else if (tag == 'select') - this.selectedIndex = -1; - }); -}; - -/** - * Resets the form data. Causes all form elements to be reset to their original value. - */ -$.fn.resetForm = function() { - return this.each(function() { - // guard against an input with the name of 'reset' - // note that IE reports the reset function as an 'object' - if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) - this.reset(); - }); -}; - -/** - * Enables or disables any matching elements. - */ -$.fn.enable = function(b) { - if (b == undefined) b = true; - return this.each(function() { - this.disabled = !b - }); -}; - -/** - * Checks/unchecks any matching checkboxes or radio buttons and - * selects/deselects and matching option elements. - */ -$.fn.selected = function(select) { - if (select == undefined) select = true; - return this.each(function() { - var t = this.type; - if (t == 'checkbox' || t == 'radio') - this.checked = select; - else if (this.tagName.toLowerCase() == 'option') { - var $sel = $(this).parent('select'); - if (select && $sel[0] && $sel[0].type == 'select-one') { - // deselect all other options - $sel.find('option').selected(false); - } - this.selected = select; - } - }); -}; - -// helper fn for console logging -// set $.fn.ajaxSubmit.debug to true to enable debug logging -function log() { - if ($.fn.ajaxSubmit.debug && window.console && window.console.log) - window.console.log('[jquery.form] ' + Array.prototype.join.call(arguments,'')); -}; - -})(jQuery); +/*! + * jQuery Form Plugin + * version: 2.63 (29-JAN-2011) + * @requires jQuery v1.3.2 or later + * + * Examples and documentation at: http://malsup.com/jquery/form/ + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ +;(function($) { + +/* + Usage Note: + ----------- + Do not use both ajaxSubmit and ajaxForm on the same form. These + functions are intended to be exclusive. Use ajaxSubmit if you want + to bind your own submit handler to the form. For example, + + $(document).ready(function() { + $('#myForm').bind('submit', function(e) { + e.preventDefault(); // <-- important + $(this).ajaxSubmit({ + target: '#output' + }); + }); + }); + + Use ajaxForm when you want the plugin to manage all the event binding + for you. For example, + + $(document).ready(function() { + $('#myForm').ajaxForm({ + target: '#output' + }); + }); + + When using ajaxForm, the ajaxSubmit function will be invoked for you + at the appropriate time. +*/ + +/** + * ajaxSubmit() provides a mechanism for immediately submitting + * an HTML form using AJAX. + */ +$.fn.ajaxSubmit = function(options) { + // fast fail if nothing selected (http://dev.jquery.com/ticket/2752) + if (!this.length) { + log('ajaxSubmit: skipping submit process - no element selected'); + return this; + } + + if (typeof options == 'function') { + options = { success: options }; + } + + var action = this.attr('action'); + var url = (typeof action === 'string') ? $.trim(action) : ''; + if (url) { + // clean url (don't include hash vaue) + url = (url.match(/^([^#]+)/)||[])[1]; + } + url = url || window.location.href || ''; + + options = $.extend(true, { + url: url, + type: this[0].getAttribute('method') || 'GET', // IE7 massage (see issue 57) + iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank' + }, options); + + // hook for manipulating the form data before it is extracted; + // convenient for use with rich editors like tinyMCE or FCKEditor + var veto = {}; + this.trigger('form-pre-serialize', [this, options, veto]); + if (veto.veto) { + log('ajaxSubmit: submit vetoed via form-pre-serialize trigger'); + return this; + } + + // provide opportunity to alter form data before it is serialized + if (options.beforeSerialize && options.beforeSerialize(this, options) === false) { + log('ajaxSubmit: submit aborted via beforeSerialize callback'); + return this; + } + + var n,v,a = this.formToArray(options.semantic); + if (options.data) { + options.extraData = options.data; + for (n in options.data) { + if(options.data[n] instanceof Array) { + for (var k in options.data[n]) { + a.push( { name: n, value: options.data[n][k] } ); + } + } + else { + v = options.data[n]; + v = $.isFunction(v) ? v() : v; // if value is fn, invoke it + a.push( { name: n, value: v } ); + } + } + } + + // give pre-submit callback an opportunity to abort the submit + if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) { + log('ajaxSubmit: submit aborted via beforeSubmit callback'); + return this; + } + + // fire vetoable 'validate' event + this.trigger('form-submit-validate', [a, this, options, veto]); + if (veto.veto) { + log('ajaxSubmit: submit vetoed via form-submit-validate trigger'); + return this; + } + + var q = $.param(a); + + if (options.type.toUpperCase() == 'GET') { + options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q; + options.data = null; // data is null for 'get' + } + else { + options.data = q; // data is the query string for 'post' + } + + var $form = this, callbacks = []; + if (options.resetForm) { + callbacks.push(function() { $form.resetForm(); }); + } + if (options.clearForm) { + callbacks.push(function() { $form.clearForm(); }); + } + + // perform a load on the target only if dataType is not provided + if (!options.dataType && options.target) { + var oldSuccess = options.success || function(){}; + callbacks.push(function(data) { + var fn = options.replaceTarget ? 'replaceWith' : 'html'; + $(options.target)[fn](data).each(oldSuccess, arguments); + }); + } + else if (options.success) { + callbacks.push(options.success); + } + + options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg + var context = options.context || options; // jQuery 1.4+ supports scope context + for (var i=0, max=callbacks.length; i < max; i++) { + callbacks[i].apply(context, [data, status, xhr || $form, $form]); + } + }; + + // are there files to upload? + var fileInputs = $('input:file', this).length > 0; + var mp = 'multipart/form-data'; + var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp); + + // options.iframe allows user to force iframe mode + // 06-NOV-09: now defaulting to iframe mode if file input is detected + if (options.iframe !== false && (fileInputs || options.iframe || multipart)) { + // hack to fix Safari hang (thanks to Tim Molendijk for this) + // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510d... + if (options.closeKeepAlive) { + $.get(options.closeKeepAlive, fileUpload); + } + else { + fileUpload(); + } + } + else { + $.ajax(options); + } + + // fire 'notify' event + this.trigger('form-submit-notify', [this, options]); + return this; + + + // private function for handling file uploads (hat tip to YAHOO!) + function fileUpload() { + var form = $form[0]; + + if ($(':input[name=submit],:input[id=submit]', form).length) { + // if there is an input with a name or id of 'submit' then we won't be + // able to invoke the submit fn on the form (at least not x-browser) + alert('Error: Form elements must not have name or id of "submit".'); + return; + } + + var s = $.extend(true, {}, $.ajaxSettings, options); + s.context = s.context || s; + var id = 'jqFormIO' + (new Date().getTime()), fn = '_'+id; + var $io = $('<iframe id="' + id + '" name="' + id + '" src="'+ s.iframeSrc +'" />'); + var io = $io[0]; + + $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' }); + + var xhr = { // mock object + aborted: 0, + responseText: null, + responseXML: null, + status: 0, + statusText: 'n/a', + getAllResponseHeaders: function() {}, + getResponseHeader: function() {}, + setRequestHeader: function() {}, + abort: function() { + this.aborted = 1; + $io.attr('src', s.iframeSrc); // abort op in progress + } + }; + + var g = s.global; + // trigger ajax global events so that activity/block indicators work like normal + if (g && ! $.active++) { + $.event.trigger("ajaxStart"); + } + if (g) { + $.event.trigger("ajaxSend", [xhr, s]); + } + + if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) { + if (s.global) { + $.active--; + } + return; + } + if (xhr.aborted) { + return; + } + + var timedOut = 0; + + // add submitting element to data if we know it + var sub = form.clk; + if (sub) { + var n = sub.name; + if (n && !sub.disabled) { + s.extraData = s.extraData || {}; + s.extraData[n] = sub.value; + if (sub.type == "image") { + s.extraData[n+'.x'] = form.clk_x; + s.extraData[n+'.y'] = form.clk_y; + } + } + } + + // take a breath so that pending repaints get some cpu time before the upload starts + function doSubmit() { + // make sure form attrs are set + var t = $form.attr('target'), a = $form.attr('action'); + + // update form attrs in IE friendly way + form.setAttribute('target',id); + if (form.getAttribute('method') != 'POST') { + form.setAttribute('method', 'POST'); + } + if (form.getAttribute('action') != s.url) { + form.setAttribute('action', s.url); + } + + // ie borks in some cases when setting encoding + if (! s.skipEncodingOverride) { + $form.attr({ + encoding: 'multipart/form-data', + enctype: 'multipart/form-data' + }); + } + + // support timout + if (s.timeout) { + setTimeout(function() { timedOut = true; cb(); }, s.timeout); + } + + // add "extra" data to form if provided in options + var extraInputs = []; + try { + if (s.extraData) { + for (var n in s.extraData) { + extraInputs.push( + $('<input type="hidden" name="'+n+'" value="'+s.extraData[n]+'" />') + .appendTo(form)[0]); + } + } + + // add iframe to doc and submit the form + $io.appendTo('body'); + io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false); + form.submit(); + } + finally { + // reset attrs and remove "extra" input elements + form.setAttribute('action',a); + if(t) { + form.setAttribute('target', t); + } else { + $form.removeAttr('target'); + } + $(extraInputs).remove(); + } + } + + if (s.forceSync) { + doSubmit(); + } + else { + setTimeout(doSubmit, 10); // this lets dom updates render + } + + var data, doc, domCheckCount = 50; + + function cb() { + doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document; + if (!doc || doc.location.href == s.iframeSrc) { + // response not received yet + return; + } + io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false); + + var ok = true; + try { + if (timedOut) { + throw 'timeout'; + } + + var isXml = s.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc); + log('isXml='+isXml); + if (!isXml && window.opera && (doc.body == null || doc.body.innerHTML == '')) { + if (--domCheckCount) { + // in some browsers (Opera) the iframe DOM is not always traversable when + // the onload callback fires, so we loop a bit to accommodate + log('requeing onLoad callback, DOM not available'); + setTimeout(cb, 250); + return; + } + // let this fall through because server response could be an empty document + //log('Could not access iframe DOM after mutiple tries.'); + //throw 'DOMException: not available'; + } + + //log('response detected'); + xhr.responseText = doc.body ? doc.body.innerHTML : doc.documentElement ? doc.documentElement.innerHTML : null; + xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc; + xhr.getResponseHeader = function(header){ + var headers = {'content-type': s.dataType}; + return headers[header]; + }; + + var scr = /(json|script)/.test(s.dataType); + if (scr || s.textarea) { + // see if user embedded response in textarea + var ta = doc.getElementsByTagName('textarea')[0]; + if (ta) { + xhr.responseText = ta.value; + } + else if (scr) { + // account for browsers injecting pre around json response + var pre = doc.getElementsByTagName('pre')[0]; + var b = doc.getElementsByTagName('body')[0]; + if (pre) { + xhr.responseText = pre.textContent; + } + else if (b) { + xhr.responseText = b.innerHTML; + } + } + } + else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) { + xhr.responseXML = toXml(xhr.responseText); + } + + data = httpData(xhr, s.dataType, s); + } + catch(e){ + log('error caught:',e); + ok = false; + xhr.error = e; + s.error.call(s.context, xhr, 'error', e); + g && $.event.trigger("ajaxError", [xhr, s, e]); + } + + if (xhr.aborted) { + log('upload aborted'); + ok = false; + } + + // ordering of these callbacks/triggers is odd, but that's how $.ajax does it + if (ok) { + s.success.call(s.context, data, 'success', xhr); + g && $.event.trigger("ajaxSuccess", [xhr, s]); + } + + g && $.event.trigger("ajaxComplete", [xhr, s]); + + if (g && ! --$.active) { + $.event.trigger("ajaxStop"); + } + + s.complete && s.complete.call(s.context, xhr, ok ? 'success' : 'error'); + + // clean up + setTimeout(function() { + $io.removeData('form-plugin-onload'); + $io.remove(); + xhr.responseXML = null; + }, 100); + } + + var toXml = $.parseXML || function(s, doc) { // use parseXML if available (jQuery 1.5+) + if (window.ActiveXObject) { + doc = new ActiveXObject('Microsoft.XMLDOM'); + doc.async = 'false'; + doc.loadXML(s); + } + else { + doc = (new DOMParser()).parseFromString(s, 'text/xml'); + } + return (doc && doc.documentElement && doc.documentElement.nodeName != 'parsererror') ? doc : null; + }; + var parseJSON = $.parseJSON || function(s) { + return window['eval']('(' + s + ')'); + }; + + var httpData = function( xhr, type, s ) { // mostly lifted from jq1.4.4 + var ct = xhr.getResponseHeader('content-type') || '', + xml = type === 'xml' || !type && ct.indexOf('xml') >= 0, + data = xml ? xhr.responseXML : xhr.responseText; + + if (xml && data.documentElement.nodeName === 'parsererror') { + $.error && $.error('parsererror'); + } + if (s && s.dataFilter) { + data = s.dataFilter(data, type); + } + if (typeof data === 'string') { + if (type === 'json' || !type && ct.indexOf('json') >= 0) { + data = parseJSON(data); + } else if (type === "script" || !type && ct.indexOf("javascript") >= 0) { + $.globalEval(data); + } + } + return data; + }; + } +}; + +/** + * ajaxForm() provides a mechanism for fully automating form submission. + * + * The advantages of using this method instead of ajaxSubmit() are: + * + * 1: This method will include coordinates for <input type="image" /> elements (if the element + * is used to submit the form). + * 2. This method will include the submit element's name/value data (for the element that was + * used to submit the form). + * 3. This method binds the submit() method to the form for you. + * + * The options argument for ajaxForm works exactly as it does for ajaxSubmit. ajaxForm merely + * passes the options argument along after properly binding events for submit elements and + * the form itself. + */ +$.fn.ajaxForm = function(options) { + // in jQuery 1.3+ we can fix mistakes with the ready state + if (this.length === 0) { + var o = { s: this.selector, c: this.context }; + if (!$.isReady && o.s) { + log('DOM not ready, queuing ajaxForm'); + $(function() { + $(o.s,o.c).ajaxForm(options); + }); + return this; + } + // is your DOM ready? http://docs.jquery.com/Tutorials:Introducing_$(document).ready() + log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)')); + return this; + } + + return this.ajaxFormUnbind().bind('submit.form-plugin', function(e) { + if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed + e.preventDefault(); + $(this).ajaxSubmit(options); + } + }).bind('click.form-plugin', function(e) { + var target = e.target; + var $el = $(target); + if (!($el.is(":submit,input:image"))) { + // is this a child element of the submit el? (ex: a span within a button) + var t = $el.closest(':submit'); + if (t.length == 0) { + return; + } + target = t[0]; + } + var form = this; + form.clk = target; + if (target.type == 'image') { + if (e.offsetX != undefined) { + form.clk_x = e.offsetX; + form.clk_y = e.offsetY; + } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin + var offset = $el.offset(); + form.clk_x = e.pageX - offset.left; + form.clk_y = e.pageY - offset.top; + } else { + form.clk_x = e.pageX - target.offsetLeft; + form.clk_y = e.pageY - target.offsetTop; + } + } + // clear form vars + setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 100); + }); +}; + +// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm +$.fn.ajaxFormUnbind = function() { + return this.unbind('submit.form-plugin click.form-plugin'); +}; + +/** + * formToArray() gathers form element data into an array of objects that can + * be passed to any of the following ajax functions: $.get, $.post, or load. + * Each object in the array has both a 'name' and 'value' property. An example of + * an array for a simple login form might be: + * + * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ] + * + * It is this array that is passed to pre-submit callback functions provided to the + * ajaxSubmit() and ajaxForm() methods. + */ +$.fn.formToArray = function(semantic) { + var a = []; + if (this.length === 0) { + return a; + } + + var form = this[0]; + var els = semantic ? form.getElementsByTagName('*') : form.elements; + if (!els) { + return a; + } + + var i,j,n,v,el,max,jmax; + for(i=0, max=els.length; i < max; i++) { + el = els[i]; + n = el.name; + if (!n) { + continue; + } + + if (semantic && form.clk && el.type == "image") { + // handle image inputs on the fly when semantic == true + if(!el.disabled && form.clk == el) { + a.push({name: n, value: $(el).val()}); + a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y}); + } + continue; + } + + v = $.fieldValue(el, true); + if (v && v.constructor == Array) { + for(j=0, jmax=v.length; j < jmax; j++) { + a.push({name: n, value: v[j]}); + } + } + else if (v !== null && typeof v != 'undefined') { + a.push({name: n, value: v}); + } + } + + if (!semantic && form.clk) { + // input type=='image' are not found in elements array! handle it here + var $input = $(form.clk), input = $input[0]; + n = input.name; + if (n && !input.disabled && input.type == 'image') { + a.push({name: n, value: $input.val()}); + a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y}); + } + } + return a; +}; + +/** + * Serializes form data into a 'submittable' string. This method will return a string + * in the format: name1=value1&name2=value2 + */ +$.fn.formSerialize = function(semantic) { + //hand off to jQuery.param for proper encoding + return $.param(this.formToArray(semantic)); +}; + +/** + * Serializes all field elements in the jQuery object into a query string. + * This method will return a string in the format: name1=value1&name2=value2 + */ +$.fn.fieldSerialize = function(successful) { + var a = []; + this.each(function() { + var n = this.name; + if (!n) { + return; + } + var v = $.fieldValue(this, successful); + if (v && v.constructor == Array) { + for (var i=0,max=v.length; i < max; i++) { + a.push({name: n, value: v[i]}); + } + } + else if (v !== null && typeof v != 'undefined') { + a.push({name: this.name, value: v}); + } + }); + //hand off to jQuery.param for proper encoding + return $.param(a); +}; + +/** + * Returns the value(s) of the element in the matched set. For example, consider the following form: + * + * <form><fieldset> + * <input name="A" type="text" /> + * <input name="A" type="text" /> + * <input name="B" type="checkbox" value="B1" /> + * <input name="B" type="checkbox" value="B2"/> + * <input name="C" type="radio" value="C1" /> + * <input name="C" type="radio" value="C2" /> + * </fieldset></form> + * + * var v = $(':text').fieldValue(); + * // if no values are entered into the text inputs + * v == ['',''] + * // if values entered into the text inputs are 'foo' and 'bar' + * v == ['foo','bar'] + * + * var v = $(':checkbox').fieldValue(); + * // if neither checkbox is checked + * v === undefined + * // if both checkboxes are checked + * v == ['B1', 'B2'] + * + * var v = $(':radio').fieldValue(); + * // if neither radio is checked + * v === undefined + * // if first radio is checked + * v == ['C1'] + * + * The successful argument controls whether or not the field element must be 'successful' + * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls). + * The default value of the successful argument is true. If this value is false the value(s) + * for each element is returned. + * + * Note: This method *always* returns an array. If no valid value can be determined the + * array will be empty, otherwise it will contain one or more values. + */ +$.fn.fieldValue = function(successful) { + for (var val=[], i=0, max=this.length; i < max; i++) { + var el = this[i]; + var v = $.fieldValue(el, successful); + if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) { + continue; + } + v.constructor == Array ? $.merge(val, v) : val.push(v); + } + return val; +}; + +/** + * Returns the value of the field element. + */ +$.fieldValue = function(el, successful) { + var n = el.name, t = el.type, tag = el.tagName.toLowerCase(); + if (successful === undefined) { + successful = true; + } + + if (successful && (!n || el.disabled || t == 'reset' || t == 'button' || + (t == 'checkbox' || t == 'radio') && !el.checked || + (t == 'submit' || t == 'image') && el.form && el.form.clk != el || + tag == 'select' && el.selectedIndex == -1)) { + return null; + } + + if (tag == 'select') { + var index = el.selectedIndex; + if (index < 0) { + return null; + } + var a = [], ops = el.options; + var one = (t == 'select-one'); + var max = (one ? index+1 : ops.length); + for(var i=(one ? index : 0); i < max; i++) { + var op = ops[i]; + if (op.selected) { + var v = op.value; + if (!v) { // extra pain for IE... + v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value; + } + if (one) { + return v; + } + a.push(v); + } + } + return a; + } + return $(el).val(); +}; + +/** + * Clears the form data. Takes the following actions on the form's input fields: + * - input text fields will have their 'value' property set to the empty string + * - select elements will have their 'selectedIndex' property set to -1 + * - checkbox and radio inputs will have their 'checked' property set to false + * - inputs of type submit, button, reset, and hidden will *not* be effected + * - button elements will *not* be effected + */ +$.fn.clearForm = function() { + return this.each(function() { + $('input,select,textarea', this).clearFields(); + }); +}; + +/** + * Clears the selected form elements. + */ +$.fn.clearFields = $.fn.clearInputs = function() { + return this.each(function() { + var t = this.type, tag = this.tagName.toLowerCase(); + if (t == 'text' || t == 'password' || tag == 'textarea') { + this.value = ''; + } + else if (t == 'checkbox' || t == 'radio') { + this.checked = false; + } + else if (tag == 'select') { + this.selectedIndex = -1; + } + }); +}; + +/** + * Resets the form data. Causes all form elements to be reset to their original value. + */ +$.fn.resetForm = function() { + return this.each(function() { + // guard against an input with the name of 'reset' + // note that IE reports the reset function as an 'object' + if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) { + this.reset(); + } + }); +}; + +/** + * Enables or disables any matching elements. + */ +$.fn.enable = function(b) { + if (b === undefined) { + b = true; + } + return this.each(function() { + this.disabled = !b; + }); +}; + +/** + * Checks/unchecks any matching checkboxes or radio buttons and + * selects/deselects and matching option elements. + */ +$.fn.selected = function(select) { + if (select === undefined) { + select = true; + } + return this.each(function() { + var t = this.type; + if (t == 'checkbox' || t == 'radio') { + this.checked = select; + } + else if (this.tagName.toLowerCase() == 'option') { + var $sel = $(this).parent('select'); + if (select && $sel[0] && $sel[0].type == 'select-one') { + // deselect all other options + $sel.find('option').selected(false); + } + this.selected = select; + } + }); +}; + +// helper fn for console logging +// set $.fn.ajaxSubmit.debug to true to enable debug logging +function log() { + if ($.fn.ajaxSubmit.debug) { + var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,''); + if (window.console && window.console.log) { + window.console.log(msg); + } + else if (window.opera && window.opera.postError) { + window.opera.postError(msg); + } + } +}; + +})(jQuery);
--- a/static/scripts/jquery.js Thu Feb 24 16:19:03 2011 -0500 +++ b/static/scripts/jquery.js Thu Feb 24 17:23:16 2011 -0500 @@ -1,5 +1,5 @@ -/* - * jQuery JavaScript Library v1.5 +/*! + * jQuery JavaScript Library v1.5.1 * http://jquery.com/ * * Copyright 2011, John Resig @@ -11,7 +11,7 @@ * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * - * Date: Mon Jan 31 08:31:29 2011 -0500 + * Date: Wed Feb 23 13:55:29 2011 -0500 */ (function( window, undefined ) {
@@ -202,7 +202,7 @@ selector: "",
// The current version of jQuery being used - jquery: "1.5", + jquery: "1.5.1",
// The default length of a jQuery object is 0 length: 0, @@ -313,7 +313,7 @@ jQuery.fn.init.prototype = jQuery.fn;
jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, + var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, @@ -585,10 +585,8 @@ if ( data && rnotwhite.test(data) ) { // Inspired by code by Andrea Giammarchi // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.ht... - var head = document.getElementsByTagName("head")[0] || document.documentElement, - script = document.createElement("script"); - - script.type = "text/javascript"; + var head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement, + script = document.createElement( "script" );
if ( jQuery.support.scriptEval() ) { script.appendChild( document.createTextNode( data ) ); @@ -864,6 +862,12 @@ callbacks.shift().apply( context, args ); } } + // We have to add a catch block for + // IE prior to 8 or else the finally + // block will never get executed + catch (e) { + throw e; + } finally { fired = [ context, args ]; firing = 0; @@ -911,22 +915,22 @@ isRejected: failDeferred.isResolved, // Get a promise for this deferred // If obj is provided, the promise aspect is added to the object - promise: function( obj , i /* internal */ ) { + promise: function( obj ) { if ( obj == null ) { if ( promise ) { return promise; } promise = obj = {}; } - i = promiseMethods.length; + var i = promiseMethods.length; while( i-- ) { - obj[ promiseMethods[ i ] ] = deferred[ promiseMethods[ i ] ]; + obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ]; } return obj; } } ); // Make sure only one callback list will be used - deferred.then( failDeferred.cancel, deferred.cancel ); + deferred.done( failDeferred.cancel ).fail( deferred.cancel ); // Unexpose cancel delete deferred.cancel; // Call given func if any @@ -938,24 +942,34 @@
// Deferred helper when: function( object ) { - var args = arguments, - length = args.length, - deferred = length <= 1 && object && jQuery.isFunction( object.promise ) ? + var lastIndex = arguments.length, + deferred = lastIndex <= 1 && object && jQuery.isFunction( object.promise ) ? object : jQuery.Deferred(), - promise = deferred.promise(), - resolveArray; - - if ( length > 1 ) { - resolveArray = new Array( length ); - jQuery.each( args, function( index, element ) { - jQuery.when( element ).then( function( value ) { - resolveArray[ index ] = arguments.length > 1 ? slice.call( arguments, 0 ) : value; - if( ! --length ) { - deferred.resolveWith( promise, resolveArray ); - } - }, deferred.reject ); - } ); + promise = deferred.promise(); + + if ( lastIndex > 1 ) { + var array = slice.call( arguments, 0 ), + count = lastIndex, + iCallback = function( index ) { + return function( value ) { + array[ index ] = arguments.length > 1 ? slice.call( arguments, 0 ) : value; + if ( !( --count ) ) { + deferred.resolveWith( promise, array ); + } + }; + }; + while( ( lastIndex-- ) ) { + object = array[ lastIndex ]; + if ( object && jQuery.isFunction( object.promise ) ) { + object.promise().then( iCallback(lastIndex), deferred.reject ); + } else { + --count; + } + } + if ( !count ) { + deferred.resolveWith( promise, array ); + } } else if ( deferred !== object ) { deferred.resolve( object ); } @@ -1071,7 +1085,7 @@ }
// Expose jQuery to the global object -return (window.jQuery = window.$ = jQuery); +return jQuery;
})();
@@ -1088,7 +1102,8 @@ var all = div.getElementsByTagName("*"), a = div.getElementsByTagName("a")[0], select = document.createElement("select"), - opt = select.appendChild( document.createElement("option") ); + opt = select.appendChild( document.createElement("option") ), + input = div.getElementsByTagName("input")[0];
// Can't get basic test support if ( !all || !all.length || !a ) { @@ -1127,7 +1142,7 @@ // Make sure that if no value is specified for a checkbox // that it defaults to "on". // (WebKit defaults to "" instead) - checkOn: div.getElementsByTagName("input")[0].value === "on", + checkOn: input.value === "on",
// Make sure that a selected-by-default option has a working selected property. // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) @@ -1137,26 +1152,29 @@ deleteExpando: true, optDisabled: false, checkClone: false, - _scriptEval: null, noCloneEvent: true, + noCloneChecked: true, boxModel: null, inlineBlockNeedsLayout: false, shrinkWrapBlocks: false, reliableHiddenOffsets: true };
+ input.checked = true; + jQuery.support.noCloneChecked = input.cloneNode( true ).checked; + // Make sure that the options inside disabled selects aren't marked as disabled // (WebKit marks them as diabled) select.disabled = true; jQuery.support.optDisabled = !opt.disabled;
+ var _scriptEval = null; jQuery.support.scriptEval = function() { - if ( jQuery.support._scriptEval === null ) { + if ( _scriptEval === null ) { var root = document.documentElement, script = document.createElement("script"), id = "script" + jQuery.now();
- script.type = "text/javascript"; try { script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); } catch(e) {} @@ -1167,10 +1185,10 @@ // tag with appendChild/createTextNode // (IE doesn't support this, fails, and uses .text instead) if ( window[ id ] ) { - jQuery.support._scriptEval = true; + _scriptEval = true; delete window[ id ]; } else { - jQuery.support._scriptEval = false; + _scriptEval = false; }
root.removeChild( script ); @@ -1178,7 +1196,7 @@ root = script = id = null; }
- return jQuery.support._scriptEval; + return _scriptEval; };
// Test to see if it's possible to delete an expando from an element @@ -1190,7 +1208,7 @@ jQuery.support.deleteExpando = false; }
- if ( div.attachEvent && div.fireEvent ) { + if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { div.attachEvent("onclick", function click() { // Cloning a node shouldn't copy over any // bound event handlers (IE does this) @@ -1321,7 +1339,7 @@ hasData: function( elem ) { elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
- return !!elem && !jQuery.isEmptyObject(elem); + return !!elem && !isEmptyDataObject( elem ); },
data: function( elem, name, data, pvt /* Internal Use Only */ ) { @@ -1361,11 +1379,18 @@
if ( !cache[ id ] ) { cache[ id ] = {}; + + // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery + // metadata on plain JS objects when the object is serialized using + // JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } }
// An object can be passed to jQuery.data instead of a key/value pair; this gets // shallow copied over onto the existing cache - if ( typeof name === "object" ) { + if ( typeof name === "object" || typeof name === "function" ) { if ( pvt ) { cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name); } else { @@ -1427,7 +1452,7 @@
// If there is no data left in the cache, we want to continue // and let the cache object itself get destroyed - if ( !jQuery.isEmptyObject(thisCache) ) { + if ( !isEmptyDataObject(thisCache) ) { return; } } @@ -1439,7 +1464,7 @@
// Don't destroy the parent cache unless the internal data object // had been the only thing left in it - if ( !jQuery.isEmptyObject(cache[ id ]) ) { + if ( !isEmptyDataObject(cache[ id ]) ) { return; } } @@ -1460,6 +1485,13 @@ // data if it existed if ( internalCache ) { cache[ id ] = {}; + // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery + // metadata on plain JS objects when the object is serialized using + // JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + cache[ id ][ internalKey ] = internalCache;
// Otherwise, we need to eliminate the expando on the node to avoid @@ -1588,6 +1620,19 @@ return data; }
+// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON +// property to be considered empty objects; this property always exists in +// order to make sure JSON.stringify does not expose internal metadata +function isEmptyDataObject( obj ) { + for ( var name in obj ) { + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} +
@@ -1888,6 +1933,11 @@ } }
+ // Fixes Bug #2551 -- select.val() broken in IE after form.reset() + if ( one && !values.length && options.length ) { + return jQuery( options[ index ] ).val(); + } + return values; }
@@ -2081,8 +2131,7 @@ rescape = /[^\w\s.|`]/g, fcleanup = function( nm ) { return nm.replace(rescape, "\$&"); - }, - eventKey = "events"; + };
/* * A number of helper functions used for managing events. @@ -2098,17 +2147,22 @@ return; }
- // For whatever reason, IE has trouble passing the window object - // around, causing it to be cloned in the process - if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.frameElement ) ) { - elem = window; - } + // TODO :: Use a try/catch until it's safe to pull this out (likely 1.6) + // Minor release fix for bug #8018 + try { + // For whatever reason, IE has trouble passing the window object + // around, causing it to be cloned in the process + if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.frameElement ) ) { + elem = window; + } + } + catch ( e ) {}
if ( handler === false ) { handler = returnFalse; } else if ( !handler ) { // Fixes bug #7229. Fix recommended by jdalton - return; + return; }
var handleObjIn, handleObj; @@ -2132,23 +2186,10 @@ return; }
- var events = elemData[ eventKey ], + var events = elemData.events, eventHandle = elemData.handle;
- if ( typeof events === "function" ) { - // On plain objects events is a fn that holds the the data - // which prevents this data from being JSON serialized - // the function does not need to be called, it just contains the data - eventHandle = events.handle; - events = events.events; - - } else if ( !events ) { - if ( !elem.nodeType ) { - // On plain objects, create a fn that acts as the holder - // of the values to avoid JSON serialization of event data - elemData[ eventKey ] = elemData = function(){}; - } - + if ( !events ) { elemData.events = events = {}; }
@@ -2249,17 +2290,12 @@
var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, elemData = jQuery.hasData( elem ) && jQuery._data( elem ), - events = elemData && elemData[ eventKey ]; + events = elemData && elemData.events;
if ( !elemData || !events ) { return; }
- if ( typeof events === "function" ) { - elemData = events; - events = events.events; - } - // types is actually an event object here if ( types && types.type ) { handler = types.handler; @@ -2359,10 +2395,7 @@ delete elemData.events; delete elemData.handle;
- if ( typeof elemData === "function" ) { - jQuery.removeData( elem, eventKey, true ); - - } else if ( jQuery.isEmptyObject( elemData ) ) { + if ( jQuery.isEmptyObject( elemData ) ) { jQuery.removeData( elem, undefined, true ); } } @@ -2403,7 +2436,7 @@ // points to jQuery.expando var internalKey = jQuery.expando, internalCache = this[ internalKey ]; - if ( internalCache && internalCache.events && internalCache.events[type] ) { + if ( internalCache && internalCache.events && internalCache.events[ type ] ) { jQuery.event.trigger( event, data, internalCache.handle.elem ); } }); @@ -2429,9 +2462,7 @@ event.currentTarget = elem;
// Trigger the event, it is assumed that "handle" is a function - var handle = elem.nodeType ? - jQuery._data( elem, "handle" ) : - (jQuery._data( elem, eventKey ) || {}).handle; + var handle = jQuery._data( elem, "handle" );
if ( handle ) { handle.apply( elem, data ); @@ -2509,11 +2540,7 @@
event.namespace = event.namespace || namespace_sort.join(".");
- events = jQuery._data(this, eventKey); - - if ( typeof events === "function" ) { - events = events.events; - } + events = jQuery._data(this, "events");
handlers = (events || {})[ event.type ];
@@ -2680,7 +2707,7 @@
// Events bubbling up the document may have been marked as prevented // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || + this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse;
// Event type @@ -2755,6 +2782,12 @@ // Firefox sometimes assigns relatedTarget a XUL element // which we cannot access the parentNode property of try { + + // Chrome does something similar, the parentNode property + // can be accessed but is null. + if ( parent !== document && !parent.parentNode ) { + return; + } // Traverse up the tree while ( parent && parent !== this ) { parent = parent.parentNode; @@ -2805,8 +2838,7 @@ type = elem.type;
if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) { - e.liveFired = undefined; - return trigger( "submit", this, arguments ); + trigger( "submit", this, arguments ); } });
@@ -2815,8 +2847,7 @@ type = elem.type;
if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) { - e.liveFired = undefined; - return trigger( "submit", this, arguments ); + trigger( "submit", this, arguments ); } });
@@ -2879,7 +2910,7 @@ if ( data != null || val ) { e.type = "change"; e.liveFired = undefined; - return jQuery.event.trigger( e, arguments[1], elem ); + jQuery.event.trigger( e, arguments[1], elem ); } };
@@ -2893,7 +2924,7 @@ var elem = e.target, type = elem.type;
if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select" ) { - return testChange.call( this, e ); + testChange.call( this, e ); } },
@@ -2905,7 +2936,7 @@ if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") || (e.keyCode === 32 && (type === "checkbox" || type === "radio")) || type === "select-multiple" ) { - return testChange.call( this, e ); + testChange.call( this, e ); } },
@@ -2944,8 +2975,18 @@ }
function trigger( type, elem, args ) { - args[0].type = type; - return jQuery.event.handle.apply( elem, args ); + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + // Don't pass args or remember liveFired; they apply to the donor event. + var event = jQuery.extend( {}, args[ 0 ] ); + event.type = type; + event.originalEvent = {}; + event.liveFired = undefined; + jQuery.event.handle.call( elem, event ); + if ( event.isDefaultPrevented() ) { + args[ 0 ].preventDefault(); + } }
// Create "bubbling" focus and blur events @@ -2954,8 +2995,8 @@ jQuery.event.special[ fix ] = { setup: function() { this.addEventListener( orig, handler, true ); - }, - teardown: function() { + }, + teardown: function() { this.removeEventListener( orig, handler, true ); } }; @@ -3148,11 +3189,7 @@ var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret, elems = [], selectors = [], - events = jQuery._data( this, eventKey ); - - if ( typeof events === "function" ) { - events = events.events; - } + events = jQuery._data( this, "events" );
// Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911) if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) { @@ -3186,7 +3223,7 @@ for ( j = 0; j < live.length; j++ ) { handleObj = live[j];
- if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) ) { + if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) { elem = close.elem; related = null;
@@ -3269,7 +3306,9 @@ done = 0, toString = Object.prototype.toString, hasDuplicate = false, - baseHasDuplicate = true; + baseHasDuplicate = true, + rBackslash = /\/g, + rNonWord = /\W/;
// Here we check if the JavaScript engine is using some sort of // optimization where it does not always call our comparision @@ -3468,7 +3507,7 @@ match.splice( 1, 1 );
if ( left.substr( left.length - 1 ) !== "\" ) { - match[1] = (match[1] || "").replace(/\/g, ""); + match[1] = (match[1] || "").replace( rBackslash, "" ); set = Expr.find[ type ]( match, context, isXML );
if ( set != null ) { @@ -3607,13 +3646,16 @@ attrHandle: { href: function( elem ) { return elem.getAttribute( "href" ); + }, + type: function( elem ) { + return elem.getAttribute( "type" ); } },
relative: { "+": function(checkSet, part){ var isPartStr = typeof part === "string", - isTag = isPartStr && !/\W/.test( part ), + isTag = isPartStr && !rNonWord.test( part ), isPartStrNotTag = isPartStr && !isTag;
if ( isTag ) { @@ -3641,7 +3683,7 @@ i = 0, l = checkSet.length;
- if ( isPartStr && !/\W/.test( part ) ) { + if ( isPartStr && !rNonWord.test( part ) ) { part = part.toLowerCase();
for ( ; i < l; i++ ) { @@ -3675,7 +3717,7 @@ doneName = done++, checkFn = dirCheck;
- if ( typeof part === "string" && !/\W/.test(part) ) { + if ( typeof part === "string" && !rNonWord.test( part ) ) { part = part.toLowerCase(); nodeCheck = part; checkFn = dirNodeCheck; @@ -3689,7 +3731,7 @@ doneName = done++, checkFn = dirCheck;
- if ( typeof part === "string" && !/\W/.test( part ) ) { + if ( typeof part === "string" && !rNonWord.test( part ) ) { part = part.toLowerCase(); nodeCheck = part; checkFn = dirNodeCheck; @@ -3732,7 +3774,7 @@ }, preFilter: { CLASS: function( match, curLoop, inplace, result, not, isXML ) { - match = " " + match[1].replace(/\/g, "") + " "; + match = " " + match[1].replace( rBackslash, "" ) + " ";
if ( isXML ) { return match; @@ -3755,11 +3797,11 @@ },
ID: function( match ) { - return match[1].replace(/\/g, ""); + return match[1].replace( rBackslash, "" ); },
TAG: function( match, curLoop ) { - return match[1].toLowerCase(); + return match[1].replace( rBackslash, "" ).toLowerCase(); },
CHILD: function( match ) { @@ -3790,14 +3832,14 @@ },
ATTR: function( match, curLoop, inplace, result, not, isXML ) { - var name = match[1] = match[1].replace(/\/g, ""); + var name = match[1] = match[1].replace( rBackslash, "" ); if ( !isXML && Expr.attrMap[name] ) { match[1] = Expr.attrMap[name]; }
// Handle if an un-quoted value was used - match[4] = ( match[4] || match[5] || "" ).replace(/\/g, ""); + match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );
if ( match[2] === "~=" ) { match[4] = " " + match[4] + " "; @@ -3852,7 +3894,9 @@ selected: function( elem ) { // Accessing this property makes selected-by-default // options in Safari work properly - elem.parentNode.selectedIndex; + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } return elem.selected === true; }, @@ -3874,7 +3918,9 @@ },
text: function( elem ) { - return "text" === elem.type; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return "text" === elem.getAttribute( 'type' ); }, radio: function( elem ) { return "radio" === elem.type; @@ -4407,7 +4453,8 @@ // and working up from there (Thanks to Andrew Dupont for the technique) // IE 8 doesn't work on object elements } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - var old = context.getAttribute( "id" ), + var oldContext = context, + old = context.getAttribute( "id" ), nid = old || id, hasParent = context.parentNode, relativeHierarchySelector = /^\s*[+~]/.test( query ); @@ -4429,7 +4476,7 @@ } catch(pseudoError) { } finally { if ( !old ) { - context.removeAttribute( "id" ); + oldContext.removeAttribute( "id" ); } } } @@ -4845,11 +4892,11 @@ }, function( name, fn ) { jQuery.fn[ name ] = function( until, selector ) { var ret = jQuery.map( this, fn, until ), - // The variable 'args' was introduced in - // https://github.com/jquery/jquery/commit/52a0238 - // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. - // http://code.google.com/p/v8/issues/detail?id=1050 - args = slice.call(arguments); + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments);
if ( !runtil.test( name ) ) { selector = until; @@ -4959,7 +5006,7 @@ rtbody = /<tbody/i, rhtml = /<|&#?\w+;/, rnocache = /<(?:script|object|embed|option|style)/i, - // checked="checked" or checked (html5) + // checked="checked" or checked rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, wrapMap = { option: [ 1, "<select multiple='multiple'>", "</select>" ], @@ -5111,7 +5158,7 @@ }
if ( elem.parentNode ) { - elem.parentNode.removeChild( elem ); + elem.parentNode.removeChild( elem ); } } } @@ -5136,7 +5183,7 @@ },
clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? true : dataAndEvents; + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
return this.map( function () { @@ -5305,8 +5352,8 @@ }
var internalKey = jQuery.expando, - oldData = jQuery.data( src ), - curData = jQuery.data( dest, oldData ); + oldData = jQuery.data( src ), + curData = jQuery.data( dest, oldData );
// Switch to use the internal data object, if it exists, for the next // stage of data copying @@ -5320,7 +5367,7 @@
for ( var type in events ) { for ( var i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ], events[ type ][ i ].data ); + jQuery.event.add( dest, type + ( events[ type ][ i ].namespace ? "." : "" ) + events[ type ][ i ].namespace, events[ type ][ i ], events[ type ][ i ].data ); } } } @@ -5441,6 +5488,18 @@ }; });
+function getAll( elem ) { + if ( "getElementsByTagName" in elem ) { + return elem.getElementsByTagName( "*" ); + + } else if ( "querySelectorAll" in elem ) { + return elem.querySelectorAll( "*" ); + + } else { + return []; + } +} + jQuery.extend({ clone: function( elem, dataAndEvents, deepDataAndEvents ) { var clone = elem.cloneNode(true), @@ -5448,17 +5507,20 @@ destElements, i;
- if ( !jQuery.support.noCloneEvent && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { // IE copies events bound via attachEvent when using cloneNode. // Calling detachEvent on the clone will also remove the events // from the original. In order to get around this, we use some // proprietary methods to clear the events. Thanks to MooTools // guys for this hotness.
+ cloneFixAttributes( elem, clone ); + // Using Sizzle here is crazy slow, so we use getElementsByTagName // instead - srcElements = elem.getElementsByTagName("*"); - destElements = clone.getElementsByTagName("*"); + srcElements = getAll( elem ); + destElements = getAll( clone );
// Weird iteration because IE will replace the length property // with an element if you are cloning the body and one of the @@ -5466,30 +5528,25 @@ for ( i = 0; srcElements[i]; ++i ) { cloneFixAttributes( srcElements[i], destElements[i] ); } - - cloneFixAttributes( elem, clone ); }
// Copy the events from the original to the clone if ( dataAndEvents ) { - cloneCopyEvent( elem, clone );
- if ( deepDataAndEvents && "getElementsByTagName" in elem ) { - - srcElements = elem.getElementsByTagName("*"); - destElements = clone.getElementsByTagName("*"); - - if ( srcElements.length ) { - for ( i = 0; srcElements[i]; ++i ) { - cloneCopyEvent( srcElements[i], destElements[i] ); - } - } - } - } + if ( deepDataAndEvents ) { + srcElements = getAll( elem ); + destElements = getAll( clone ); + + for ( i = 0; srcElements[i]; ++i ) { + cloneCopyEvent( srcElements[i], destElements[i] ); + } + } + } + // Return the cloned set return clone; - }, +}, clean: function( elems, context, fragment, scripts ) { context = context || document;
@@ -5910,7 +5967,7 @@
if ( document.documentElement.currentStyle ) { currentStyle = function( elem, name ) { - var left, + var left, ret = elem.currentStyle && elem.currentStyle[ name ], rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ], style = elem.style; @@ -5988,8 +6045,10 @@ rbracket = /[]$/, rCRLF = /\r?\n/g, rhash = /#.*$/, - rheaders = /^(.*?):\s*(.*?)\r?$/mg, // IE leaves an \r character at EOL + rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /(?:^file|^widget|-extension):$/, rnoContent = /^(?:GET|HEAD)$/, rprotocol = /^///, rquery = /?/, @@ -5997,7 +6056,11 @@ rselectTextarea = /^(?:select|textarea)/i, rspacesAjax = /\s+/, rts = /([?&])_=[^&]*/, - rurl = /^(\w+:)//([^/?#:]+)(?::(\d+))?/, + rucHeaders = /(^|-)([a-z])/g, + rucHeadersFunc = function( _, $1, $2 ) { + return $1 + $2.toUpperCase(); + }, + rurl = /^([\w+.-]+:)//([^/?#:]*)(?::(\d+))?/,
// Keep a copy of the old load method _load = jQuery.fn.load, @@ -6018,7 +6081,28 @@ * 2) the catchall symbol "*" can be used * 3) selection will start with transport dataType and THEN go to "*" if needed */ - transports = {}; + transports = {}, + + // Document location + ajaxLocation, + + // Document location segments + ajaxLocParts; + +// #8138, IE may throw an exception when accessing +// a field from document.location if document.domain has been set +try { + ajaxLocation = document.location.href; +} catch( e ) { + // Use the href attribute of an A element + // since IE will modify it given document.location + ajaxLocation = document.createElement( "a" ); + ajaxLocation.href = ""; + ajaxLocation = ajaxLocation.href; +} + +// Segment location into parts +ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() );
// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { @@ -6057,7 +6141,7 @@ }
//Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jXHR, +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR, dataType /* internal */, inspected /* internal */ ) {
dataType = dataType || options.dataTypes[ 0 ]; @@ -6072,16 +6156,16 @@ selection;
for(; i < length && ( executeOnly || !selection ); i++ ) { - selection = list[ i ]( options, originalOptions, jXHR ); + selection = list[ i ]( options, originalOptions, jqXHR ); // If we got redirected to another dataType - // we try there if not done already + // we try there if executing only and not done already if ( typeof selection === "string" ) { - if ( inspected[ selection ] ) { + if ( !executeOnly || inspected[ selection ] ) { selection = undefined; } else { options.dataTypes.unshift( selection ); selection = inspectPrefiltersOrTransports( - structure, options, originalOptions, jXHR, selection, inspected ); + structure, options, originalOptions, jqXHR, selection, inspected ); } } } @@ -6089,7 +6173,7 @@ // we try the catchall dataType if not done already if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) { selection = inspectPrefiltersOrTransports( - structure, options, originalOptions, jXHR, "*", inspected ); + structure, options, originalOptions, jqXHR, "*", inspected ); } // unnecessary when only executing (prefilters) // but it'll be ignored by the caller in that case @@ -6121,7 +6205,7 @@ if ( jQuery.isFunction( params ) ) { // We assume that it's the callback callback = params; - params = null; + params = undefined;
// Otherwise, build a param string } else if ( typeof params === "object" ) { @@ -6139,14 +6223,14 @@ dataType: "html", data: params, // Complete callback (responseText is used internally) - complete: function( jXHR, status, responseText ) { - // Store the response as specified by the jXHR object - responseText = jXHR.responseText; + complete: function( jqXHR, status, responseText ) { + // Store the response as specified by the jqXHR object + responseText = jqXHR.responseText; // If successful, inject the HTML into all the matched elements - if ( jXHR.isResolved() ) { + if ( jqXHR.isResolved() ) { // #4825: Get the actual response in case // a dataFilter is present in ajaxSettings - jXHR.done(function( r ) { + jqXHR.done(function( r ) { responseText = r; }); // See if a selector was specified @@ -6165,7 +6249,7 @@ }
if ( callback ) { - self.each( callback, [ responseText, status, jXHR ] ); + self.each( callback, [ responseText, status, jqXHR ] ); } } }); @@ -6213,7 +6297,7 @@ if ( jQuery.isFunction( data ) ) { type = type || callback; callback = data; - data = null; + data = undefined; }
return jQuery.ajax({ @@ -6229,22 +6313,39 @@ jQuery.extend({
getScript: function( url, callback ) { - return jQuery.get( url, null, callback, "script" ); + return jQuery.get( url, undefined, callback, "script" ); },
getJSON: function( url, data, callback ) { return jQuery.get( url, data, callback, "json" ); },
- ajaxSetup: function( settings ) { - jQuery.extend( true, jQuery.ajaxSettings, settings ); - if ( settings.context ) { - jQuery.ajaxSettings.context = settings.context; - } + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function ( target, settings ) { + if ( !settings ) { + // Only one parameter, we extend ajaxSettings + settings = target; + target = jQuery.extend( true, jQuery.ajaxSettings, settings ); + } else { + // target was provided, we extend into it + jQuery.extend( true, target, jQuery.ajaxSettings, settings ); + } + // Flatten fields we don't want deep extended + for( var field in { context: 1, url: 1 } ) { + if ( field in settings ) { + target[ field ] = settings[ field ]; + } else if( field in jQuery.ajaxSettings ) { + target[ field ] = jQuery.ajaxSettings[ field ]; + } + } + return target; },
ajaxSettings: { - url: location.href, + url: ajaxLocation, + isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ), global: true, type: "GET", contentType: "application/x-www-form-urlencoded", @@ -6306,9 +6407,8 @@ // Main method ajax: function( url, options ) {
- // If options is not an object, - // we simulate pre-1.5 signature - if ( typeof options !== "object" ) { + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { options = url; url = undefined; } @@ -6317,19 +6417,22 @@ options = options || {};
var // Create the final options object - s = jQuery.extend( true, {}, jQuery.ajaxSettings, options ), - // Callbacks contexts - // We force the original context if it exists - // or take it from jQuery.ajaxSettings otherwise - // (plain objects used as context get extended) - callbackContext = - ( s.context = ( "context" in options ? options : jQuery.ajaxSettings ).context ) || s, - globalEventContext = callbackContext === s ? jQuery.event : jQuery( callbackContext ), + s = jQuery.ajaxSetup( {}, options ), + // Callbacks context + callbackContext = s.context || s, + // Context for global events + // It's the callbackContext if one was provided in the options + // and if it's a DOM node or a jQuery collection + globalEventContext = callbackContext !== s && + ( callbackContext.nodeType || callbackContext instanceof jQuery ) ? + jQuery( callbackContext ) : jQuery.event, // Deferreds deferred = jQuery.Deferred(), completeDeferred = jQuery._Deferred(), // Status-dependent callbacks statusCode = s.statusCode || {}, + // ifModified key + ifModifiedKey, // Headers (they are sent all at once) requestHeaders = {}, // Response headers @@ -6340,22 +6443,22 @@ // timeout handle timeoutTimer, // Cross-domain detection vars - loc = document.location, - protocol = loc.protocol || "http:", parts, - // The jXHR state + // The jqXHR state state = 0, + // To know if global events are to be dispatched + fireGlobals, // Loop variable i, // Fake xhr - jXHR = { + jqXHR = {
readyState: 0,
// Caches the header setRequestHeader: function( name, value ) { - if ( state === 0 ) { - requestHeaders[ name.toLowerCase() ] = value; + if ( !state ) { + requestHeaders[ name.toLowerCase().replace( rucHeaders, rucHeadersFunc ) ] = value; } return this; }, @@ -6377,7 +6480,15 @@ } match = responseHeaders[ key.toLowerCase() ]; } - return match || null; + return match === undefined ? null : match; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( !state ) { + s.mimeType = type; + } + return this; },
// Cancel the request @@ -6394,7 +6505,7 @@ // Callback for when everything is done // It is defined here because jslint complains if it is declared // at the end of the function (which would be more logical and readable) - function done( status, statusText, responses, headers) { + function done( status, statusText, responses, headers ) {
// Called once if ( state === 2 ) { @@ -6410,19 +6521,19 @@ }
// Dereference transport for early garbage collection - // (no matter how long the jXHR object will be used) + // (no matter how long the jqXHR object will be used) transport = undefined;
// Cache response headers responseHeadersString = headers || "";
// Set readyState - jXHR.readyState = status ? 4 : 0; + jqXHR.readyState = status ? 4 : 0;
var isSuccess, success, error, - response = responses ? ajaxHandleResponses( s, jXHR, responses ) : undefined, + response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined, lastModified, etag;
@@ -6432,11 +6543,11 @@ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) {
- if ( ( lastModified = jXHR.getResponseHeader( "Last-Modified" ) ) ) { - jQuery.lastModified[ s.url ] = lastModified; + if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) { + jQuery.lastModified[ ifModifiedKey ] = lastModified; } - if ( ( etag = jXHR.getResponseHeader( "Etag" ) ) ) { - jQuery.etag[ s.url ] = etag; + if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) { + jQuery.etag[ ifModifiedKey ] = etag; } }
@@ -6463,7 +6574,7 @@ // We extract error from statusText // then normalize statusText and status for non-aborts error = statusText; - if( status ) { + if( !statusText || status ) { statusText = "error"; if ( status < 0 ) { status = 0; @@ -6472,30 +6583,30 @@ }
// Set data for the fake xhr object - jXHR.status = status; - jXHR.statusText = statusText; + jqXHR.status = status; + jqXHR.statusText = statusText;
// Success/Error if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jXHR ] ); + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); } else { - deferred.rejectWith( callbackContext, [ jXHR, statusText, error ] ); + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); }
// Status-dependent callbacks - jXHR.statusCode( statusCode ); + jqXHR.statusCode( statusCode ); statusCode = undefined;
- if ( s.global ) { + if ( fireGlobals ) { globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ), - [ jXHR, s, isSuccess ? success : error ] ); + [ jqXHR, s, isSuccess ? success : error ] ); }
// Complete - completeDeferred.resolveWith( callbackContext, [ jXHR, statusText ] ); - - if ( s.global ) { - globalEventContext.trigger( "ajaxComplete", [ jXHR, s] ); + completeDeferred.resolveWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s] ); // Handle the global AJAX counter if ( !( --jQuery.active ) ) { jQuery.event.trigger( "ajaxStop" ); @@ -6504,13 +6615,13 @@ }
// Attach deferreds - deferred.promise( jXHR ); - jXHR.success = jXHR.done; - jXHR.error = jXHR.fail; - jXHR.complete = completeDeferred.done; + deferred.promise( jqXHR ); + jqXHR.success = jqXHR.done; + jqXHR.error = jqXHR.fail; + jqXHR.complete = completeDeferred.done;
// Status-dependent callbacks - jXHR.statusCode = function( map ) { + jqXHR.statusCode = function( map ) { if ( map ) { var tmp; if ( state < 2 ) { @@ -6518,8 +6629,8 @@ statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ]; } } else { - tmp = map[ jXHR.status ]; - jXHR.then( tmp, tmp ); + tmp = map[ jqXHR.status ]; + jqXHR.then( tmp, tmp ); } } return this; @@ -6528,7 +6639,7 @@ // Remove hash character (#7531: and string promotion) // Add protocol if not provided (#5866: IE7 issue with protocol-less urls) // We also use the url parameter if available - s.url = ( "" + ( url || s.url ) ).replace( rhash, "" ).replace( rprotocol, protocol + "//" ); + s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
// Extract dataTypes list s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax ); @@ -6537,9 +6648,9 @@ if ( !s.crossDomain ) { parts = rurl.exec( s.url.toLowerCase() ); s.crossDomain = !!( parts && - ( parts[ 1 ] != protocol || parts[ 2 ] != loc.hostname || + ( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] || ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) != - ( loc.port || ( protocol === "http:" ? 80 : 443 ) ) ) + ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) ) ); }
@@ -6549,7 +6660,15 @@ }
// Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jXHR ); + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefiler, stop there + if ( state === 2 ) { + return false; + } + + // We can fire global events as of now if asked to + fireGlobals = s.global;
// Uppercase the type s.type = s.type.toUpperCase(); @@ -6558,7 +6677,7 @@ s.hasContent = !rnoContent.test( s.type );
// Watch for a new set of requests - if ( s.global && jQuery.active++ === 0 ) { + if ( fireGlobals && jQuery.active++ === 0 ) { jQuery.event.trigger( "ajaxStart" ); }
@@ -6570,6 +6689,9 @@ s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data; }
+ // Get ifModifiedKey before adding the anti-cache parameter + ifModifiedKey = s.url; + // Add anti-cache in url if needed if ( s.cache === false ) {
@@ -6584,77 +6706,77 @@
// Set the correct header, if data is being sent if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - requestHeaders[ "content-type" ] = s.contentType; + requestHeaders[ "Content-Type" ] = s.contentType; }
// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) { - if ( jQuery.lastModified[ s.url ] ) { - requestHeaders[ "if-modified-since" ] = jQuery.lastModified[ s.url ]; - } - if ( jQuery.etag[ s.url ] ) { - requestHeaders[ "if-none-match" ] = jQuery.etag[ s.url ]; + ifModifiedKey = ifModifiedKey || s.url; + if ( jQuery.lastModified[ ifModifiedKey ] ) { + requestHeaders[ "If-Modified-Since" ] = jQuery.lastModified[ ifModifiedKey ]; + } + if ( jQuery.etag[ ifModifiedKey ] ) { + requestHeaders[ "If-None-Match" ] = jQuery.etag[ ifModifiedKey ]; } }
// Set the Accepts header for the server, depending on the dataType - requestHeaders.accept = s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? + requestHeaders.Accept = s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) : s.accepts[ "*" ];
// Check for headers option for ( i in s.headers ) { - requestHeaders[ i.toLowerCase() ] = s.headers[ i ]; + jqXHR.setRequestHeader( i, s.headers[ i ] ); }
// Allow custom headers/mimetypes and early abort - if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jXHR, s ) === false || state === 2 ) ) { + if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { // Abort if not done already - done( 0, "abort" ); - // Return false - jXHR = false; - + jqXHR.abort(); + return false; + + } + + // Install callbacks on deferreds + for ( i in { success: 1, error: 1, complete: 1 } ) { + jqXHR[ i ]( s[ i ] ); + } + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); } else { - - // Install callbacks on deferreds - for ( i in { success: 1, error: 1, complete: 1 } ) { - jXHR[ i ]( s[ i ] ); - } - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - // Set state as sending - state = jXHR.readyState = 1; - // Send global event - if ( s.global ) { - globalEventContext.trigger( "ajaxSend", [ jXHR, s ] ); - } - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = setTimeout( function(){ - jXHR.abort( "timeout" ); - }, s.timeout ); - } - - try { - transport.send( requestHeaders, done ); - } catch (e) { - // Propagate exception as error if not done - if ( status < 2 ) { - done( -1, e ); - // Simply rethrow otherwise - } else { - jQuery.error( e ); - } - } - } - } - return jXHR; + jqXHR.readyState = 1; + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = setTimeout( function(){ + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + state = 1; + transport.send( requestHeaders, done ); + } catch (e) { + // Propagate exception as error if not done + if ( status < 2 ) { + done( -1, e ); + // Simply rethrow otherwise + } else { + jQuery.error( e ); + } + } + } + + return jqXHR; },
// Serialize an array of form elements or a set of @@ -6673,7 +6795,7 @@ }
// If an array was passed in, assume that it is an array of form elements. - if ( jQuery.isArray( a ) || a.jquery ) { + if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { // Serialize the form elements jQuery.each( a, function() { add( this.name, this.value ); @@ -6720,9 +6842,9 @@
// Serialize object item. } else { - jQuery.each( obj, function( k, v ) { - buildParams( prefix + "[" + k + "]", v, traditional, add ); - }); + for ( var name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } }
} else { @@ -6749,7 +6871,7 @@ * - finds the right dataType (mediates between content-type and expected dataType) * - returns the corresponding response */ -function ajaxHandleResponses( s, jXHR, responses ) { +function ajaxHandleResponses( s, jqXHR, responses ) {
var contents = s.contents, dataTypes = s.dataTypes, @@ -6762,7 +6884,7 @@ // Fill responseXXX fields for( type in responseFields ) { if ( type in responses ) { - jXHR[ responseFields[type] ] = responses[ type ]; + jqXHR[ responseFields[type] ] = responses[ type ]; } }
@@ -6770,7 +6892,7 @@ while( dataTypes[ 0 ] === "*" ) { dataTypes.shift(); if ( ct === undefined ) { - ct = jXHR.getResponseHeader( "content-type" ); + ct = s.mimeType || jqXHR.getResponseHeader( "content-type" ); } }
@@ -6822,8 +6944,9 @@ }
var dataTypes = s.dataTypes, - converters = s.converters, + converters = {}, i, + key, length = dataTypes.length, tmp, // Current and previous dataTypes @@ -6840,6 +6963,16 @@ // For each dataType in the chain for( i = 1; i < length; i++ ) {
+ // Create converters map + // with lowercased keys + if ( i === 1 ) { + for( key in s.converters ) { + if( typeof key === "string" ) { + converters[ key.toLowerCase() ] = s.converters[ key ]; + } + } + } + // Get the dataTypes prev = current; current = dataTypes[ i ]; @@ -6902,9 +7035,9 @@ });
// Detect, normalize options and install callbacks for jsonp requests -jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, dataIsString /* internal */ ) { - - dataIsString = ( typeof s.data === "string" ); +jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { + + var dataIsString = ( typeof s.data === "string" );
if ( s.dataTypes[ 0 ] === "jsonp" || originalSettings.jsonpCallback || @@ -6918,7 +7051,15 @@ previous = window[ jsonpCallback ], url = s.url, data = s.data, - replace = "$1" + jsonpCallback + "$2"; + replace = "$1" + jsonpCallback + "$2", + cleanUp = function() { + // Set callback back to previous value + window[ jsonpCallback ] = previous; + // Call if it was a function and we have a response + if ( responseContainer && jQuery.isFunction( previous ) ) { + window[ jsonpCallback ]( responseContainer[ 0 ] ); + } + };
if ( s.jsonp !== false ) { url = url.replace( jsre, replace ); @@ -6936,32 +7077,17 @@ s.url = url; s.data = data;
+ // Install callback window[ jsonpCallback ] = function( response ) { responseContainer = [ response ]; };
- s.complete = [ function() { - - // Set callback back to previous value - window[ jsonpCallback ] = previous; - - // Call if it was a function and we have a response - if ( previous) { - if ( responseContainer && jQuery.isFunction( previous ) ) { - window[ jsonpCallback ] ( responseContainer[ 0 ] ); - } - } else { - // else, more memory leak avoidance - try{ - delete window[ jsonpCallback ]; - } catch( e ) {} - } - - }, s.complete ]; + // Install cleanUp function + jqXHR.then( cleanUp, cleanUp );
// Use data converter to retrieve json after script execution s.converters["script json"] = function() { - if ( ! responseContainer ) { + if ( !responseContainer ) { jQuery.error( jsonpCallback + " was not called" ); } return responseContainer[ 0 ]; @@ -6981,10 +7107,10 @@ // Install script dataType jQuery.ajaxSetup({ accepts: { - script: "text/javascript, application/javascript" + script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { - script: /javascript/ + script: /javascript|ecmascript/ }, converters: { "text script": function( text ) { @@ -7012,7 +7138,7 @@ if ( s.crossDomain ) {
var script, - head = document.getElementsByTagName( "head" )[ 0 ] || document.documentElement; + head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
return {
@@ -7067,18 +7193,36 @@
-var // Next active xhr id +var // #5280: next active xhr id and list of active xhrs' callbacks xhrId = jQuery.now(), - - // active xhrs - xhrs = {}, - - // #5280: see below - xhrUnloadAbortInstalled, + xhrCallbacks,
// XHR used to determine supports properties testXHR;
+// #5280: Internet Explorer will keep connections alive if we don't abort on unload +function xhrOnUnloadAbort() { + jQuery( window ).unload(function() { + // Abort all pending requests + for ( var key in xhrCallbacks ) { + xhrCallbacks[ key ]( 0, 1 ); + } + }); +} + +// Functions to create xhrs +function createStandardXHR() { + try { + return new window.XMLHttpRequest(); + } catch( e ) {} +} + +function createActiveXHR() { + try { + return new window.ActiveXObject( "Microsoft.XMLHTTP" ); + } catch( e ) {} +} + // Create the request object // (This is still attached to ajaxSettings for backward compatibility) jQuery.ajaxSettings.xhr = window.ActiveXObject ? @@ -7089,27 +7233,13 @@ * we need a fallback. */ function() { - if ( window.location.protocol !== "file:" ) { - try { - return new window.XMLHttpRequest(); - } catch( xhrError ) {} - } - - try { - return new window.ActiveXObject("Microsoft.XMLHTTP"); - } catch( activeError ) {} + return !this.isLocal && createStandardXHR() || createActiveXHR(); } : // For all other browsers, use the standard XMLHttpRequest object - function() { - return new window.XMLHttpRequest(); - }; + createStandardXHR;
// Test if we can create an xhr object -try { - testXHR = jQuery.ajaxSettings.xhr(); -} catch( xhrCreationException ) {} - -//Does this browser support XHR requests? +testXHR = jQuery.ajaxSettings.xhr(); jQuery.support.ajax = !!testXHR;
// Does this browser support crossDomain XHR requests @@ -7130,26 +7260,10 @@ return { send: function( headers, complete ) {
- // #5280: we need to abort on unload or IE will keep connections alive - if ( !xhrUnloadAbortInstalled ) { - - xhrUnloadAbortInstalled = 1; - - jQuery(window).bind( "unload", function() { - - // Abort all pending requests - jQuery.each( xhrs, function( _, xhr ) { - if ( xhr.onreadystatechange ) { - xhr.onreadystatechange( 1 ); - } - } ); - - } ); - } - // Get a new xhr var xhr = s.xhr(), - handle; + handle, + i;
// Open the socket // Passing null username, generates a login popup on Opera (#2865) @@ -7159,19 +7273,31 @@ xhr.open( s.type, s.url, s.async ); }
+ // Apply custom fields if provided + if ( s.xhrFields ) { + for ( i in s.xhrFields ) { + xhr[ i ] = s.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( s.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( s.mimeType ); + } + // Requested-With header // Not set for crossDomain requests with no content // (see why at http://trac.dojotoolkit.org/ticket/9486) // Won't change header if already provided - if ( !( s.crossDomain && !s.hasContent ) && !headers["x-requested-with"] ) { - headers[ "x-requested-with" ] = "XMLHttpRequest"; + if ( !( s.crossDomain && !s.hasContent ) && !headers["X-Requested-With"] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; }
// Need an extra try/catch for cross domain requests in Firefox 3 try { - jQuery.each( headers, function( key, value ) { - xhr.setRequestHeader( key, value ); - } ); + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } } catch( _ ) {}
// Do send the request @@ -7182,75 +7308,79 @@ // Listener callback = function( _, isAbort ) {
- // Was never called and is aborted or complete - if ( callback && ( isAbort || xhr.readyState === 4 ) ) { - - // Only called once - callback = 0; - - // Do not keep as active anymore - if ( handle ) { - xhr.onreadystatechange = jQuery.noop; - delete xhrs[ handle ]; + var status, + statusText, + responseHeaders, + responses, + xml; + + // Firefox throws exceptions when accessing properties + // of an xhr when a network error occured + // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x...) + try { + + // Was never called and is aborted or complete + if ( callback && ( isAbort || xhr.readyState === 4 ) ) { + + // Only called once + callback = undefined; + + // Do not keep as active anymore + if ( handle ) { + xhr.onreadystatechange = jQuery.noop; + delete xhrCallbacks[ handle ]; + } + + // If it's an abort + if ( isAbort ) { + // Abort it manually if needed + if ( xhr.readyState !== 4 ) { + xhr.abort(); + } + } else { + status = xhr.status; + responseHeaders = xhr.getAllResponseHeaders(); + responses = {}; + xml = xhr.responseXML; + + // Construct response list + if ( xml && xml.documentElement /* #4958 */ ) { + responses.xml = xml; + } + responses.text = xhr.responseText; + + // Firefox throws an exception when accessing + // statusText for faulty cross-domain requests + try { + statusText = xhr.statusText; + } catch( e ) { + // We normalize with Webkit giving an empty statusText + statusText = ""; + } + + // Filter status for non standard behaviors + + // If the request is local and we have data: assume a success + // (success with no data won't get notified, that's the best we + // can do given current implementations) + if ( !status && s.isLocal && !s.crossDomain ) { + status = responses.text ? 200 : 404; + // IE - #1450: sometimes returns 1223 when it should be 204 + } else if ( status === 1223 ) { + status = 204; + } + } } - - // If it's an abort - if ( isAbort ) { - // Abort it manually if needed - if ( xhr.readyState !== 4 ) { - xhr.abort(); - } - } else { - // Get info - var status = xhr.status, - statusText, - responseHeaders = xhr.getAllResponseHeaders(), - responses = {}, - xml = xhr.responseXML; - - // Construct response list - if ( xml && xml.documentElement /* #4958 */ ) { - responses.xml = xml; - } - responses.text = xhr.responseText; - - // Firefox throws an exception when accessing - // statusText for faulty cross-domain requests - try { - statusText = xhr.statusText; - } catch( e ) { - // We normalize with Webkit giving an empty statusText - statusText = ""; - } - - // Filter status for non standard behaviours - status = - // Opera returns 0 when it should be 304 - // Webkit returns 0 for failing cross-domain no matter the real status - status === 0 ? - ( - // Webkit, Firefox: filter out faulty cross-domain requests - !s.crossDomain || statusText ? - ( - // Opera: filter out real aborts #6060 - responseHeaders ? - 304 : - 0 - ) : - // We assume 302 but could be anything cross-domain related - 302 - ) : - ( - // IE sometimes returns 1223 when it should be 204 (see #1450) - status == 1223 ? - 204 : - status - ); - - // Call complete - complete( status, statusText, responses, responseHeaders ); + } catch( firefoxAccessException ) { + if ( !isAbort ) { + complete( -1, firefoxAccessException ); } } + + // Call complete if needed + if ( responses ) { + complete( status, statusText, responses, responseHeaders ); + } };
// if we're in sync mode or it's in cache @@ -7259,10 +7389,15 @@ if ( !s.async || xhr.readyState === 4 ) { callback(); } else { - // Add to list of active xhrs + // Create the active xhrs callbacks list if needed + // and attach the unload handler + if ( !xhrCallbacks ) { + xhrCallbacks = {}; + xhrOnUnloadAbort(); + } + // Add to list of active xhrs callbacks handle = xhrId++; - xhrs[ handle ] = xhr; - xhr.onreadystatechange = callback; + xhr.onreadystatechange = xhrCallbacks[ handle ] = callback; } },
@@ -7464,11 +7599,11 @@
} else { var parts = rfxnum.exec(val), - start = e.cur() || 0; + start = e.cur();
if ( parts ) { var end = parseFloat( parts[2] ), - unit = parts[3] || "px"; + unit = parts[3] || ( jQuery.cssNumber[ name ] ? "" : "px" );
// We need to compute starting value if ( unit !== "px" ) { @@ -7615,8 +7750,12 @@ return this.elem[ this.prop ]; }
- var r = parseFloat( jQuery.css( this.elem, this.prop ) ); - return r || 0; + var parsed, + r = jQuery.css( this.elem, this.prop ); + // Empty strings, null, undefined and "auto" are converted to 0, + // complex values such as "rotate(1rad)" are returned as is, + // simple values such as "10px" are parsed to Float. + return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed; },
// Start an animation from one number to another @@ -7627,7 +7766,7 @@ this.startTime = jQuery.now(); this.start = from; this.end = to; - this.unit = unit || this.unit || "px"; + this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" ); this.now = this.start; this.pos = this.state = 0;
@@ -8078,7 +8217,7 @@ if ( win ) { win.scrollTo( !i ? val : jQuery(win).scrollLeft(), - i ? val : jQuery(win).scrollTop() + i ? val : jQuery(win).scrollTop() );
} else { @@ -8173,4 +8312,5 @@ });
+window.jQuery = window.$ = jQuery; })(window);
--- a/static/scripts/packed/jquery.form.js Thu Feb 24 16:19:03 2011 -0500 +++ b/static/scripts/packed/jquery.form.js Thu Feb 24 17:23:16 2011 -0500 @@ -1,1 +1,11 @@ -(function(b){b.fn.ajaxSubmit=function(p){if(!this.length){a("ajaxSubmit: skipping submit process - no element selected");return this}if(typeof p=="function"){p={success:p}}p=b.extend({url:this.attr("action")||window.location.toString(),type:this.attr("method")||"GET"},p||{});var s={};this.trigger("form-pre-serialize",[this,p,s]);if(s.veto){a("ajaxSubmit: submit vetoed via form-pre-serialize trigger");return this}if(p.beforeSerialize&&p.beforeSerialize(this,p)===false){a("ajaxSubmit: submit aborted via beforeSerialize callback");return this}var i=this.formToArray(p.semantic);if(p.data){p.extraData=p.data;for(var e in p.data){if(p.data[e] instanceof Array){for(var f in p.data[e]){i.push({name:e,value:p.data[e][f]})}}else{i.push({name:e,value:p.data[e]})}}}if(p.beforeSubmit&&p.beforeSubmit(i,this,p)===false){a("ajaxSubmit: submit aborted via beforeSubmit callback");return this}this.trigger("form-submit-validate",[i,this,p,s]);if(s.veto){a("ajaxSubmit: submit vetoed via form-submit-validate trigger");return this}var d=b.param(i);if(p.type.toUpperCase()=="GET"){p.url+=(p.url.indexOf("?")>=0?"&":"?")+d;p.data=null}else{p.data=d}var r=this,h=[];if(p.resetForm){h.push(function(){r.resetForm()})}if(p.clearForm){h.push(function(){r.clearForm()})}if(!p.dataType&&p.target){var m=p.success||function(){};h.push(function(j){b(p.target).html(j).each(m,arguments)})}else{if(p.success){h.push(p.success)}}p.success=function(q,k){for(var n=0,j=h.length;n<j;n++){h[n].apply(p,[q,k,r])}};var c=b("input:file",this).fieldValue();var o=false;for(var g=0;g<c.length;g++){if(c[g]){o=true}}if(p.iframe||o){if(p.closeKeepAlive){b.get(p.closeKeepAlive,l)}else{l()}}else{b.ajax(p)}this.trigger("form-submit-notify",[this,p]);return this;function l(){var u=r[0];if(b(":input[name=submit]",u).length){alert('Error: Form elements must not be named "submit".');return}var q=b.extend({},b.ajaxSettings,p);var E=jQuery.extend(true,{},b.extend(true,{},b.ajaxSettings),q);var t="jqFormIO"+(new Date().getTime());var A=b('<iframe id="'+t+'" name="'+t+'" src="about:blank" />');var C=A[0];A.css({position:"absolute",top:"-1000px",left:"-1000px"});var D={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(){this.aborted=1;A.attr("src","about:blank")}};var B=q.global;if(B&&!b.active++){b.event.trigger("ajaxStart")}if(B){b.event.trigger("ajaxSend",[D,q])}if(E.beforeSend&&E.beforeSend(D,E)===false){E.global&&jQuery.active--;return}if(D.aborted){return}var k=0;var w=0;var j=u.clk;if(j){var v=j.name;if(v&&!j.disabled){p.extraData=p.extraData||{};p.extraData[v]=j.value;if(j.type=="image"){p.extraData[name+".x"]=u.clk_x;p.extraData[name+".y"]=u.clk_y}}}setTimeout(function(){var H=r.attr("target"),F=r.attr("action");u.setAttribute("target",t);if(u.getAttribute("method")!="POST"){u.setAttribute("method","POST")}if(u.getAttribute("action")!=q.url){u.setAttribute("action",q.url)}if(!p.skipEncodingOverride){r.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"})}if(q.timeout){setTimeout(function(){w=true;x()},q.timeout)}var G=[];try{if(p.extraData){for(var I in p.extraData){G.push(b('<input type="hidden" name="'+I+'" value="'+p.extraData[I]+'" />').appendTo(u)[0])}}A.appendTo("body");C.attachEvent?C.attachEvent("onload",x):C.addEventListener("load",x,false);u.submit()}finally{u.setAttribute("action",F);H?u.setAttribute("target",H):r.removeAttr("target");b(G).remove()}},10);var y=0;function x(){if(k++){return}C.detachEvent?C.detachEvent("onload",x):C.removeEventListener("load",x,false);var F=true;try{if(w){throw"timeout"}var G,I;I=C.contentWindow?C.contentWindow.document:C.contentDocument?C.contentDocument:C.document;if((I.body==null||I.body.innerHTML=="")&&!y){y=1;k--;setTimeout(x,100);return}D.responseText=I.body?I.body.innerHTML:null;D.responseXML=I.XMLDocument?I.XMLDocument:I;D.getResponseHeader=function(K){var J={"content-type":q.dataType};return J[K]};if(q.dataType=="json"||q.dataType=="script"){var n=I.getElementsByTagName("textarea")[0];D.responseText=n?n.value:D.responseText}else{if(q.dataType=="xml"&&!D.responseXML&&D.responseText!=null){D.responseXML=z(D.responseText)}}G=b.httpData(D,q.dataType)}catch(H){F=false;b.handleError(q,D,"error",H)}if(F){q.success(G,"success");if(B){b.event.trigger("ajaxSuccess",[D,q])}}if(B){b.event.trigger("ajaxComplete",[D,q])}if(B&&!--b.active){b.event.trigger("ajaxStop")}if(q.complete){q.complete(D,F?"success":"error")}setTimeout(function(){A.remove();D.responseXML=null},100)}function z(n,F){if(window.ActiveXObject){F=new ActiveXObject("Microsoft.XMLDOM");F.async="false";F.loadXML(n)}else{F=(new DOMParser()).parseFromString(n,"text/xml")}return(F&&F.documentElement&&F.documentElement.tagName!="parsererror")?F:null}}};b.fn.ajaxForm=function(c){return this.ajaxFormUnbind().bind("submit.form-plugin",function(){b(this).ajaxSubmit(c);return false}).each(function(){b(":submit,input:image",this).bind("click.form-plugin",function(f){var d=this.form;d.clk=this;if(this.type=="image"){if(f.offsetX!=undefined){d.clk_x=f.offsetX;d.clk_y=f.offsetY}else{if(typeof b.fn.offset=="function"){var g=b(this).offset();d.clk_x=f.pageX-g.left;d.clk_y=f.pageY-g.top}else{d.clk_x=f.pageX-this.offsetLeft;d.clk_y=f.pageY-this.offsetTop}}}setTimeout(function(){d.clk=d.clk_x=d.clk_y=null},10)})})};b.fn.ajaxFormUnbind=function(){this.unbind("submit.form-plugin");return this.each(function(){b(":submit,input:image",this).unbind("click.form-plugin")})};b.fn.formToArray=function(q){var p=[];if(this.length==0){return p}var d=this[0];var h=q?d.getElementsByTagName("*"):d.elements;if(!h){return p}for(var k=0,m=h.length;k<m;k++){var e=h[k];var f=e.name;if(!f){continue}if(q&&d.clk&&e.type=="image"){if(!e.disabled&&d.clk==e){p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y})}continue}var r=b.fieldValue(e,true);if(r&&r.constructor==Array){for(var g=0,c=r.length;g<c;g++){p.push({name:f,value:r[g]})}}else{if(r!==null&&typeof r!="undefined"){p.push({name:f,value:r})}}}if(!q&&d.clk){var l=d.getElementsByTagName("input");for(var k=0,m=l.length;k<m;k++){var o=l[k];var f=o.name;if(f&&!o.disabled&&o.type=="image"&&d.clk==o){p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y})}}}return p};b.fn.formSerialize=function(c){return b.param(this.formToArray(c))};b.fn.fieldSerialize=function(d){var c=[];this.each(function(){var h=this.name;if(!h){return}var f=b.fieldValue(this,d);if(f&&f.constructor==Array){for(var g=0,e=f.length;g<e;g++){c.push({name:h,value:f[g]})}}else{if(f!==null&&typeof f!="undefined"){c.push({name:this.name,value:f})}}});return b.param(c)};b.fn.fieldValue=function(h){for(var g=[],e=0,c=this.length;e<c;e++){var f=this[e];var d=b.fieldValue(f,h);if(d===null||typeof d=="undefined"||(d.constructor==Array&&!d.length)){continue}d.constructor==Array?b.merge(g,d):g.push(d)}return g};b.fieldValue=function(c,j){var e=c.name,p=c.type,q=c.tagName.toLowerCase();if(typeof j=="undefined"){j=true}if(j&&(!e||c.disabled||p=="reset"||p=="button"||(p=="checkbox"||p=="radio")&&!c.checked||(p=="submit"||p=="image")&&c.form&&c.form.clk!=c||q=="select"&&c.selectedIndex==-1)){return null}if(q=="select"){var k=c.selectedIndex;if(k<0){return null}var m=[],d=c.options;var g=(p=="select-one");var l=(g?k+1:d.length);for(var f=(g?k:0);f<l;f++){var h=d[f];if(h.selected){var o=h.value;if(!o){o=(h.attributes&&h.attributes.value&&!(h.attributes.value.specified))?h.text:h.value}if(g){return o}m.push(o)}}return m}return c.value};b.fn.clearForm=function(){return this.each(function(){b("input,select,textarea",this).clearFields()})};b.fn.clearFields=b.fn.clearInputs=function(){return this.each(function(){var d=this.type,c=this.tagName.toLowerCase();if(d=="text"||d=="password"||c=="textarea"){this.value=""}else{if(d=="checkbox"||d=="radio"){this.checked=false}else{if(c=="select"){this.selectedIndex=-1}}}})};b.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=="function"||(typeof this.reset=="object"&&!this.reset.nodeType)){this.reset()}})};b.fn.enable=function(c){if(c==undefined){c=true}return this.each(function(){this.disabled=!c})};b.fn.selected=function(c){if(c==undefined){c=true}return this.each(function(){var d=this.type;if(d=="checkbox"||d=="radio"){this.checked=c}else{if(this.tagName.toLowerCase()=="option"){var e=b(this).parent("select");if(c&&e[0]&&e[0].type=="select-one"){e.find("option").selected(false)}this.selected=c}}})};function a(){if(b.fn.ajaxSubmit.debug&&window.console&&window.console.log){window.console.log("[jquery.form] "+Array.prototype.join.call(arguments,""))}}})(jQuery); \ No newline at end of file +/* + * jQuery Form Plugin + * version: 2.63 (29-JAN-2011) + * @requires jQuery v1.3.2 or later + * + * Examples and documentation at: http://malsup.com/jquery/form/ + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ +(function(b){b.fn.ajaxSubmit=function(t){if(!this.length){a("ajaxSubmit: skipping submit process - no element selected");return this}if(typeof t=="function"){t={success:t}}var h=this.attr("action");var d=(typeof h==="string")?b.trim(h):"";if(d){d=(d.match(/^([^#]+)/)||[])[1]}d=d||window.location.href||"";t=b.extend(true,{url:d,type:this[0].getAttribute("method")||"GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},t);var u={};this.trigger("form-pre-serialize",[this,t,u]);if(u.veto){a("ajaxSubmit: submit vetoed via form-pre-serialize trigger");return this}if(t.beforeSerialize&&t.beforeSerialize(this,t)===false){a("ajaxSubmit: submit aborted via beforeSerialize callback");return this}var f,p,m=this.formToArray(t.semantic);if(t.data){t.extraData=t.data;for(f in t.data){if(t.data[f] instanceof Array){for(var i in t.data[f]){m.push({name:f,value:t.data[f][i]})}}else{p=t.data[f];p=b.isFunction(p)?p():p;m.push({name:f,value:p})}}}if(t.beforeSubmit&&t.beforeSubmit(m,this,t)===false){a("ajaxSubmit: submit aborted via beforeSubmit callback");return this}this.trigger("form-submit-validate",[m,this,t,u]);if(u.veto){a("ajaxSubmit: submit vetoed via form-submit-validate trigger");return this}var c=b.param(m);if(t.type.toUpperCase()=="GET"){t.url+=(t.url.indexOf("?")>=0?"&":"?")+c;t.data=null}else{t.data=c}var s=this,l=[];if(t.resetForm){l.push(function(){s.resetForm()})}if(t.clearForm){l.push(function(){s.clearForm()})}if(!t.dataType&&t.target){var r=t.success||function(){};l.push(function(n){var k=t.replaceTarget?"replaceWith":"html";b(t.target)[k](n).each(r,arguments)})}else{if(t.success){l.push(t.success)}}t.success=function(w,n,x){var v=t.context||t;for(var q=0,k=l.length;q<k;q++){l[q].apply(v,[w,n,x||s,s])}};var g=b("input:file",this).length>0;var e="multipart/form-data";var j=(s.attr("enctype")==e||s.attr("encoding")==e);if(t.iframe!==false&&(g||t.iframe||j)){if(t.closeKeepAlive){b.get(t.closeKeepAlive,o)}else{o()}}else{b.ajax(t)}this.trigger("form-submit-notify",[this,t]);return this;function o(){var v=s[0];if(b(":input[name=submit],:input[id=submit]",v).length){alert('Error: Form elements must not have name or id of "submit".');return}var B=b.extend(true,{},b.ajaxSettings,t);B.context=B.context||B;var E="jqFormIO"+(new Date().getTime()),z="_"+E;var w=b('<iframe id="'+E+'" name="'+E+'" src="'+B.iframeSrc+'" />');var A=w[0];w.css({position:"absolute",top:"-1000px",left:"-1000px"});var x={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(){this.aborted=1;w.attr("src",B.iframeSrc)}};var I=B.global;if(I&&!b.active++){b.event.trigger("ajaxStart")}if(I){b.event.trigger("ajaxSend",[x,B])}if(B.beforeSend&&B.beforeSend.call(B.context,x,B)===false){if(B.global){b.active--}return}if(x.aborted){return}var H=0;var y=v.clk;if(y){var F=y.name;if(F&&!y.disabled){B.extraData=B.extraData||{};B.extraData[F]=y.value;if(y.type=="image"){B.extraData[F+".x"]=v.clk_x;B.extraData[F+".y"]=v.clk_y}}}function G(){var O=s.attr("target"),M=s.attr("action");v.setAttribute("target",E);if(v.getAttribute("method")!="POST"){v.setAttribute("method","POST")}if(v.getAttribute("action")!=B.url){v.setAttribute("action",B.url)}if(!B.skipEncodingOverride){s.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"})}if(B.timeout){setTimeout(function(){H=true;D()},B.timeout)}var N=[];try{if(B.extraData){for(var P in B.extraData){N.push(b('<input type="hidden" name="'+P+'" value="'+B.extraData[P]+'" />').appendTo(v)[0])}}w.appendTo("body");A.attachEvent?A.attachEvent("onload",D):A.addEventListener("load",D,false);v.submit()}finally{v.setAttribute("action",M);if(O){v.setAttribute("target",O)}else{s.removeAttr("target")}b(N).remove()}}if(B.forceSync){G()}else{setTimeout(G,10)}var K,L,J=50;function D(){L=A.contentWindow?A.contentWindow.document:A.contentDocument?A.contentDocument:A.document;if(!L||L.location.href==B.iframeSrc){return}A.detachEvent?A.detachEvent("onload",D):A.removeEventListener("load",D,false);var N=true;try{if(H){throw"timeout"}var R=B.dataType=="xml"||L.XMLDocument||b.isXMLDoc(L);a("isXml="+R);if(!R&&window.opera&&(L.body==null||L.body.innerHTML=="")){if(--J){a("requeing onLoad callback, DOM not available");setTimeout(D,250);return}}x.responseText=L.body?L.body.innerHTML:L.documentElement?L.documentElement.innerHTML:null;x.responseXML=L.XMLDocument?L.XMLDocument:L;x.getResponseHeader=function(T){var S={"content-type":B.dataType};return S[T]};var Q=/(json|script)/.test(B.dataType);if(Q||B.textarea){var M=L.getElementsByTagName("textarea")[0];if(M){x.responseText=M.value}else{if(Q){var P=L.getElementsByTagName("pre")[0];var n=L.getElementsByTagName("body")[0];if(P){x.responseText=P.textContent}else{if(n){x.responseText=n.innerHTML}}}}}else{if(B.dataType=="xml"&&!x.responseXML&&x.responseText!=null){x.responseXML=C(x.responseText)}}K=k(x,B.dataType,B)}catch(O){a("error caught:",O);N=false;x.error=O;B.error.call(B.context,x,"error",O);I&&b.event.trigger("ajaxError",[x,B,O])}if(x.aborted){a("upload aborted");N=false}if(N){B.success.call(B.context,K,"success",x);I&&b.event.trigger("ajaxSuccess",[x,B])}I&&b.event.trigger("ajaxComplete",[x,B]);if(I&&!--b.active){b.event.trigger("ajaxStop")}B.complete&&B.complete.call(B.context,x,N?"success":"error");setTimeout(function(){w.removeData("form-plugin-onload");w.remove();x.responseXML=null},100)}var C=b.parseXML||function(n,M){if(window.ActiveXObject){M=new ActiveXObject("Microsoft.XMLDOM");M.async="false";M.loadXML(n)}else{M=(new DOMParser()).parseFromString(n,"text/xml")}return(M&&M.documentElement&&M.documentElement.nodeName!="parsererror")?M:null};var q=b.parseJSON||function(n){return window["eval"]("("+n+")")};var k=function(Q,O,N){var M=Q.getResponseHeader("content-type")||"",n=O==="xml"||!O&&M.indexOf("xml")>=0,P=n?Q.responseXML:Q.responseText;if(n&&P.documentElement.nodeName==="parsererror"){b.error&&b.error("parsererror")}if(N&&N.dataFilter){P=N.dataFilter(P,O)}if(typeof P==="string"){if(O==="json"||!O&&M.indexOf("json")>=0){P=q(P)}else{if(O==="script"||!O&&M.indexOf("javascript")>=0){b.globalEval(P)}}}return P}}};b.fn.ajaxForm=function(c){if(this.length===0){var d={s:this.selector,c:this.context};if(!b.isReady&&d.s){a("DOM not ready, queuing ajaxForm");b(function(){b(d.s,d.c).ajaxForm(c)});return this}a("terminating; zero elements found by selector"+(b.isReady?"":" (DOM not ready)"));return this}return this.ajaxFormUnbind().bind("submit.form-plugin",function(f){if(!f.isDefaultPrevented()){f.preventDefault();b(this).ajaxSubmit(c)}}).bind("click.form-plugin",function(j){var i=j.target;var g=b(i);if(!(g.is(":submit,input:image"))){var f=g.closest(":submit");if(f.length==0){return}i=f[0]}var h=this;h.clk=i;if(i.type=="image"){if(j.offsetX!=undefined){h.clk_x=j.offsetX;h.clk_y=j.offsetY}else{if(typeof b.fn.offset=="function"){var k=g.offset();h.clk_x=j.pageX-k.left;h.clk_y=j.pageY-k.top}else{h.clk_x=j.pageX-i.offsetLeft;h.clk_y=j.pageY-i.offsetTop}}}setTimeout(function(){h.clk=h.clk_x=h.clk_y=null},100)})};b.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin")};b.fn.formToArray=function(q){var p=[];if(this.length===0){return p}var d=this[0];var g=q?d.getElementsByTagName("*"):d.elements;if(!g){return p}var k,h,f,r,e,m,c;for(k=0,m=g.length;k<m;k++){e=g[k];f=e.name;if(!f){continue}if(q&&d.clk&&e.type=="image"){if(!e.disabled&&d.clk==e){p.push({name:f,value:b(e).val()});p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y})}continue}r=b.fieldValue(e,true);if(r&&r.constructor==Array){for(h=0,c=r.length;h<c;h++){p.push({name:f,value:r[h]})}}else{if(r!==null&&typeof r!="undefined"){p.push({name:f,value:r})}}}if(!q&&d.clk){var l=b(d.clk),o=l[0];f=o.name;if(f&&!o.disabled&&o.type=="image"){p.push({name:f,value:l.val()});p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y})}}return p};b.fn.formSerialize=function(c){return b.param(this.formToArray(c))};b.fn.fieldSerialize=function(d){var c=[];this.each(function(){var h=this.name;if(!h){return}var f=b.fieldValue(this,d);if(f&&f.constructor==Array){for(var g=0,e=f.length;g<e;g++){c.push({name:h,value:f[g]})}}else{if(f!==null&&typeof f!="undefined"){c.push({name:this.name,value:f})}}});return b.param(c)};b.fn.fieldValue=function(h){for(var g=[],e=0,c=this.length;e<c;e++){var f=this[e];var d=b.fieldValue(f,h);if(d===null||typeof d=="undefined"||(d.constructor==Array&&!d.length)){continue}d.constructor==Array?b.merge(g,d):g.push(d)}return g};b.fieldValue=function(c,j){var e=c.name,p=c.type,q=c.tagName.toLowerCase();if(j===undefined){j=true}if(j&&(!e||c.disabled||p=="reset"||p=="button"||(p=="checkbox"||p=="radio")&&!c.checked||(p=="submit"||p=="image")&&c.form&&c.form.clk!=c||q=="select"&&c.selectedIndex==-1)){return null}if(q=="select"){var k=c.selectedIndex;if(k<0){return null}var m=[],d=c.options;var g=(p=="select-one");var l=(g?k+1:d.length);for(var f=(g?k:0);f<l;f++){var h=d[f];if(h.selected){var o=h.value;if(!o){o=(h.attributes&&h.attributes.value&&!(h.attributes.value.specified))?h.text:h.value}if(g){return o}m.push(o)}}return m}return b(c).val()};b.fn.clearForm=function(){return this.each(function(){b("input,select,textarea",this).clearFields()})};b.fn.clearFields=b.fn.clearInputs=function(){return this.each(function(){var d=this.type,c=this.tagName.toLowerCase();if(d=="text"||d=="password"||c=="textarea"){this.value=""}else{if(d=="checkbox"||d=="radio"){this.checked=false}else{if(c=="select"){this.selectedIndex=-1}}}})};b.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=="function"||(typeof this.reset=="object"&&!this.reset.nodeType)){this.reset()}})};b.fn.enable=function(c){if(c===undefined){c=true}return this.each(function(){this.disabled=!c})};b.fn.selected=function(c){if(c===undefined){c=true}return this.each(function(){var d=this.type;if(d=="checkbox"||d=="radio"){this.checked=c}else{if(this.tagName.toLowerCase()=="option"){var e=b(this).parent("select");if(c&&e[0]&&e[0].type=="select-one"){e.find("option").selected(false)}this.selected=c}}})};function a(){if(b.fn.ajaxSubmit.debug){var c="[jquery.form] "+Array.prototype.join.call(arguments,"");if(window.console&&window.console.log){window.console.log(c)}else{if(window.opera&&window.opera.postError){window.opera.postError(c)}}}}})(jQuery); \ No newline at end of file
--- a/static/scripts/packed/jquery.js Thu Feb 24 16:19:03 2011 -0500 +++ b/static/scripts/packed/jquery.js Thu Feb 24 17:23:16 2011 -0500 @@ -1,8 +1,23 @@ -(function(aP,E){var ae=aP.document;var a=(function(){var bf=function(bA,bB){return new bf.fn.init(bA,bB,bd)},bv=aP.jQuery,bh=aP.$,bd,bz=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w-]+)$)/,bn=/\S/,bj=/^\s+/,be=/\s+$/,bi=/\d/,bb=/^<(\w+)\s*/?>(?:</\1>)?$/,bo=/^[],:{}\s]*$/,bx=/\(?:["\/bfnrt]|u[0-9a-fA-F]{4})/g,bq=/"[^"\\n\r]*"|true|false|null|-?\d+(?:.\d*)?(?:[eE][+-]?\d+)?/g,bk=/(?:^|:|,)(?:\s*[)+/g,a9=/(webkit)[ /]([\w.]+)/,bs=/(opera)(?:.*version)?[ /]([\w.]+)/,br=/(msie) ([\w.]+)/,bt=/(mozilla)(?:.*? rv:([\w.]+))?/,by=navigator.userAgent,bw,bu=false,bc,a4="then done fail isResolved isRejected promise".split(" "),a5,bm=Object.prototype.toString,bg=Object.prototype.hasOwnProperty,ba=Array.prototype.push,bl=Array.prototype.slice,bp=String.prototype.trim,a6=Array.prototype.indexOf,a8={};bf.fn=bf.prototype={constructor:bf,init:function(bA,bE,bD){var bC,bF,bB,bG;if(!bA){return this}if(bA.nodeType){this.context=this[0]=bA;this.length=1;return this}if(bA==="body"&&!bE&&ae.body){this.context=ae;this[0]=ae.body;this.selector="body";this.length=1;return this}if(typeof bA==="string"){bC=bz.exec(bA);if(bC&&(bC[1]||!bE)){if(bC[1]){bE=bE instanceof bf?bE[0]:bE;bG=(bE?bE.ownerDocument||bE:ae);bB=bb.exec(bA);if(bB){if(bf.isPlainObject(bE)){bA=[ae.createElement(bB[1])];bf.fn.attr.call(bA,bE,true)}else{bA=[bG.createElement(bB[1])]}}else{bB=bf.buildFragment([bC[1]],[bG]);bA=(bB.cacheable?bf.clone(bB.fragment):bB.fragment).childNodes}return bf.merge(this,bA)}else{bF=ae.getElementById(bC[2]);if(bF&&bF.parentNode){if(bF.id!==bC[2]){return bD.find(bA)}this.length=1;this[0]=bF}this.context=ae;this.selector=bA;return this}}else{if(!bE||bE.jquery){return(bE||bD).find(bA)}else{return this.constructor(bE).find(bA)}}}else{if(bf.isFunction(bA)){return bD.ready(bA)}}if(bA.selector!==E){this.selector=bA.selector;this.context=bA.context}return bf.makeArray(bA,this)},selector:"",jquery:"1.5",length:0,size:function(){return this.length},toArray:function(){return bl.call(this,0)},get:function(bA){return bA==null?this.toArray():(bA<0?this[this.length+bA]:this[bA])},pushStack:function(bB,bD,bA){var bC=this.constructor();if(bf.isArray(bB)){ba.apply(bC,bB)}else{bf.merge(bC,bB)}bC.prevObject=this;bC.context=this.context;if(bD==="find"){bC.selector=this.selector+(this.selector?" ":"")+bA}else{if(bD){bC.selector=this.selector+"."+bD+"("+bA+")"}}return bC},each:function(bB,bA){return bf.each(this,bB,bA)},ready:function(bA){bf.bindReady();bc.done(bA);return this},eq:function(bA){return bA===-1?this.slice(bA):this.slice(bA,+bA+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bl.apply(this,arguments),"slice",bl.call(arguments).join(","))},map:function(bA){return this.pushStack(bf.map(this,function(bC,bB){return bA.call(bC,bB,bC)}))},end:function(){return this.prevObject||this.constructor(null)},push:ba,sort:[].sort,splice:[].splice};bf.fn.init.prototype=bf.fn;bf.extend=bf.fn.extend=function(){var bJ,bC,bA,bB,bG,bH,bF=arguments[0]||{},bE=1,bD=arguments.length,bI=false;if(typeof bF==="boolean"){bI=bF;bF=arguments[1]||{};bE=2}if(typeof bF!=="object"&&!bf.isFunction(bF)){bF={}}if(bD===bE){bF=this;--bE}for(;bE<bD;bE++){if((bJ=arguments[bE])!=null){for(bC in bJ){bA=bF[bC];bB=bJ[bC];if(bF===bB){continue}if(bI&&bB&&(bf.isPlainObject(bB)||(bG=bf.isArray(bB)))){if(bG){bG=false;bH=bA&&bf.isArray(bA)?bA:[]}else{bH=bA&&bf.isPlainObject(bA)?bA:{}}bF[bC]=bf.extend(bI,bH,bB)}else{if(bB!==E){bF[bC]=bB}}}}}return bF};bf.extend({noConflict:function(bA){aP.$=bh;if(bA){aP.jQuery=bv}return bf},isReady:false,readyWait:1,ready:function(bA){if(bA===true){bf.readyWait--}if(!bf.readyWait||(bA!==true&&!bf.isReady)){if(!ae.body){return setTimeout(bf.ready,1)}bf.isReady=true;if(bA!==true&&--bf.readyWait>0){return}bc.resolveWith(ae,[bf]);if(bf.fn.trigger){bf(ae).trigger("ready").unbind("ready")}}},bindReady:function(){if(bu){return}bu=true;if(ae.readyState==="complete"){return setTimeout(bf.ready,1)}if(ae.addEventListener){ae.addEventListener("DOMContentLoaded",a5,false);aP.addEventListener("load",bf.ready,false)}else{if(ae.attachEvent){ae.attachEvent("onreadystatechange",a5);aP.attachEvent("onload",bf.ready);var bA=false;try{bA=aP.frameElement==null}catch(bB){}if(ae.documentElement.doScroll&&bA){a7()}}}},isFunction:function(bA){return bf.type(bA)==="function"},isArray:Array.isArray||function(bA){return bf.type(bA)==="array"},isWindow:function(bA){return bA&&typeof bA==="object"&&"setInterval" in bA},isNaN:function(bA){return bA==null||!bi.test(bA)||isNaN(bA)},type:function(bA){return bA==null?String(bA):a8[bm.call(bA)]||"object"},isPlainObject:function(bB){if(!bB||bf.type(bB)!=="object"||bB.nodeType||bf.isWindow(bB)){return false}if(bB.constructor&&!bg.call(bB,"constructor")&&!bg.call(bB.constructor.prototype,"isPrototypeOf")){return false}var bA;for(bA in bB){}return bA===E||bg.call(bB,bA)},isEmptyObject:function(bB){for(var bA in bB){return false}return true},error:function(bA){throw bA},parseJSON:function(bA){if(typeof bA!=="string"||!bA){return null}bA=bf.trim(bA);if(bo.test(bA.replace(bx,"@").replace(bq,"]").replace(bk,""))){return aP.JSON&&aP.JSON.parse?aP.JSON.parse(bA):(new Function("return "+bA))()}else{bf.error("Invalid JSON: "+bA)}},parseXML:function(bC,bA,bB){if(aP.DOMParser){bB=new DOMParser();bA=bB.parseFromString(bC,"text/xml")}else{bA=new ActiveXObject("Microsoft.XMLDOM");bA.async="false";bA.loadXML(bC)}bB=bA.documentElement;if(!bB||!bB.nodeName||bB.nodeName==="parsererror"){bf.error("Invalid XML: "+bC)}return bA},noop:function(){},globalEval:function(bC){if(bC&&bn.test(bC)){var bB=ae.getElementsByTagName("head")[0]||ae.documentElement,bA=ae.createElement("script");bA.type="text/javascript";if(bf.support.scriptEval()){bA.appendChild(ae.createTextNode(bC))}else{bA.text=bC}bB.insertBefore(bA,bB.firstChild);bB.removeChild(bA)}},nodeName:function(bB,bA){return bB.nodeName&&bB.nodeName.toUpperCase()===bA.toUpperCase()},each:function(bD,bH,bC){var bB,bE=0,bF=bD.length,bA=bF===E||bf.isFunction(bD);if(bC){if(bA){for(bB in bD){if(bH.apply(bD[bB],bC)===false){break}}}else{for(;bE<bF;){if(bH.apply(bD[bE++],bC)===false){break}}}}else{if(bA){for(bB in bD){if(bH.call(bD[bB],bB,bD[bB])===false){break}}}else{for(var bG=bD[0];bE<bF&&bH.call(bG,bE,bG)!==false;bG=bD[++bE]){}}}return bD},trim:bp?function(bA){return bA==null?"":bp.call(bA)}:function(bA){return bA==null?"":bA.toString().replace(bj,"").replace(be,"")},makeArray:function(bD,bB){var bA=bB||[];if(bD!=null){var bC=bf.type(bD);if(bD.length==null||bC==="string"||bC==="function"||bC==="regexp"||bf.isWindow(bD)){ba.call(bA,bD)}else{bf.merge(bA,bD)}}return bA},inArray:function(bC,bD){if(bD.indexOf){return bD.indexOf(bC)}for(var bA=0,bB=bD.length;bA<bB;bA++){if(bD[bA]===bC){return bA}}return -1},merge:function(bE,bC){var bD=bE.length,bB=0;if(typeof bC.length==="number"){for(var bA=bC.length;bB<bA;bB++){bE[bD++]=bC[bB]}}else{while(bC[bB]!==E){bE[bD++]=bC[bB++]}}bE.length=bD;return bE},grep:function(bB,bG,bA){var bC=[],bF;bA=!!bA;for(var bD=0,bE=bB.length;bD<bE;bD++){bF=!!bG(bB[bD],bD);if(bA!==bF){bC.push(bB[bD])}}return bC},map:function(bB,bG,bA){var bC=[],bF;for(var bD=0,bE=bB.length;bD<bE;bD++){bF=bG(bB[bD],bD,bA);if(bF!=null){bC[bC.length]=bF}}return bC.concat.apply([],bC)},guid:1,proxy:function(bC,bB,bA){if(arguments.length===2){if(typeof bB==="string"){bA=bC;bC=bA[bB];bB=E}else{if(bB&&!bf.isFunction(bB)){bA=bB;bB=E}}}if(!bB&&bC){bB=function(){return bC.apply(bA||this,arguments)}}if(bC){bB.guid=bC.guid=bC.guid||bB.guid||bf.guid++}return bB},access:function(bA,bI,bG,bC,bF,bH){var bB=bA.length;if(typeof bI==="object"){for(var bD in bI){bf.access(bA,bD,bI[bD],bC,bF,bG)}return bA}if(bG!==E){bC=!bH&&bC&&bf.isFunction(bG);for(var bE=0;bE<bB;bE++){bF(bA[bE],bI,bC?bG.call(bA[bE],bE,bF(bA[bE],bI)):bG,bH)}return bA}return bB?bF(bA[0],bI):E},now:function(){return(new Date()).getTime()},_Deferred:function(){var bD=[],bE,bB,bC,bA={done:function(){if(!bC){var bG=arguments,bH,bK,bJ,bI,bF;if(bE){bF=bE;bE=0}for(bH=0,bK=bG.length;bH<bK;bH++){bJ=bG[bH];bI=bf.type(bJ);if(bI==="array"){bA.done.apply(bA,bJ)}else{if(bI==="function"){bD.push(bJ)}}}if(bF){bA.resolveWith(bF[0],bF[1])}}return this},resolveWith:function(bG,bF){if(!bC&&!bE&&!bB){bB=1;try{while(bD[0]){bD.shift().apply(bG,bF)}}finally{bE=[bG,bF];bB=0}}return this},resolve:function(){bA.resolveWith(bf.isFunction(this.promise)?this.promise():this,arguments);return this},isResolved:function(){return !!(bB||bE)},cancel:function(){bC=1;bD=[];return this}};return bA},Deferred:function(bB){var bA=bf._Deferred(),bD=bf._Deferred(),bC;bf.extend(bA,{then:function(bF,bE){bA.done(bF).fail(bE);return this},fail:bD.done,rejectWith:bD.resolveWith,reject:bD.resolve,isRejected:bD.isResolved,promise:function(bF,bE){if(bF==null){if(bC){return bC}bC=bF={}}bE=a4.length;while(bE--){bF[a4[bE]]=bA[a4[bE]]}return bF}});bA.then(bD.cancel,bA.cancel);delete bA.cancel;if(bB){bB.call(bA,bA)}return bA},when:function(bD){var bC=arguments,bE=bC.length,bB=bE<=1&&bD&&bf.isFunction(bD.promise)?bD:bf.Deferred(),bF=bB.promise(),bA;if(bE>1){bA=new Array(bE);bf.each(bC,function(bG,bH){bf.when(bH).then(function(bI){bA[bG]=arguments.length>1?bl.call(arguments,0):bI;if(!--bE){bB.resolveWith(bF,bA)}},bB.reject)})}else{if(bB!==bD){bB.resolve(bD)}}return bF},uaMatch:function(bB){bB=bB.toLowerCase();var bA=a9.exec(bB)||bs.exec(bB)||br.exec(bB)||bB.indexOf("compatible")<0&&bt.exec(bB)||[];return{browser:bA[1]||"",version:bA[2]||"0"}},sub:function(){function bB(bD,bE){return new bB.fn.init(bD,bE)}bf.extend(true,bB,this);bB.superclass=this;bB.fn=bB.prototype=this();bB.fn.constructor=bB;bB.subclass=this.subclass;bB.fn.init=function bC(bD,bE){if(bE&&bE instanceof bf&&!(bE instanceof bB)){bE=bB(bE)}return bf.fn.init.call(this,bD,bE,bA)};bB.fn.init.prototype=bB.fn;var bA=bB(ae);return bB},browser:{}});bc=bf._Deferred();bf.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(bB,bA){a8["[object "+bA+"]"]=bA.toLowerCase()});bw=bf.uaMatch(by);if(bw.browser){bf.browser[bw.browser]=true;bf.browser.version=bw.version}if(bf.browser.webkit){bf.browser.safari=true}if(a6){bf.inArray=function(bA,bB){return a6.call(bB,bA)}}if(bn.test("\xA0")){bj=/^[\s\xA0]+/;be=/[\s\xA0]+$/}bd=bf(ae);if(ae.addEventListener){a5=function(){ae.removeEventListener("DOMContentLoaded",a5,false);bf.ready()}}else{if(ae.attachEvent){a5=function(){if(ae.readyState==="complete"){ae.detachEvent("onreadystatechange",a5);bf.ready()}}}}function a7(){if(bf.isReady){return}try{ae.documentElement.doScroll("left")}catch(bA){setTimeout(a7,1);return}bf.ready()}return(aP.jQuery=aP.$=bf)})();(function(){a.support={};var a4=ae.createElement("div");a4.style.display="none";a4.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var bb=a4.getElementsByTagName("*"),a9=a4.getElementsByTagName("a")[0],ba=ae.createElement("select"),a5=ba.appendChild(ae.createElement("option"));if(!bb||!bb.length||!a9){return}a.support={leadingWhitespace:a4.firstChild.nodeType===3,tbody:!a4.getElementsByTagName("tbody").length,htmlSerialize:!!a4.getElementsByTagName("link").length,style:/red/.test(a9.getAttribute("style")),hrefNormalized:a9.getAttribute("href")==="/a",opacity:/^0.55$/.test(a9.style.opacity),cssFloat:!!a9.style.cssFloat,checkOn:a4.getElementsByTagName("input")[0].value==="on",optSelected:a5.selected,deleteExpando:true,optDisabled:false,checkClone:false,_scriptEval:null,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};ba.disabled=true;a.support.optDisabled=!a5.disabled;a.support.scriptEval=function(){if(a.support._scriptEval===null){var bd=ae.documentElement,be=ae.createElement("script"),bg="script"+a.now();be.type="text/javascript";try{be.appendChild(ae.createTextNode("window."+bg+"=1;"))}catch(bf){}bd.insertBefore(be,bd.firstChild);if(aP[bg]){a.support._scriptEval=true;delete aP[bg]}else{a.support._scriptEval=false}bd.removeChild(be);bd=be=bg=null}return a.support._scriptEval};try{delete a4.test}catch(a6){a.support.deleteExpando=false}if(a4.attachEvent&&a4.fireEvent){a4.attachEvent("onclick",function bc(){a.support.noCloneEvent=false;a4.detachEvent("onclick",bc)});a4.cloneNode(true).fireEvent("onclick")}a4=ae.createElement("div");a4.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var a7=ae.createDocumentFragment();a7.appendChild(a4.firstChild);a.support.checkClone=a7.cloneNode(true).cloneNode(true).lastChild.checked;a(function(){var bf=ae.createElement("div"),bd=ae.getElementsByTagName("body")[0];if(!bd){return}bf.style.width=bf.style.paddingLeft="1px";bd.appendChild(bf);a.boxModel=a.support.boxModel=bf.offsetWidth===2;if("zoom" in bf.style){bf.style.display="inline";bf.style.zoom=1;a.support.inlineBlockNeedsLayout=bf.offsetWidth===2;bf.style.display="";bf.innerHTML="<div style='width:4px;'></div>";a.support.shrinkWrapBlocks=bf.offsetWidth!==2}bf.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var be=bf.getElementsByTagName("td");a.support.reliableHiddenOffsets=be[0].offsetHeight===0;be[0].style.display="";be[1].style.display="none";a.support.reliableHiddenOffsets=a.support.reliableHiddenOffsets&&be[0].offsetHeight===0;bf.innerHTML="";bd.removeChild(bf).style.display="none";bf=be=null});var a8=function(bd){var bf=ae.createElement("div");bd="on"+bd;if(!bf.attachEvent){return true}var be=(bd in bf);if(!be){bf.setAttribute(bd,"return;");be=typeof bf[bd]==="function"}bf=null;return be};a.support.submitBubbles=a8("submit");a.support.changeBubbles=a8("change");a4=bb=a9=null})();var at=/^(?:{.*}|[.*])$/;a.extend({cache:{},uuid:0,expando:"jQuery"+(a.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(a4){a4=a4.nodeType?a.cache[a4[a.expando]]:a4[a.expando];return !!a4&&!a.isEmptyObject(a4)},data:function(a7,a5,a9,a8){if(!a.acceptData(a7)){return}var bc=a.expando,bb=typeof a5==="string",ba,bd=a7.nodeType,a4=bd?a.cache:a7,a6=bd?a7[a.expando]:a7[a.expando]&&a.expando;if((!a6||(a8&&a6&&!a4[a6][bc]))&&bb&&a9===E){return}if(!a6){if(bd){a7[a.expando]=a6=++a.uuid}else{a6=a.expando}}if(!a4[a6]){a4[a6]={}}if(typeof a5==="object"){if(a8){a4[a6][bc]=a.extend(a4[a6][bc],a5)}else{a4[a6]=a.extend(a4[a6],a5)}}ba=a4[a6];if(a8){if(!ba[bc]){ba[bc]={}}ba=ba[bc]}if(a9!==E){ba[a5]=a9}if(a5==="events"&&!ba[a5]){return ba[bc]&&ba[bc].events}return bb?ba[a5]:ba},removeData:function(a8,a6,a9){if(!a.acceptData(a8)){return}var bb=a.expando,bc=a8.nodeType,a5=bc?a.cache:a8,a7=bc?a8[a.expando]:a.expando;if(!a5[a7]){return}if(a6){var ba=a9?a5[a7][bb]:a5[a7];if(ba){delete ba[a6];if(!a.isEmptyObject(ba)){return}}}if(a9){delete a5[a7][bb];if(!a.isEmptyObject(a5[a7])){return}}var a4=a5[a7][bb];if(a.support.deleteExpando||a5!=aP){delete a5[a7]}else{a5[a7]=null}if(a4){a5[a7]={};a5[a7][bb]=a4}else{if(bc){if(a.support.deleteExpando){delete a8[a.expando]}else{if(a8.removeAttribute){a8.removeAttribute(a.expando)}else{a8[a.expando]=null}}}}},_data:function(a5,a4,a6){return a.data(a5,a4,a6,true)},acceptData:function(a5){if(a5.nodeName){var a4=a.noData[a5.nodeName.toLowerCase()];if(a4){return !(a4===true||a5.getAttribute("classid")!==a4)}}return true}});a.fn.extend({data:function(a8,ba){var a9=null;if(typeof a8==="undefined"){if(this.length){a9=a.data(this[0]);if(this[0].nodeType===1){var a4=this[0].attributes,a6;for(var a7=0,a5=a4.length;a7<a5;a7++){a6=a4[a7].name;if(a6.indexOf("data-")===0){a6=a6.substr(5);aK(this[0],a6,a9[a6])}}}}return a9}else{if(typeof a8==="object"){return this.each(function(){a.data(this,a8)})}}var bb=a8.split(".");bb[1]=bb[1]?"."+bb[1]:"";if(ba===E){a9=this.triggerHandler("getData"+bb[1]+"!",[bb[0]]);if(a9===E&&this.length){a9=a.data(this[0],a8);a9=aK(this[0],a8,a9)}return a9===E&&bb[1]?this.data(bb[0]):a9}else{return this.each(function(){var bd=a(this),bc=[bb[0],ba];bd.triggerHandler("setData"+bb[1]+"!",bc);a.data(this,a8,ba);bd.triggerHandler("changeData"+bb[1]+"!",bc)})}},removeData:function(a4){return this.each(function(){a.removeData(this,a4)})}});function aK(a5,a4,a6){if(a6===E&&a5.nodeType===1){a6=a5.getAttribute("data-"+a4);if(typeof a6==="string"){try{a6=a6==="true"?true:a6==="false"?false:a6==="null"?null:!a.isNaN(a6)?parseFloat(a6):at.test(a6)?a.parseJSON(a6):a6}catch(a7){}a.data(a5,a4,a6)}else{a6=E}}return a6}a.extend({queue:function(a5,a4,a7){if(!a5){return}a4=(a4||"fx")+"queue";var a6=a._data(a5,a4);if(!a7){return a6||[]}if(!a6||a.isArray(a7)){a6=a._data(a5,a4,a.makeArray(a7))}else{a6.push(a7)}return a6},dequeue:function(a7,a6){a6=a6||"fx";var a4=a.queue(a7,a6),a5=a4.shift();if(a5==="inprogress"){a5=a4.shift()}if(a5){if(a6==="fx"){a4.unshift("inprogress")}a5.call(a7,function(){a.dequeue(a7,a6)})}if(!a4.length){a.removeData(a7,a6+"queue",true)}}});a.fn.extend({queue:function(a4,a5){if(typeof a4!=="string"){a5=a4;a4="fx"}if(a5===E){return a.queue(this[0],a4)}return this.each(function(a7){var a6=a.queue(this,a4,a5);if(a4==="fx"&&a6[0]!=="inprogress"){a.dequeue(this,a4)}})},dequeue:function(a4){return this.each(function(){a.dequeue(this,a4)})},delay:function(a5,a4){a5=a.fx?a.fx.speeds[a5]||a5:a5;a4=a4||"fx";return this.queue(a4,function(){var a6=this;setTimeout(function(){a.dequeue(a6,a4)},a5)})},clearQueue:function(a4){return this.queue(a4||"fx",[])}});var aq=/[\n\t\r]/g,aT=/\s+/,av=/\r/g,aS=/^(?:href|src|style)$/,e=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,j=/^a(?:rea)?$/i,L=/^(?:radio|checkbox)$/i;a.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};a.fn.extend({attr:function(a4,a5){return a.access(this,a4,a5,true,a.attr)},removeAttr:function(a4,a5){return this.each(function(){a.attr(this,a4,"");if(this.nodeType===1){this.removeAttribute(a4)}})},addClass:function(bb){if(a.isFunction(bb)){return this.each(function(be){var bd=a(this);bd.addClass(bb.call(this,be,bd.attr("class")))})}if(bb&&typeof bb==="string"){var a4=(bb||"").split(aT);for(var a7=0,a6=this.length;a7<a6;a7++){var a5=this[a7];if(a5.nodeType===1){if(!a5.className){a5.className=bb}else{var a8=" "+a5.className+" ",ba=a5.className;for(var a9=0,bc=a4.length;a9<bc;a9++){if(a8.indexOf(" "+a4[a9]+" ")<0){ba+=" "+a4[a9]}}a5.className=a.trim(ba)}}}}return this},removeClass:function(a9){if(a.isFunction(a9)){return this.each(function(bd){var bc=a(this);bc.removeClass(a9.call(this,bd,bc.attr("class")))})}if((a9&&typeof a9==="string")||a9===E){var ba=(a9||"").split(aT);for(var a6=0,a5=this.length;a6<a5;a6++){var a8=this[a6];if(a8.nodeType===1&&a8.className){if(a9){var a7=(" "+a8.className+" ").replace(aq," ");for(var bb=0,a4=ba.length;bb<a4;bb++){a7=a7.replace(" "+ba[bb]+" "," ")}a8.className=a.trim(a7)}else{a8.className=""}}}}return this},toggleClass:function(a7,a5){var a6=typeof a7,a4=typeof a5==="boolean";if(a.isFunction(a7)){return this.each(function(a9){var a8=a(this);a8.toggleClass(a7.call(this,a9,a8.attr("class"),a5),a5)})}return this.each(function(){if(a6==="string"){var ba,a9=0,a8=a(this),bb=a5,bc=a7.split(aT);while((ba=bc[a9++])){bb=a4?bb:!a8.hasClass(ba);a8[bb?"addClass":"removeClass"](ba)}}else{if(a6==="undefined"||a6==="boolean"){if(this.className){a._data(this,"__className__",this.className)}this.className=this.className||a7===false?"":a._data(this,"__className__")||""}}})},hasClass:function(a4){var a7=" "+a4+" ";for(var a6=0,a5=this.length;a6<a5;a6++){if((" "+this[a6].className+" ").replace(aq," ").indexOf(a7)>-1){return true}}return false},val:function(bc){if(!arguments.length){var a6=this[0];if(a6){if(a.nodeName(a6,"option")){var a5=a6.attributes.value;return !a5||a5.specified?a6.value:a6.text}if(a.nodeName(a6,"select")){var ba=a6.selectedIndex,bd=[],be=a6.options,a9=a6.type==="select-one";if(ba<0){return null}for(var a7=a9?ba:0,bb=a9?ba+1:be.length;a7<bb;a7++){var a8=be[a7];if(a8.selected&&(a.support.optDisabled?!a8.disabled:a8.getAttribute("disabled")===null)&&(!a8.parentNode.disabled||!a.nodeName(a8.parentNode,"optgroup"))){bc=a(a8).val();if(a9){return bc}bd.push(bc)}}return bd}if(L.test(a6.type)&&!a.support.checkOn){return a6.getAttribute("value")===null?"on":a6.value}return(a6.value||"").replace(av,"")}return E}var a4=a.isFunction(bc);return this.each(function(bh){var bg=a(this),bi=bc;if(this.nodeType!==1){return}if(a4){bi=bc.call(this,bh,bg.val())}if(bi==null){bi=""}else{if(typeof bi==="number"){bi+=""}else{if(a.isArray(bi)){bi=a.map(bi,function(bj){return bj==null?"":bj+""})}}}if(a.isArray(bi)&&L.test(this.type)){this.checked=a.inArray(bg.val(),bi)>=0}else{if(a.nodeName(this,"select")){var bf=a.makeArray(bi);a("option",this).each(function(){this.selected=a.inArray(a(this).val(),bf)>=0});if(!bf.length){this.selectedIndex=-1}}else{this.value=bi}}})}});a.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a5,a4,ba,bd){if(!a5||a5.nodeType===3||a5.nodeType===8||a5.nodeType===2){return E}if(bd&&a4 in a.attrFn){return a(a5)[a4](ba)}var a6=a5.nodeType!==1||!a.isXMLDoc(a5),a9=ba!==E;a4=a6&&a.props[a4]||a4;if(a5.nodeType===1){var a8=aS.test(a4);if(a4==="selected"&&!a.support.optSelected){var bb=a5.parentNode;if(bb){bb.selectedIndex;if(bb.parentNode){bb.parentNode.selectedIndex}}}if((a4 in a5||a5[a4]!==E)&&a6&&!a8){if(a9){if(a4==="type"&&e.test(a5.nodeName)&&a5.parentNode){a.error("type property can't be changed")}if(ba===null){if(a5.nodeType===1){a5.removeAttribute(a4)}}else{a5[a4]=ba}}if(a.nodeName(a5,"form")&&a5.getAttributeNode(a4)){return a5.getAttributeNode(a4).nodeValue}if(a4==="tabIndex"){var bc=a5.getAttributeNode("tabIndex");return bc&&bc.specified?bc.value:z.test(a5.nodeName)||j.test(a5.nodeName)&&a5.href?0:E}return a5[a4]}if(!a.support.style&&a6&&a4==="style"){if(a9){a5.style.cssText=""+ba}return a5.style.cssText}if(a9){a5.setAttribute(a4,""+ba)}if(!a5.attributes[a4]&&(a5.hasAttribute&&!a5.hasAttribute(a4))){return E}var a7=!a.support.hrefNormalized&&a6&&a8?a5.getAttribute(a4,2):a5.getAttribute(a4);return a7===null?E:a7}if(a9){a5[a4]=ba}return a5[a4]}});var aG=/.(.*)$/,aR=/^(?:textarea|input|select)$/i,G=/./g,U=/ /g,am=/[^\w\s.|`]/g,B=function(a4){return a4.replace(am,"\$&")},ay="events";a.event={add:function(a7,bb,bg,a9){if(a7.nodeType===3||a7.nodeType===8){return}if(a.isWindow(a7)&&(a7!==aP&&!a7.frameElement)){a7=aP}if(bg===false){bg=aV}else{if(!bg){return}}var a5,bf;if(bg.handler){a5=bg;bg=a5.handler}if(!bg.guid){bg.guid=a.guid++}var bc=a._data(a7);if(!bc){return}var bh=bc[ay],ba=bc.handle;if(typeof bh==="function"){ba=bh.handle;bh=bh.events}else{if(!bh){if(!a7.nodeType){bc[ay]=bc=function(){}}bc.events=bh={}}}if(!ba){bc.handle=ba=function(){return typeof a!=="undefined"&&!a.event.triggered?a.event.handle.apply(ba.elem,arguments):E}}ba.elem=a7;bb=bb.split(" ");var be,a8=0,a4;while((be=bb[a8++])){bf=a5?a.extend({},a5):{handler:bg,data:a9};if(be.indexOf(".")>-1){a4=be.split(".");be=a4.shift();bf.namespace=a4.slice(0).sort().join(".")}else{a4=[];bf.namespace=""}bf.type=be;if(!bf.guid){bf.guid=bg.guid}var a6=bh[be],bd=a.event.special[be]||{};if(!a6){a6=bh[be]=[];if(!bd.setup||bd.setup.call(a7,a9,a4,ba)===false){if(a7.addEventListener){a7.addEventListener(be,ba,false)}else{if(a7.attachEvent){a7.attachEvent("on"+be,ba)}}}}if(bd.add){bd.add.call(a7,bf);if(!bf.handler.guid){bf.handler.guid=bg.guid}}a6.push(bf);a.event.global[be]=true}a7=null},global:{},remove:function(bj,be,a6,ba){if(bj.nodeType===3||bj.nodeType===8){return}if(a6===false){a6=aV}var bm,a9,bb,bg,bh=0,a7,bc,bf,a8,bd,a4,bl,bi=a.hasData(bj)&&a._data(bj),a5=bi&&bi[ay];if(!bi||!a5){return}if(typeof a5==="function"){bi=a5;a5=a5.events}if(be&&be.type){a6=be.handler;be=be.type}if(!be||typeof be==="string"&&be.charAt(0)==="."){be=be||"";for(a9 in a5){a.event.remove(bj,a9+be)}return}be=be.split(" ");while((a9=be[bh++])){bl=a9;a4=null;a7=a9.indexOf(".")<0;bc=[];if(!a7){bc=a9.split(".");a9=bc.shift();bf=new RegExp("(^|\.)"+a.map(bc.slice(0).sort(),B).join("\.(?:.*\.)?")+"(\.|$)")}bd=a5[a9];if(!bd){continue}if(!a6){for(bg=0;bg<bd.length;bg++){a4=bd[bg];if(a7||bf.test(a4.namespace)){a.event.remove(bj,bl,a4.handler,bg);bd.splice(bg--,1)}}continue}a8=a.event.special[a9]||{};for(bg=ba||0;bg<bd.length;bg++){a4=bd[bg];if(a6.guid===a4.guid){if(a7||bf.test(a4.namespace)){if(ba==null){bd.splice(bg--,1)}if(a8.remove){a8.remove.call(bj,a4)}}if(ba!=null){break}}}if(bd.length===0||ba!=null&&bd.length===1){if(!a8.teardown||a8.teardown.call(bj,bc)===false){a.removeEvent(bj,a9,bi.handle)}bm=null;delete a5[a9]}}if(a.isEmptyObject(a5)){var bk=bi.handle;if(bk){bk.elem=null}delete bi.events;delete bi.handle;if(typeof bi==="function"){a.removeData(bj,ay,true)}else{if(a.isEmptyObject(bi)){a.removeData(bj,E,true)}}}},trigger:function(a5,ba,a7){var be=a5.type||a5,a9=arguments[3];if(!a9){a5=typeof a5==="object"?a5[a.expando]?a5:a.extend(a.Event(be),a5):a.Event(be);if(be.indexOf("!")>=0){a5.type=be=be.slice(0,-1);a5.exclusive=true}if(!a7){a5.stopPropagation();if(a.event.global[be]){a.each(a.cache,function(){var bj=a.expando,bi=this[bj];if(bi&&bi.events&&bi.events[be]){a.event.trigger(a5,ba,bi.handle.elem)}})}}if(!a7||a7.nodeType===3||a7.nodeType===8){return E}a5.result=E;a5.target=a7;ba=a.makeArray(ba);ba.unshift(a5)}a5.currentTarget=a7;var bb=a7.nodeType?a._data(a7,"handle"):(a._data(a7,ay)||{}).handle;if(bb){bb.apply(a7,ba)}var bg=a7.parentNode||a7.ownerDocument;try{if(!(a7&&a7.nodeName&&a.noData[a7.nodeName.toLowerCase()])){if(a7["on"+be]&&a7["on"+be].apply(a7,ba)===false){a5.result=false;a5.preventDefault()}}}catch(bf){}if(!a5.isPropagationStopped()&&bg){a.event.trigger(a5,ba,bg,true)}else{if(!a5.isDefaultPrevented()){var a6,bc=a5.target,a4=be.replace(aG,""),bh=a.nodeName(bc,"a")&&a4==="click",bd=a.event.special[a4]||{};if((!bd._default||bd._default.call(a7,a5)===false)&&!bh&&!(bc&&bc.nodeName&&a.noData[bc.nodeName.toLowerCase()])){try{if(bc[a4]){a6=bc["on"+a4];if(a6){bc["on"+a4]=null}a.event.triggered=true;bc[a4]()}}catch(a8){}if(a6){bc["on"+a4]=a6}a.event.triggered=false}}}},handle:function(a4){var bd,a6,a5,bf,be,a9=[],bb=a.makeArray(arguments);a4=bb[0]=a.event.fix(a4||aP.event);a4.currentTarget=this;bd=a4.type.indexOf(".")<0&&!a4.exclusive;if(!bd){a5=a4.type.split(".");a4.type=a5.shift();a9=a5.slice(0).sort();bf=new RegExp("(^|\.)"+a9.join("\.(?:.*\.)?")+"(\.|$)")}a4.namespace=a4.namespace||a9.join(".");be=a._data(this,ay);if(typeof be==="function"){be=be.events}a6=(be||{})[a4.type];if(be&&a6){a6=a6.slice(0);for(var a8=0,a7=a6.length;a8<a7;a8++){var bc=a6[a8];if(bd||bf.test(bc.namespace)){a4.handler=bc.handler;a4.data=bc.data;a4.handleObj=bc;var ba=bc.handler.apply(this,bb);if(ba!==E){a4.result=ba;if(ba===false){a4.preventDefault();a4.stopPropagation()}}if(a4.isImmediatePropagationStopped()){break}}}}return a4.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a7){if(a7[a.expando]){return a7}var a5=a7;a7=a.Event(a5);for(var a6=this.props.length,a9;a6;){a9=this.props[--a6];a7[a9]=a5[a9]}if(!a7.target){a7.target=a7.srcElement||ae}if(a7.target.nodeType===3){a7.target=a7.target.parentNode}if(!a7.relatedTarget&&a7.fromElement){a7.relatedTarget=a7.fromElement===a7.target?a7.toElement:a7.fromElement}if(a7.pageX==null&&a7.clientX!=null){var a8=ae.documentElement,a4=ae.body;a7.pageX=a7.clientX+(a8&&a8.scrollLeft||a4&&a4.scrollLeft||0)-(a8&&a8.clientLeft||a4&&a4.clientLeft||0);a7.pageY=a7.clientY+(a8&&a8.scrollTop||a4&&a4.scrollTop||0)-(a8&&a8.clientTop||a4&&a4.clientTop||0)}if(a7.which==null&&(a7.charCode!=null||a7.keyCode!=null)){a7.which=a7.charCode!=null?a7.charCode:a7.keyCode}if(!a7.metaKey&&a7.ctrlKey){a7.metaKey=a7.ctrlKey}if(!a7.which&&a7.button!==E){a7.which=(a7.button&1?1:(a7.button&2?3:(a7.button&4?2:0)))}return a7},guid:100000000,proxy:a.proxy,special:{ready:{setup:a.bindReady,teardown:a.noop},live:{add:function(a4){a.event.add(this,m(a4.origType,a4.selector),a.extend({},a4,{handler:Y,guid:a4.handler.guid}))},remove:function(a4){a.event.remove(this,m(a4.origType,a4.selector),a4)}},beforeunload:{setup:function(a6,a5,a4){if(a.isWindow(this)){this.onbeforeunload=a4}},teardown:function(a5,a4){if(this.onbeforeunload===a4){this.onbeforeunload=null}}}}};a.removeEvent=ae.removeEventListener?function(a5,a4,a6){if(a5.removeEventListener){a5.removeEventListener(a4,a6,false)}}:function(a5,a4,a6){if(a5.detachEvent){a5.detachEvent("on"+a4,a6)}};a.Event=function(a4){if(!this.preventDefault){return new a.Event(a4)}if(a4&&a4.type){this.originalEvent=a4;this.type=a4.type;this.isDefaultPrevented=(a4.defaultPrevented||a4.returnValue===false||a4.getPreventDefault&&a4.getPreventDefault())?g:aV}else{this.type=a4}this.timeStamp=a.now();this[a.expando]=true};function aV(){return false}function g(){return true}a.Event.prototype={preventDefault:function(){this.isDefaultPrevented=g;var a4=this.originalEvent;if(!a4){return}if(a4.preventDefault){a4.preventDefault()}else{a4.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=g;var a4=this.originalEvent;if(!a4){return}if(a4.stopPropagation){a4.stopPropagation()}a4.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=g;this.stopPropagation()},isDefaultPrevented:aV,isPropagationStopped:aV,isImmediatePropagationStopped:aV};var T=function(a5){var a4=a5.relatedTarget;try{while(a4&&a4!==this){a4=a4.parentNode}if(a4!==this){a5.type=a5.data;a.event.handle.apply(this,arguments)}}catch(a6){}},az=function(a4){a4.type=a4.data;a.event.handle.apply(this,arguments)};a.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a5,a4){a.event.special[a5]={setup:function(a6){a.event.add(this,a4,a6&&a6.selector?az:T,a5)},teardown:function(a6){a.event.remove(this,a4,a6&&a6.selector?az:T)}}});if(!a.support.submitBubbles){a.event.special.submit={setup:function(a5,a4){if(this.nodeName&&this.nodeName.toLowerCase()!=="form"){a.event.add(this,"click.specialSubmit",function(a8){var a7=a8.target,a6=a7.type;if((a6==="submit"||a6==="image")&&a(a7).closest("form").length){a8.liveFired=E;return aD("submit",this,arguments)}});a.event.add(this,"keypress.specialSubmit",function(a8){var a7=a8.target,a6=a7.type;if((a6==="text"||a6==="password")&&a(a7).closest("form").length&&a8.keyCode===13){a8.liveFired=E;return aD("submit",this,arguments)}})}else{return false}},teardown:function(a4){a.event.remove(this,".specialSubmit")}}}if(!a.support.changeBubbles){var aW,i=function(a5){var a4=a5.type,a6=a5.value;if(a4==="radio"||a4==="checkbox"){a6=a5.checked}else{if(a4==="select-multiple"){a6=a5.selectedIndex>-1?a.map(a5.options,function(a7){return a7.selected}).join("-"):""}else{if(a5.nodeName.toLowerCase()==="select"){a6=a5.selectedIndex}}}return a6},R=function R(a6){var a4=a6.target,a5,a7;if(!aR.test(a4.nodeName)||a4.readOnly){return}a5=a._data(a4,"_change_data");a7=i(a4);if(a6.type!=="focusout"||a4.type!=="radio"){a._data(a4,"_change_data",a7)}if(a5===E||a7===a5){return}if(a5!=null||a7){a6.type="change";a6.liveFired=E;return a.event.trigger(a6,arguments[1],a4)}};a.event.special.change={filters:{focusout:R,beforedeactivate:R,click:function(a6){var a5=a6.target,a4=a5.type;if(a4==="radio"||a4==="checkbox"||a5.nodeName.toLowerCase()==="select"){return R.call(this,a6)}},keydown:function(a6){var a5=a6.target,a4=a5.type;if((a6.keyCode===13&&a5.nodeName.toLowerCase()!=="textarea")||(a6.keyCode===32&&(a4==="checkbox"||a4==="radio"))||a4==="select-multiple"){return R.call(this,a6)}},beforeactivate:function(a5){var a4=a5.target;a._data(a4,"_change_data",i(a4))}},setup:function(a6,a5){if(this.type==="file"){return false}for(var a4 in aW){a.event.add(this,a4+".specialChange",aW[a4])}return aR.test(this.nodeName)},teardown:function(a4){a.event.remove(this,".specialChange");return aR.test(this.nodeName)}};aW=a.event.special.change.filters;aW.focus=aW.beforeactivate}function aD(a5,a6,a4){a4[0].type=a5;return a.event.handle.apply(a6,a4)}if(ae.addEventListener){a.each({focus:"focusin",blur:"focusout"},function(a6,a4){a.event.special[a4]={setup:function(){this.addEventListener(a6,a5,true)},teardown:function(){this.removeEventListener(a6,a5,true)}};function a5(a7){a7=a.event.fix(a7);a7.type=a4;return a.event.handle.call(this,a7)}})}a.each(["bind","one"],function(a5,a4){a.fn[a4]=function(bb,bc,ba){if(typeof bb==="object"){for(var a8 in bb){this[a4](a8,bc,bb[a8],ba)}return this}if(a.isFunction(bc)||bc===false){ba=bc;bc=E}var a9=a4==="one"?a.proxy(ba,function(bd){a(this).unbind(bd,a9);return ba.apply(this,arguments)}):ba;if(bb==="unload"&&a4!=="one"){this.one(bb,bc,ba)}else{for(var a7=0,a6=this.length;a7<a6;a7++){a.event.add(this[a7],bb,a9,bc)}}return this}});a.fn.extend({unbind:function(a8,a7){if(typeof a8==="object"&&!a8.preventDefault){for(var a6 in a8){this.unbind(a6,a8[a6])}}else{for(var a5=0,a4=this.length;a5<a4;a5++){a.event.remove(this[a5],a8,a7)}}return this},delegate:function(a4,a5,a7,a6){return this.live(a5,a7,a6,a4)},undelegate:function(a4,a5,a6){if(arguments.length===0){return this.unbind("live")}else{return this.die(a5,null,a6,a4)}},trigger:function(a4,a5){return this.each(function(){a.event.trigger(a4,a5,this)})},triggerHandler:function(a4,a6){if(this[0]){var a5=a.Event(a4);a5.preventDefault();a5.stopPropagation();a.event.trigger(a5,a6,this[0]);return a5.result}},toggle:function(a6){var a4=arguments,a5=1;while(a5<a4.length){a.proxy(a6,a4[a5++])}return this.click(a.proxy(a6,function(a7){var a8=(a._data(this,"lastToggle"+a6.guid)||0)%a5;a._data(this,"lastToggle"+a6.guid,a8+1);a7.preventDefault();return a4[a8].apply(this,arguments)||false}))},hover:function(a4,a5){return this.mouseenter(a4).mouseleave(a5||a4)}});var aw={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};a.each(["live","die"],function(a5,a4){a.fn[a4]=function(bf,bc,bh,a8){var bg,bd=0,be,a7,bj,ba=a8||this.selector,a6=a8?this:a(this.context);if(typeof bf==="object"&&!bf.preventDefault){for(var bi in bf){a6[a4](bi,bc,bf[bi],ba)}return this}if(a.isFunction(bc)){bh=bc;bc=E}bf=(bf||"").split(" ");while((bg=bf[bd++])!=null){be=aG.exec(bg);a7="";if(be){a7=be[0];bg=bg.replace(aG,"")}if(bg==="hover"){bf.push("mouseenter"+a7,"mouseleave"+a7);continue}bj=bg;if(bg==="focus"||bg==="blur"){bf.push(aw[bg]+a7);bg=bg+a7}else{bg=(aw[bg]||bg)+a7}if(a4==="live"){for(var bb=0,a9=a6.length;bb<a9;bb++){a.event.add(a6[bb],"live."+m(bg,ba),{data:bc,selector:ba,handler:bh,origType:bg,origHandler:bh,preType:bj})}}else{a6.unbind("live."+m(bg,ba),bh)}}return this}});function Y(bf){var bc,a7,bl,a9,a4,bh,be,bg,bd,bk,bb,ba,bj,bi=[],a8=[],a5=a._data(this,ay);if(typeof a5==="function"){a5=a5.events}if(bf.liveFired===this||!a5||!a5.live||bf.target.disabled||bf.button&&bf.type==="click"){return}if(bf.namespace){ba=new RegExp("(^|\.)"+bf.namespace.split(".").join("\.(?:.*\.)?")+"(\.|$)")}bf.liveFired=this;var a6=a5.live.slice(0);for(be=0;be<a6.length;be++){a4=a6[be];if(a4.origType.replace(aG,"")===bf.type){a8.push(a4.selector)}else{a6.splice(be--,1)}}a9=a(bf.target).closest(a8,bf.currentTarget);for(bg=0,bd=a9.length;bg<bd;bg++){bb=a9[bg];for(be=0;be<a6.length;be++){a4=a6[be];if(bb.selector===a4.selector&&(!ba||ba.test(a4.namespace))){bh=bb.elem;bl=null;if(a4.preType==="mouseenter"||a4.preType==="mouseleave"){bf.type=a4.preType;bl=a(bf.relatedTarget).closest(a4.selector)[0]}if(!bl||bl!==bh){bi.push({elem:bh,handleObj:a4,level:bb.level})}}}}for(bg=0,bd=bi.length;bg<bd;bg++){a9=bi[bg];if(a7&&a9.level>a7){break}bf.currentTarget=a9.elem;bf.data=a9.handleObj.data;bf.handleObj=a9.handleObj;bj=a9.handleObj.origHandler.apply(a9.elem,arguments);if(bj===false||bf.isPropagationStopped()){a7=a9.level;if(bj===false){bc=false}if(bf.isImmediatePropagationStopped()){break}}}return bc}function m(a5,a4){return(a5&&a5!=="*"?a5+".":"")+a4.replace(G,"`").replace(U,"&")}a.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error").split(" "),function(a5,a4){a.fn[a4]=function(a7,a6){if(a6==null){a6=a7;a7=null}return arguments.length>0?this.bind(a4,a7,a6):this.trigger(a4)};if(a.attrFn){a.attrFn[a4]=true}}); +/* + * jQuery JavaScript Library v1.5.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Wed Feb 23 13:55:29 2011 -0500 + */ +(function(aY,H){var al=aY.document;var a=(function(){var bn=function(bI,bJ){return new bn.fn.init(bI,bJ,bl)},bD=aY.jQuery,bp=aY.$,bl,bH=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w-]+)$)/,bv=/\S/,br=/^\s+/,bm=/\s+$/,bq=/\d/,bj=/^<(\w+)\s*/?>(?:</\1>)?$/,bw=/^[],:{}\s]*$/,bF=/\(?:["\/bfnrt]|u[0-9a-fA-F]{4})/g,by=/"[^"\\n\r]*"|true|false|null|-?\d+(?:.\d*)?(?:[eE][+-]?\d+)?/g,bs=/(?:^|:|,)(?:\s*[)+/g,bh=/(webkit)[ /]([\w.]+)/,bA=/(opera)(?:.*version)?[ /]([\w.]+)/,bz=/(msie) ([\w.]+)/,bB=/(mozilla)(?:.*? rv:([\w.]+))?/,bG=navigator.userAgent,bE,bC=false,bk,e="then done fail isResolved isRejected promise".split(" "),bd,bu=Object.prototype.toString,bo=Object.prototype.hasOwnProperty,bi=Array.prototype.push,bt=Array.prototype.slice,bx=String.prototype.trim,be=Array.prototype.indexOf,bg={};bn.fn=bn.prototype={constructor:bn,init:function(bI,bM,bL){var bK,bN,bJ,bO;if(!bI){return this}if(bI.nodeType){this.context=this[0]=bI;this.length=1;return this}if(bI==="body"&&!bM&&al.body){this.context=al;this[0]=al.body;this.selector="body";this.length=1;return this}if(typeof bI==="string"){bK=bH.exec(bI);if(bK&&(bK[1]||!bM)){if(bK[1]){bM=bM instanceof bn?bM[0]:bM;bO=(bM?bM.ownerDocument||bM:al);bJ=bj.exec(bI);if(bJ){if(bn.isPlainObject(bM)){bI=[al.createElement(bJ[1])];bn.fn.attr.call(bI,bM,true)}else{bI=[bO.createElement(bJ[1])]}}else{bJ=bn.buildFragment([bK[1]],[bO]);bI=(bJ.cacheable?bn.clone(bJ.fragment):bJ.fragment).childNodes}return bn.merge(this,bI)}else{bN=al.getElementById(bK[2]);if(bN&&bN.parentNode){if(bN.id!==bK[2]){return bL.find(bI)}this.length=1;this[0]=bN}this.context=al;this.selector=bI;return this}}else{if(!bM||bM.jquery){return(bM||bL).find(bI)}else{return this.constructor(bM).find(bI)}}}else{if(bn.isFunction(bI)){return bL.ready(bI)}}if(bI.selector!==H){this.selector=bI.selector;this.context=bI.context}return bn.makeArray(bI,this)},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return bt.call(this,0)},get:function(bI){return bI==null?this.toArray():(bI<0?this[this.length+bI]:this[bI])},pushStack:function(bJ,bL,bI){var bK=this.constructor();if(bn.isArray(bJ)){bi.apply(bK,bJ)}else{bn.merge(bK,bJ)}bK.prevObject=this;bK.context=this.context;if(bL==="find"){bK.selector=this.selector+(this.selector?" ":"")+bI}else{if(bL){bK.selector=this.selector+"."+bL+"("+bI+")"}}return bK},each:function(bJ,bI){return bn.each(this,bJ,bI)},ready:function(bI){bn.bindReady();bk.done(bI);return this},eq:function(bI){return bI===-1?this.slice(bI):this.slice(bI,+bI+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bt.apply(this,arguments),"slice",bt.call(arguments).join(","))},map:function(bI){return this.pushStack(bn.map(this,function(bK,bJ){return bI.call(bK,bJ,bK)}))},end:function(){return this.prevObject||this.constructor(null)},push:bi,sort:[].sort,splice:[].splice};bn.fn.init.prototype=bn.fn;bn.extend=bn.fn.extend=function(){var bR,bK,bI,bJ,bO,bP,bN=arguments[0]||{},bM=1,bL=arguments.length,bQ=false;if(typeof bN==="boolean"){bQ=bN;bN=arguments[1]||{};bM=2}if(typeof bN!=="object"&&!bn.isFunction(bN)){bN={}}if(bL===bM){bN=this;--bM}for(;bM<bL;bM++){if((bR=arguments[bM])!=null){for(bK in bR){bI=bN[bK];bJ=bR[bK];if(bN===bJ){continue}if(bQ&&bJ&&(bn.isPlainObject(bJ)||(bO=bn.isArray(bJ)))){if(bO){bO=false;bP=bI&&bn.isArray(bI)?bI:[]}else{bP=bI&&bn.isPlainObject(bI)?bI:{}}bN[bK]=bn.extend(bQ,bP,bJ)}else{if(bJ!==H){bN[bK]=bJ}}}}}return bN};bn.extend({noConflict:function(bI){aY.$=bp;if(bI){aY.jQuery=bD}return bn},isReady:false,readyWait:1,ready:function(bI){if(bI===true){bn.readyWait--}if(!bn.readyWait||(bI!==true&&!bn.isReady)){if(!al.body){return setTimeout(bn.ready,1)}bn.isReady=true;if(bI!==true&&--bn.readyWait>0){return}bk.resolveWith(al,[bn]);if(bn.fn.trigger){bn(al).trigger("ready").unbind("ready")}}},bindReady:function(){if(bC){return}bC=true;if(al.readyState==="complete"){return setTimeout(bn.ready,1)}if(al.addEventListener){al.addEventListener("DOMContentLoaded",bd,false);aY.addEventListener("load",bn.ready,false)}else{if(al.attachEvent){al.attachEvent("onreadystatechange",bd);aY.attachEvent("onload",bn.ready);var bI=false;try{bI=aY.frameElement==null}catch(bJ){}if(al.documentElement.doScroll&&bI){bf()}}}},isFunction:function(bI){return bn.type(bI)==="function"},isArray:Array.isArray||function(bI){return bn.type(bI)==="array"},isWindow:function(bI){return bI&&typeof bI==="object"&&"setInterval" in bI},isNaN:function(bI){return bI==null||!bq.test(bI)||isNaN(bI)},type:function(bI){return bI==null?String(bI):bg[bu.call(bI)]||"object"},isPlainObject:function(bJ){if(!bJ||bn.type(bJ)!=="object"||bJ.nodeType||bn.isWindow(bJ)){return false}if(bJ.constructor&&!bo.call(bJ,"constructor")&&!bo.call(bJ.constructor.prototype,"isPrototypeOf")){return false}var bI;for(bI in bJ){}return bI===H||bo.call(bJ,bI)},isEmptyObject:function(bJ){for(var bI in bJ){return false}return true},error:function(bI){throw bI},parseJSON:function(bI){if(typeof bI!=="string"||!bI){return null}bI=bn.trim(bI);if(bw.test(bI.replace(bF,"@").replace(by,"]").replace(bs,""))){return aY.JSON&&aY.JSON.parse?aY.JSON.parse(bI):(new Function("return "+bI))()}else{bn.error("Invalid JSON: "+bI)}},parseXML:function(bK,bI,bJ){if(aY.DOMParser){bJ=new DOMParser();bI=bJ.parseFromString(bK,"text/xml")}else{bI=new ActiveXObject("Microsoft.XMLDOM");bI.async="false";bI.loadXML(bK)}bJ=bI.documentElement;if(!bJ||!bJ.nodeName||bJ.nodeName==="parsererror"){bn.error("Invalid XML: "+bK)}return bI},noop:function(){},globalEval:function(bK){if(bK&&bv.test(bK)){var bJ=al.head||al.getElementsByTagName("head")[0]||al.documentElement,bI=al.createElement("script");if(bn.support.scriptEval()){bI.appendChild(al.createTextNode(bK))}else{bI.text=bK}bJ.insertBefore(bI,bJ.firstChild);bJ.removeChild(bI)}},nodeName:function(bJ,bI){return bJ.nodeName&&bJ.nodeName.toUpperCase()===bI.toUpperCase()},each:function(bL,bP,bK){var bJ,bM=0,bN=bL.length,bI=bN===H||bn.isFunction(bL);if(bK){if(bI){for(bJ in bL){if(bP.apply(bL[bJ],bK)===false){break}}}else{for(;bM<bN;){if(bP.apply(bL[bM++],bK)===false){break}}}}else{if(bI){for(bJ in bL){if(bP.call(bL[bJ],bJ,bL[bJ])===false){break}}}else{for(var bO=bL[0];bM<bN&&bP.call(bO,bM,bO)!==false;bO=bL[++bM]){}}}return bL},trim:bx?function(bI){return bI==null?"":bx.call(bI)}:function(bI){return bI==null?"":bI.toString().replace(br,"").replace(bm,"")},makeArray:function(bL,bJ){var bI=bJ||[];if(bL!=null){var bK=bn.type(bL);if(bL.length==null||bK==="string"||bK==="function"||bK==="regexp"||bn.isWindow(bL)){bi.call(bI,bL)}else{bn.merge(bI,bL)}}return bI},inArray:function(bK,bL){if(bL.indexOf){return bL.indexOf(bK)}for(var bI=0,bJ=bL.length;bI<bJ;bI++){if(bL[bI]===bK){return bI}}return -1},merge:function(bM,bK){var bL=bM.length,bJ=0;if(typeof bK.length==="number"){for(var bI=bK.length;bJ<bI;bJ++){bM[bL++]=bK[bJ]}}else{while(bK[bJ]!==H){bM[bL++]=bK[bJ++]}}bM.length=bL;return bM},grep:function(bJ,bO,bI){var bK=[],bN;bI=!!bI;for(var bL=0,bM=bJ.length;bL<bM;bL++){bN=!!bO(bJ[bL],bL);if(bI!==bN){bK.push(bJ[bL])}}return bK},map:function(bJ,bO,bI){var bK=[],bN;for(var bL=0,bM=bJ.length;bL<bM;bL++){bN=bO(bJ[bL],bL,bI);if(bN!=null){bK[bK.length]=bN}}return bK.concat.apply([],bK)},guid:1,proxy:function(bK,bJ,bI){if(arguments.length===2){if(typeof bJ==="string"){bI=bK;bK=bI[bJ];bJ=H}else{if(bJ&&!bn.isFunction(bJ)){bI=bJ;bJ=H}}}if(!bJ&&bK){bJ=function(){return bK.apply(bI||this,arguments)}}if(bK){bJ.guid=bK.guid=bK.guid||bJ.guid||bn.guid++}return bJ},access:function(bI,bQ,bO,bK,bN,bP){var bJ=bI.length;if(typeof bQ==="object"){for(var bL in bQ){bn.access(bI,bL,bQ[bL],bK,bN,bO)}return bI}if(bO!==H){bK=!bP&&bK&&bn.isFunction(bO);for(var bM=0;bM<bJ;bM++){bN(bI[bM],bQ,bK?bO.call(bI[bM],bM,bN(bI[bM],bQ)):bO,bP)}return bI}return bJ?bN(bI[0],bQ):H},now:function(){return(new Date()).getTime()},_Deferred:function(){var bL=[],bM,bJ,bK,bI={done:function(){if(!bK){var bO=arguments,bP,bS,bR,bQ,bN;if(bM){bN=bM;bM=0}for(bP=0,bS=bO.length;bP<bS;bP++){bR=bO[bP];bQ=bn.type(bR);if(bQ==="array"){bI.done.apply(bI,bR)}else{if(bQ==="function"){bL.push(bR)}}}if(bN){bI.resolveWith(bN[0],bN[1])}}return this},resolveWith:function(bO,bN){if(!bK&&!bM&&!bJ){bJ=1;try{while(bL[0]){bL.shift().apply(bO,bN)}}catch(bP){throw bP}finally{bM=[bO,bN];bJ=0}}return this},resolve:function(){bI.resolveWith(bn.isFunction(this.promise)?this.promise():this,arguments);return this},isResolved:function(){return !!(bJ||bM)},cancel:function(){bK=1;bL=[];return this}};return bI},Deferred:function(bJ){var bI=bn._Deferred(),bL=bn._Deferred(),bK;bn.extend(bI,{then:function(bN,bM){bI.done(bN).fail(bM);return this},fail:bL.done,rejectWith:bL.resolveWith,reject:bL.resolve,isRejected:bL.isResolved,promise:function(bN){if(bN==null){if(bK){return bK}bK=bN={}}var bM=e.length;while(bM--){bN[e[bM]]=bI[e[bM]]}return bN}});bI.done(bL.cancel).fail(bI.cancel);delete bI.cancel;if(bJ){bJ.call(bI,bI)}return bI},when:function(bJ){var bO=arguments.length,bI=bO<=1&&bJ&&bn.isFunction(bJ.promise)?bJ:bn.Deferred(),bM=bI.promise();if(bO>1){var bN=bt.call(arguments,0),bL=bO,bK=function(bP){return function(bQ){bN[bP]=arguments.length>1?bt.call(arguments,0):bQ;if(!(--bL)){bI.resolveWith(bM,bN)}}};while((bO--)){bJ=bN[bO];if(bJ&&bn.isFunction(bJ.promise)){bJ.promise().then(bK(bO),bI.reject)}else{--bL}}if(!bL){bI.resolveWith(bM,bN)}}else{if(bI!==bJ){bI.resolve(bJ)}}return bM},uaMatch:function(bJ){bJ=bJ.toLowerCase();var bI=bh.exec(bJ)||bA.exec(bJ)||bz.exec(bJ)||bJ.indexOf("compatible")<0&&bB.exec(bJ)||[];return{browser:bI[1]||"",version:bI[2]||"0"}},sub:function(){function bJ(bL,bM){return new bJ.fn.init(bL,bM)}bn.extend(true,bJ,this);bJ.superclass=this;bJ.fn=bJ.prototype=this();bJ.fn.constructor=bJ;bJ.subclass=this.subclass;bJ.fn.init=function bK(bL,bM){if(bM&&bM instanceof bn&&!(bM instanceof bJ)){bM=bJ(bM)}return bn.fn.init.call(this,bL,bM,bI)};bJ.fn.init.prototype=bJ.fn;var bI=bJ(al);return bJ},browser:{}});bk=bn._Deferred();bn.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(bJ,bI){bg["[object "+bI+"]"]=bI.toLowerCase()});bE=bn.uaMatch(bG);if(bE.browser){bn.browser[bE.browser]=true;bn.browser.version=bE.version}if(bn.browser.webkit){bn.browser.safari=true}if(be){bn.inArray=function(bI,bJ){return be.call(bJ,bI)}}if(bv.test("\xA0")){br=/^[\s\xA0]+/;bm=/[\s\xA0]+$/}bl=bn(al);if(al.addEventListener){bd=function(){al.removeEventListener("DOMContentLoaded",bd,false);bn.ready()}}else{if(al.attachEvent){bd=function(){if(al.readyState==="complete"){al.detachEvent("onreadystatechange",bd);bn.ready()}}}}function bf(){if(bn.isReady){return}try{al.documentElement.doScroll("left")}catch(bI){setTimeout(bf,1);return}bn.ready()}return bn})();(function(){a.support={};var bd=al.createElement("div");bd.style.display="none";bd.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var bm=bd.getElementsByTagName("*"),bk=bd.getElementsByTagName("a")[0],bl=al.createElement("select"),be=bl.appendChild(al.createElement("option")),bj=bd.getElementsByTagName("input")[0];if(!bm||!bm.length||!bk){return}a.support={leadingWhitespace:bd.firstChild.nodeType===3,tbody:!bd.getElementsByTagName("tbody").length,htmlSerialize:!!bd.getElementsByTagName("link").length,style:/red/.test(bk.getAttribute("style")),hrefNormalized:bk.getAttribute("href")==="/a",opacity:/^0.55$/.test(bk.style.opacity),cssFloat:!!bk.style.cssFloat,checkOn:bj.value==="on",optSelected:be.selected,deleteExpando:true,optDisabled:false,checkClone:false,noCloneEvent:true,noCloneChecked:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};bj.checked=true;a.support.noCloneChecked=bj.cloneNode(true).checked;bl.disabled=true;a.support.optDisabled=!be.disabled;var bf=null;a.support.scriptEval=function(){if(bf===null){var bo=al.documentElement,bp=al.createElement("script"),br="script"+a.now();try{bp.appendChild(al.createTextNode("window."+br+"=1;"))}catch(bq){}bo.insertBefore(bp,bo.firstChild);if(aY[br]){bf=true;delete aY[br]}else{bf=false}bo.removeChild(bp);bo=bp=br=null}return bf};try{delete bd.test}catch(bh){a.support.deleteExpando=false}if(!bd.addEventListener&&bd.attachEvent&&bd.fireEvent){bd.attachEvent("onclick",function bn(){a.support.noCloneEvent=false;bd.detachEvent("onclick",bn)});bd.cloneNode(true).fireEvent("onclick")}bd=al.createElement("div");bd.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var bg=al.createDocumentFragment();bg.appendChild(bd.firstChild);a.support.checkClone=bg.cloneNode(true).cloneNode(true).lastChild.checked;a(function(){var bp=al.createElement("div"),e=al.getElementsByTagName("body")[0];if(!e){return}bp.style.width=bp.style.paddingLeft="1px";e.appendChild(bp);a.boxModel=a.support.boxModel=bp.offsetWidth===2;if("zoom" in bp.style){bp.style.display="inline";bp.style.zoom=1;a.support.inlineBlockNeedsLayout=bp.offsetWidth===2;bp.style.display="";bp.innerHTML="<div style='width:4px;'></div>";a.support.shrinkWrapBlocks=bp.offsetWidth!==2}bp.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var bo=bp.getElementsByTagName("td");a.support.reliableHiddenOffsets=bo[0].offsetHeight===0;bo[0].style.display="";bo[1].style.display="none";a.support.reliableHiddenOffsets=a.support.reliableHiddenOffsets&&bo[0].offsetHeight===0;bp.innerHTML="";e.removeChild(bp).style.display="none";bp=bo=null});var bi=function(e){var bp=al.createElement("div");e="on"+e;if(!bp.attachEvent){return true}var bo=(e in bp);if(!bo){bp.setAttribute(e,"return;");bo=typeof bp[e]==="function"}bp=null;return bo};a.support.submitBubbles=bi("submit");a.support.changeBubbles=bi("change");bd=bm=bk=null})();var aE=/^(?:{.*}|[.*])$/;a.extend({cache:{},uuid:0,expando:"jQuery"+(a.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?a.cache[e[a.expando]]:e[a.expando];return !!e&&!P(e)},data:function(bf,bd,bh,bg){if(!a.acceptData(bf)){return}var bk=a.expando,bj=typeof bd==="string",bi,bl=bf.nodeType,e=bl?a.cache:bf,be=bl?bf[a.expando]:bf[a.expando]&&a.expando;if((!be||(bg&&be&&!e[be][bk]))&&bj&&bh===H){return}if(!be){if(bl){bf[a.expando]=be=++a.uuid}else{be=a.expando}}if(!e[be]){e[be]={};if(!bl){e[be].toJSON=a.noop}}if(typeof bd==="object"||typeof bd==="function"){if(bg){e[be][bk]=a.extend(e[be][bk],bd)}else{e[be]=a.extend(e[be],bd)}}bi=e[be];if(bg){if(!bi[bk]){bi[bk]={}}bi=bi[bk]}if(bh!==H){bi[bd]=bh}if(bd==="events"&&!bi[bd]){return bi[bk]&&bi[bk].events}return bj?bi[bd]:bi},removeData:function(bg,be,bh){if(!a.acceptData(bg)){return}var bj=a.expando,bk=bg.nodeType,bd=bk?a.cache:bg,bf=bk?bg[a.expando]:a.expando;if(!bd[bf]){return}if(be){var bi=bh?bd[bf][bj]:bd[bf];if(bi){delete bi[be];if(!P(bi)){return}}}if(bh){delete bd[bf][bj];if(!P(bd[bf])){return}}var e=bd[bf][bj];if(a.support.deleteExpando||bd!=aY){delete bd[bf]}else{bd[bf]=null}if(e){bd[bf]={};if(!bk){bd[bf].toJSON=a.noop}bd[bf][bj]=e}else{if(bk){if(a.support.deleteExpando){delete bg[a.expando]}else{if(bg.removeAttribute){bg.removeAttribute(a.expando)}else{bg[a.expando]=null}}}}},_data:function(bd,e,be){return a.data(bd,e,be,true)},acceptData:function(bd){if(bd.nodeName){var e=a.noData[bd.nodeName.toLowerCase()];if(e){return !(e===true||bd.getAttribute("classid")!==e)}}return true}});a.fn.extend({data:function(bg,bi){var bh=null;if(typeof bg==="undefined"){if(this.length){bh=a.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,be;for(var bf=0,bd=e.length;bf<bd;bf++){be=e[bf].name;if(be.indexOf("data-")===0){be=be.substr(5);aT(this[0],be,bh[be])}}}}return bh}else{if(typeof bg==="object"){return this.each(function(){a.data(this,bg)})}}var bj=bg.split(".");bj[1]=bj[1]?"."+bj[1]:"";if(bi===H){bh=this.triggerHandler("getData"+bj[1]+"!",[bj[0]]);if(bh===H&&this.length){bh=a.data(this[0],bg);bh=aT(this[0],bg,bh)}return bh===H&&bj[1]?this.data(bj[0]):bh}else{return this.each(function(){var bl=a(this),bk=[bj[0],bi];bl.triggerHandler("setData"+bj[1]+"!",bk);a.data(this,bg,bi);bl.triggerHandler("changeData"+bj[1]+"!",bk)})}},removeData:function(e){return this.each(function(){a.removeData(this,e)})}});function aT(be,bd,bf){if(bf===H&&be.nodeType===1){bf=be.getAttribute("data-"+bd);if(typeof bf==="string"){try{bf=bf==="true"?true:bf==="false"?false:bf==="null"?null:!a.isNaN(bf)?parseFloat(bf):aE.test(bf)?a.parseJSON(bf):bf}catch(bg){}a.data(be,bd,bf)}else{bf=H}}return bf}function P(bd){for(var e in bd){if(e!=="toJSON"){return false}}return true}a.extend({queue:function(bd,e,bf){if(!bd){return}e=(e||"fx")+"queue";var be=a._data(bd,e);if(!bf){return be||[]}if(!be||a.isArray(bf)){be=a._data(bd,e,a.makeArray(bf))}else{be.push(bf)}return be},dequeue:function(bf,be){be=be||"fx";var e=a.queue(bf,be),bd=e.shift();if(bd==="inprogress"){bd=e.shift()}if(bd){if(be==="fx"){e.unshift("inprogress")}bd.call(bf,function(){a.dequeue(bf,be)})}if(!e.length){a.removeData(bf,be+"queue",true)}}});a.fn.extend({queue:function(e,bd){if(typeof e!=="string"){bd=e;e="fx"}if(bd===H){return a.queue(this[0],e)}return this.each(function(bf){var be=a.queue(this,e,bd);if(e==="fx"&&be[0]!=="inprogress"){a.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){a.dequeue(this,e)})},delay:function(bd,e){bd=a.fx?a.fx.speeds[bd]||bd:bd;e=e||"fx";return this.queue(e,function(){var be=this;setTimeout(function(){a.dequeue(be,e)},bd)})},clearQueue:function(e){return this.queue(e||"fx",[])}});var aC=/[\n\t\r]/g,a3=/\s+/,aG=/\r/g,a2=/^(?:href|src|style)$/,f=/^(?:button|input)$/i,C=/^(?:button|input|object|select|textarea)$/i,k=/^a(?:rea)?$/i,Q=/^(?:radio|checkbox)$/i;a.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};a.fn.extend({attr:function(e,bd){return a.access(this,e,bd,true,a.attr)},removeAttr:function(e,bd){return this.each(function(){a.attr(this,e,"");if(this.nodeType===1){this.removeAttribute(e)}})},addClass:function(bj){if(a.isFunction(bj)){return this.each(function(bm){var bl=a(this);bl.addClass(bj.call(this,bm,bl.attr("class")))})}if(bj&&typeof bj==="string"){var e=(bj||"").split(a3);for(var bf=0,be=this.length;bf<be;bf++){var bd=this[bf];if(bd.nodeType===1){if(!bd.className){bd.className=bj}else{var bg=" "+bd.className+" ",bi=bd.className;for(var bh=0,bk=e.length;bh<bk;bh++){if(bg.indexOf(" "+e[bh]+" ")<0){bi+=" "+e[bh]}}bd.className=a.trim(bi)}}}}return this},removeClass:function(bh){if(a.isFunction(bh)){return this.each(function(bl){var bk=a(this);bk.removeClass(bh.call(this,bl,bk.attr("class")))})}if((bh&&typeof bh==="string")||bh===H){var bi=(bh||"").split(a3);for(var be=0,bd=this.length;be<bd;be++){var bg=this[be];if(bg.nodeType===1&&bg.className){if(bh){var bf=(" "+bg.className+" ").replace(aC," ");for(var bj=0,e=bi.length;bj<e;bj++){bf=bf.replace(" "+bi[bj]+" "," ")}bg.className=a.trim(bf)}else{bg.className=""}}}}return this},toggleClass:function(bf,bd){var be=typeof bf,e=typeof bd==="boolean";if(a.isFunction(bf)){return this.each(function(bh){var bg=a(this);bg.toggleClass(bf.call(this,bh,bg.attr("class"),bd),bd)})}return this.each(function(){if(be==="string"){var bi,bh=0,bg=a(this),bj=bd,bk=bf.split(a3);while((bi=bk[bh++])){bj=e?bj:!bg.hasClass(bi);bg[bj?"addClass":"removeClass"](bi)}}else{if(be==="undefined"||be==="boolean"){if(this.className){a._data(this,"__className__",this.className)}this.className=this.className||bf===false?"":a._data(this,"__className__")||""}}})},hasClass:function(e){var bf=" "+e+" ";for(var be=0,bd=this.length;be<bd;be++){if((" "+this[be].className+" ").replace(aC," ").indexOf(bf)>-1){return true}}return false},val:function(bk){if(!arguments.length){var be=this[0];if(be){if(a.nodeName(be,"option")){var bd=be.attributes.value;return !bd||bd.specified?be.value:be.text}if(a.nodeName(be,"select")){var bi=be.selectedIndex,bl=[],bm=be.options,bh=be.type==="select-one";if(bi<0){return null}for(var bf=bh?bi:0,bj=bh?bi+1:bm.length;bf<bj;bf++){var bg=bm[bf];if(bg.selected&&(a.support.optDisabled?!bg.disabled:bg.getAttribute("disabled")===null)&&(!bg.parentNode.disabled||!a.nodeName(bg.parentNode,"optgroup"))){bk=a(bg).val();if(bh){return bk}bl.push(bk)}}if(bh&&!bl.length&&bm.length){return a(bm[bi]).val()}return bl}if(Q.test(be.type)&&!a.support.checkOn){return be.getAttribute("value")===null?"on":be.value}return(be.value||"").replace(aG,"")}return H}var e=a.isFunction(bk);return this.each(function(bp){var bo=a(this),bq=bk;if(this.nodeType!==1){return}if(e){bq=bk.call(this,bp,bo.val())}if(bq==null){bq=""}else{if(typeof bq==="number"){bq+=""}else{if(a.isArray(bq)){bq=a.map(bq,function(br){return br==null?"":br+""})}}}if(a.isArray(bq)&&Q.test(this.type)){this.checked=a.inArray(bo.val(),bq)>=0}else{if(a.nodeName(this,"select")){var bn=a.makeArray(bq);a("option",this).each(function(){this.selected=a.inArray(a(this).val(),bn)>=0});if(!bn.length){this.selectedIndex=-1}}else{this.value=bq}}})}});a.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bd,e,bi,bl){if(!bd||bd.nodeType===3||bd.nodeType===8||bd.nodeType===2){return H}if(bl&&e in a.attrFn){return a(bd)[e](bi)}var be=bd.nodeType!==1||!a.isXMLDoc(bd),bh=bi!==H;e=be&&a.props[e]||e;if(bd.nodeType===1){var bg=a2.test(e);if(e==="selected"&&!a.support.optSelected){var bj=bd.parentNode;if(bj){bj.selectedIndex;if(bj.parentNode){bj.parentNode.selectedIndex}}}if((e in bd||bd[e]!==H)&&be&&!bg){if(bh){if(e==="type"&&f.test(bd.nodeName)&&bd.parentNode){a.error("type property can't be changed")}if(bi===null){if(bd.nodeType===1){bd.removeAttribute(e)}}else{bd[e]=bi}}if(a.nodeName(bd,"form")&&bd.getAttributeNode(e)){return bd.getAttributeNode(e).nodeValue}if(e==="tabIndex"){var bk=bd.getAttributeNode("tabIndex");return bk&&bk.specified?bk.value:C.test(bd.nodeName)||k.test(bd.nodeName)&&bd.href?0:H}return bd[e]}if(!a.support.style&&be&&e==="style"){if(bh){bd.style.cssText=""+bi}return bd.style.cssText}if(bh){bd.setAttribute(e,""+bi)}if(!bd.attributes[e]&&(bd.hasAttribute&&!bd.hasAttribute(e))){return H}var bf=!a.support.hrefNormalized&&be&&bg?bd.getAttribute(e,2):bd.getAttribute(e);return bf===null?H:bf}if(bh){bd[e]=bi}return bd[e]}});var aP=/.(.*)$/,a0=/^(?:textarea|input|select)$/i,K=/./g,aa=/ /g,aw=/[^\w\s.|`]/g,E=function(e){return e.replace(aw,"\$&")};a.event={add:function(bg,bk,br,bi){if(bg.nodeType===3||bg.nodeType===8){return}try{if(a.isWindow(bg)&&(bg!==aY&&!bg.frameElement)){bg=aY}}catch(bl){}if(br===false){br=a5}else{if(!br){return}}var be,bp;if(br.handler){be=br;br=be.handler}if(!br.guid){br.guid=a.guid++}var bm=a._data(bg);if(!bm){return}var bq=bm.events,bj=bm.handle;if(!bq){bm.events=bq={}}if(!bj){bm.handle=bj=function(){return typeof a!=="undefined"&&!a.event.triggered?a.event.handle.apply(bj.elem,arguments):H}}bj.elem=bg;bk=bk.split(" ");var bo,bh=0,bd;while((bo=bk[bh++])){bp=be?a.extend({},be):{handler:br,data:bi};if(bo.indexOf(".")>-1){bd=bo.split(".");bo=bd.shift();bp.namespace=bd.slice(0).sort().join(".")}else{bd=[];bp.namespace=""}bp.type=bo;if(!bp.guid){bp.guid=br.guid}var bf=bq[bo],bn=a.event.special[bo]||{};if(!bf){bf=bq[bo]=[];if(!bn.setup||bn.setup.call(bg,bi,bd,bj)===false){if(bg.addEventListener){bg.addEventListener(bo,bj,false)}else{if(bg.attachEvent){bg.attachEvent("on"+bo,bj)}}}}if(bn.add){bn.add.call(bg,bp);if(!bp.handler.guid){bp.handler.guid=br.guid}}bf.push(bp);a.event.global[bo]=true}bg=null},global:{},remove:function(br,bm,be,bi){if(br.nodeType===3||br.nodeType===8){return}if(be===false){be=a5}var bu,bh,bj,bo,bp=0,bf,bk,bn,bg,bl,e,bt,bq=a.hasData(br)&&a._data(br),bd=bq&&bq.events;if(!bq||!bd){return}if(bm&&bm.type){be=bm.handler;bm=bm.type}if(!bm||typeof bm==="string"&&bm.charAt(0)==="."){bm=bm||"";for(bh in bd){a.event.remove(br,bh+bm)}return}bm=bm.split(" ");while((bh=bm[bp++])){bt=bh;e=null;bf=bh.indexOf(".")<0;bk=[];if(!bf){bk=bh.split(".");bh=bk.shift();bn=new RegExp("(^|\.)"+a.map(bk.slice(0).sort(),E).join("\.(?:.*\.)?")+"(\.|$)")}bl=bd[bh];if(!bl){continue}if(!be){for(bo=0;bo<bl.length;bo++){e=bl[bo];if(bf||bn.test(e.namespace)){a.event.remove(br,bt,e.handler,bo);bl.splice(bo--,1)}}continue}bg=a.event.special[bh]||{};for(bo=bi||0;bo<bl.length;bo++){e=bl[bo];if(be.guid===e.guid){if(bf||bn.test(e.namespace)){if(bi==null){bl.splice(bo--,1)}if(bg.remove){bg.remove.call(br,e)}}if(bi!=null){break}}}if(bl.length===0||bi!=null&&bl.length===1){if(!bg.teardown||bg.teardown.call(br,bk)===false){a.removeEvent(br,bh,bq.handle)}bu=null;delete bd[bh]}}if(a.isEmptyObject(bd)){var bs=bq.handle;if(bs){bs.elem=null}delete bq.events;delete bq.handle;if(a.isEmptyObject(bq)){a.removeData(br,H,true)}}},trigger:function(bd,bi,bf){var bm=bd.type||bd,bh=arguments[3];if(!bh){bd=typeof bd==="object"?bd[a.expando]?bd:a.extend(a.Event(bm),bd):a.Event(bm);if(bm.indexOf("!")>=0){bd.type=bm=bm.slice(0,-1);bd.exclusive=true}if(!bf){bd.stopPropagation();if(a.event.global[bm]){a.each(a.cache,function(){var br=a.expando,bq=this[br];if(bq&&bq.events&&bq.events[bm]){a.event.trigger(bd,bi,bq.handle.elem)}})}}if(!bf||bf.nodeType===3||bf.nodeType===8){return H}bd.result=H;bd.target=bf;bi=a.makeArray(bi);bi.unshift(bd)}bd.currentTarget=bf;var bj=a._data(bf,"handle");if(bj){bj.apply(bf,bi)}var bo=bf.parentNode||bf.ownerDocument;try{if(!(bf&&bf.nodeName&&a.noData[bf.nodeName.toLowerCase()])){if(bf["on"+bm]&&bf["on"+bm].apply(bf,bi)===false){bd.result=false;bd.preventDefault()}}}catch(bn){}if(!bd.isPropagationStopped()&&bo){a.event.trigger(bd,bi,bo,true)}else{if(!bd.isDefaultPrevented()){var be,bk=bd.target,e=bm.replace(aP,""),bp=a.nodeName(bk,"a")&&e==="click",bl=a.event.special[e]||{};if((!bl._default||bl._default.call(bf,bd)===false)&&!bp&&!(bk&&bk.nodeName&&a.noData[bk.nodeName.toLowerCase()])){try{if(bk[e]){be=bk["on"+e];if(be){bk["on"+e]=null}a.event.triggered=true;bk[e]()}}catch(bg){}if(be){bk["on"+e]=be}a.event.triggered=false}}}},handle:function(e){var bl,be,bd,bn,bm,bh=[],bj=a.makeArray(arguments);e=bj[0]=a.event.fix(e||aY.event);e.currentTarget=this;bl=e.type.indexOf(".")<0&&!e.exclusive;if(!bl){bd=e.type.split(".");e.type=bd.shift();bh=bd.slice(0).sort();bn=new RegExp("(^|\.)"+bh.join("\.(?:.*\.)?")+"(\.|$)")}e.namespace=e.namespace||bh.join(".");bm=a._data(this,"events");be=(bm||{})[e.type];if(bm&&be){be=be.slice(0);for(var bg=0,bf=be.length;bg<bf;bg++){var bk=be[bg];if(bl||bn.test(bk.namespace)){e.handler=bk.handler;e.data=bk.data;e.handleObj=bk;var bi=bk.handler.apply(this,bj);if(bi!==H){e.result=bi;if(bi===false){e.preventDefault();e.stopPropagation()}}if(e.isImmediatePropagationStopped()){break}}}}return e.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(bf){if(bf[a.expando]){return bf}var bd=bf;bf=a.Event(bd);for(var be=this.props.length,bh;be;){bh=this.props[--be];bf[bh]=bd[bh]}if(!bf.target){bf.target=bf.srcElement||al}if(bf.target.nodeType===3){bf.target=bf.target.parentNode}if(!bf.relatedTarget&&bf.fromElement){bf.relatedTarget=bf.fromElement===bf.target?bf.toElement:bf.fromElement}if(bf.pageX==null&&bf.clientX!=null){var bg=al.documentElement,e=al.body;bf.pageX=bf.clientX+(bg&&bg.scrollLeft||e&&e.scrollLeft||0)-(bg&&bg.clientLeft||e&&e.clientLeft||0);bf.pageY=bf.clientY+(bg&&bg.scrollTop||e&&e.scrollTop||0)-(bg&&bg.clientTop||e&&e.clientTop||0)}if(bf.which==null&&(bf.charCode!=null||bf.keyCode!=null)){bf.which=bf.charCode!=null?bf.charCode:bf.keyCode}if(!bf.metaKey&&bf.ctrlKey){bf.metaKey=bf.ctrlKey}if(!bf.which&&bf.button!==H){bf.which=(bf.button&1?1:(bf.button&2?3:(bf.button&4?2:0)))}return bf},guid:100000000,proxy:a.proxy,special:{ready:{setup:a.bindReady,teardown:a.noop},live:{add:function(e){a.event.add(this,n(e.origType,e.selector),a.extend({},e,{handler:af,guid:e.handler.guid}))},remove:function(e){a.event.remove(this,n(e.origType,e.selector),e)}},beforeunload:{setup:function(be,bd,e){if(a.isWindow(this)){this.onbeforeunload=e}},teardown:function(bd,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}}};a.removeEvent=al.removeEventListener?function(bd,e,be){if(bd.removeEventListener){bd.removeEventListener(e,be,false)}}:function(bd,e,be){if(bd.detachEvent){bd.detachEvent("on"+e,be)}};a.Event=function(e){if(!this.preventDefault){return new a.Event(e)}if(e&&e.type){this.originalEvent=e;this.type=e.type;this.isDefaultPrevented=(e.defaultPrevented||e.returnValue===false||e.getPreventDefault&&e.getPreventDefault())?h:a5}else{this.type=e}this.timeStamp=a.now();this[a.expando]=true};function a5(){return false}function h(){return true}a.Event.prototype={preventDefault:function(){this.isDefaultPrevented=h;var bd=this.originalEvent;if(!bd){return}if(bd.preventDefault){bd.preventDefault()}else{bd.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=h;var bd=this.originalEvent;if(!bd){return}if(bd.stopPropagation){bd.stopPropagation()}bd.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=h;this.stopPropagation()},isDefaultPrevented:a5,isPropagationStopped:a5,isImmediatePropagationStopped:a5};var Z=function(be){var bd=be.relatedTarget;try{if(bd!==al&&!bd.parentNode){return}while(bd&&bd!==this){bd=bd.parentNode}if(bd!==this){be.type=be.data;a.event.handle.apply(this,arguments)}}catch(bf){}},aK=function(e){e.type=e.data;a.event.handle.apply(this,arguments)};a.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bd,e){a.event.special[bd]={setup:function(be){a.event.add(this,e,be&&be.selector?aK:Z,bd)},teardown:function(be){a.event.remove(this,e,be&&be.selector?aK:Z)}}});if(!a.support.submitBubbles){a.event.special.submit={setup:function(bd,e){if(this.nodeName&&this.nodeName.toLowerCase()!=="form"){a.event.add(this,"click.specialSubmit",function(bg){var bf=bg.target,be=bf.type;if((be==="submit"||be==="image")&&a(bf).closest("form").length){aN("submit",this,arguments)}});a.event.add(this,"keypress.specialSubmit",function(bg){var bf=bg.target,be=bf.type;if((be==="text"||be==="password")&&a(bf).closest("form").length&&bg.keyCode===13){aN("submit",this,arguments)}})}else{return false}},teardown:function(e){a.event.remove(this,".specialSubmit")}}}if(!a.support.changeBubbles){var a6,j=function(bd){var e=bd.type,be=bd.value;if(e==="radio"||e==="checkbox"){be=bd.checked}else{if(e==="select-multiple"){be=bd.selectedIndex>-1?a.map(bd.options,function(bf){return bf.selected}).join("-"):""}else{if(bd.nodeName.toLowerCase()==="select"){be=bd.selectedIndex}}}return be},X=function X(bf){var bd=bf.target,be,bg;if(!a0.test(bd.nodeName)||bd.readOnly){return}be=a._data(bd,"_change_data");bg=j(bd);if(bf.type!=="focusout"||bd.type!=="radio"){a._data(bd,"_change_data",bg)}if(be===H||bg===be){return}if(be!=null||bg){bf.type="change";bf.liveFired=H;a.event.trigger(bf,arguments[1],bd)}};a.event.special.change={filters:{focusout:X,beforedeactivate:X,click:function(bf){var be=bf.target,bd=be.type;if(bd==="radio"||bd==="checkbox"||be.nodeName.toLowerCase()==="select"){X.call(this,bf)}},keydown:function(bf){var be=bf.target,bd=be.type;if((bf.keyCode===13&&be.nodeName.toLowerCase()!=="textarea")||(bf.keyCode===32&&(bd==="checkbox"||bd==="radio"))||bd==="select-multiple"){X.call(this,bf)}},beforeactivate:function(be){var bd=be.target;a._data(bd,"_change_data",j(bd))}},setup:function(be,bd){if(this.type==="file"){return false}for(var e in a6){a.event.add(this,e+".specialChange",a6[e])}return a0.test(this.nodeName)},teardown:function(e){a.event.remove(this,".specialChange");return a0.test(this.nodeName)}};a6=a.event.special.change.filters;a6.focus=a6.beforeactivate}function aN(bd,bf,e){var be=a.extend({},e[0]);be.type=bd;be.originalEvent={};be.liveFired=H;a.event.handle.call(bf,be);if(be.isDefaultPrevented()){e[0].preventDefault()}}if(al.addEventListener){a.each({focus:"focusin",blur:"focusout"},function(be,e){a.event.special[e]={setup:function(){this.addEventListener(be,bd,true)},teardown:function(){this.removeEventListener(be,bd,true)}};function bd(bf){bf=a.event.fix(bf);bf.type=e;return a.event.handle.call(this,bf)}})}a.each(["bind","one"],function(bd,e){a.fn[e]=function(bj,bk,bi){if(typeof bj==="object"){for(var bg in bj){this[e](bg,bk,bj[bg],bi)}return this}if(a.isFunction(bk)||bk===false){bi=bk;bk=H}var bh=e==="one"?a.proxy(bi,function(bl){a(this).unbind(bl,bh);return bi.apply(this,arguments)}):bi;if(bj==="unload"&&e!=="one"){this.one(bj,bk,bi)}else{for(var bf=0,be=this.length;bf<be;bf++){a.event.add(this[bf],bj,bh,bk)}}return this}});a.fn.extend({unbind:function(bg,bf){if(typeof bg==="object"&&!bg.preventDefault){for(var be in bg){this.unbind(be,bg[be])}}else{for(var bd=0,e=this.length;bd<e;bd++){a.event.remove(this[bd],bg,bf)}}return this},delegate:function(e,bd,bf,be){return this.live(bd,bf,be,e)},undelegate:function(e,bd,be){if(arguments.length===0){return this.unbind("live")}else{return this.die(bd,null,be,e)}},trigger:function(e,bd){return this.each(function(){a.event.trigger(e,bd,this)})},triggerHandler:function(e,be){if(this[0]){var bd=a.Event(e);bd.preventDefault();bd.stopPropagation();a.event.trigger(bd,be,this[0]);return bd.result}},toggle:function(be){var e=arguments,bd=1;while(bd<e.length){a.proxy(be,e[bd++])}return this.click(a.proxy(be,function(bf){var bg=(a._data(this,"lastToggle"+be.guid)||0)%bd;a._data(this,"lastToggle"+be.guid,bg+1);bf.preventDefault();return e[bg].apply(this,arguments)||false}))},hover:function(e,bd){return this.mouseenter(e).mouseleave(bd||e)}});var aH={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};a.each(["live","die"],function(bd,e){a.fn[e]=function(bn,bk,bp,bg){var bo,bl=0,bm,bf,br,bi=bg||this.selector,be=bg?this:a(this.context);if(typeof bn==="object"&&!bn.preventDefault){for(var bq in bn){be[e](bq,bk,bn[bq],bi)}return this}if(a.isFunction(bk)){bp=bk;bk=H}bn=(bn||"").split(" ");while((bo=bn[bl++])!=null){bm=aP.exec(bo);bf="";if(bm){bf=bm[0];bo=bo.replace(aP,"")}if(bo==="hover"){bn.push("mouseenter"+bf,"mouseleave"+bf);continue}br=bo;if(bo==="focus"||bo==="blur"){bn.push(aH[bo]+bf);bo=bo+bf}else{bo=(aH[bo]||bo)+bf}if(e==="live"){for(var bj=0,bh=be.length;bj<bh;bj++){a.event.add(be[bj],"live."+n(bo,bi),{data:bk,selector:bi,handler:bp,origType:bo,origHandler:bp,preType:br})}}else{be.unbind("live."+n(bo,bi),bp)}}return this}});function af(bn){var bk,bf,bt,bh,e,bp,bm,bo,bl,bs,bj,bi,br,bq=[],bg=[],bd=a._data(this,"events");if(bn.liveFired===this||!bd||!bd.live||bn.target.disabled||bn.button&&bn.type==="click"){return}if(bn.namespace){bi=new RegExp("(^|\.)"+bn.namespace.split(".").join("\.(?:.*\.)?")+"(\.|$)")}bn.liveFired=this;var be=bd.live.slice(0);for(bm=0;bm<be.length;bm++){e=be[bm];if(e.origType.replace(aP,"")===bn.type){bg.push(e.selector)}else{be.splice(bm--,1)}}bh=a(bn.target).closest(bg,bn.currentTarget);for(bo=0,bl=bh.length;bo<bl;bo++){bj=bh[bo];for(bm=0;bm<be.length;bm++){e=be[bm];if(bj.selector===e.selector&&(!bi||bi.test(e.namespace))&&!bj.elem.disabled){bp=bj.elem;bt=null;if(e.preType==="mouseenter"||e.preType==="mouseleave"){bn.type=e.preType;bt=a(bn.relatedTarget).closest(e.selector)[0]}if(!bt||bt!==bp){bq.push({elem:bp,handleObj:e,level:bj.level})}}}}for(bo=0,bl=bq.length;bo<bl;bo++){bh=bq[bo];if(bf&&bh.level>bf){break}bn.currentTarget=bh.elem;bn.data=bh.handleObj.data;bn.handleObj=bh.handleObj;br=bh.handleObj.origHandler.apply(bh.elem,arguments);if(br===false||bn.isPropagationStopped()){bf=bh.level;if(br===false){bk=false}if(bn.isImmediatePropagationStopped()){break}}}return bk}function n(bd,e){return(bd&&bd!=="*"?bd+".":"")+e.replace(K,"`").replace(aa,"&")}a.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error").split(" "),function(bd,e){a.fn[e]=function(bf,be){if(be==null){be=bf;bf=null}return arguments.length>0?this.bind(e,bf,be):this.trigger(e)};if(a.attrFn){a.attrFn[e]=true}}); /* * Sizzle CSS Selector Engine * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */ -(function(){var bj=/((?:((?:([^()]+)|[^()]+)+)|[(?:[[^[]]*]|['"][^'"]*['"]|[^[]'"]+)+]|\.|[^ >+~,([\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bc=0,a7=Object.prototype.toString,bi=false,bb=true;[0,0].sort(function(){bb=false;return 0});var a5=function(bq,bl,bt,bu){bt=bt||[];bl=bl||ae;var bw=bl;if(bl.nodeType!==1&&bl.nodeType!==9){return[]}if(!bq||typeof bq!=="string"){return bt}var bn,by,bB,bm,bx,bA,bz,bs,bp=true,bo=a5.isXML(bl),br=[],bv=bq;do{bj.exec("");bn=bj.exec(bv);if(bn){bv=bn[3];br.push(bn[1]);if(bn[2]){bm=bn[3];break}}}while(bn);if(br.length>1&&bd.exec(bq)){if(br.length===2&&a8.relative[br[0]]){by=ba(br[0]+br[1],bl)}else{by=a8.relative[br[0]]?[bl]:a5(br.shift(),bl);while(br.length){bq=br.shift();if(a8.relative[bq]){bq+=br.shift()}by=ba(bq,by)}}}else{if(!bu&&br.length>1&&bl.nodeType===9&&!bo&&a8.match.ID.test(br[0])&&!a8.match.ID.test(br[br.length-1])){bx=a5.find(br.shift(),bl,bo);bl=bx.expr?a5.filter(bx.expr,bx.set)[0]:bx.set[0]}if(bl){bx=bu?{expr:br.pop(),set:a4(bu)}:a5.find(br.pop(),br.length===1&&(br[0]==="~"||br[0]==="+")&&bl.parentNode?bl.parentNode:bl,bo);by=bx.expr?a5.filter(bx.expr,bx.set):bx.set;if(br.length>0){bB=a4(by)}else{bp=false}while(br.length){bA=br.pop();bz=bA;if(!a8.relative[bA]){bA=""}else{bz=br.pop()}if(bz==null){bz=bl}a8.relative[bA](bB,bz,bo)}}else{bB=br=[]}}if(!bB){bB=by}if(!bB){a5.error(bA||bq)}if(a7.call(bB)==="[object Array]"){if(!bp){bt.push.apply(bt,bB)}else{if(bl&&bl.nodeType===1){for(bs=0;bB[bs]!=null;bs++){if(bB[bs]&&(bB[bs]===true||bB[bs].nodeType===1&&a5.contains(bl,bB[bs]))){bt.push(by[bs])}}}else{for(bs=0;bB[bs]!=null;bs++){if(bB[bs]&&bB[bs].nodeType===1){bt.push(by[bs])}}}}}else{a4(bB,bt)}if(bm){a5(bm,bw,bt,bu);a5.uniqueSort(bt)}return bt};a5.uniqueSort=function(bm){if(a6){bi=bb;bm.sort(a6);if(bi){for(var bl=1;bl<bm.length;bl++){if(bm[bl]===bm[bl-1]){bm.splice(bl--,1)}}}}return bm};a5.matches=function(bl,bm){return a5(bl,null,null,bm)};a5.matchesSelector=function(bl,bm){return a5(bm,null,null,[bl]).length>0};a5.find=function(bs,bl,bt){var br;if(!bs){return[]}for(var bo=0,bn=a8.order.length;bo<bn;bo++){var bp,bq=a8.order[bo];if((bp=a8.leftMatch[bq].exec(bs))){var bm=bp[1];bp.splice(1,1);if(bm.substr(bm.length-1)!=="\"){bp[1]=(bp[1]||"").replace(/\/g,"");br=a8.find[bq](bp,bl,bt);if(br!=null){bs=bs.replace(a8.match[bq],"");break}}}}if(!br){br=typeof bl.getElementsByTagName!=="undefined"?bl.getElementsByTagName("*"):[]}return{set:br,expr:bs}};a5.filter=function(bw,bv,bz,bp){var br,bl,bn=bw,bB=[],bt=bv,bs=bv&&bv[0]&&a5.isXML(bv[0]);while(bw&&bv.length){for(var bu in a8.filter){if((br=a8.leftMatch[bu].exec(bw))!=null&&br[2]){var bA,by,bm=a8.filter[bu],bo=br[1];bl=false;br.splice(1,1);if(bo.substr(bo.length-1)==="\"){continue}if(bt===bB){bB=[]}if(a8.preFilter[bu]){br=a8.preFilter[bu](br,bt,bz,bB,bp,bs);if(!br){bl=bA=true}else{if(br===true){continue}}}if(br){for(var bq=0;(by=bt[bq])!=null;bq++){if(by){bA=bm(by,br,bq,bt);var bx=bp^!!bA;if(bz&&bA!=null){if(bx){bl=true}else{bt[bq]=false}}else{if(bx){bB.push(by);bl=true}}}}}if(bA!==E){if(!bz){bt=bB}bw=bw.replace(a8.match[bu],"");if(!bl){return[]}break}}}if(bw===bn){if(bl==null){a5.error(bw)}else{break}}bn=bw}return bt};a5.error=function(bl){throw"Syntax error, unrecognized expression: "+bl};var a8=a5.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\.)+)/,CLASS:/.((?:[\w\u00c0-\uFFFF-]|\.)+)/,NAME:/[name=['"]*((?:[\w\u00c0-\uFFFF-]|\.)+)['"]*]/,ATTR:/[\s*((?:[\w\u00c0-\uFFFF-]|\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF-]|\.)*)|)|)\s*]/,TAG:/^((?:[\w\u00c0-\uFFFF*-]|\.)+)/,CHILD:/:(only|nth|last|first)-child(?:(\s*(even|odd|(?:[+-]?\d+|(?:[+-]?\d*)?n\s*(?:[+-]\s*\d+)?))\s*))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:((\d*)))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\.)+)(?:((['"]?)((?:([^)]+)|[^()]*)+)\2))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(bl){return bl.getAttribute("href")}},relative:{"+":function(br,bm){var bo=typeof bm==="string",bq=bo&&!/\W/.test(bm),bs=bo&&!bq;if(bq){bm=bm.toLowerCase()}for(var bn=0,bl=br.length,bp;bn<bl;bn++){if((bp=br[bn])){while((bp=bp.previousSibling)&&bp.nodeType!==1){}br[bn]=bs||bp&&bp.nodeName.toLowerCase()===bm?bp||false:bp===bm}}if(bs){a5.filter(bm,br,true)}},">":function(br,bm){var bq,bp=typeof bm==="string",bn=0,bl=br.length;if(bp&&!/\W/.test(bm)){bm=bm.toLowerCase();for(;bn<bl;bn++){bq=br[bn];if(bq){var bo=bq.parentNode;br[bn]=bo.nodeName.toLowerCase()===bm?bo:false}}}else{for(;bn<bl;bn++){bq=br[bn];if(bq){br[bn]=bp?bq.parentNode:bq.parentNode===bm}}if(bp){a5.filter(bm,br,true)}}},"":function(bo,bm,bq){var bp,bn=bc++,bl=bk;if(typeof bm==="string"&&!/\W/.test(bm)){bm=bm.toLowerCase();bp=bm;bl=bh}bl("parentNode",bm,bn,bo,bp,bq)},"~":function(bo,bm,bq){var bp,bn=bc++,bl=bk;if(typeof bm==="string"&&!/\W/.test(bm)){bm=bm.toLowerCase();bp=bm;bl=bh}bl("previousSibling",bm,bn,bo,bp,bq)}},find:{ID:function(bm,bn,bo){if(typeof bn.getElementById!=="undefined"&&!bo){var bl=bn.getElementById(bm[1]);return bl&&bl.parentNode?[bl]:[]}},NAME:function(bn,bq){if(typeof bq.getElementsByName!=="undefined"){var bm=[],bp=bq.getElementsByName(bn[1]);for(var bo=0,bl=bp.length;bo<bl;bo++){if(bp[bo].getAttribute("name")===bn[1]){bm.push(bp[bo])}}return bm.length===0?null:bm}},TAG:function(bl,bm){if(typeof bm.getElementsByTagName!=="undefined"){return bm.getElementsByTagName(bl[1])}}},preFilter:{CLASS:function(bo,bm,bn,bl,br,bs){bo=" "+bo[1].replace(/\/g,"")+" ";if(bs){return bo}for(var bp=0,bq;(bq=bm[bp])!=null;bp++){if(bq){if(br^(bq.className&&(" "+bq.className+" ").replace(/[\t\n\r]/g," ").indexOf(bo)>=0)){if(!bn){bl.push(bq)}}else{if(bn){bm[bp]=false}}}}return false},ID:function(bl){return bl[1].replace(/\/g,"")},TAG:function(bm,bl){return bm[1].toLowerCase()},CHILD:function(bl){if(bl[1]==="nth"){if(!bl[2]){a5.error(bl[0])}bl[2]=bl[2].replace(/^+|\s*/g,"");var bm=/(-?)(\d*)(?:n([+-]?\d*))?/.exec(bl[2]==="even"&&"2n"||bl[2]==="odd"&&"2n+1"||!/\D/.test(bl[2])&&"0n+"+bl[2]||bl[2]);bl[2]=(bm[1]+(bm[2]||1))-0;bl[3]=bm[3]-0}else{if(bl[2]){a5.error(bl[0])}}bl[0]=bc++;return bl},ATTR:function(bp,bm,bn,bl,bq,br){var bo=bp[1]=bp[1].replace(/\/g,"");if(!br&&a8.attrMap[bo]){bp[1]=a8.attrMap[bo]}bp[4]=(bp[4]||bp[5]||"").replace(/\/g,"");if(bp[2]==="~="){bp[4]=" "+bp[4]+" "}return bp},PSEUDO:function(bp,bm,bn,bl,bq){if(bp[1]==="not"){if((bj.exec(bp[3])||"").length>1||/^\w/.test(bp[3])){bp[3]=a5(bp[3],null,null,bm)}else{var bo=a5.filter(bp[3],bm,bn,true^bq);if(!bn){bl.push.apply(bl,bo)}return false}}else{if(a8.match.POS.test(bp[0])||a8.match.CHILD.test(bp[0])){return true}}return bp},POS:function(bl){bl.unshift(true);return bl}},filters:{enabled:function(bl){return bl.disabled===false&&bl.type!=="hidden"},disabled:function(bl){return bl.disabled===true},checked:function(bl){return bl.checked===true},selected:function(bl){bl.parentNode.selectedIndex;return bl.selected===true},parent:function(bl){return !!bl.firstChild},empty:function(bl){return !bl.firstChild},has:function(bn,bm,bl){return !!a5(bl[3],bn).length},header:function(bl){return(/h\d/i).test(bl.nodeName)},text:function(bl){return"text"===bl.type},radio:function(bl){return"radio"===bl.type},checkbox:function(bl){return"checkbox"===bl.type},file:function(bl){return"file"===bl.type},password:function(bl){return"password"===bl.type},submit:function(bl){return"submit"===bl.type},image:function(bl){return"image"===bl.type},reset:function(bl){return"reset"===bl.type},button:function(bl){return"button"===bl.type||bl.nodeName.toLowerCase()==="button"},input:function(bl){return(/input|select|textarea|button/i).test(bl.nodeName)}},setFilters:{first:function(bm,bl){return bl===0},last:function(bn,bm,bl,bo){return bm===bo.length-1},even:function(bm,bl){return bl%2===0},odd:function(bm,bl){return bl%2===1},lt:function(bn,bm,bl){return bm<bl[3]-0},gt:function(bn,bm,bl){return bm>bl[3]-0},nth:function(bn,bm,bl){return bl[3]-0===bm},eq:function(bn,bm,bl){return bl[3]-0===bm}},filter:{PSEUDO:function(bn,bs,br,bt){var bl=bs[1],bm=a8.filters[bl];if(bm){return bm(bn,br,bs,bt)}else{if(bl==="contains"){return(bn.textContent||bn.innerText||a5.getText([bn])||"").indexOf(bs[3])>=0}else{if(bl==="not"){var bo=bs[3];for(var bq=0,bp=bo.length;bq<bp;bq++){if(bo[bq]===bn){return false}}return true}else{a5.error(bl)}}}},CHILD:function(bl,bo){var br=bo[1],bm=bl;switch(br){case"only":case"first":while((bm=bm.previousSibling)){if(bm.nodeType===1){return false}}if(br==="first"){return true}bm=bl;case"last":while((bm=bm.nextSibling)){if(bm.nodeType===1){return false}}return true;case"nth":var bn=bo[2],bu=bo[3];if(bn===1&&bu===0){return true}var bq=bo[0],bt=bl.parentNode;if(bt&&(bt.sizcache!==bq||!bl.nodeIndex)){var bp=0;for(bm=bt.firstChild;bm;bm=bm.nextSibling){if(bm.nodeType===1){bm.nodeIndex=++bp}}bt.sizcache=bq}var bs=bl.nodeIndex-bu;if(bn===0){return bs===0}else{return(bs%bn===0&&bs/bn>=0)}}},ID:function(bm,bl){return bm.nodeType===1&&bm.getAttribute("id")===bl},TAG:function(bm,bl){return(bl==="*"&&bm.nodeType===1)||bm.nodeName.toLowerCase()===bl},CLASS:function(bm,bl){return(" "+(bm.className||bm.getAttribute("class"))+" ").indexOf(bl)>-1},ATTR:function(bq,bo){var bn=bo[1],bl=a8.attrHandle[bn]?a8.attrHandle[bn](bq):bq[bn]!=null?bq[bn]:bq.getAttribute(bn),br=bl+"",bp=bo[2],bm=bo[4];return bl==null?bp==="!=":bp==="="?br===bm:bp==="*="?br.indexOf(bm)>=0:bp==="~="?(" "+br+" ").indexOf(bm)>=0:!bm?br&&bl!==false:bp==="!="?br!==bm:bp==="^="?br.indexOf(bm)===0:bp==="$="?br.substr(br.length-bm.length)===bm:bp==="|="?br===bm||br.substr(0,bm.length+1)===bm+"-":false},POS:function(bp,bm,bn,bq){var bl=bm[2],bo=a8.setFilters[bl];if(bo){return bo(bp,bn,bm,bq)}}}};var bd=a8.match.POS,a9=function(bm,bl){return"\"+(bl-0+1)};for(var bg in a8.match){a8.match[bg]=new RegExp(a8.match[bg].source+(/(?![^[]*])(?![^(]*))/.source));a8.leftMatch[bg]=new RegExp(/(^(?:.|\r|\n)*?)/.source+a8.match[bg].source.replace(/\(\d+)/g,a9))}var a4=function(bm,bl){bm=Array.prototype.slice.call(bm,0);if(bl){bl.push.apply(bl,bm);return bl}return bm};try{Array.prototype.slice.call(ae.documentElement.childNodes,0)[0].nodeType}catch(be){a4=function(bp,bo){var bn=0,bm=bo||[];if(a7.call(bp)==="[object Array]"){Array.prototype.push.apply(bm,bp)}else{if(typeof bp.length==="number"){for(var bl=bp.length;bn<bl;bn++){bm.push(bp[bn])}}else{for(;bp[bn];bn++){bm.push(bp[bn])}}}return bm}}var a6,bf;if(ae.documentElement.compareDocumentPosition){a6=function(bm,bl){if(bm===bl){bi=true;return 0}if(!bm.compareDocumentPosition||!bl.compareDocumentPosition){return bm.compareDocumentPosition?-1:1}return bm.compareDocumentPosition(bl)&4?-1:1}}else{a6=function(bv,bu){var bs,bn,bo=[],bm=[],br=bv.parentNode,bt=bu.parentNode,bw=br;if(bv===bu){bi=true;return 0}else{if(br===bt){return bf(bv,bu)}else{if(!br){return -1}else{if(!bt){return 1}}}}while(bw){bo.unshift(bw);bw=bw.parentNode}bw=bt;while(bw){bm.unshift(bw);bw=bw.parentNode}bs=bo.length;bn=bm.length;for(var bq=0;bq<bs&&bq<bn;bq++){if(bo[bq]!==bm[bq]){return bf(bo[bq],bm[bq])}}return bq===bs?bf(bv,bm[bq],-1):bf(bo[bq],bu,1)};bf=function(bm,bl,bn){if(bm===bl){return bn}var bo=bm.nextSibling;while(bo){if(bo===bl){return -1}bo=bo.nextSibling}return 1}}a5.getText=function(bl){var bm="",bo;for(var bn=0;bl[bn];bn++){bo=bl[bn];if(bo.nodeType===3||bo.nodeType===4){bm+=bo.nodeValue}else{if(bo.nodeType!==8){bm+=a5.getText(bo.childNodes)}}}return bm};(function(){var bm=ae.createElement("div"),bn="script"+(new Date()).getTime(),bl=ae.documentElement;bm.innerHTML="<a name='"+bn+"'/>";bl.insertBefore(bm,bl.firstChild);if(ae.getElementById(bn)){a8.find.ID=function(bp,bq,br){if(typeof bq.getElementById!=="undefined"&&!br){var bo=bq.getElementById(bp[1]);return bo?bo.id===bp[1]||typeof bo.getAttributeNode!=="undefined"&&bo.getAttributeNode("id").nodeValue===bp[1]?[bo]:E:[]}};a8.filter.ID=function(bq,bo){var bp=typeof bq.getAttributeNode!=="undefined"&&bq.getAttributeNode("id");return bq.nodeType===1&&bp&&bp.nodeValue===bo}}bl.removeChild(bm);bl=bm=null})();(function(){var bl=ae.createElement("div");bl.appendChild(ae.createComment(""));if(bl.getElementsByTagName("*").length>0){a8.find.TAG=function(bm,bq){var bp=bq.getElementsByTagName(bm[1]);if(bm[1]==="*"){var bo=[];for(var bn=0;bp[bn];bn++){if(bp[bn].nodeType===1){bo.push(bp[bn])}}bp=bo}return bp}}bl.innerHTML="<a href='#'></a>";if(bl.firstChild&&typeof bl.firstChild.getAttribute!=="undefined"&&bl.firstChild.getAttribute("href")!=="#"){a8.attrHandle.href=function(bm){return bm.getAttribute("href",2)}}bl=null})();if(ae.querySelectorAll){(function(){var bl=a5,bo=ae.createElement("div"),bn="__sizzle__";bo.innerHTML="<p class='TEST'></p>";if(bo.querySelectorAll&&bo.querySelectorAll(".TEST").length===0){return}a5=function(by,bq,bt,bx){bq=bq||ae;if(!bx&&!a5.isXML(bq)){var bw=/^(\w+$)|^.([\w-]+$)|^#([\w-]+$)/.exec(by);if(bw&&(bq.nodeType===1||bq.nodeType===9)){if(bw[1]){return a4(bq.getElementsByTagName(by),bt)}else{if(bw[2]&&a8.find.CLASS&&bq.getElementsByClassName){return a4(bq.getElementsByClassName(bw[2]),bt)}}}if(bq.nodeType===9){if(by==="body"&&bq.body){return a4([bq.body],bt)}else{if(bw&&bw[3]){var bs=bq.getElementById(bw[3]);if(bs&&bs.parentNode){if(bs.id===bw[3]){return a4([bs],bt)}}else{return a4([],bt)}}}try{return a4(bq.querySelectorAll(by),bt)}catch(bu){}}else{if(bq.nodeType===1&&bq.nodeName.toLowerCase()!=="object"){var br=bq.getAttribute("id"),bp=br||bn,bA=bq.parentNode,bz=/^\s*[+~]/.test(by);if(!br){bq.setAttribute("id",bp)}else{bp=bp.replace(/'/g,"\$&")}if(bz&&bA){bq=bq.parentNode}try{if(!bz||bA){return a4(bq.querySelectorAll("[id='"+bp+"'] "+by),bt)}}catch(bv){}finally{if(!br){bq.removeAttribute("id")}}}}}return bl(by,bq,bt,bx)};for(var bm in bl){a5[bm]=bl[bm]}bo=null})()}(function(){var bl=ae.documentElement,bn=bl.matchesSelector||bl.mozMatchesSelector||bl.webkitMatchesSelector||bl.msMatchesSelector,bm=false;try{bn.call(ae.documentElement,"[test!='']:sizzle")}catch(bo){bm=true}if(bn){a5.matchesSelector=function(bp,br){br=br.replace(/=\s*([^'"]]*)\s*]/g,"='$1']");if(!a5.isXML(bp)){try{if(bm||!a8.match.PSEUDO.test(br)&&!/!=/.test(br)){return bn.call(bp,br)}}catch(bq){}}return a5(br,null,null,[bp]).length>0}}})();(function(){var bl=ae.createElement("div");bl.innerHTML="<div class='test e'></div><div class='test'></div>";if(!bl.getElementsByClassName||bl.getElementsByClassName("e").length===0){return}bl.lastChild.className="e";if(bl.getElementsByClassName("e").length===1){return}a8.order.splice(1,0,"CLASS");a8.find.CLASS=function(bm,bn,bo){if(typeof bn.getElementsByClassName!=="undefined"&&!bo){return bn.getElementsByClassName(bm[1])}};bl=null})();function bh(bm,br,bq,bu,bs,bt){for(var bo=0,bn=bu.length;bo<bn;bo++){var bl=bu[bo];if(bl){var bp=false;bl=bl[bm];while(bl){if(bl.sizcache===bq){bp=bu[bl.sizset];break}if(bl.nodeType===1&&!bt){bl.sizcache=bq;bl.sizset=bo}if(bl.nodeName.toLowerCase()===br){bp=bl;break}bl=bl[bm]}bu[bo]=bp}}}function bk(bm,br,bq,bu,bs,bt){for(var bo=0,bn=bu.length;bo<bn;bo++){var bl=bu[bo];if(bl){var bp=false;bl=bl[bm];while(bl){if(bl.sizcache===bq){bp=bu[bl.sizset];break}if(bl.nodeType===1){if(!bt){bl.sizcache=bq;bl.sizset=bo}if(typeof br!=="string"){if(bl===br){bp=true;break}}else{if(a5.filter(br,[bl]).length>0){bp=bl;break}}}bl=bl[bm]}bu[bo]=bp}}}if(ae.documentElement.contains){a5.contains=function(bm,bl){return bm!==bl&&(bm.contains?bm.contains(bl):true)}}else{if(ae.documentElement.compareDocumentPosition){a5.contains=function(bm,bl){return !!(bm.compareDocumentPosition(bl)&16)}}else{a5.contains=function(){return false}}}a5.isXML=function(bl){var bm=(bl?bl.ownerDocument||bl:0).documentElement;return bm?bm.nodeName!=="HTML":false};var ba=function(bl,bs){var bq,bo=[],bp="",bn=bs.nodeType?[bs]:bs;while((bq=a8.match.PSEUDO.exec(bl))){bp+=bq[0];bl=bl.replace(a8.match.PSEUDO,"")}bl=a8.relative[bl]?bl+"*":bl;for(var br=0,bm=bn.length;br<bm;br++){a5(bl,bn[br],bo)}return a5.filter(bp,bo)};a.find=a5;a.expr=a5.selectors;a.expr[":"]=a.expr.filters;a.unique=a5.uniqueSort;a.text=a5.getText;a.isXMLDoc=a5.isXML;a.contains=a5.contains})();var Q=/Until$/,ab=/^(?:parents|prevUntil|prevAll)/,aN=/,/,aZ=/^.[^:#[.,]*$/,I=Array.prototype.slice,C=a.expr.match.POS,ag={children:true,contents:true,next:true,prev:true};a.fn.extend({find:function(a4){var a6=this.pushStack("","find",a4),a9=0;for(var a7=0,a5=this.length;a7<a5;a7++){a9=a6.length;a.find(a4,this[a7],a6);if(a7>0){for(var ba=a9;ba<a6.length;ba++){for(var a8=0;a8<a9;a8++){if(a6[a8]===a6[ba]){a6.splice(ba--,1);break}}}}}return a6},has:function(a5){var a4=a(a5);return this.filter(function(){for(var a7=0,a6=a4.length;a7<a6;a7++){if(a.contains(this,a4[a7])){return true}}})},not:function(a4){return this.pushStack(al(this,a4,false),"not",a4)},filter:function(a4){return this.pushStack(al(this,a4,true),"filter",a4)},is:function(a4){return !!a4&&a.filter(a4,this).length>0},closest:function(be,a5){var bb=[],a8,a6,bd=this[0];if(a.isArray(be)){var ba,a7,a9={},a4=1;if(bd&&be.length){for(a8=0,a6=be.length;a8<a6;a8++){a7=be[a8];if(!a9[a7]){a9[a7]=a.expr.match.POS.test(a7)?a(a7,a5||this.context):a7}}while(bd&&bd.ownerDocument&&bd!==a5){for(a7 in a9){ba=a9[a7];if(ba.jquery?ba.index(bd)>-1:a(bd).is(ba)){bb.push({selector:a7,elem:bd,level:a4})}}bd=bd.parentNode;a4++}}return bb}var bc=C.test(be)?a(be,a5||this.context):null;for(a8=0,a6=this.length;a8<a6;a8++){bd=this[a8];while(bd){if(bc?bc.index(bd)>-1:a.find.matchesSelector(bd,be)){bb.push(bd);break}else{bd=bd.parentNode;if(!bd||!bd.ownerDocument||bd===a5){break}}}}bb=bb.length>1?a.unique(bb):bb;return this.pushStack(bb,"closest",be)},index:function(a4){if(!a4||typeof a4==="string"){return a.inArray(this[0],a4?a(a4):this.parent().children())}return a.inArray(a4.jquery?a4[0]:a4,this)},add:function(a4,a5){var a7=typeof a4==="string"?a(a4,a5):a.makeArray(a4),a6=a.merge(this.get(),a7);return this.pushStack(y(a7[0])||y(a6[0])?a6:a.unique(a6))},andSelf:function(){return this.add(this.prevObject)}});function y(a4){return !a4||!a4.parentNode||a4.parentNode.nodeType===11}a.each({parent:function(a5){var a4=a5.parentNode;return a4&&a4.nodeType!==11?a4:null},parents:function(a4){return a.dir(a4,"parentNode")},parentsUntil:function(a5,a4,a6){return a.dir(a5,"parentNode",a6)},next:function(a4){return a.nth(a4,2,"nextSibling")},prev:function(a4){return a.nth(a4,2,"previousSibling")},nextAll:function(a4){return a.dir(a4,"nextSibling")},prevAll:function(a4){return a.dir(a4,"previousSibling")},nextUntil:function(a5,a4,a6){return a.dir(a5,"nextSibling",a6)},prevUntil:function(a5,a4,a6){return a.dir(a5,"previousSibling",a6)},siblings:function(a4){return a.sibling(a4.parentNode.firstChild,a4)},children:function(a4){return a.sibling(a4.firstChild)},contents:function(a4){return a.nodeName(a4,"iframe")?a4.contentDocument||a4.contentWindow.document:a.makeArray(a4.childNodes)}},function(a4,a5){a.fn[a4]=function(a9,a6){var a8=a.map(this,a5,a9),a7=I.call(arguments);if(!Q.test(a4)){a6=a9}if(a6&&typeof a6==="string"){a8=a.filter(a6,a8)}a8=this.length>1&&!ag[a4]?a.unique(a8):a8;if((this.length>1||aN.test(a6))&&ab.test(a4)){a8=a8.reverse()}return this.pushStack(a8,a4,a7.join(","))}});a.extend({filter:function(a6,a4,a5){if(a5){a6=":not("+a6+")"}return a4.length===1?a.find.matchesSelector(a4[0],a6)?[a4[0]]:[]:a.find.matches(a6,a4)},dir:function(a6,a5,a8){var a4=[],a7=a6[a5];while(a7&&a7.nodeType!==9&&(a8===E||a7.nodeType!==1||!a(a7).is(a8))){if(a7.nodeType===1){a4.push(a7)}a7=a7[a5]}return a4},nth:function(a8,a4,a6,a7){a4=a4||1;var a5=0;for(;a8;a8=a8[a6]){if(a8.nodeType===1&&++a5===a4){break}}return a8},sibling:function(a6,a5){var a4=[];for(;a6;a6=a6.nextSibling){if(a6.nodeType===1&&a6!==a5){a4.push(a6)}}return a4}});function al(a7,a6,a4){if(a.isFunction(a6)){return a.grep(a7,function(a9,a8){var ba=!!a6.call(a9,a8,a9);return ba===a4})}else{if(a6.nodeType){return a.grep(a7,function(a9,a8){return(a9===a6)===a4})}else{if(typeof a6==="string"){var a5=a.grep(a7,function(a8){return a8.nodeType===1});if(aZ.test(a6)){return a.filter(a6,a5,!a4)}else{a6=a.filter(a6,a5)}}}}return a.grep(a7,function(a9,a8){return(a.inArray(a9,a6)>=0)===a4})}var V=/ jQuery\d+="(?:\d+|null)"/g,ac=/^\s+/,K=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)/>/ig,c=/<([\w:]+)/,t=/<tbody/i,N=/<|&#?\w+;/,H=/<(?:script|object|embed|option|style)/i,l=/checked\s*(?:[^=]|=\s*.checked.)/i,af={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};af.optgroup=af.option;af.tbody=af.tfoot=af.colgroup=af.caption=af.thead;af.th=af.td;if(!a.support.htmlSerialize){af._default=[1,"div<div>","</div>"]}a.fn.extend({text:function(a4){if(a.isFunction(a4)){return this.each(function(a6){var a5=a(this);a5.text(a4.call(this,a6,a5.text()))})}if(typeof a4!=="object"&&a4!==E){return this.empty().append((this[0]&&this[0].ownerDocument||ae).createTextNode(a4))}return a.text(this)},wrapAll:function(a4){if(a.isFunction(a4)){return this.each(function(a6){a(this).wrapAll(a4.call(this,a6))})}if(this[0]){var a5=a(a4,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){a5.insertBefore(this[0])}a5.map(function(){var a6=this;while(a6.firstChild&&a6.firstChild.nodeType===1){a6=a6.firstChild}return a6}).append(this)}return this},wrapInner:function(a4){if(a.isFunction(a4)){return this.each(function(a5){a(this).wrapInner(a4.call(this,a5))})}return this.each(function(){var a5=a(this),a6=a5.contents();if(a6.length){a6.wrapAll(a4)}else{a5.append(a4)}})},wrap:function(a4){return this.each(function(){a(this).wrapAll(a4)})},unwrap:function(){return this.parent().each(function(){if(!a.nodeName(this,"body")){a(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(a4){if(this.nodeType===1){this.appendChild(a4)}})},prepend:function(){return this.domManip(arguments,true,function(a4){if(this.nodeType===1){this.insertBefore(a4,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(a5){this.parentNode.insertBefore(a5,this)})}else{if(arguments.length){var a4=a(arguments[0]);a4.push.apply(a4,this.toArray());return this.pushStack(a4,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(a5){this.parentNode.insertBefore(a5,this.nextSibling)})}else{if(arguments.length){var a4=this.pushStack(this,"after",arguments);a4.push.apply(a4,a(arguments[0]).toArray());return a4}}},remove:function(a4,a7){for(var a5=0,a6;(a6=this[a5])!=null;a5++){if(!a4||a.filter(a4,[a6]).length){if(!a7&&a6.nodeType===1){a.cleanData(a6.getElementsByTagName("*"));a.cleanData([a6])}if(a6.parentNode){a6.parentNode.removeChild(a6)}}}return this},empty:function(){for(var a4=0,a5;(a5=this[a4])!=null;a4++){if(a5.nodeType===1){a.cleanData(a5.getElementsByTagName("*"))}while(a5.firstChild){a5.removeChild(a5.firstChild)}}return this},clone:function(a5,a4){a5=a5==null?true:a5;a4=a4==null?a5:a4;return this.map(function(){return a.clone(this,a5,a4)})},html:function(a6){if(a6===E){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(V,""):null}else{if(typeof a6==="string"&&!H.test(a6)&&(a.support.leadingWhitespace||!ac.test(a6))&&!af[(c.exec(a6)||["",""])[1].toLowerCase()]){a6=a6.replace(K,"<$1></$2>");try{for(var a5=0,a4=this.length;a5<a4;a5++){if(this[a5].nodeType===1){a.cleanData(this[a5].getElementsByTagName("*"));this[a5].innerHTML=a6}}}catch(a7){this.empty().append(a6)}}else{if(a.isFunction(a6)){this.each(function(a9){var a8=a(this);a8.html(a6.call(this,a9,a8.html()))})}else{this.empty().append(a6)}}}return this},replaceWith:function(a4){if(this[0]&&this[0].parentNode){if(a.isFunction(a4)){return this.each(function(a7){var a6=a(this),a5=a6.html();a6.replaceWith(a4.call(this,a7,a5))})}if(typeof a4!=="string"){a4=a(a4).detach()}return this.each(function(){var a6=this.nextSibling,a5=this.parentNode;a(this).remove();if(a6){a(a6).before(a4)}else{a(a5).append(a4)}})}else{return this.pushStack(a(a.isFunction(a4)?a4():a4),"replaceWith",a4)}},detach:function(a4){return this.remove(a4,true)},domManip:function(bb,bf,be){var a7,a8,ba,bd,bc=bb[0],a5=[];if(!a.support.checkClone&&arguments.length===3&&typeof bc==="string"&&l.test(bc)){return this.each(function(){a(this).domManip(bb,bf,be,true)})}if(a.isFunction(bc)){return this.each(function(bh){var bg=a(this);bb[0]=bc.call(this,bh,bf?bg.html():E);bg.domManip(bb,bf,be)})}if(this[0]){bd=bc&&bc.parentNode;if(a.support.parentNode&&bd&&bd.nodeType===11&&bd.childNodes.length===this.length){a7={fragment:bd}}else{a7=a.buildFragment(bb,this,a5)}ba=a7.fragment;if(ba.childNodes.length===1){a8=ba=ba.firstChild}else{a8=ba.firstChild}if(a8){bf=bf&&a.nodeName(a8,"tr");for(var a6=0,a4=this.length,a9=a4-1;a6<a4;a6++){be.call(bf?aO(this[a6],a8):this[a6],a7.cacheable||(a4>1&&a6<a9)?a.clone(ba,true,true):ba)}}if(a5.length){a.each(a5,aY)}}return this}});function aO(a4,a5){return a.nodeName(a4,"table")?(a4.getElementsByTagName("tbody")[0]||a4.appendChild(a4.ownerDocument.createElement("tbody"))):a4}function q(a4,bb){if(bb.nodeType!==1||!a.hasData(a4)){return}var ba=a.expando,a7=a.data(a4),a8=a.data(bb,a7);if((a7=a7[ba])){var bc=a7.events;a8=a8[ba]=a.extend({},a7);if(bc){delete a8.handle;a8.events={};for(var a9 in bc){for(var a6=0,a5=bc[a9].length;a6<a5;a6++){a.event.add(bb,a9,bc[a9][a6],bc[a9][a6].data)}}}}}function W(a5,a4){if(a4.nodeType!==1){return}var a6=a4.nodeName.toLowerCase();a4.clearAttributes();a4.mergeAttributes(a5);if(a6==="object"){a4.outerHTML=a5.outerHTML}else{if(a6==="input"&&(a5.type==="checkbox"||a5.type==="radio")){if(a5.checked){a4.defaultChecked=a4.checked=a5.checked}if(a4.value!==a5.value){a4.value=a5.value}}else{if(a6==="option"){a4.selected=a5.defaultSelected}else{if(a6==="input"||a6==="textarea"){a4.defaultValue=a5.defaultValue}}}}a4.removeAttribute(a.expando)}a.buildFragment=function(a9,a7,a5){var a8,a4,a6,ba=(a7&&a7[0]?a7[0].ownerDocument||a7[0]:ae);if(a9.length===1&&typeof a9[0]==="string"&&a9[0].length<512&&ba===ae&&a9[0].charAt(0)==="<"&&!H.test(a9[0])&&(a.support.checkClone||!l.test(a9[0]))){a4=true;a6=a.fragments[a9[0]];if(a6){if(a6!==1){a8=a6}}}if(!a8){a8=ba.createDocumentFragment();a.clean(a9,ba,a8,a5)}if(a4){a.fragments[a9[0]]=a6?a8:1}return{fragment:a8,cacheable:a4}};a.fragments={};a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a4,a5){a.fn[a4]=function(a6){var a9=[],bc=a(a6),bb=this.length===1&&this[0].parentNode;if(bb&&bb.nodeType===11&&bb.childNodes.length===1&&bc.length===1){bc[a5](this[0]);return this}else{for(var ba=0,a7=bc.length;ba<a7;ba++){var a8=(ba>0?this.clone(true):this).get();a(bc[ba])[a5](a8);a9=a9.concat(a8)}return this.pushStack(a9,a4,bc.selector)}}});a.extend({clone:function(a8,ba,a6){var a9=a8.cloneNode(true),a4,a5,a7;if(!a.support.noCloneEvent&&(a8.nodeType===1||a8.nodeType===11)&&!a.isXMLDoc(a8)){a4=a8.getElementsByTagName("*");a5=a9.getElementsByTagName("*");for(a7=0;a4[a7];++a7){W(a4[a7],a5[a7])}W(a8,a9)}if(ba){q(a8,a9);if(a6&&"getElementsByTagName" in a8){a4=a8.getElementsByTagName("*");a5=a9.getElementsByTagName("*");if(a4.length){for(a7=0;a4[a7];++a7){q(a4[a7],a5[a7])}}}}return a9},clean:function(a6,a8,bf,ba){a8=a8||ae;if(typeof a8.createElement==="undefined"){a8=a8.ownerDocument||a8[0]&&a8[0].ownerDocument||ae}var bg=[];for(var be=0,a9;(a9=a6[be])!=null;be++){if(typeof a9==="number"){a9+=""}if(!a9){continue}if(typeof a9==="string"&&!N.test(a9)){a9=a8.createTextNode(a9)}else{if(typeof a9==="string"){a9=a9.replace(K,"<$1></$2>");var bh=(c.exec(a9)||["",""])[1].toLowerCase(),a7=af[bh]||af._default,bd=a7[0],a5=a8.createElement("div");a5.innerHTML=a7[1]+a9+a7[2];while(bd--){a5=a5.lastChild}if(!a.support.tbody){var a4=t.test(a9),bc=bh==="table"&&!a4?a5.firstChild&&a5.firstChild.childNodes:a7[1]==="<table>"&&!a4?a5.childNodes:[];for(var bb=bc.length-1;bb>=0;--bb){if(a.nodeName(bc[bb],"tbody")&&!bc[bb].childNodes.length){bc[bb].parentNode.removeChild(bc[bb])}}}if(!a.support.leadingWhitespace&&ac.test(a9)){a5.insertBefore(a8.createTextNode(ac.exec(a9)[0]),a5.firstChild)}a9=a5.childNodes}}if(a9.nodeType){bg.push(a9)}else{bg=a.merge(bg,a9)}}if(bf){for(be=0;bg[be];be++){if(ba&&a.nodeName(bg[be],"script")&&(!bg[be].type||bg[be].type.toLowerCase()==="text/javascript")){ba.push(bg[be].parentNode?bg[be].parentNode.removeChild(bg[be]):bg[be])}else{if(bg[be].nodeType===1){bg.splice.apply(bg,[be+1,0].concat(a.makeArray(bg[be].getElementsByTagName("script"))))}bf.appendChild(bg[be])}}}return bg},cleanData:function(a5){var a8,a6,a4=a.cache,bd=a.expando,bb=a.event.special,ba=a.support.deleteExpando;for(var a9=0,a7;(a7=a5[a9])!=null;a9++){if(a7.nodeName&&a.noData[a7.nodeName.toLowerCase()]){continue}a6=a7[a.expando];if(a6){a8=a4[a6]&&a4[a6][bd];if(a8&&a8.events){for(var bc in a8.events){if(bb[bc]){a.event.remove(a7,bc)}else{a.removeEvent(a7,bc,a8.handle)}}if(a8.handle){a8.handle.elem=null}}if(ba){delete a7[a.expando]}else{if(a7.removeAttribute){a7.removeAttribute(a.expando)}}delete a4[a6]}}}});function aY(a4,a5){if(a5.src){a.ajax({url:a5.src,async:false,dataType:"script"})}else{a.globalEval(a5.text||a5.textContent||a5.innerHTML||"")}if(a5.parentNode){a5.parentNode.removeChild(a5)}}var X=/alpha([^)]*)/i,ad=/opacity=([^)]*)/,aB=/-([a-z])/ig,w=/([A-Z])/g,aQ=/^-?\d+(?:px)?$/i,aX=/^-?\d/,aM={position:"absolute",visibility:"hidden",display:"block"},Z=["Left","Right"],aI=["Top","Bottom"],O,ao,aA,k=function(a4,a5){return a5.toUpperCase()};a.fn.css=function(a4,a5){if(arguments.length===2&&a5===E){return this}return a.access(this,a4,a5,true,function(a7,a6,a8){return a8!==E?a.style(a7,a6,a8):a.css(a7,a6)})};a.extend({cssHooks:{opacity:{get:function(a6,a5){if(a5){var a4=O(a6,"opacity","opacity");return a4===""?"1":a4}else{return a6.style.opacity}}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,zoom:true,lineHeight:true},cssProps:{"float":a.support.cssFloat?"cssFloat":"styleFloat"},style:function(a6,a5,bb,a7){if(!a6||a6.nodeType===3||a6.nodeType===8||!a6.style){return}var ba,a8=a.camelCase(a5),a4=a6.style,bc=a.cssHooks[a8];a5=a.cssProps[a8]||a8;if(bb!==E){if(typeof bb==="number"&&isNaN(bb)||bb==null){return}if(typeof bb==="number"&&!a.cssNumber[a8]){bb+="px"}if(!bc||!("set" in bc)||(bb=bc.set(a6,bb))!==E){try{a4[a5]=bb}catch(a9){}}}else{if(bc&&"get" in bc&&(ba=bc.get(a6,false,a7))!==E){return ba}return a4[a5]}},css:function(a9,a8,a5){var a7,a6=a.camelCase(a8),a4=a.cssHooks[a6];a8=a.cssProps[a6]||a6;if(a4&&"get" in a4&&(a7=a4.get(a9,true,a5))!==E){return a7}else{if(O){return O(a9,a8,a6)}}},swap:function(a7,a6,a8){var a4={};for(var a5 in a6){a4[a5]=a7.style[a5];a7.style[a5]=a6[a5]}a8.call(a7);for(a5 in a6){a7.style[a5]=a4[a5]}},camelCase:function(a4){return a4.replace(aB,k)}});a.curCSS=a.css;a.each(["height","width"],function(a5,a4){a.cssHooks[a4]={get:function(a8,a7,a6){var a9;if(a7){if(a8.offsetWidth!==0){a9=n(a8,a4,a6)}else{a.swap(a8,aM,function(){a9=n(a8,a4,a6)})}if(a9<=0){a9=O(a8,a4,a4);if(a9==="0px"&&aA){a9=aA(a8,a4,a4)}if(a9!=null){return a9===""||a9==="auto"?"0px":a9}}if(a9<0||a9==null){a9=a8.style[a4];return a9===""||a9==="auto"?"0px":a9}return typeof a9==="string"?a9:a9+"px"}},set:function(a6,a7){if(aQ.test(a7)){a7=parseFloat(a7);if(a7>=0){return a7+"px"}}else{return a7}}}});if(!a.support.opacity){a.cssHooks.opacity={get:function(a5,a4){return ad.test((a4&&a5.currentStyle?a5.currentStyle.filter:a5.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":a4?"1":""},set:function(a7,a8){var a6=a7.style;a6.zoom=1;var a4=a.isNaN(a8)?"":"alpha(opacity="+a8*100+")",a5=a6.filter||"";a6.filter=X.test(a5)?a5.replace(X,a4):a6.filter+" "+a4}}}if(ae.defaultView&&ae.defaultView.getComputedStyle){ao=function(a9,a4,a7){var a6,a8,a5;a7=a7.replace(w,"-$1").toLowerCase();if(!(a8=a9.ownerDocument.defaultView)){return E}if((a5=a8.getComputedStyle(a9,null))){a6=a5.getPropertyValue(a7);if(a6===""&&!a.contains(a9.ownerDocument.documentElement,a9)){a6=a.style(a9,a7)}}return a6}}if(ae.documentElement.currentStyle){aA=function(a8,a6){var a9,a5=a8.currentStyle&&a8.currentStyle[a6],a4=a8.runtimeStyle&&a8.runtimeStyle[a6],a7=a8.style;if(!aQ.test(a5)&&aX.test(a5)){a9=a7.left;if(a4){a8.runtimeStyle.left=a8.currentStyle.left}a7.left=a6==="fontSize"?"1em":(a5||0);a5=a7.pixelLeft+"px";a7.left=a9;if(a4){a8.runtimeStyle.left=a4}}return a5===""?"auto":a5}}O=ao||aA;function n(a6,a5,a4){var a8=a5==="width"?Z:aI,a7=a5==="width"?a6.offsetWidth:a6.offsetHeight;if(a4==="border"){return a7}a.each(a8,function(){if(!a4){a7-=parseFloat(a.css(a6,"padding"+this))||0}if(a4==="margin"){a7+=parseFloat(a.css(a6,"margin"+this))||0}else{a7-=parseFloat(a.css(a6,"border"+this+"Width"))||0}});return a7}if(a.expr&&a.expr.filters){a.expr.filters.hidden=function(a6){var a5=a6.offsetWidth,a4=a6.offsetHeight;return(a5===0&&a4===0)||(!a.support.reliableHiddenOffsets&&(a6.style.display||a.css(a6,"display"))==="none")};a.expr.filters.visible=function(a4){return !a.expr.filters.hidden(a4)}}var h=/%20/g,aa=/[]$/,a3=/\r?\n/g,a0=/#.*$/,aj=/^(.*?):\s*(.*?)\r?$/mg,aE=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ar=/^(?:GET|HEAD)$/,b=/^///,F=/?/,aL=/<script\b[^<]*(?:(?!</script>)<[^<]*)*</script>/gi,o=/^(?:select|textarea)/i,f=/\s+/,a2=/([?&])_=[^&]*/,D=/^(\w+:)//([^/?#:]+)(?::(\d+))?/,x=a.fn.load,P={},p={};function d(a4){return function(a8,ba){if(typeof a8!=="string"){ba=a8;a8="*"}if(a.isFunction(ba)){var a7=a8.toLowerCase().split(f),a6=0,a9=a7.length,a5,bb,bc;for(;a6<a9;a6++){a5=a7[a6];bc=/^+/.test(a5);if(bc){a5=a5.substr(1)||"*"}bb=a4[a5]=a4[a5]||[];bb[bc?"unshift":"push"](ba)}}}}function ax(a5,be,a9,bd,bb,a7){bb=bb||be.dataTypes[0];a7=a7||{};a7[bb]=true;var ba=a5[bb],a6=0,a4=ba?ba.length:0,a8=(a5===P),bc;for(;a6<a4&&(a8||!bc);a6++){bc=ba[a6](be,a9,bd);if(typeof bc==="string"){if(a7[bc]){bc=E}else{be.dataTypes.unshift(bc);bc=ax(a5,be,a9,bd,bc,a7)}}}if((a8||!bc)&&!a7["*"]){bc=ax(a5,be,a9,bd,"*",a7)}return bc}a.fn.extend({load:function(a6,a9,ba){if(typeof a6!=="string"&&x){return x.apply(this,arguments)}else{if(!this.length){return this}}var a8=a6.indexOf(" ");if(a8>=0){var a4=a6.slice(a8,a6.length);a6=a6.slice(0,a8)}var a7="GET";if(a9){if(a.isFunction(a9)){ba=a9;a9=null}else{if(typeof a9==="object"){a9=a.param(a9,a.ajaxSettings.traditional);a7="POST"}}}var a5=this;a.ajax({url:a6,type:a7,dataType:"html",data:a9,complete:function(bd,bb,bc){bc=bd.responseText;if(bd.isResolved()){bd.done(function(be){bc=be});a5.html(a4?a("<div>").append(bc.replace(aL,"")).find(a4):bc)}if(ba){a5.each(ba,[bc,bb,bd])}}});return this},serialize:function(){return a.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?a.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||o.test(this.nodeName)||aE.test(this.type))}).map(function(a4,a5){var a6=a(this).val();return a6==null?null:a.isArray(a6)?a.map(a6,function(a8,a7){return{name:a5.name,value:a8.replace(a3,"\r\n")}}):{name:a5.name,value:a6.replace(a3,"\r\n")}}).get()}});a.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a4,a5){a.fn[a5]=function(a6){return this.bind(a5,a6)}});a.each(["get","post"],function(a4,a5){a[a5]=function(a6,a8,a9,a7){if(a.isFunction(a8)){a7=a7||a9;a9=a8;a8=null}return a.ajax({type:a5,url:a6,data:a8,success:a9,dataType:a7})}});a.extend({getScript:function(a4,a5){return a.get(a4,null,a5,"script")},getJSON:function(a4,a5,a6){return a.get(a4,a5,a6,"json")},ajaxSetup:function(a4){a.extend(true,a.ajaxSettings,a4);if(a4.context){a.ajaxSettings.context=a4.context}},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":aP.String,"text html":true,"text json":a.parseJSON,"text xml":a.parseXML}},ajaxPrefilter:d(P),ajaxTransport:d(p),ajax:function(a8,a5){if(typeof a5!=="object"){a5=a8;a8=E}a5=a5||{};var bc=a.extend(true,{},a.ajaxSettings,a5),bq=(bc.context=("context" in a5?a5:a.ajaxSettings).context)||bc,bg=bq===bc?a.event:a(bq),bp=a.Deferred(),bm=a._Deferred(),ba=bc.statusCode||{},bh={},bo,a6,bk,be,bb=ae.location,bd=bb.protocol||"http:",bi,a9=0,bj,a7={readyState:0,setRequestHeader:function(br,bs){if(a9===0){bh[br.toLowerCase()]=bs}return this},getAllResponseHeaders:function(){return a9===2?bo:null},getResponseHeader:function(bs){var br;if(a9===2){if(!a6){a6={};while((br=aj.exec(bo))){a6[br[1].toLowerCase()]=br[2]}}br=a6[bs.toLowerCase()]}return br||null},abort:function(br){br=br||"abort";if(bk){bk.abort(br)}bf(0,br);return this}};function bf(bw,bu,bx,bt){if(a9===2){return}a9=2;if(be){clearTimeout(be)}bk=E;bo=bt||"";a7.readyState=bw?4:0;var br,bB,bA,bv=bx?aU(bc,a7,bx):E,bs,bz;if(bw>=200&&bw<300||bw===304){if(bc.ifModified){if((bs=a7.getResponseHeader("Last-Modified"))){a.lastModified[bc.url]=bs}if((bz=a7.getResponseHeader("Etag"))){a.etag[bc.url]=bz}}if(bw===304){bu="notmodified";br=true}else{try{bB=A(bc,bv);bu="success";br=true}catch(by){bu="parsererror";bA=by}}}else{bA=bu;if(bw){bu="error";if(bw<0){bw=0}}}a7.status=bw;a7.statusText=bu;if(br){bp.resolveWith(bq,[bB,bu,a7])}else{bp.rejectWith(bq,[a7,bu,bA])}a7.statusCode(ba);ba=E;if(bc.global){bg.trigger("ajax"+(br?"Success":"Error"),[a7,bc,br?bB:bA])}bm.resolveWith(bq,[a7,bu]);if(bc.global){bg.trigger("ajaxComplete",[a7,bc]);if(!(--a.active)){a.event.trigger("ajaxStop")}}}bp.promise(a7);a7.success=a7.done;a7.error=a7.fail;a7.complete=bm.done;a7.statusCode=function(bs){if(bs){var br;if(a9<2){for(br in bs){ba[br]=[ba[br],bs[br]]}}else{br=bs[a7.status];a7.then(br,br)}}return this};bc.url=(""+(a8||bc.url)).replace(a0,"").replace(b,bd+"//");bc.dataTypes=a.trim(bc.dataType||"*").toLowerCase().split(f);if(!bc.crossDomain){bi=D.exec(bc.url.toLowerCase());bc.crossDomain=!!(bi&&(bi[1]!=bd||bi[2]!=bb.hostname||(bi[3]||(bi[1]==="http:"?80:443))!=(bb.port||(bd==="http:"?80:443))))}if(bc.data&&bc.processData&&typeof bc.data!=="string"){bc.data=a.param(bc.data,bc.traditional)}ax(P,bc,a5,a7);bc.type=bc.type.toUpperCase();bc.hasContent=!ar.test(bc.type);if(bc.global&&a.active++===0){a.event.trigger("ajaxStart")}if(!bc.hasContent){if(bc.data){bc.url+=(F.test(bc.url)?"&":"?")+bc.data}if(bc.cache===false){var a4=a.now(),bn=bc.url.replace(a2,"$1_="+a4);bc.url=bn+((bn===bc.url)?(F.test(bc.url)?"&":"?")+"_="+a4:"")}}if(bc.data&&bc.hasContent&&bc.contentType!==false||a5.contentType){bh["content-type"]=bc.contentType}if(bc.ifModified){if(a.lastModified[bc.url]){bh["if-modified-since"]=a.lastModified[bc.url]}if(a.etag[bc.url]){bh["if-none-match"]=a.etag[bc.url]}}bh.accept=bc.dataTypes[0]&&bc.accepts[bc.dataTypes[0]]?bc.accepts[bc.dataTypes[0]]+(bc.dataTypes[0]!=="*"?", */*; q=0.01":""):bc.accepts["*"];for(bj in bc.headers){bh[bj.toLowerCase()]=bc.headers[bj]}if(bc.beforeSend&&(bc.beforeSend.call(bq,a7,bc)===false||a9===2)){bf(0,"abort");a7=false}else{for(bj in {success:1,error:1,complete:1}){a7[bj](bc[bj])}bk=ax(p,bc,a5,a7);if(!bk){bf(-1,"No Transport")}else{a9=a7.readyState=1;if(bc.global){bg.trigger("ajaxSend",[a7,bc])}if(bc.async&&bc.timeout>0){be=setTimeout(function(){a7.abort("timeout")},bc.timeout)}try{bk.send(bh,bf)}catch(bl){if(status<2){bf(-1,bl)}else{a.error(bl)}}}}return a7},param:function(a4,a6){var a5=[],a8=function(a9,ba){ba=a.isFunction(ba)?ba():ba;a5[a5.length]=encodeURIComponent(a9)+"="+encodeURIComponent(ba)};if(a6===E){a6=a.ajaxSettings.traditional}if(a.isArray(a4)||a4.jquery){a.each(a4,function(){a8(this.name,this.value)})}else{for(var a7 in a4){s(a7,a4[a7],a6,a8)}}return a5.join("&").replace(h,"+")}});function s(a5,a7,a4,a6){if(a.isArray(a7)&&a7.length){a.each(a7,function(a9,a8){if(a4||aa.test(a5)){a6(a5,a8)}else{s(a5+"["+(typeof a8==="object"||a.isArray(a8)?a9:"")+"]",a8,a4,a6)}})}else{if(!a4&&a7!=null&&typeof a7==="object"){if(a.isArray(a7)||a.isEmptyObject(a7)){a6(a5,"")}else{a.each(a7,function(a9,a8){s(a5+"["+a9+"]",a8,a4,a6)})}}else{a6(a5,a7)}}}a.extend({active:0,lastModified:{},etag:{}});function aU(bd,bc,a9){var a5=bd.contents,bb=bd.dataTypes,a6=bd.responseFields,a8,ba,a7,a4;for(ba in a6){if(ba in a9){bc[a6[ba]]=a9[ba]}}while(bb[0]==="*"){bb.shift();if(a8===E){a8=bc.getResponseHeader("content-type")}}if(a8){for(ba in a5){if(a5[ba]&&a5[ba].test(a8)){bb.unshift(ba);break}}}if(bb[0] in a9){a7=bb[0]}else{for(ba in a9){if(!bb[0]||bd.converters[ba+" "+bb[0]]){a7=ba;break}if(!a4){a4=ba}}a7=a7||a4}if(a7){if(a7!==bb[0]){bb.unshift(a7)}return a9[a7]}}function A(bg,a9){if(bg.dataFilter){a9=bg.dataFilter(a9,bg.dataType)}var bd=bg.dataTypes,bf=bg.converters,ba,a6=bd.length,bb,bc=bd[0],a7,a8,be,a5,a4;for(ba=1;ba<a6;ba++){a7=bc;bc=bd[ba];if(bc==="*"){bc=a7}else{if(a7!=="*"&&a7!==bc){a8=a7+" "+bc;be=bf[a8]||bf["* "+bc];if(!be){a4=E;for(a5 in bf){bb=a5.split(" ");if(bb[0]===a7||bb[0]==="*"){a4=bf[bb[1]+" "+bc];if(a4){a5=bf[a5];if(a5===true){be=a4}else{if(a4===true){be=a5}}break}}}}if(!(be||a4)){a.error("No conversion from "+a8.replace(" "," to "))}if(be!==true){a9=be?be(a9):a4(a5(a9))}}}}return a9}var ai=a.now(),r=/(=)?(&|$)|()??()/i;a.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return a.expando+"_"+(ai++)}});a.ajaxPrefilter("json jsonp",function(bc,a9,bb){bb=(typeof bc.data==="string");if(bc.dataTypes[0]==="jsonp"||a9.jsonpCallback||a9.jsonp!=null||bc.jsonp!==false&&(r.test(bc.url)||bb&&r.test(bc.data))){var ba,a6=bc.jsonpCallback=a.isFunction(bc.jsonpCallback)?bc.jsonpCallback():bc.jsonpCallback,a8=aP[a6],a4=bc.url,a7=bc.data,a5="$1"+a6+"$2";if(bc.jsonp!==false){a4=a4.replace(r,a5);if(bc.url===a4){if(bb){a7=a7.replace(r,a5)}if(bc.data===a7){a4+=(/?/.test(a4)?"&":"?")+bc.jsonp+"="+a6}}}bc.url=a4;bc.data=a7;aP[a6]=function(bd){ba=[bd]};bc.complete=[function(){aP[a6]=a8;if(a8){if(ba&&a.isFunction(a8)){aP[a6](ba[0])}}else{try{delete aP[a6]}catch(bd){}}},bc.complete];bc.converters["script json"]=function(){if(!ba){a.error(a6+" was not called")}return ba[0]};bc.dataTypes[0]="json";return"script"}});a.ajaxSetup({accepts:{script:"text/javascript, application/javascript"},contents:{script:/javascript/},converters:{"text script":function(a4){a.globalEval(a4);return a4}}});a.ajaxPrefilter("script",function(a4){if(a4.cache===E){a4.cache=false}if(a4.crossDomain){a4.type="GET";a4.global=false}});a.ajaxTransport("script",function(a6){if(a6.crossDomain){var a4,a5=ae.getElementsByTagName("head")[0]||ae.documentElement;return{send:function(a7,a8){a4=ae.createElement("script");a4.async="async";if(a6.scriptCharset){a4.charset=a6.scriptCharset}a4.src=a6.url;a4.onload=a4.onreadystatechange=function(ba,a9){if(!a4.readyState||/loaded|complete/.test(a4.readyState)){a4.onload=a4.onreadystatechange=null;if(a5&&a4.parentNode){a5.removeChild(a4)}a4=E;if(!a9){a8(200,"success")}}};a5.insertBefore(a4,a5.firstChild)},abort:function(){if(a4){a4.onload(0,1)}}}}});var v=a.now(),aF={},aC,ak;a.ajaxSettings.xhr=aP.ActiveXObject?function(){if(aP.location.protocol!=="file:"){try{return new aP.XMLHttpRequest()}catch(a5){}}try{return new aP.ActiveXObject("Microsoft.XMLHTTP")}catch(a4){}}:function(){return new aP.XMLHttpRequest()};try{ak=a.ajaxSettings.xhr()}catch(a1){}a.support.ajax=!!ak;a.support.cors=ak&&("withCredentials" in ak);ak=E;if(a.support.ajax){a.ajaxTransport(function(a4){if(!a4.crossDomain||a.support.cors){var a5;return{send:function(ba,a6){if(!aC){aC=1;a(aP).bind("unload",function(){a.each(aF,function(bb,bc){if(bc.onreadystatechange){bc.onreadystatechange(1)}})})}var a9=a4.xhr(),a8;if(a4.username){a9.open(a4.type,a4.url,a4.async,a4.username,a4.password)}else{a9.open(a4.type,a4.url,a4.async)}if(!(a4.crossDomain&&!a4.hasContent)&&!ba["x-requested-with"]){ba["x-requested-with"]="XMLHttpRequest"}try{a.each(ba,function(bb,bc){a9.setRequestHeader(bb,bc)})}catch(a7){}a9.send((a4.hasContent&&a4.data)||null);a5=function(be,bc){if(a5&&(bc||a9.readyState===4)){a5=0;if(a8){a9.onreadystatechange=a.noop;delete aF[a8]}if(bc){if(a9.readyState!==4){a9.abort()}}else{var bb=a9.status,bi,bf=a9.getAllResponseHeaders(),bg={},bd=a9.responseXML;if(bd&&bd.documentElement){bg.xml=bd}bg.text=a9.responseText;try{bi=a9.statusText}catch(bh){bi=""}bb=bb===0?(!a4.crossDomain||bi?(bf?304:0):302):(bb==1223?204:bb);a6(bb,bi,bg,bf)}}};if(!a4.async||a9.readyState===4){a5()}else{a8=v++;aF[a8]=a9;a9.onreadystatechange=a5}},abort:function(){if(a5){a5(0,1)}}}}})}var J={},ah=/^(?:toggle|show|hide)$/,au=/^([+-]=)?([\d+.-]+)([a-z%]*)$/i,aJ,an=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];a.fn.extend({show:function(a7,ba,a9){var a6,a8;if(a7||a7===0){return this.animate(aH("show",3),a7,ba,a9)}else{for(var a5=0,a4=this.length;a5<a4;a5++){a6=this[a5];a8=a6.style.display;if(!a._data(a6,"olddisplay")&&a8==="none"){a8=a6.style.display=""}if(a8===""&&a.css(a6,"display")==="none"){a._data(a6,"olddisplay",u(a6.nodeName))}}for(a5=0;a5<a4;a5++){a6=this[a5];a8=a6.style.display;if(a8===""||a8==="none"){a6.style.display=a._data(a6,"olddisplay")||""}}return this}},hide:function(a6,a9,a8){if(a6||a6===0){return this.animate(aH("hide",3),a6,a9,a8)}else{for(var a5=0,a4=this.length;a5<a4;a5++){var a7=a.css(this[a5],"display");if(a7!=="none"&&!a._data(this[a5],"olddisplay")){a._data(this[a5],"olddisplay",a7)}}for(a5=0;a5<a4;a5++){this[a5].style.display="none"}return this}},_toggle:a.fn.toggle,toggle:function(a6,a5,a7){var a4=typeof a6==="boolean";if(a.isFunction(a6)&&a.isFunction(a5)){this._toggle.apply(this,arguments)}else{if(a6==null||a4){this.each(function(){var a8=a4?a6:a(this).is(":hidden");a(this)[a8?"show":"hide"]()})}else{this.animate(aH("toggle",3),a6,a5,a7)}}return this},fadeTo:function(a4,a7,a6,a5){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:a7},a4,a6,a5)},animate:function(a8,a5,a7,a6){var a4=a.speed(a5,a7,a6);if(a.isEmptyObject(a8)){return this.each(a4.complete)}return this[a4.queue===false?"each":"queue"](function(){var bb=a.extend({},a4),bf,bc=this.nodeType===1,bd=bc&&a(this).is(":hidden"),a9=this;for(bf in a8){var ba=a.camelCase(bf);if(bf!==ba){a8[ba]=a8[bf];delete a8[bf];bf=ba}if(a8[bf]==="hide"&&bd||a8[bf]==="show"&&!bd){return bb.complete.call(this)}if(bc&&(bf==="height"||bf==="width")){bb.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(a.css(this,"display")==="inline"&&a.css(this,"float")==="none"){if(!a.support.inlineBlockNeedsLayout){this.style.display="inline-block"}else{var be=u(this.nodeName);if(be==="inline"){this.style.display="inline-block"}else{this.style.display="inline";this.style.zoom=1}}}}if(a.isArray(a8[bf])){(bb.specialEasing=bb.specialEasing||{})[bf]=a8[bf][1];a8[bf]=a8[bf][0]}}if(bb.overflow!=null){this.style.overflow="hidden"}bb.curAnim=a.extend({},a8);a.each(a8,function(bh,bl){var bk=new a.fx(a9,bb,bh);if(ah.test(bl)){bk[bl==="toggle"?bd?"show":"hide":bl](a8)}else{var bj=au.exec(bl),bm=bk.cur()||0;if(bj){var bg=parseFloat(bj[2]),bi=bj[3]||"px";if(bi!=="px"){a.style(a9,bh,(bg||1)+bi);bm=((bg||1)/bk.cur())*bm;a.style(a9,bh,bm+bi)}if(bj[1]){bg=((bj[1]==="-="?-1:1)*bg)+bm}bk.custom(bm,bg,bi)}else{bk.custom(bm,bl,"")}}});return true})},stop:function(a5,a4){var a6=a.timers;if(a5){this.queue([])}this.each(function(){for(var a7=a6.length-1;a7>=0;a7--){if(a6[a7].elem===this){if(a4){a6[a7](true)}a6.splice(a7,1)}}});if(!a4){this.dequeue()}return this}});function aH(a5,a4){var a6={};a.each(an.concat.apply([],an.slice(0,a4)),function(){a6[this]=a5});return a6}a.each({slideDown:aH("show",1),slideUp:aH("hide",1),slideToggle:aH("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a4,a5){a.fn[a4]=function(a6,a8,a7){return this.animate(a5,a6,a8,a7)}});a.extend({speed:function(a6,a7,a5){var a4=a6&&typeof a6==="object"?a.extend({},a6):{complete:a5||!a5&&a7||a.isFunction(a6)&&a6,duration:a6,easing:a5&&a7||a7&&!a.isFunction(a7)&&a7};a4.duration=a.fx.off?0:typeof a4.duration==="number"?a4.duration:a4.duration in a.fx.speeds?a.fx.speeds[a4.duration]:a.fx.speeds._default;a4.old=a4.complete;a4.complete=function(){if(a4.queue!==false){a(this).dequeue()}if(a.isFunction(a4.old)){a4.old.call(this)}};return a4},easing:{linear:function(a6,a7,a4,a5){return a4+a5*a6},swing:function(a6,a7,a4,a5){return((-Math.cos(a6*Math.PI)/2)+0.5)*a5+a4}},timers:[],fx:function(a5,a4,a6){this.options=a4;this.elem=a5;this.prop=a6;if(!a4.orig){a4.orig={}}}});a.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(a.fx.step[this.prop]||a.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var a4=parseFloat(a.css(this.elem,this.prop));return a4||0},custom:function(a9,a8,a7){var a4=this,a6=a.fx;this.startTime=a.now();this.start=a9;this.end=a8;this.unit=a7||this.unit||"px";this.now=this.start;this.pos=this.state=0;function a5(ba){return a4.step(ba)}a5.elem=this.elem;if(a5()&&a.timers.push(a5)&&!aJ){aJ=setInterval(a6.tick,a6.interval)}},show:function(){this.options.orig[this.prop]=a.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());a(this.elem).show()},hide:function(){this.options.orig[this.prop]=a.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a7){var bc=a.now(),a8=true;if(a7||bc>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var a9 in this.options.curAnim){if(this.options.curAnim[a9]!==true){a8=false}}if(a8){if(this.options.overflow!=null&&!a.support.shrinkWrapBlocks){var a6=this.elem,bd=this.options;a.each(["","X","Y"],function(be,bf){a6.style["overflow"+bf]=bd.overflow[be]})}if(this.options.hide){a(this.elem).hide()}if(this.options.hide||this.options.show){for(var a4 in this.options.curAnim){a.style(this.elem,a4,this.options.orig[a4])}}this.options.complete.call(this.elem)}return false}else{var a5=bc-this.startTime;this.state=a5/this.options.duration;var ba=this.options.specialEasing&&this.options.specialEasing[this.prop];var bb=this.options.easing||(a.easing.swing?"swing":"linear");this.pos=a.easing[ba||bb](this.state,a5,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};a.extend(a.fx,{tick:function(){var a5=a.timers;for(var a4=0;a4<a5.length;a4++){if(!a5[a4]()){a5.splice(a4--,1)}}if(!a5.length){a.fx.stop()}},interval:13,stop:function(){clearInterval(aJ);aJ=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a4){a.style(a4.elem,"opacity",a4.now)},_default:function(a4){if(a4.elem.style&&a4.elem.style[a4.prop]!=null){a4.elem.style[a4.prop]=(a4.prop==="width"||a4.prop==="height"?Math.max(0,a4.now):a4.now)+a4.unit}else{a4.elem[a4.prop]=a4.now}}}});if(a.expr&&a.expr.filters){a.expr.filters.animated=function(a4){return a.grep(a.timers,function(a5){return a4===a5.elem}).length}}function u(a6){if(!J[a6]){var a4=a("<"+a6+">").appendTo("body"),a5=a4.css("display");a4.remove();if(a5==="none"||a5===""){a5="block"}J[a6]=a5}return J[a6]}var M=/^t(?:able|d|h)$/i,S=/^(?:body|html)$/i;if("getBoundingClientRect" in ae.documentElement){a.fn.offset=function(bh){var a7=this[0],ba;if(bh){return this.each(function(bi){a.offset.setOffset(this,bh,bi)})}if(!a7||!a7.ownerDocument){return null}if(a7===a7.ownerDocument.body){return a.offset.bodyOffset(a7)}try{ba=a7.getBoundingClientRect()}catch(be){}var bg=a7.ownerDocument,a5=bg.documentElement;if(!ba||!a.contains(a5,a7)){return ba?{top:ba.top,left:ba.left}:{top:0,left:0}}var bb=bg.body,bc=ap(bg),a9=a5.clientTop||bb.clientTop||0,bd=a5.clientLeft||bb.clientLeft||0,a4=(bc.pageYOffset||a.support.boxModel&&a5.scrollTop||bb.scrollTop),a8=(bc.pageXOffset||a.support.boxModel&&a5.scrollLeft||bb.scrollLeft),bf=ba.top+a4-a9,a6=ba.left+a8-bd;return{top:bf,left:a6}}}else{a.fn.offset=function(bf){var a9=this[0];if(bf){return this.each(function(bg){a.offset.setOffset(this,bf,bg)})}if(!a9||!a9.ownerDocument){return null}if(a9===a9.ownerDocument.body){return a.offset.bodyOffset(a9)}a.offset.initialize();var bc,a6=a9.offsetParent,a5=a9,be=a9.ownerDocument,a7=be.documentElement,ba=be.body,bb=be.defaultView,a4=bb?bb.getComputedStyle(a9,null):a9.currentStyle,bd=a9.offsetTop,a8=a9.offsetLeft;while((a9=a9.parentNode)&&a9!==ba&&a9!==a7){if(a.offset.supportsFixedPosition&&a4.position==="fixed"){break}bc=bb?bb.getComputedStyle(a9,null):a9.currentStyle;bd-=a9.scrollTop;a8-=a9.scrollLeft;if(a9===a6){bd+=a9.offsetTop;a8+=a9.offsetLeft;if(a.offset.doesNotAddBorder&&!(a.offset.doesAddBorderForTableAndCells&&M.test(a9.nodeName))){bd+=parseFloat(bc.borderTopWidth)||0;a8+=parseFloat(bc.borderLeftWidth)||0}a5=a6;a6=a9.offsetParent}if(a.offset.subtractsBorderForOverflowNotVisible&&bc.overflow!=="visible"){bd+=parseFloat(bc.borderTopWidth)||0;a8+=parseFloat(bc.borderLeftWidth)||0}a4=bc}if(a4.position==="relative"||a4.position==="static"){bd+=ba.offsetTop;a8+=ba.offsetLeft}if(a.offset.supportsFixedPosition&&a4.position==="fixed"){bd+=Math.max(a7.scrollTop,ba.scrollTop);a8+=Math.max(a7.scrollLeft,ba.scrollLeft)}return{top:bd,left:a8}}}a.offset={initialize:function(){var a4=ae.body,a5=ae.createElement("div"),a8,ba,a9,bb,a6=parseFloat(a.css(a4,"marginTop"))||0,a7="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.extend(a5.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});a5.innerHTML=a7;a4.insertBefore(a5,a4.firstChild);a8=a5.firstChild;ba=a8.firstChild;bb=a8.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(ba.offsetTop!==5);this.doesAddBorderForTableAndCells=(bb.offsetTop===5);ba.style.position="fixed";ba.style.top="20px";this.supportsFixedPosition=(ba.offsetTop===20||ba.offsetTop===15);ba.style.position=ba.style.top="";a8.style.overflow="hidden";a8.style.position="relative";this.subtractsBorderForOverflowNotVisible=(ba.offsetTop===-5);this.doesNotIncludeMarginInBodyOffset=(a4.offsetTop!==a6);a4.removeChild(a5);a4=a5=a8=ba=a9=bb=null;a.offset.initialize=a.noop},bodyOffset:function(a4){var a6=a4.offsetTop,a5=a4.offsetLeft;a.offset.initialize();if(a.offset.doesNotIncludeMarginInBodyOffset){a6+=parseFloat(a.css(a4,"marginTop"))||0;a5+=parseFloat(a.css(a4,"marginLeft"))||0}return{top:a6,left:a5}},setOffset:function(a7,bg,ba){var bb=a.css(a7,"position");if(bb==="static"){a7.style.position="relative"}var a9=a(a7),a5=a9.offset(),a4=a.css(a7,"top"),be=a.css(a7,"left"),bf=(bb==="absolute"&&a.inArray("auto",[a4,be])>-1),bd={},bc={},a6,a8;if(bf){bc=a9.position()}a6=bf?bc.top:parseInt(a4,10)||0;a8=bf?bc.left:parseInt(be,10)||0;if(a.isFunction(bg)){bg=bg.call(a7,ba,a5)}if(bg.top!=null){bd.top=(bg.top-a5.top)+a6}if(bg.left!=null){bd.left=(bg.left-a5.left)+a8}if("using" in bg){bg.using.call(a7,bd)}else{a9.css(bd)}}};a.fn.extend({position:function(){if(!this[0]){return null}var a6=this[0],a5=this.offsetParent(),a7=this.offset(),a4=S.test(a5[0].nodeName)?{top:0,left:0}:a5.offset();a7.top-=parseFloat(a.css(a6,"marginTop"))||0;a7.left-=parseFloat(a.css(a6,"marginLeft"))||0;a4.top+=parseFloat(a.css(a5[0],"borderTopWidth"))||0;a4.left+=parseFloat(a.css(a5[0],"borderLeftWidth"))||0;return{top:a7.top-a4.top,left:a7.left-a4.left}},offsetParent:function(){return this.map(function(){var a4=this.offsetParent||ae.body;while(a4&&(!S.test(a4.nodeName)&&a.css(a4,"position")==="static")){a4=a4.offsetParent}return a4})}});a.each(["Left","Top"],function(a5,a4){var a6="scroll"+a4;a.fn[a6]=function(a9){var a7=this[0],a8;if(!a7){return null}if(a9!==E){return this.each(function(){a8=ap(this);if(a8){a8.scrollTo(!a5?a9:a(a8).scrollLeft(),a5?a9:a(a8).scrollTop())}else{this[a6]=a9}})}else{a8=ap(a7);return a8?("pageXOffset" in a8)?a8[a5?"pageYOffset":"pageXOffset"]:a.support.boxModel&&a8.document.documentElement[a6]||a8.document.body[a6]:a7[a6]}}});function ap(a4){return a.isWindow(a4)?a4:a4.nodeType===9?a4.defaultView||a4.parentWindow:false}a.each(["Height","Width"],function(a5,a4){var a6=a4.toLowerCase();a.fn["inner"+a4]=function(){return this[0]?parseFloat(a.css(this[0],a6,"padding")):null};a.fn["outer"+a4]=function(a7){return this[0]?parseFloat(a.css(this[0],a6,a7?"margin":"border")):null};a.fn[a6]=function(a8){var a9=this[0];if(!a9){return a8==null?null:this}if(a.isFunction(a8)){return this.each(function(bd){var bc=a(this);bc[a6](a8.call(this,bd,bc[a6]()))})}if(a.isWindow(a9)){var ba=a9.document.documentElement["client"+a4];return a9.document.compatMode==="CSS1Compat"&&ba||a9.document.body["client"+a4]||ba}else{if(a9.nodeType===9){return Math.max(a9.documentElement["client"+a4],a9.body["scroll"+a4],a9.documentElement["scroll"+a4],a9.body["offset"+a4],a9.documentElement["offset"+a4])}else{if(a8===E){var bb=a.css(a9,a6),a7=parseFloat(bb);return a.isNaN(a7)?bb:a7}else{return this.css(a6,typeof a8==="string"?a8:a8+"px")}}}}})})(window); \ No newline at end of file +(function(){var bn=/((?:((?:([^()]+)|[^()]+)+)|[(?:[[^[]]*]|['"][^'"]*['"]|[^[]'"]+)+]|\.|[^ >+~,([\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bo=0,br=Object.prototype.toString,bi=false,bh=true,bp=/\/g,bv=/\W/;[0,0].sort(function(){bh=false;return 0});var bf=function(bA,e,bD,bE){bD=bD||[];e=e||al;var bG=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bA||typeof bA!=="string"){return bD}var bx,bI,bL,bw,bH,bK,bJ,bC,bz=true,by=bf.isXML(e),bB=[],bF=bA;do{bn.exec("");bx=bn.exec(bF);if(bx){bF=bx[3];bB.push(bx[1]);if(bx[2]){bw=bx[3];break}}}while(bx);if(bB.length>1&&bj.exec(bA)){if(bB.length===2&&bk.relative[bB[0]]){bI=bs(bB[0]+bB[1],e)}else{bI=bk.relative[bB[0]]?[e]:bf(bB.shift(),e);while(bB.length){bA=bB.shift();if(bk.relative[bA]){bA+=bB.shift()}bI=bs(bA,bI)}}}else{if(!bE&&bB.length>1&&e.nodeType===9&&!by&&bk.match.ID.test(bB[0])&&!bk.match.ID.test(bB[bB.length-1])){bH=bf.find(bB.shift(),e,by);e=bH.expr?bf.filter(bH.expr,bH.set)[0]:bH.set[0]}if(e){bH=bE?{expr:bB.pop(),set:bl(bE)}:bf.find(bB.pop(),bB.length===1&&(bB[0]==="~"||bB[0]==="+")&&e.parentNode?e.parentNode:e,by);bI=bH.expr?bf.filter(bH.expr,bH.set):bH.set;if(bB.length>0){bL=bl(bI)}else{bz=false}while(bB.length){bK=bB.pop();bJ=bK;if(!bk.relative[bK]){bK=""}else{bJ=bB.pop()}if(bJ==null){bJ=e}bk.relative[bK](bL,bJ,by)}}else{bL=bB=[]}}if(!bL){bL=bI}if(!bL){bf.error(bK||bA)}if(br.call(bL)==="[object Array]"){if(!bz){bD.push.apply(bD,bL)}else{if(e&&e.nodeType===1){for(bC=0;bL[bC]!=null;bC++){if(bL[bC]&&(bL[bC]===true||bL[bC].nodeType===1&&bf.contains(e,bL[bC]))){bD.push(bI[bC])}}}else{for(bC=0;bL[bC]!=null;bC++){if(bL[bC]&&bL[bC].nodeType===1){bD.push(bI[bC])}}}}}else{bl(bL,bD)}if(bw){bf(bw,bG,bD,bE);bf.uniqueSort(bD)}return bD};bf.uniqueSort=function(bw){if(bq){bi=bh;bw.sort(bq);if(bi){for(var e=1;e<bw.length;e++){if(bw[e]===bw[e-1]){bw.splice(e--,1)}}}}return bw};bf.matches=function(e,bw){return bf(e,null,null,bw)};bf.matchesSelector=function(e,bw){return bf(bw,null,null,[e]).length>0};bf.find=function(bC,e,bD){var bB;if(!bC){return[]}for(var by=0,bx=bk.order.length;by<bx;by++){var bz,bA=bk.order[by];if((bz=bk.leftMatch[bA].exec(bC))){var bw=bz[1];bz.splice(1,1);if(bw.substr(bw.length-1)!=="\"){bz[1]=(bz[1]||"").replace(bp,"");bB=bk.find[bA](bz,e,bD);if(bB!=null){bC=bC.replace(bk.match[bA],"");break}}}}if(!bB){bB=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bB,expr:bC}};bf.filter=function(bG,bF,bJ,bz){var bB,e,bx=bG,bL=[],bD=bF,bC=bF&&bF[0]&&bf.isXML(bF[0]);while(bG&&bF.length){for(var bE in bk.filter){if((bB=bk.leftMatch[bE].exec(bG))!=null&&bB[2]){var bK,bI,bw=bk.filter[bE],by=bB[1];e=false;bB.splice(1,1);if(by.substr(by.length-1)==="\"){continue}if(bD===bL){bL=[]}if(bk.preFilter[bE]){bB=bk.preFilter[bE](bB,bD,bJ,bL,bz,bC);if(!bB){e=bK=true}else{if(bB===true){continue}}}if(bB){for(var bA=0;(bI=bD[bA])!=null;bA++){if(bI){bK=bw(bI,bB,bA,bD);var bH=bz^!!bK;if(bJ&&bK!=null){if(bH){e=true}else{bD[bA]=false}}else{if(bH){bL.push(bI);e=true}}}}}if(bK!==H){if(!bJ){bD=bL}bG=bG.replace(bk.match[bE],"");if(!e){return[]}break}}}if(bG===bx){if(e==null){bf.error(bG)}else{break}}bx=bG}return bD};bf.error=function(e){throw"Syntax error, unrecognized expression: "+e};var bk=bf.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\.)+)/,CLASS:/.((?:[\w\u00c0-\uFFFF-]|\.)+)/,NAME:/[name=['"]*((?:[\w\u00c0-\uFFFF-]|\.)+)['"]*]/,ATTR:/[\s*((?:[\w\u00c0-\uFFFF-]|\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF-]|\.)*)|)|)\s*]/,TAG:/^((?:[\w\u00c0-\uFFFF*-]|\.)+)/,CHILD:/:(only|nth|last|first)-child(?:(\s*(even|odd|(?:[+-]?\d+|(?:[+-]?\d*)?n\s*(?:[+-]\s*\d+)?))\s*))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:((\d*)))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\.)+)(?:((['"]?)((?:([^)]+)|[^()]*)+)\2))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bB,bw){var by=typeof bw==="string",bA=by&&!bv.test(bw),bC=by&&!bA;if(bA){bw=bw.toLowerCase()}for(var bx=0,e=bB.length,bz;bx<e;bx++){if((bz=bB[bx])){while((bz=bz.previousSibling)&&bz.nodeType!==1){}bB[bx]=bC||bz&&bz.nodeName.toLowerCase()===bw?bz||false:bz===bw}}if(bC){bf.filter(bw,bB,true)}},">":function(bB,bw){var bA,bz=typeof bw==="string",bx=0,e=bB.length;if(bz&&!bv.test(bw)){bw=bw.toLowerCase();for(;bx<e;bx++){bA=bB[bx];if(bA){var by=bA.parentNode;bB[bx]=by.nodeName.toLowerCase()===bw?by:false}}}else{for(;bx<e;bx++){bA=bB[bx];if(bA){bB[bx]=bz?bA.parentNode:bA.parentNode===bw}}if(bz){bf.filter(bw,bB,true)}}},"":function(by,bw,bA){var bz,bx=bo++,e=bt;if(typeof bw==="string"&&!bv.test(bw)){bw=bw.toLowerCase();bz=bw;e=bd}e("parentNode",bw,bx,by,bz,bA)},"~":function(by,bw,bA){var bz,bx=bo++,e=bt;if(typeof bw==="string"&&!bv.test(bw)){bw=bw.toLowerCase();bz=bw;e=bd}e("previousSibling",bw,bx,by,bz,bA)}},find:{ID:function(bw,bx,by){if(typeof bx.getElementById!=="undefined"&&!by){var e=bx.getElementById(bw[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bx,bA){if(typeof bA.getElementsByName!=="undefined"){var bw=[],bz=bA.getElementsByName(bx[1]);for(var by=0,e=bz.length;by<e;by++){if(bz[by].getAttribute("name")===bx[1]){bw.push(bz[by])}}return bw.length===0?null:bw}},TAG:function(e,bw){if(typeof bw.getElementsByTagName!=="undefined"){return bw.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(by,bw,bx,e,bB,bC){by=" "+by[1].replace(bp,"")+" ";if(bC){return by}for(var bz=0,bA;(bA=bw[bz])!=null;bz++){if(bA){if(bB^(bA.className&&(" "+bA.className+" ").replace(/[\t\n\r]/g," ").indexOf(by)>=0)){if(!bx){e.push(bA)}}else{if(bx){bw[bz]=false}}}}return false},ID:function(e){return e[1].replace(bp,"")},TAG:function(bw,e){return bw[1].replace(bp,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){bf.error(e[0])}e[2]=e[2].replace(/^+|\s*/g,"");var bw=/(-?)(\d*)(?:n([+-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bw[1]+(bw[2]||1))-0;e[3]=bw[3]-0}else{if(e[2]){bf.error(e[0])}}e[0]=bo++;return e},ATTR:function(bz,bw,bx,e,bA,bB){var by=bz[1]=bz[1].replace(bp,"");if(!bB&&bk.attrMap[by]){bz[1]=bk.attrMap[by]}bz[4]=(bz[4]||bz[5]||"").replace(bp,"");if(bz[2]==="~="){bz[4]=" "+bz[4]+" "}return bz},PSEUDO:function(bz,bw,bx,e,bA){if(bz[1]==="not"){if((bn.exec(bz[3])||"").length>1||/^\w/.test(bz[3])){bz[3]=bf(bz[3],null,null,bw)}else{var by=bf.filter(bz[3],bw,bx,true^bA);if(!bx){e.push.apply(e,by)}return false}}else{if(bk.match.POS.test(bz[0])||bk.match.CHILD.test(bz[0])){return true}}return bz},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bx,bw,e){return !!bf(e[3],bx).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(e){return"text"===e.getAttribute("type")},radio:function(e){return"radio"===e.type},checkbox:function(e){return"checkbox"===e.type},file:function(e){return"file"===e.type},password:function(e){return"password"===e.type},submit:function(e){return"submit"===e.type},image:function(e){return"image"===e.type},reset:function(e){return"reset"===e.type},button:function(e){return"button"===e.type||e.nodeName.toLowerCase()==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)}},setFilters:{first:function(bw,e){return e===0},last:function(bx,bw,e,by){return bw===by.length-1},even:function(bw,e){return e%2===0},odd:function(bw,e){return e%2===1},lt:function(bx,bw,e){return bw<e[3]-0},gt:function(bx,bw,e){return bw>e[3]-0},nth:function(bx,bw,e){return e[3]-0===bw},eq:function(bx,bw,e){return e[3]-0===bw}},filter:{PSEUDO:function(bx,bC,bB,bD){var e=bC[1],bw=bk.filters[e];if(bw){return bw(bx,bB,bC,bD)}else{if(e==="contains"){return(bx.textContent||bx.innerText||bf.getText([bx])||"").indexOf(bC[3])>=0}else{if(e==="not"){var by=bC[3];for(var bA=0,bz=by.length;bA<bz;bA++){if(by[bA]===bx){return false}}return true}else{bf.error(e)}}}},CHILD:function(e,by){var bB=by[1],bw=e;switch(bB){case"only":case"first":while((bw=bw.previousSibling)){if(bw.nodeType===1){return false}}if(bB==="first"){return true}bw=e;case"last":while((bw=bw.nextSibling)){if(bw.nodeType===1){return false}}return true;case"nth":var bx=by[2],bE=by[3];if(bx===1&&bE===0){return true}var bA=by[0],bD=e.parentNode;if(bD&&(bD.sizcache!==bA||!e.nodeIndex)){var bz=0;for(bw=bD.firstChild;bw;bw=bw.nextSibling){if(bw.nodeType===1){bw.nodeIndex=++bz}}bD.sizcache=bA}var bC=e.nodeIndex-bE;if(bx===0){return bC===0}else{return(bC%bx===0&&bC/bx>=0)}}},ID:function(bw,e){return bw.nodeType===1&&bw.getAttribute("id")===e},TAG:function(bw,e){return(e==="*"&&bw.nodeType===1)||bw.nodeName.toLowerCase()===e},CLASS:function(bw,e){return(" "+(bw.className||bw.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bA,by){var bx=by[1],e=bk.attrHandle[bx]?bk.attrHandle[bx](bA):bA[bx]!=null?bA[bx]:bA.getAttribute(bx),bB=e+"",bz=by[2],bw=by[4];return e==null?bz==="!=":bz==="="?bB===bw:bz==="*="?bB.indexOf(bw)>=0:bz==="~="?(" "+bB+" ").indexOf(bw)>=0:!bw?bB&&e!==false:bz==="!="?bB!==bw:bz==="^="?bB.indexOf(bw)===0:bz==="$="?bB.substr(bB.length-bw.length)===bw:bz==="|="?bB===bw||bB.substr(0,bw.length+1)===bw+"-":false},POS:function(bz,bw,bx,bA){var e=bw[2],by=bk.setFilters[e];if(by){return by(bz,bx,bw,bA)}}}};var bj=bk.match.POS,be=function(bw,e){return"\"+(e-0+1)};for(var bg in bk.match){bk.match[bg]=new RegExp(bk.match[bg].source+(/(?![^[]*])(?![^(]*))/.source));bk.leftMatch[bg]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bk.match[bg].source.replace(/\(\d+)/g,be))}var bl=function(bw,e){bw=Array.prototype.slice.call(bw,0);if(e){e.push.apply(e,bw);return e}return bw};try{Array.prototype.slice.call(al.documentElement.childNodes,0)[0].nodeType}catch(bu){bl=function(bz,by){var bx=0,bw=by||[];if(br.call(bz)==="[object Array]"){Array.prototype.push.apply(bw,bz)}else{if(typeof bz.length==="number"){for(var e=bz.length;bx<e;bx++){bw.push(bz[bx])}}else{for(;bz[bx];bx++){bw.push(bz[bx])}}}return bw}}var bq,bm;if(al.documentElement.compareDocumentPosition){bq=function(bw,e){if(bw===e){bi=true;return 0}if(!bw.compareDocumentPosition||!e.compareDocumentPosition){return bw.compareDocumentPosition?-1:1}return bw.compareDocumentPosition(e)&4?-1:1}}else{bq=function(bD,bC){var bA,bw,bx=[],e=[],bz=bD.parentNode,bB=bC.parentNode,bE=bz;if(bD===bC){bi=true;return 0}else{if(bz===bB){return bm(bD,bC)}else{if(!bz){return -1}else{if(!bB){return 1}}}}while(bE){bx.unshift(bE);bE=bE.parentNode}bE=bB;while(bE){e.unshift(bE);bE=bE.parentNode}bA=bx.length;bw=e.length;for(var by=0;by<bA&&by<bw;by++){if(bx[by]!==e[by]){return bm(bx[by],e[by])}}return by===bA?bm(bD,e[by],-1):bm(bx[by],bC,1)};bm=function(bw,e,bx){if(bw===e){return bx}var by=bw.nextSibling;while(by){if(by===e){return -1}by=by.nextSibling}return 1}}bf.getText=function(e){var bw="",by;for(var bx=0;e[bx];bx++){by=e[bx];if(by.nodeType===3||by.nodeType===4){bw+=by.nodeValue}else{if(by.nodeType!==8){bw+=bf.getText(by.childNodes)}}}return bw};(function(){var bw=al.createElement("div"),bx="script"+(new Date()).getTime(),e=al.documentElement;bw.innerHTML="<a name='"+bx+"'/>";e.insertBefore(bw,e.firstChild);if(al.getElementById(bx)){bk.find.ID=function(bz,bA,bB){if(typeof bA.getElementById!=="undefined"&&!bB){var by=bA.getElementById(bz[1]);return by?by.id===bz[1]||typeof by.getAttributeNode!=="undefined"&&by.getAttributeNode("id").nodeValue===bz[1]?[by]:H:[]}};bk.filter.ID=function(bA,by){var bz=typeof bA.getAttributeNode!=="undefined"&&bA.getAttributeNode("id");return bA.nodeType===1&&bz&&bz.nodeValue===by}}e.removeChild(bw);e=bw=null})();(function(){var e=al.createElement("div");e.appendChild(al.createComment(""));if(e.getElementsByTagName("*").length>0){bk.find.TAG=function(bw,bA){var bz=bA.getElementsByTagName(bw[1]);if(bw[1]==="*"){var by=[];for(var bx=0;bz[bx];bx++){if(bz[bx].nodeType===1){by.push(bz[bx])}}bz=by}return bz}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bk.attrHandle.href=function(bw){return bw.getAttribute("href",2)}}e=null})();if(al.querySelectorAll){(function(){var e=bf,by=al.createElement("div"),bx="__sizzle__";by.innerHTML="<p class='TEST'></p>";if(by.querySelectorAll&&by.querySelectorAll(".TEST").length===0){return}bf=function(bJ,bA,bE,bI){bA=bA||al;if(!bI&&!bf.isXML(bA)){var bH=/^(\w+$)|^.([\w-]+$)|^#([\w-]+$)/.exec(bJ);if(bH&&(bA.nodeType===1||bA.nodeType===9)){if(bH[1]){return bl(bA.getElementsByTagName(bJ),bE)}else{if(bH[2]&&bk.find.CLASS&&bA.getElementsByClassName){return bl(bA.getElementsByClassName(bH[2]),bE)}}}if(bA.nodeType===9){if(bJ==="body"&&bA.body){return bl([bA.body],bE)}else{if(bH&&bH[3]){var bD=bA.getElementById(bH[3]);if(bD&&bD.parentNode){if(bD.id===bH[3]){return bl([bD],bE)}}else{return bl([],bE)}}}try{return bl(bA.querySelectorAll(bJ),bE)}catch(bF){}}else{if(bA.nodeType===1&&bA.nodeName.toLowerCase()!=="object"){var bB=bA,bC=bA.getAttribute("id"),bz=bC||bx,bL=bA.parentNode,bK=/^\s*[+~]/.test(bJ);if(!bC){bA.setAttribute("id",bz)}else{bz=bz.replace(/'/g,"\$&")}if(bK&&bL){bA=bA.parentNode}try{if(!bK||bL){return bl(bA.querySelectorAll("[id='"+bz+"'] "+bJ),bE)}}catch(bG){}finally{if(!bC){bB.removeAttribute("id")}}}}}return e(bJ,bA,bE,bI)};for(var bw in e){bf[bw]=e[bw]}by=null})()}(function(){var e=al.documentElement,bx=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector,bw=false;try{bx.call(al.documentElement,"[test!='']:sizzle")}catch(by){bw=true}if(bx){bf.matchesSelector=function(bz,bB){bB=bB.replace(/=\s*([^'"]]*)\s*]/g,"='$1']");if(!bf.isXML(bz)){try{if(bw||!bk.match.PSEUDO.test(bB)&&!/!=/.test(bB)){return bx.call(bz,bB)}}catch(bA){}}return bf(bB,null,null,[bz]).length>0}}})();(function(){var e=al.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bk.order.splice(1,0,"CLASS");bk.find.CLASS=function(bw,bx,by){if(typeof bx.getElementsByClassName!=="undefined"&&!by){return bx.getElementsByClassName(bw[1])}};e=null})();function bd(bw,bB,bA,bE,bC,bD){for(var by=0,bx=bE.length;by<bx;by++){var e=bE[by];if(e){var bz=false;e=e[bw];while(e){if(e.sizcache===bA){bz=bE[e.sizset];break}if(e.nodeType===1&&!bD){e.sizcache=bA;e.sizset=by}if(e.nodeName.toLowerCase()===bB){bz=e;break}e=e[bw]}bE[by]=bz}}}function bt(bw,bB,bA,bE,bC,bD){for(var by=0,bx=bE.length;by<bx;by++){var e=bE[by];if(e){var bz=false;e=e[bw];while(e){if(e.sizcache===bA){bz=bE[e.sizset];break}if(e.nodeType===1){if(!bD){e.sizcache=bA;e.sizset=by}if(typeof bB!=="string"){if(e===bB){bz=true;break}}else{if(bf.filter(bB,[e]).length>0){bz=e;break}}}e=e[bw]}bE[by]=bz}}}if(al.documentElement.contains){bf.contains=function(bw,e){return bw!==e&&(bw.contains?bw.contains(e):true)}}else{if(al.documentElement.compareDocumentPosition){bf.contains=function(bw,e){return !!(bw.compareDocumentPosition(e)&16)}}else{bf.contains=function(){return false}}}bf.isXML=function(e){var bw=(e?e.ownerDocument||e:0).documentElement;return bw?bw.nodeName!=="HTML":false};var bs=function(e,bC){var bA,by=[],bz="",bx=bC.nodeType?[bC]:bC;while((bA=bk.match.PSEUDO.exec(e))){bz+=bA[0];e=e.replace(bk.match.PSEUDO,"")}e=bk.relative[e]?e+"*":e;for(var bB=0,bw=bx.length;bB<bw;bB++){bf(e,bx[bB],by)}return bf.filter(bz,by)};a.find=bf;a.expr=bf.selectors;a.expr[":"]=a.expr.filters;a.unique=bf.uniqueSort;a.text=bf.getText;a.isXMLDoc=bf.isXML;a.contains=bf.contains})();var W=/Until$/,ai=/^(?:parents|prevUntil|prevAll)/,aW=/,/,a9=/^.[^:#[.,]*$/,M=Array.prototype.slice,F=a.expr.match.POS,ao={children:true,contents:true,next:true,prev:true};a.fn.extend({find:function(e){var be=this.pushStack("","find",e),bh=0;for(var bf=0,bd=this.length;bf<bd;bf++){bh=be.length;a.find(e,this[bf],be);if(bf>0){for(var bi=bh;bi<be.length;bi++){for(var bg=0;bg<bh;bg++){if(be[bg]===be[bi]){be.splice(bi--,1);break}}}}}return be},has:function(bd){var e=a(bd);return this.filter(function(){for(var bf=0,be=e.length;bf<be;bf++){if(a.contains(this,e[bf])){return true}}})},not:function(e){return this.pushStack(av(this,e,false),"not",e)},filter:function(e){return this.pushStack(av(this,e,true),"filter",e)},is:function(e){return !!e&&a.filter(e,this).length>0},closest:function(bm,bd){var bj=[],bg,be,bl=this[0];if(a.isArray(bm)){var bi,bf,bh={},e=1;if(bl&&bm.length){for(bg=0,be=bm.length;bg<be;bg++){bf=bm[bg];if(!bh[bf]){bh[bf]=a.expr.match.POS.test(bf)?a(bf,bd||this.context):bf}}while(bl&&bl.ownerDocument&&bl!==bd){for(bf in bh){bi=bh[bf];if(bi.jquery?bi.index(bl)>-1:a(bl).is(bi)){bj.push({selector:bf,elem:bl,level:e})}}bl=bl.parentNode;e++}}return bj}var bk=F.test(bm)?a(bm,bd||this.context):null;for(bg=0,be=this.length;bg<be;bg++){bl=this[bg];while(bl){if(bk?bk.index(bl)>-1:a.find.matchesSelector(bl,bm)){bj.push(bl);break}else{bl=bl.parentNode;if(!bl||!bl.ownerDocument||bl===bd){break}}}}bj=bj.length>1?a.unique(bj):bj;return this.pushStack(bj,"closest",bm)},index:function(e){if(!e||typeof e==="string"){return a.inArray(this[0],e?a(e):this.parent().children())}return a.inArray(e.jquery?e[0]:e,this)},add:function(e,bd){var bf=typeof e==="string"?a(e,bd):a.makeArray(e),be=a.merge(this.get(),bf);return this.pushStack(B(bf[0])||B(be[0])?be:a.unique(be))},andSelf:function(){return this.add(this.prevObject)}});function B(e){return !e||!e.parentNode||e.parentNode.nodeType===11}a.each({parent:function(bd){var e=bd.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return a.dir(e,"parentNode")},parentsUntil:function(bd,e,be){return a.dir(bd,"parentNode",be)},next:function(e){return a.nth(e,2,"nextSibling")},prev:function(e){return a.nth(e,2,"previousSibling")},nextAll:function(e){return a.dir(e,"nextSibling")},prevAll:function(e){return a.dir(e,"previousSibling")},nextUntil:function(bd,e,be){return a.dir(bd,"nextSibling",be)},prevUntil:function(bd,e,be){return a.dir(bd,"previousSibling",be)},siblings:function(e){return a.sibling(e.parentNode.firstChild,e)},children:function(e){return a.sibling(e.firstChild)},contents:function(e){return a.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:a.makeArray(e.childNodes)}},function(e,bd){a.fn[e]=function(bh,be){var bg=a.map(this,bd,bh),bf=M.call(arguments);if(!W.test(e)){be=bh}if(be&&typeof be==="string"){bg=a.filter(be,bg)}bg=this.length>1&&!ao[e]?a.unique(bg):bg;if((this.length>1||aW.test(be))&&ai.test(e)){bg=bg.reverse()}return this.pushStack(bg,e,bf.join(","))}});a.extend({filter:function(be,e,bd){if(bd){be=":not("+be+")"}return e.length===1?a.find.matchesSelector(e[0],be)?[e[0]]:[]:a.find.matches(be,e)},dir:function(be,bd,bg){var e=[],bf=be[bd];while(bf&&bf.nodeType!==9&&(bg===H||bf.nodeType!==1||!a(bf).is(bg))){if(bf.nodeType===1){e.push(bf)}bf=bf[bd]}return e},nth:function(bg,e,be,bf){e=e||1;var bd=0;for(;bg;bg=bg[be]){if(bg.nodeType===1&&++bd===e){break}}return bg},sibling:function(be,bd){var e=[];for(;be;be=be.nextSibling){if(be.nodeType===1&&be!==bd){e.push(be)}}return e}});function av(bf,be,e){if(a.isFunction(be)){return a.grep(bf,function(bh,bg){var bi=!!be.call(bh,bg,bh);return bi===e})}else{if(be.nodeType){return a.grep(bf,function(bh,bg){return(bh===be)===e})}else{if(typeof be==="string"){var bd=a.grep(bf,function(bg){return bg.nodeType===1});if(a9.test(be)){return a.filter(be,bd,!e)}else{be=a.filter(be,bd)}}}}return a.grep(bf,function(bh,bg){return(a.inArray(bh,be)>=0)===e})}var ab=/ jQuery\d+="(?:\d+|null)"/g,aj=/^\s+/,O=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)/>/ig,c=/<([\w:]+)/,v=/<tbody/i,T=/<|&#?\w+;/,L=/<(?:script|object|embed|option|style)/i,m=/checked\s*(?:[^=]|=\s*.checked.)/i,an={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};an.optgroup=an.option;an.tbody=an.tfoot=an.colgroup=an.caption=an.thead;an.th=an.td;if(!a.support.htmlSerialize){an._default=[1,"div<div>","</div>"]}a.fn.extend({text:function(e){if(a.isFunction(e)){return this.each(function(be){var bd=a(this);bd.text(e.call(this,be,bd.text()))})}if(typeof e!=="object"&&e!==H){return this.empty().append((this[0]&&this[0].ownerDocument||al).createTextNode(e))}return a.text(this)},wrapAll:function(e){if(a.isFunction(e)){return this.each(function(be){a(this).wrapAll(e.call(this,be))})}if(this[0]){var bd=a(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bd.insertBefore(this[0])}bd.map(function(){var be=this;while(be.firstChild&&be.firstChild.nodeType===1){be=be.firstChild}return be}).append(this)}return this},wrapInner:function(e){if(a.isFunction(e)){return this.each(function(bd){a(this).wrapInner(e.call(this,bd))})}return this.each(function(){var bd=a(this),be=bd.contents();if(be.length){be.wrapAll(e)}else{bd.append(e)}})},wrap:function(e){return this.each(function(){a(this).wrapAll(e)})},unwrap:function(){return this.parent().each(function(){if(!a.nodeName(this,"body")){a(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bd){this.parentNode.insertBefore(bd,this)})}else{if(arguments.length){var e=a(arguments[0]);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bd){this.parentNode.insertBefore(bd,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,a(arguments[0]).toArray());return e}}},remove:function(e,bf){for(var bd=0,be;(be=this[bd])!=null;bd++){if(!e||a.filter(e,[be]).length){if(!bf&&be.nodeType===1){a.cleanData(be.getElementsByTagName("*"));a.cleanData([be])}if(be.parentNode){be.parentNode.removeChild(be)}}}return this},empty:function(){for(var e=0,bd;(bd=this[e])!=null;e++){if(bd.nodeType===1){a.cleanData(bd.getElementsByTagName("*"))}while(bd.firstChild){bd.removeChild(bd.firstChild)}}return this},clone:function(bd,e){bd=bd==null?false:bd;e=e==null?bd:e;return this.map(function(){return a.clone(this,bd,e)})},html:function(bf){if(bf===H){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ab,""):null}else{if(typeof bf==="string"&&!L.test(bf)&&(a.support.leadingWhitespace||!aj.test(bf))&&!an[(c.exec(bf)||["",""])[1].toLowerCase()]){bf=bf.replace(O,"<$1></$2>");try{for(var be=0,bd=this.length;be<bd;be++){if(this[be].nodeType===1){a.cleanData(this[be].getElementsByTagName("*"));this[be].innerHTML=bf}}}catch(bg){this.empty().append(bf)}}else{if(a.isFunction(bf)){this.each(function(bh){var e=a(this);e.html(bf.call(this,bh,e.html()))})}else{this.empty().append(bf)}}}return this},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(a.isFunction(e)){return this.each(function(bf){var be=a(this),bd=be.html();be.replaceWith(e.call(this,bf,bd))})}if(typeof e!=="string"){e=a(e).detach()}return this.each(function(){var be=this.nextSibling,bd=this.parentNode;a(this).remove();if(be){a(be).before(e)}else{a(bd).append(e)}})}else{return this.pushStack(a(a.isFunction(e)?e():e),"replaceWith",e)}},detach:function(e){return this.remove(e,true)},domManip:function(bj,bn,bm){var bf,bg,bi,bl,bk=bj[0],bd=[];if(!a.support.checkClone&&arguments.length===3&&typeof bk==="string"&&m.test(bk)){return this.each(function(){a(this).domManip(bj,bn,bm,true)})}if(a.isFunction(bk)){return this.each(function(bp){var bo=a(this);bj[0]=bk.call(this,bp,bn?bo.html():H);bo.domManip(bj,bn,bm)})}if(this[0]){bl=bk&&bk.parentNode;if(a.support.parentNode&&bl&&bl.nodeType===11&&bl.childNodes.length===this.length){bf={fragment:bl}}else{bf=a.buildFragment(bj,this,bd)}bi=bf.fragment;if(bi.childNodes.length===1){bg=bi=bi.firstChild}else{bg=bi.firstChild}if(bg){bn=bn&&a.nodeName(bg,"tr");for(var be=0,e=this.length,bh=e-1;be<e;be++){bm.call(bn?aX(this[be],bg):this[be],bf.cacheable||(e>1&&be<bh)?a.clone(bi,true,true):bi)}}if(bd.length){a.each(bd,a8)}}return this}});function aX(e,bd){return a.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function s(e,bj){if(bj.nodeType!==1||!a.hasData(e)){return}var bi=a.expando,bf=a.data(e),bg=a.data(bj,bf);if((bf=bf[bi])){var bk=bf.events;bg=bg[bi]=a.extend({},bf);if(bk){delete bg.handle;bg.events={};for(var bh in bk){for(var be=0,bd=bk[bh].length;be<bd;be++){a.event.add(bj,bh+(bk[bh][be].namespace?".":"")+bk[bh][be].namespace,bk[bh][be],bk[bh][be].data)}}}}}function ac(bd,e){if(e.nodeType!==1){return}var be=e.nodeName.toLowerCase();e.clearAttributes();e.mergeAttributes(bd);if(be==="object"){e.outerHTML=bd.outerHTML}else{if(be==="input"&&(bd.type==="checkbox"||bd.type==="radio")){if(bd.checked){e.defaultChecked=e.checked=bd.checked}if(e.value!==bd.value){e.value=bd.value}}else{if(be==="option"){e.selected=bd.defaultSelected}else{if(be==="input"||be==="textarea"){e.defaultValue=bd.defaultValue}}}}e.removeAttribute(a.expando)}a.buildFragment=function(bh,bf,bd){var bg,e,be,bi=(bf&&bf[0]?bf[0].ownerDocument||bf[0]:al);if(bh.length===1&&typeof bh[0]==="string"&&bh[0].length<512&&bi===al&&bh[0].charAt(0)==="<"&&!L.test(bh[0])&&(a.support.checkClone||!m.test(bh[0]))){e=true;be=a.fragments[bh[0]];if(be){if(be!==1){bg=be}}}if(!bg){bg=bi.createDocumentFragment();a.clean(bh,bi,bg,bd)}if(e){a.fragments[bh[0]]=be?bg:1}return{fragment:bg,cacheable:e}};a.fragments={};a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bd){a.fn[e]=function(be){var bh=[],bk=a(be),bj=this.length===1&&this[0].parentNode;if(bj&&bj.nodeType===11&&bj.childNodes.length===1&&bk.length===1){bk[bd](this[0]);return this}else{for(var bi=0,bf=bk.length;bi<bf;bi++){var bg=(bi>0?this.clone(true):this).get();a(bk[bi])[bd](bg);bh=bh.concat(bg)}return this.pushStack(bh,e,bk.selector)}}});function a1(e){if("getElementsByTagName" in e){return e.getElementsByTagName("*")}else{if("querySelectorAll" in e){return e.querySelectorAll("*")}else{return[]}}}a.extend({clone:function(bg,bi,be){var bh=bg.cloneNode(true),e,bd,bf;if((!a.support.noCloneEvent||!a.support.noCloneChecked)&&(bg.nodeType===1||bg.nodeType===11)&&!a.isXMLDoc(bg)){ac(bg,bh);e=a1(bg);bd=a1(bh);for(bf=0;e[bf];++bf){ac(e[bf],bd[bf])}}if(bi){s(bg,bh);if(be){e=a1(bg);bd=a1(bh);for(bf=0;e[bf];++bf){s(e[bf],bd[bf])}}}return bh},clean:function(be,bg,bn,bi){bg=bg||al;if(typeof bg.createElement==="undefined"){bg=bg.ownerDocument||bg[0]&&bg[0].ownerDocument||al}var bo=[];for(var bm=0,bh;(bh=be[bm])!=null;bm++){if(typeof bh==="number"){bh+=""}if(!bh){continue}if(typeof bh==="string"&&!T.test(bh)){bh=bg.createTextNode(bh)}else{if(typeof bh==="string"){bh=bh.replace(O,"<$1></$2>");var bp=(c.exec(bh)||["",""])[1].toLowerCase(),bf=an[bp]||an._default,bl=bf[0],bd=bg.createElement("div");bd.innerHTML=bf[1]+bh+bf[2];while(bl--){bd=bd.lastChild}if(!a.support.tbody){var e=v.test(bh),bk=bp==="table"&&!e?bd.firstChild&&bd.firstChild.childNodes:bf[1]==="<table>"&&!e?bd.childNodes:[];for(var bj=bk.length-1;bj>=0;--bj){if(a.nodeName(bk[bj],"tbody")&&!bk[bj].childNodes.length){bk[bj].parentNode.removeChild(bk[bj])}}}if(!a.support.leadingWhitespace&&aj.test(bh)){bd.insertBefore(bg.createTextNode(aj.exec(bh)[0]),bd.firstChild)}bh=bd.childNodes}}if(bh.nodeType){bo.push(bh)}else{bo=a.merge(bo,bh)}}if(bn){for(bm=0;bo[bm];bm++){if(bi&&a.nodeName(bo[bm],"script")&&(!bo[bm].type||bo[bm].type.toLowerCase()==="text/javascript")){bi.push(bo[bm].parentNode?bo[bm].parentNode.removeChild(bo[bm]):bo[bm])}else{if(bo[bm].nodeType===1){bo.splice.apply(bo,[bm+1,0].concat(a.makeArray(bo[bm].getElementsByTagName("script"))))}bn.appendChild(bo[bm])}}}return bo},cleanData:function(bd){var bg,be,e=a.cache,bl=a.expando,bj=a.event.special,bi=a.support.deleteExpando;for(var bh=0,bf;(bf=bd[bh])!=null;bh++){if(bf.nodeName&&a.noData[bf.nodeName.toLowerCase()]){continue}be=bf[a.expando];if(be){bg=e[be]&&e[be][bl];if(bg&&bg.events){for(var bk in bg.events){if(bj[bk]){a.event.remove(bf,bk)}else{a.removeEvent(bf,bk,bg.handle)}}if(bg.handle){bg.handle.elem=null}}if(bi){delete bf[a.expando]}else{if(bf.removeAttribute){bf.removeAttribute(a.expando)}}delete e[be]}}}});function a8(e,bd){if(bd.src){a.ajax({url:bd.src,async:false,dataType:"script"})}else{a.globalEval(bd.text||bd.textContent||bd.innerHTML||"")}if(bd.parentNode){bd.parentNode.removeChild(bd)}}var ae=/alpha([^)]*)/i,ak=/opacity=([^)]*)/,aM=/-([a-z])/ig,y=/([A-Z])/g,aZ=/^-?\d+(?:px)?$/i,a7=/^-?\d/,aV={position:"absolute",visibility:"hidden",display:"block"},ag=["Left","Right"],aR=["Top","Bottom"],U,ay,aL,l=function(e,bd){return bd.toUpperCase()};a.fn.css=function(e,bd){if(arguments.length===2&&bd===H){return this}return a.access(this,e,bd,true,function(bf,be,bg){return bg!==H?a.style(bf,be,bg):a.css(bf,be)})};a.extend({cssHooks:{opacity:{get:function(be,bd){if(bd){var e=U(be,"opacity","opacity");return e===""?"1":e}else{return be.style.opacity}}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,zoom:true,lineHeight:true},cssProps:{"float":a.support.cssFloat?"cssFloat":"styleFloat"},style:function(bf,be,bk,bg){if(!bf||bf.nodeType===3||bf.nodeType===8||!bf.style){return}var bj,bh=a.camelCase(be),bd=bf.style,bl=a.cssHooks[bh];be=a.cssProps[bh]||bh;if(bk!==H){if(typeof bk==="number"&&isNaN(bk)||bk==null){return}if(typeof bk==="number"&&!a.cssNumber[bh]){bk+="px"}if(!bl||!("set" in bl)||(bk=bl.set(bf,bk))!==H){try{bd[be]=bk}catch(bi){}}}else{if(bl&&"get" in bl&&(bj=bl.get(bf,false,bg))!==H){return bj}return bd[be]}},css:function(bh,bg,bd){var bf,be=a.camelCase(bg),e=a.cssHooks[be];bg=a.cssProps[be]||be;if(e&&"get" in e&&(bf=e.get(bh,true,bd))!==H){return bf}else{if(U){return U(bh,bg,be)}}},swap:function(bf,be,bg){var e={};for(var bd in be){e[bd]=bf.style[bd];bf.style[bd]=be[bd]}bg.call(bf);for(bd in be){bf.style[bd]=e[bd]}},camelCase:function(e){return e.replace(aM,l)}});a.curCSS=a.css;a.each(["height","width"],function(bd,e){a.cssHooks[e]={get:function(bg,bf,be){var bh;if(bf){if(bg.offsetWidth!==0){bh=o(bg,e,be)}else{a.swap(bg,aV,function(){bh=o(bg,e,be)})}if(bh<=0){bh=U(bg,e,e);if(bh==="0px"&&aL){bh=aL(bg,e,e)}if(bh!=null){return bh===""||bh==="auto"?"0px":bh}}if(bh<0||bh==null){bh=bg.style[e];return bh===""||bh==="auto"?"0px":bh}return typeof bh==="string"?bh:bh+"px"}},set:function(be,bf){if(aZ.test(bf)){bf=parseFloat(bf);if(bf>=0){return bf+"px"}}else{return bf}}}});if(!a.support.opacity){a.cssHooks.opacity={get:function(bd,e){return ak.test((e&&bd.currentStyle?bd.currentStyle.filter:bd.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(bf,bg){var be=bf.style;be.zoom=1;var e=a.isNaN(bg)?"":"alpha(opacity="+bg*100+")",bd=be.filter||"";be.filter=ae.test(bd)?bd.replace(ae,e):be.filter+" "+e}}}if(al.defaultView&&al.defaultView.getComputedStyle){ay=function(bh,e,bf){var be,bg,bd;bf=bf.replace(y,"-$1").toLowerCase();if(!(bg=bh.ownerDocument.defaultView)){return H}if((bd=bg.getComputedStyle(bh,null))){be=bd.getPropertyValue(bf);if(be===""&&!a.contains(bh.ownerDocument.documentElement,bh)){be=a.style(bh,bf)}}return be}}if(al.documentElement.currentStyle){aL=function(bg,be){var bh,bd=bg.currentStyle&&bg.currentStyle[be],e=bg.runtimeStyle&&bg.runtimeStyle[be],bf=bg.style;if(!aZ.test(bd)&&a7.test(bd)){bh=bf.left;if(e){bg.runtimeStyle.left=bg.currentStyle.left}bf.left=be==="fontSize"?"1em":(bd||0);bd=bf.pixelLeft+"px";bf.left=bh;if(e){bg.runtimeStyle.left=e}}return bd===""?"auto":bd}}U=ay||aL;function o(be,bd,e){var bg=bd==="width"?ag:aR,bf=bd==="width"?be.offsetWidth:be.offsetHeight;if(e==="border"){return bf}a.each(bg,function(){if(!e){bf-=parseFloat(a.css(be,"padding"+this))||0}if(e==="margin"){bf+=parseFloat(a.css(be,"margin"+this))||0}else{bf-=parseFloat(a.css(be,"border"+this+"Width"))||0}});return bf}if(a.expr&&a.expr.filters){a.expr.filters.hidden=function(be){var bd=be.offsetWidth,e=be.offsetHeight;return(bd===0&&e===0)||(!a.support.reliableHiddenOffsets&&(be.style.display||a.css(be,"display"))==="none")};a.expr.filters.visible=function(e){return !a.expr.filters.hidden(e)}}var i=/%20/g,ah=/[]$/,bc=/\r?\n/g,ba=/#.*$/,ar=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aO=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aB=/(?:^file|^widget|-extension):$/,aD=/^(?:GET|HEAD)$/,b=/^///,I=/?/,aU=/<script\b[^<]*(?:(?!</script>)<[^<]*)*</script>/gi,p=/^(?:select|textarea)/i,g=/\s+/,bb=/([?&])_=[^&]*/,R=/(^|-)([a-z])/g,aJ=function(bd,e,be){return e+be.toUpperCase()},G=/^([\w+.-]+:)//([^/?#:]*)(?::(\d+))?/,z=a.fn.load,V={},q={},au,r;try{au=al.location.href}catch(am){au=al.createElement("a");au.href="";au=au.href}r=G.exec(au.toLowerCase());function d(e){return function(bg,bi){if(typeof bg!=="string"){bi=bg;bg="*"}if(a.isFunction(bi)){var bf=bg.toLowerCase().split(g),be=0,bh=bf.length,bd,bj,bk;for(;be<bh;be++){bd=bf[be];bk=/^+/.test(bd);if(bk){bd=bd.substr(1)||"*"}bj=e[bd]=e[bd]||[];bj[bk?"unshift":"push"](bi)}}}}function aI(bd,bm,bh,bl,bj,bf){bj=bj||bm.dataTypes[0];bf=bf||{};bf[bj]=true;var bi=bd[bj],be=0,e=bi?bi.length:0,bg=(bd===V),bk;for(;be<e&&(bg||!bk);be++){bk=bi[be](bm,bh,bl);if(typeof bk==="string"){if(!bg||bf[bk]){bk=H}else{bm.dataTypes.unshift(bk);bk=aI(bd,bm,bh,bl,bk,bf)}}}if((bg||!bk)&&!bf["*"]){bk=aI(bd,bm,bh,bl,"*",bf)}return bk}a.fn.extend({load:function(be,bh,bi){if(typeof be!=="string"&&z){return z.apply(this,arguments)}else{if(!this.length){return this}}var bg=be.indexOf(" ");if(bg>=0){var e=be.slice(bg,be.length);be=be.slice(0,bg)}var bf="GET";if(bh){if(a.isFunction(bh)){bi=bh;bh=H}else{if(typeof bh==="object"){bh=a.param(bh,a.ajaxSettings.traditional);bf="POST"}}}var bd=this;a.ajax({url:be,type:bf,dataType:"html",data:bh,complete:function(bk,bj,bl){bl=bk.responseText;if(bk.isResolved()){bk.done(function(bm){bl=bm});bd.html(e?a("<div>").append(bl.replace(aU,"")).find(e):bl)}if(bi){bd.each(bi,[bl,bj,bk])}}});return this},serialize:function(){return a.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?a.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||p.test(this.nodeName)||aO.test(this.type))}).map(function(e,bd){var be=a(this).val();return be==null?null:a.isArray(be)?a.map(be,function(bg,bf){return{name:bd.name,value:bg.replace(bc,"\r\n")}}):{name:bd.name,value:be.replace(bc,"\r\n")}}).get()}});a.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bd){a.fn[bd]=function(be){return this.bind(bd,be)}});a.each(["get","post"],function(e,bd){a[bd]=function(be,bg,bh,bf){if(a.isFunction(bg)){bf=bf||bh;bh=bg;bg=H}return a.ajax({type:bd,url:be,data:bg,success:bh,dataType:bf})}});a.extend({getScript:function(e,bd){return a.get(e,H,bd,"script")},getJSON:function(e,bd,be){return a.get(e,bd,be,"json")},ajaxSetup:function(be,e){if(!e){e=be;be=a.extend(true,a.ajaxSettings,e)}else{a.extend(true,be,a.ajaxSettings,e)}for(var bd in {context:1,url:1}){if(bd in e){be[bd]=e[bd]}else{if(bd in a.ajaxSettings){be[bd]=a.ajaxSettings[bd]}}}return be},ajaxSettings:{url:au,isLocal:aB.test(r[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":aY.String,"text html":true,"text json":a.parseJSON,"text xml":a.parseXML}},ajaxPrefilter:d(V),ajaxTransport:d(q),ajax:function(bh,bf){if(typeof bh==="object"){bf=bh;bh=H}bf=bf||{};var bl=a.ajaxSetup({},bf),bz=bl.context||bl,bo=bz!==bl&&(bz.nodeType||bz instanceof a)?a(bz):a.event,by=a.Deferred(),bv=a._Deferred(),bj=bl.statusCode||{},bk,bp={},bx,bg,bt,bm,bq,bi=0,be,bs,br={readyState:0,setRequestHeader:function(e,bA){if(!bi){bp[e.toLowerCase().replace(R,aJ)]=bA}return this},getAllResponseHeaders:function(){return bi===2?bx:null},getResponseHeader:function(bA){var e;if(bi===2){if(!bg){bg={};while((e=ar.exec(bx))){bg[e[1].toLowerCase()]=e[2]}}e=bg[bA.toLowerCase()]}return e===H?null:e},overrideMimeType:function(e){if(!bi){bl.mimeType=e}return this},abort:function(e){e=e||"abort";if(bt){bt.abort(e)}bn(0,e);return this}};function bn(bF,bD,bG,bC){if(bi===2){return}bi=2;if(bm){clearTimeout(bm)}bt=H;bx=bC||"";br.readyState=bF?4:0;var bA,bK,bJ,bE=bG?a4(bl,br,bG):H,bB,bI;if(bF>=200&&bF<300||bF===304){if(bl.ifModified){if((bB=br.getResponseHeader("Last-Modified"))){a.lastModified[bk]=bB}if((bI=br.getResponseHeader("Etag"))){a.etag[bk]=bI}}if(bF===304){bD="notmodified";bA=true}else{try{bK=D(bl,bE);bD="success";bA=true}catch(bH){bD="parsererror";bJ=bH}}}else{bJ=bD;if(!bD||bF){bD="error";if(bF<0){bF=0}}}br.status=bF;br.statusText=bD;if(bA){by.resolveWith(bz,[bK,bD,br])}else{by.rejectWith(bz,[br,bD,bJ])}br.statusCode(bj);bj=H;if(be){bo.trigger("ajax"+(bA?"Success":"Error"),[br,bl,bA?bK:bJ])}bv.resolveWith(bz,[br,bD]);if(be){bo.trigger("ajaxComplete",[br,bl]);if(!(--a.active)){a.event.trigger("ajaxStop")}}}by.promise(br);br.success=br.done;br.error=br.fail;br.complete=bv.done;br.statusCode=function(bA){if(bA){var e;if(bi<2){for(e in bA){bj[e]=[bj[e],bA[e]]}}else{e=bA[br.status];br.then(e,e)}}return this};bl.url=((bh||bl.url)+"").replace(ba,"").replace(b,r[1]+"//");bl.dataTypes=a.trim(bl.dataType||"*").toLowerCase().split(g);if(!bl.crossDomain){bq=G.exec(bl.url.toLowerCase());bl.crossDomain=!!(bq&&(bq[1]!=r[1]||bq[2]!=r[2]||(bq[3]||(bq[1]==="http:"?80:443))!=(r[3]||(r[1]==="http:"?80:443))))}if(bl.data&&bl.processData&&typeof bl.data!=="string"){bl.data=a.param(bl.data,bl.traditional)}aI(V,bl,bf,br);if(bi===2){return false}be=bl.global;bl.type=bl.type.toUpperCase();bl.hasContent=!aD.test(bl.type);if(be&&a.active++===0){a.event.trigger("ajaxStart")}if(!bl.hasContent){if(bl.data){bl.url+=(I.test(bl.url)?"&":"?")+bl.data}bk=bl.url;if(bl.cache===false){var bd=a.now(),bw=bl.url.replace(bb,"$1_="+bd);bl.url=bw+((bw===bl.url)?(I.test(bl.url)?"&":"?")+"_="+bd:"")}}if(bl.data&&bl.hasContent&&bl.contentType!==false||bf.contentType){bp["Content-Type"]=bl.contentType}if(bl.ifModified){bk=bk||bl.url;if(a.lastModified[bk]){bp["If-Modified-Since"]=a.lastModified[bk]}if(a.etag[bk]){bp["If-None-Match"]=a.etag[bk]}}bp.Accept=bl.dataTypes[0]&&bl.accepts[bl.dataTypes[0]]?bl.accepts[bl.dataTypes[0]]+(bl.dataTypes[0]!=="*"?", */*; q=0.01":""):bl.accepts["*"];for(bs in bl.headers){br.setRequestHeader(bs,bl.headers[bs])}if(bl.beforeSend&&(bl.beforeSend.call(bz,br,bl)===false||bi===2)){br.abort();return false}for(bs in {success:1,error:1,complete:1}){br[bs](bl[bs])}bt=aI(q,bl,bf,br);if(!bt){bn(-1,"No Transport")}else{br.readyState=1;if(be){bo.trigger("ajaxSend",[br,bl])}if(bl.async&&bl.timeout>0){bm=setTimeout(function(){br.abort("timeout")},bl.timeout)}try{bi=1;bt.send(bp,bn)}catch(bu){if(status<2){bn(-1,bu)}else{a.error(bu)}}}return br},param:function(e,be){var bd=[],bg=function(bh,bi){bi=a.isFunction(bi)?bi():bi;bd[bd.length]=encodeURIComponent(bh)+"="+encodeURIComponent(bi)};if(be===H){be=a.ajaxSettings.traditional}if(a.isArray(e)||(e.jquery&&!a.isPlainObject(e))){a.each(e,function(){bg(this.name,this.value)})}else{for(var bf in e){u(bf,e[bf],be,bg)}}return bd.join("&").replace(i,"+")}});function u(be,bg,bd,bf){if(a.isArray(bg)&&bg.length){a.each(bg,function(bi,bh){if(bd||ah.test(be)){bf(be,bh)}else{u(be+"["+(typeof bh==="object"||a.isArray(bh)?bi:"")+"]",bh,bd,bf)}})}else{if(!bd&&bg!=null&&typeof bg==="object"){if(a.isArray(bg)||a.isEmptyObject(bg)){bf(be,"")}else{for(var e in bg){u(be+"["+e+"]",bg[e],bd,bf)}}}else{bf(be,bg)}}}a.extend({active:0,lastModified:{},etag:{}});function a4(bl,bk,bh){var bd=bl.contents,bj=bl.dataTypes,be=bl.responseFields,bg,bi,bf,e;for(bi in be){if(bi in bh){bk[be[bi]]=bh[bi]}}while(bj[0]==="*"){bj.shift();if(bg===H){bg=bl.mimeType||bk.getResponseHeader("content-type")}}if(bg){for(bi in bd){if(bd[bi]&&bd[bi].test(bg)){bj.unshift(bi);break}}}if(bj[0] in bh){bf=bj[0]}else{for(bi in bh){if(!bj[0]||bl.converters[bi+" "+bj[0]]){bf=bi;break}if(!e){e=bi}}bf=bf||e}if(bf){if(bf!==bj[0]){bj.unshift(bf)}return bh[bf]}}function D(bp,bh){if(bp.dataFilter){bh=bp.dataFilter(bh,bp.dataType)}var bl=bp.dataTypes,bo={},bi,bm,be=bl.length,bj,bk=bl[0],bf,bg,bn,bd,e;for(bi=1;bi<be;bi++){if(bi===1){for(bm in bp.converters){if(typeof bm==="string"){bo[bm.toLowerCase()]=bp.converters[bm]}}}bf=bk;bk=bl[bi];if(bk==="*"){bk=bf}else{if(bf!=="*"&&bf!==bk){bg=bf+" "+bk;bn=bo[bg]||bo["* "+bk];if(!bn){e=H;for(bd in bo){bj=bd.split(" ");if(bj[0]===bf||bj[0]==="*"){e=bo[bj[1]+" "+bk];if(e){bd=bo[bd];if(bd===true){bn=e}else{if(e===true){bn=bd}}break}}}}if(!(bn||e)){a.error("No conversion from "+bg.replace(" "," to "))}if(bn!==true){bh=bn?bn(bh):e(bd(bh))}}}}return bh}var aq=a.now(),t=/(=)?(&|$)|()??()/i;a.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return a.expando+"_"+(aq++)}});a.ajaxPrefilter("json jsonp",function(bm,bi,bl){var bk=(typeof bm.data==="string");if(bm.dataTypes[0]==="jsonp"||bi.jsonpCallback||bi.jsonp!=null||bm.jsonp!==false&&(t.test(bm.url)||bk&&t.test(bm.data))){var bj,be=bm.jsonpCallback=a.isFunction(bm.jsonpCallback)?bm.jsonpCallback():bm.jsonpCallback,bh=aY[be],e=bm.url,bg=bm.data,bd="$1"+be+"$2",bf=function(){aY[be]=bh;if(bj&&a.isFunction(bh)){aY[be](bj[0])}};if(bm.jsonp!==false){e=e.replace(t,bd);if(bm.url===e){if(bk){bg=bg.replace(t,bd)}if(bm.data===bg){e+=(/?/.test(e)?"&":"?")+bm.jsonp+"="+be}}}bm.url=e;bm.data=bg;aY[be]=function(bn){bj=[bn]};bl.then(bf,bf);bm.converters["script json"]=function(){if(!bj){a.error(be+" was not called")}return bj[0]};bm.dataTypes[0]="json";return"script"}});a.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){a.globalEval(e);return e}}});a.ajaxPrefilter("script",function(e){if(e.cache===H){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});a.ajaxTransport("script",function(be){if(be.crossDomain){var e,bd=al.head||al.getElementsByTagName("head")[0]||al.documentElement;return{send:function(bf,bg){e=al.createElement("script");e.async="async";if(be.scriptCharset){e.charset=be.scriptCharset}e.src=be.url;e.onload=e.onreadystatechange=function(bi,bh){if(!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bd&&e.parentNode){bd.removeChild(e)}e=H;if(!bh){bg(200,"success")}}};bd.insertBefore(e,bd.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var x=a.now(),J,at;function A(){a(aY).unload(function(){for(var e in J){J[e](0,1)}})}function aA(){try{return new aY.XMLHttpRequest()}catch(bd){}}function ad(){try{return new aY.ActiveXObject("Microsoft.XMLHTTP")}catch(bd){}}a.ajaxSettings.xhr=aY.ActiveXObject?function(){return !this.isLocal&&aA()||ad()}:aA;at=a.ajaxSettings.xhr();a.support.ajax=!!at;a.support.cors=at&&("withCredentials" in at);at=H;if(a.support.ajax){a.ajaxTransport(function(e){if(!e.crossDomain||a.support.cors){var bd;return{send:function(bj,be){var bi=e.xhr(),bh,bg;if(e.username){bi.open(e.type,e.url,e.async,e.username,e.password)}else{bi.open(e.type,e.url,e.async)}if(e.xhrFields){for(bg in e.xhrFields){bi[bg]=e.xhrFields[bg]}}if(e.mimeType&&bi.overrideMimeType){bi.overrideMimeType(e.mimeType)}if(!(e.crossDomain&&!e.hasContent)&&!bj["X-Requested-With"]){bj["X-Requested-With"]="XMLHttpRequest"}try{for(bg in bj){bi.setRequestHeader(bg,bj[bg])}}catch(bf){}bi.send((e.hasContent&&e.data)||null);bd=function(bs,bm){var bn,bl,bk,bq,bp;try{if(bd&&(bm||bi.readyState===4)){bd=H;if(bh){bi.onreadystatechange=a.noop;delete J[bh]}if(bm){if(bi.readyState!==4){bi.abort()}}else{bn=bi.status;bk=bi.getAllResponseHeaders();bq={};bp=bi.responseXML;if(bp&&bp.documentElement){bq.xml=bp}bq.text=bi.responseText;try{bl=bi.statusText}catch(br){bl=""}if(!bn&&e.isLocal&&!e.crossDomain){bn=bq.text?200:404}else{if(bn===1223){bn=204}}}}}catch(bo){if(!bm){be(-1,bo)}}if(bq){be(bn,bl,bq,bk)}};if(!e.async||bi.readyState===4){bd()}else{if(!J){J={};A()}bh=x++;bi.onreadystatechange=J[bh]=bd}},abort:function(){if(bd){bd(0,1)}}}}})}var N={},ap=/^(?:toggle|show|hide)$/,aF=/^([+-]=)?([\d+.-]+)([a-z%]*)$/i,aS,ax=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];a.fn.extend({show:function(bf,bi,bh){var be,bg;if(bf||bf===0){return this.animate(aQ("show",3),bf,bi,bh)}else{for(var bd=0,e=this.length;bd<e;bd++){be=this[bd];bg=be.style.display;if(!a._data(be,"olddisplay")&&bg==="none"){bg=be.style.display=""}if(bg===""&&a.css(be,"display")==="none"){a._data(be,"olddisplay",w(be.nodeName))}}for(bd=0;bd<e;bd++){be=this[bd];bg=be.style.display;if(bg===""||bg==="none"){be.style.display=a._data(be,"olddisplay")||""}}return this}},hide:function(be,bh,bg){if(be||be===0){return this.animate(aQ("hide",3),be,bh,bg)}else{for(var bd=0,e=this.length;bd<e;bd++){var bf=a.css(this[bd],"display");if(bf!=="none"&&!a._data(this[bd],"olddisplay")){a._data(this[bd],"olddisplay",bf)}}for(bd=0;bd<e;bd++){this[bd].style.display="none"}return this}},_toggle:a.fn.toggle,toggle:function(be,bd,bf){var e=typeof be==="boolean";if(a.isFunction(be)&&a.isFunction(bd)){this._toggle.apply(this,arguments)}else{if(be==null||e){this.each(function(){var bg=e?be:a(this).is(":hidden");a(this)[bg?"show":"hide"]()})}else{this.animate(aQ("toggle",3),be,bd,bf)}}return this},fadeTo:function(e,bf,be,bd){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bf},e,be,bd)},animate:function(bg,bd,bf,be){var e=a.speed(bd,bf,be);if(a.isEmptyObject(bg)){return this.each(e.complete)}return this[e.queue===false?"each":"queue"](function(){var bj=a.extend({},e),bn,bk=this.nodeType===1,bl=bk&&a(this).is(":hidden"),bh=this;for(bn in bg){var bi=a.camelCase(bn);if(bn!==bi){bg[bi]=bg[bn];delete bg[bn];bn=bi}if(bg[bn]==="hide"&&bl||bg[bn]==="show"&&!bl){return bj.complete.call(this)}if(bk&&(bn==="height"||bn==="width")){bj.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(a.css(this,"display")==="inline"&&a.css(this,"float")==="none"){if(!a.support.inlineBlockNeedsLayout){this.style.display="inline-block"}else{var bm=w(this.nodeName);if(bm==="inline"){this.style.display="inline-block"}else{this.style.display="inline";this.style.zoom=1}}}}if(a.isArray(bg[bn])){(bj.specialEasing=bj.specialEasing||{})[bn]=bg[bn][1];bg[bn]=bg[bn][0]}}if(bj.overflow!=null){this.style.overflow="hidden"}bj.curAnim=a.extend({},bg);a.each(bg,function(bp,bt){var bs=new a.fx(bh,bj,bp);if(ap.test(bt)){bs[bt==="toggle"?bl?"show":"hide":bt](bg)}else{var br=aF.exec(bt),bu=bs.cur();if(br){var bo=parseFloat(br[2]),bq=br[3]||(a.cssNumber[bp]?"":"px");if(bq!=="px"){a.style(bh,bp,(bo||1)+bq);bu=((bo||1)/bs.cur())*bu;a.style(bh,bp,bu+bq)}if(br[1]){bo=((br[1]==="-="?-1:1)*bo)+bu}bs.custom(bu,bo,bq)}else{bs.custom(bu,bt,"")}}});return true})},stop:function(bd,e){var be=a.timers;if(bd){this.queue([])}this.each(function(){for(var bf=be.length-1;bf>=0;bf--){if(be[bf].elem===this){if(e){be[bf](true)}be.splice(bf,1)}}});if(!e){this.dequeue()}return this}});function aQ(bd,e){var be={};a.each(ax.concat.apply([],ax.slice(0,e)),function(){be[this]=bd});return be}a.each({slideDown:aQ("show",1),slideUp:aQ("hide",1),slideToggle:aQ("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bd){a.fn[e]=function(be,bg,bf){return this.animate(bd,be,bg,bf)}});a.extend({speed:function(be,bf,bd){var e=be&&typeof be==="object"?a.extend({},be):{complete:bd||!bd&&bf||a.isFunction(be)&&be,duration:be,easing:bd&&bf||bf&&!a.isFunction(bf)&&bf};e.duration=a.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in a.fx.speeds?a.fx.speeds[e.duration]:a.fx.speeds._default;e.old=e.complete;e.complete=function(){if(e.queue!==false){a(this).dequeue()}if(a.isFunction(e.old)){e.old.call(this)}};return e},easing:{linear:function(be,bf,e,bd){return e+bd*be},swing:function(be,bf,e,bd){return((-Math.cos(be*Math.PI)/2)+0.5)*bd+e}},timers:[],fx:function(bd,e,be){this.options=e;this.elem=bd;this.prop=be;if(!e.orig){e.orig={}}}});a.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(a.fx.step[this.prop]||a.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bd=a.css(this.elem,this.prop);return isNaN(e=parseFloat(bd))?!bd||bd==="auto"?0:bd:e},custom:function(bh,bg,bf){var e=this,be=a.fx;this.startTime=a.now();this.start=bh;this.end=bg;this.unit=bf||this.unit||(a.cssNumber[this.prop]?"":"px");this.now=this.start;this.pos=this.state=0;function bd(bi){return e.step(bi)}bd.elem=this.elem;if(bd()&&a.timers.push(bd)&&!aS){aS=setInterval(be.tick,be.interval)}},show:function(){this.options.orig[this.prop]=a.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());a(this.elem).show()},hide:function(){this.options.orig[this.prop]=a.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(bf){var bk=a.now(),bg=true;if(bf||bk>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var bh in this.options.curAnim){if(this.options.curAnim[bh]!==true){bg=false}}if(bg){if(this.options.overflow!=null&&!a.support.shrinkWrapBlocks){var be=this.elem,bl=this.options;a.each(["","X","Y"],function(bm,bn){be.style["overflow"+bn]=bl.overflow[bm]})}if(this.options.hide){a(this.elem).hide()}if(this.options.hide||this.options.show){for(var e in this.options.curAnim){a.style(this.elem,e,this.options.orig[e])}}this.options.complete.call(this.elem)}return false}else{var bd=bk-this.startTime;this.state=bd/this.options.duration;var bi=this.options.specialEasing&&this.options.specialEasing[this.prop];var bj=this.options.easing||(a.easing.swing?"swing":"linear");this.pos=a.easing[bi||bj](this.state,bd,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};a.extend(a.fx,{tick:function(){var bd=a.timers;for(var e=0;e<bd.length;e++){if(!bd[e]()){bd.splice(e--,1)}}if(!bd.length){a.fx.stop()}},interval:13,stop:function(){clearInterval(aS);aS=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){a.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=(e.prop==="width"||e.prop==="height"?Math.max(0,e.now):e.now)+e.unit}else{e.elem[e.prop]=e.now}}}});if(a.expr&&a.expr.filters){a.expr.filters.animated=function(e){return a.grep(a.timers,function(bd){return e===bd.elem}).length}}function w(be){if(!N[be]){var e=a("<"+be+">").appendTo("body"),bd=e.css("display");e.remove();if(bd==="none"||bd===""){bd="block"}N[be]=bd}return N[be]}var S=/^t(?:able|d|h)$/i,Y=/^(?:body|html)$/i;if("getBoundingClientRect" in al.documentElement){a.fn.offset=function(bq){var bg=this[0],bj;if(bq){return this.each(function(e){a.offset.setOffset(this,bq,e)})}if(!bg||!bg.ownerDocument){return null}if(bg===bg.ownerDocument.body){return a.offset.bodyOffset(bg)}try{bj=bg.getBoundingClientRect()}catch(bn){}var bp=bg.ownerDocument,be=bp.documentElement;if(!bj||!a.contains(be,bg)){return bj?{top:bj.top,left:bj.left}:{top:0,left:0}}var bk=bp.body,bl=az(bp),bi=be.clientTop||bk.clientTop||0,bm=be.clientLeft||bk.clientLeft||0,bd=(bl.pageYOffset||a.support.boxModel&&be.scrollTop||bk.scrollTop),bh=(bl.pageXOffset||a.support.boxModel&&be.scrollLeft||bk.scrollLeft),bo=bj.top+bd-bi,bf=bj.left+bh-bm;return{top:bo,left:bf}}}else{a.fn.offset=function(bn){var bh=this[0];if(bn){return this.each(function(bo){a.offset.setOffset(this,bn,bo)})}if(!bh||!bh.ownerDocument){return null}if(bh===bh.ownerDocument.body){return a.offset.bodyOffset(bh)}a.offset.initialize();var bk,be=bh.offsetParent,bd=bh,bm=bh.ownerDocument,bf=bm.documentElement,bi=bm.body,bj=bm.defaultView,e=bj?bj.getComputedStyle(bh,null):bh.currentStyle,bl=bh.offsetTop,bg=bh.offsetLeft;while((bh=bh.parentNode)&&bh!==bi&&bh!==bf){if(a.offset.supportsFixedPosition&&e.position==="fixed"){break}bk=bj?bj.getComputedStyle(bh,null):bh.currentStyle;bl-=bh.scrollTop;bg-=bh.scrollLeft;if(bh===be){bl+=bh.offsetTop;bg+=bh.offsetLeft;if(a.offset.doesNotAddBorder&&!(a.offset.doesAddBorderForTableAndCells&&S.test(bh.nodeName))){bl+=parseFloat(bk.borderTopWidth)||0;bg+=parseFloat(bk.borderLeftWidth)||0}bd=be;be=bh.offsetParent}if(a.offset.subtractsBorderForOverflowNotVisible&&bk.overflow!=="visible"){bl+=parseFloat(bk.borderTopWidth)||0;bg+=parseFloat(bk.borderLeftWidth)||0}e=bk}if(e.position==="relative"||e.position==="static"){bl+=bi.offsetTop;bg+=bi.offsetLeft}if(a.offset.supportsFixedPosition&&e.position==="fixed"){bl+=Math.max(bf.scrollTop,bi.scrollTop);bg+=Math.max(bf.scrollLeft,bi.scrollLeft)}return{top:bl,left:bg}}}a.offset={initialize:function(){var e=al.body,bd=al.createElement("div"),bg,bi,bh,bj,be=parseFloat(a.css(e,"marginTop"))||0,bf="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.extend(bd.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});bd.innerHTML=bf;e.insertBefore(bd,e.firstChild);bg=bd.firstChild;bi=bg.firstChild;bj=bg.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(bi.offsetTop!==5);this.doesAddBorderForTableAndCells=(bj.offsetTop===5);bi.style.position="fixed";bi.style.top="20px";this.supportsFixedPosition=(bi.offsetTop===20||bi.offsetTop===15);bi.style.position=bi.style.top="";bg.style.overflow="hidden";bg.style.position="relative";this.subtractsBorderForOverflowNotVisible=(bi.offsetTop===-5);this.doesNotIncludeMarginInBodyOffset=(e.offsetTop!==be);e.removeChild(bd);e=bd=bg=bi=bh=bj=null;a.offset.initialize=a.noop},bodyOffset:function(e){var be=e.offsetTop,bd=e.offsetLeft;a.offset.initialize();if(a.offset.doesNotIncludeMarginInBodyOffset){be+=parseFloat(a.css(e,"marginTop"))||0;bd+=parseFloat(a.css(e,"marginLeft"))||0}return{top:be,left:bd}},setOffset:function(bf,bo,bi){var bj=a.css(bf,"position");if(bj==="static"){bf.style.position="relative"}var bh=a(bf),bd=bh.offset(),e=a.css(bf,"top"),bm=a.css(bf,"left"),bn=(bj==="absolute"&&a.inArray("auto",[e,bm])>-1),bl={},bk={},be,bg;if(bn){bk=bh.position()}be=bn?bk.top:parseInt(e,10)||0;bg=bn?bk.left:parseInt(bm,10)||0;if(a.isFunction(bo)){bo=bo.call(bf,bi,bd)}if(bo.top!=null){bl.top=(bo.top-bd.top)+be}if(bo.left!=null){bl.left=(bo.left-bd.left)+bg}if("using" in bo){bo.using.call(bf,bl)}else{bh.css(bl)}}};a.fn.extend({position:function(){if(!this[0]){return null}var be=this[0],bd=this.offsetParent(),bf=this.offset(),e=Y.test(bd[0].nodeName)?{top:0,left:0}:bd.offset();bf.top-=parseFloat(a.css(be,"marginTop"))||0;bf.left-=parseFloat(a.css(be,"marginLeft"))||0;e.top+=parseFloat(a.css(bd[0],"borderTopWidth"))||0;e.left+=parseFloat(a.css(bd[0],"borderLeftWidth"))||0;return{top:bf.top-e.top,left:bf.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||al.body;while(e&&(!Y.test(e.nodeName)&&a.css(e,"position")==="static")){e=e.offsetParent}return e})}});a.each(["Left","Top"],function(bd,e){var be="scroll"+e;a.fn[be]=function(bh){var bf=this[0],bg;if(!bf){return null}if(bh!==H){return this.each(function(){bg=az(this);if(bg){bg.scrollTo(!bd?bh:a(bg).scrollLeft(),bd?bh:a(bg).scrollTop())}else{this[be]=bh}})}else{bg=az(bf);return bg?("pageXOffset" in bg)?bg[bd?"pageYOffset":"pageXOffset"]:a.support.boxModel&&bg.document.documentElement[be]||bg.document.body[be]:bf[be]}}});function az(e){return a.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}a.each(["Height","Width"],function(bd,e){var be=e.toLowerCase();a.fn["inner"+e]=function(){return this[0]?parseFloat(a.css(this[0],be,"padding")):null};a.fn["outer"+e]=function(bf){return this[0]?parseFloat(a.css(this[0],be,bf?"margin":"border")):null};a.fn[be]=function(bg){var bh=this[0];if(!bh){return bg==null?null:this}if(a.isFunction(bg)){return this.each(function(bl){var bk=a(this);bk[be](bg.call(this,bl,bk[be]()))})}if(a.isWindow(bh)){var bi=bh.document.documentElement["client"+e];return bh.document.compatMode==="CSS1Compat"&&bi||bh.document.body["client"+e]||bi}else{if(bh.nodeType===9){return Math.max(bh.documentElement["client"+e],bh.body["scroll"+e],bh.documentElement["scroll"+e],bh.body["offset"+e],bh.documentElement["offset"+e])}else{if(bg===H){var bj=a.css(bh,be),bf=parseFloat(bj);return a.isNaN(bf)?bj:bf}else{return this.css(be,typeof bg==="string"?bg:bg+"px")}}}}});aY.jQuery=aY.$=a})(window); \ No newline at end of file
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email.
galaxy-commits@lists.galaxyproject.org