{"version":3,"sources":["bootstrap.min.js","jquery.browser.js","modernizr-2.6.1.min.js","jquery-ui.js"],"names":["factory","define","amd","$","module","exports","require","window","jQuery","uaMatch","ua","undefined","navigator","userAgent","toLowerCase","match","exec","indexOf","platform_match","browser","matched","version","versionNumber","platform","parseInt","android","bb","blackberry","ipad","iphone","ipod","kindle","playbook","silk","mobile","cros","mac","linux","win","desktop","chrome","opr","safari","webkit","rv","iemobile","edge","name","jQBrowser","Modernizr","a","b","c","D","j","cssText","E","n","join","F","G","H","d","e","I","f","bind","J","charAt","toUpperCase","slice","p","split","q","x","C","g","documentElement","h","i","createElement","style","k","l","m","toString","o","r","svg","s","t","u","v","w","y","body","id","appendChild","innerHTML","background","parentNode","removeChild","z","matchMedia","msMatchMedia","matches","getComputedStyle","currentStyle","A","setAttribute","removeAttribute","select","change","submit","reset","error","load","abort","B","hasOwnProperty","call","constructor","prototype","Function","this","TypeError","arguments","apply","concat","Object","flexbox","canvas","getContext","canvastext","fillText","webgl","WebGLRenderingContext","touch","DocumentTouch","offsetTop","geolocation","postmessage","postMessage","websqldatabase","openDatabase","indexedDB","hashchange","documentMode","history","pushState","draganddrop","websockets","rgba","backgroundColor","hsla","multiplebgs","test","backgroundsize","borderimage","borderradius","boxshadow","textshadow","textShadow","opacity","cssanimations","csscolumns","cssgradients","length","backgroundImage","cssreflections","csstransforms","csstransforms3d","offsetLeft","offsetHeight","csstransitions","fontface","getElementById","sheet","styleSheet","cssRules","generatedcontent","video","canPlayType","Boolean","ogg","replace","h264","webm","audio","mp3","wav","m4a","localstorage","localStorage","setItem","removeItem","sessionstorage","sessionStorage","webworkers","Worker","applicationcache","applicationCache","createElementNS","createSVGRect","inlinesvg","firstChild","namespaceURI","smil","svgclippaths","L","push","input","list","HTMLDataListElement","inputtypes","type","value","WebkitAppearance","defaultView","checkValidity","addTest","className","getElementsByTagName","insertBefore","lastChild","elements","cache","cloneNode","createElem","canHaveChildren","frag","createDocumentFragment","createFrag","shivMethods","shivCSS","hasCSS","html5","childNodes","supportsUnknownElements","shivDocument","_version","_prefixes","_domPrefixes","_cssomPrefixes","mq","hasEvent","testProp","testAllProps","testStyles","prefixed","document","shift","injectCss","injectJs","readyState","onload","onreadystatechange","errorTimeout","data","src","width","height","onerror","splice","loader","setTimeout","createRange","compareNode","opera","attachEvent","Array","isArray","timeout","pop","url","origUrl","prefixes","autoCallback","bypass","instead","noexec","forceCSS","forceJS","attrs","both","callback","complete","yep","nope","yepnope","addPrefix","addFilter","addEventListener","removeEventListener","executeStack","href","rel","focusable","element","isTabIndexNotNaN","nodeName","img","map","mapName","visible","disabled","parents","andSelf","filter","curCSS","expr","filters","hidden","ui","extend","keyCode","ALT","BACKSPACE","CAPS_LOCK","COMMA","COMMAND","COMMAND_LEFT","COMMAND_RIGHT","CONTROL","DELETE","DOWN","END","ENTER","ESCAPE","HOME","INSERT","LEFT","MENU","NUMPAD_ADD","NUMPAD_DECIMAL","NUMPAD_DIVIDE","NUMPAD_ENTER","NUMPAD_MULTIPLY","NUMPAD_SUBTRACT","PAGE_DOWN","PAGE_UP","PERIOD","RIGHT","SHIFT","SPACE","TAB","UP","WINDOWS","fn","propAttr","prop","attr","_focus","focus","delay","each","elem","scrollParent","msie","css","eq","zIndex","position","isNaN","parent","disableSelection","support","selectstart","event","preventDefault","enableSelection","unbind","outerWidth","jquery","reduce","size","border","margin","side","parseFloat","orig","innerWidth","innerHeight","outerHeight","createPseudo","dataName","tabbable","tabIndex","isTabIndexNaN","div","minHeight","padding","borderWidth","display","plugin","add","option","set","proto","plugins","instance","args","options","contains","compareDocumentPosition","hasScroll","el","scroll","has","isOverAxis","reference","isOver","top","left","cleanData","_cleanData","elems","triggerHandler","_remove","remove","selector","keepData","widget","base","fullName","namespace","Widget","_createWidget","basePrototype","widgetName","widgetEventPrefix","widgetBaseClass","bridge","object","isMethodCall","returnValue","methodValue","isFunction","_init","_getCreateOptions","self","destroy","_create","_trigger","metadata","get","removeData","removeAttr","removeClass","key","_setOptions","_setOption","enable","disable","Event","target","originalEvent","trigger","isDefaultPrevented","mouseHandled","mouseup","cancel","distance","_mouseInit","_mouseDown","stopImmediatePropagation","started","_mouseDestroy","_mouseMoveDelegate","_mouseUpDelegate","_mouseStarted","_mouseUp","_mouseDownEvent","btnIsLeft","which","elIsCancel","closest","_mouseCapture","mouseDelayMet","_mouseDelayTimer","_mouseDistanceMet","_mouseDelayMet","_mouseStart","_mouseMove","button","_mouseDrag","_mouseStop","Math","max","abs","pageX","pageY","mouse","addClasses","appendTo","axis","connectToSortable","containment","cursor","cursorAt","grid","handle","helper","iframeFix","refreshPositions","revert","revertDuration","scope","scrollSensitivity","scrollSpeed","snap","snapMode","snapTolerance","stack","addClass","is","_getHandle","offsetWidth","offset","_createHelper","_cacheHelperProportions","ddmanager","current","_cacheMargins","cssPosition","positionAbs","margins","click","_getParentOffset","relative","_getRelativeOffset","originalPosition","_generatePosition","originalPageX","originalPageY","_adjustOffsetFromHelper","_setContainment","_clear","dropBehaviour","prepareOffsets","dragStart","noPropagation","_convertPositionTo","_uiHash","drag","dropped","drop","elementInDom","animate","dragStop","find","clone","obj","helperProportions","right","bottom","offsetParent","po","scrollLeft","scrollTop","tagName","scrollHeight","ce","over","scrollWidth","relative_container","pos","mod","scrollIsRootNode","co","round","cancelHelperRemoval","draggable","start","inst","uiSortable","item","sortables","sortable","shouldRevert","stop","_helper","currentItem","_intersectsWith","containerCache","fromOutside","placeholder","_cursor","_opacity","overflowOffset","scrolled","snapElements","String","items","$t","$o","x1","x2","y1","y2","ts","bs","ls","rs","first","snapping","snapItem","release","group","makeArray","sort","min","_zIndex","accept","activeClass","greedy","hoverClass","tolerance","isover","isout","proportions","droppables","_activate","_deactivate","_over","_out","_drop","custom","childrenIntersection","not","intersect","droppable","toleranceMode","absolute","draggableLeft","clickOffset","draggableTop","default","droppablesLoop","greedyChild","intersects","parentInstance","alsoResize","animateDuration","animateEasing","aspectRatio","autoHide","ghost","handles","maxHeight","maxWidth","minWidth","_aspectRatio","originalElement","_proportionallyResizeElements","wrap","elementIsWrapper","marginLeft","marginTop","marginRight","marginBottom","originalResizeStyle","zoom","_proportionallyResize","se","sw","ne","nw","trim","hname","append","_renderAxis","show","padWrapper","padPos","_handles","mouseover","resizing","hide","hover","_destroy","exp","wrapper","after","iniPos","documentScroll","_renderProxy","curleft","num","curtop","originalSize","sizeDiff","originalMousePosition","_propagate","smp","dx","dy","_change","_updateVirtualBoundaries","shiftKey","_updateRatio","_respectSize","_updateCache","pr","ista","soffseth","soffsetw","forceAspectRatio","pMinWidth","pMaxWidth","pMinHeight","pMaxHeight","isNumber","Infinity","_vBoundaries","cpos","csize","ismaxw","ismaxh","isminw","isminh","dw","dh","cw","ch","isNotwh","prel","borderDif","elementOffset","ie6","ie6offset","pxyoffset","cs","resizable","_store","resize","os","op","delta","_alsoResize","sum","nodeType","duration","easing","step","oc","containerElement","containerOffset","containerPosition","parentData","containerSize","cp","pRatio","cop","woset","hoset","isParent","isOffsetRelative","ho","ox","oy","autoRefresh","dragged","selectees","refresh","$this","$element","startselected","selected","hasClass","selecting","unselecting","opos","clientX","clientY","selectee","metaKey","ctrlKey","doSelect","tmp","hit","unselected","selectable","ready","connectWith","dropOnEmpty","forcePlaceholderSize","forceHelperSize","floating","overrideHandle","that","reverting","_refreshItems","validHandle","_removeCurrentsFromItems","noActivation","currentContainer","domPosition","prev","_createPlaceholder","_storedCursor","_storedOpacity","_storedZIndex","_preserveHelperProportions","containers","dragging","lastPositionAbs","itemElement","intersection","_intersectsWithPointer","direction","_intersectsWithSides","_rearrange","_contactContainers","cur","_storedCSS","_noFinalSort","prepend","serialize","_getItemsAsjQuery","connected","str","res","attribute","expression","toArray","ret","dyClick","dxClick","isOverElement","forcePointerForContainers","isOverElementHeight","isOverElementWidth","verticalDirection","_getDragVerticalDirection","horizontalDirection","_getDragHorizontalDirection","isOverBottomHalf","isOverRightHalf","_connectWith","queries","targetData","_queries","queriesLength","fast","toleranceElement","refreshContainers","visibility","update","container","innermostContainer","innermostIndex","dist","itemWithLeastDistance","hardRefresh","nextSibling","counter","delayedTriggers","before","sender","effects","getRGB","color","result","colors","getColor","getElementStyles","camelCase","newStyle","len","all","letter","filterStyles","styles","shorthandStyles","styleDifference","oldStyle","diff","_","_normalizeArguments","effect","speed","fx","speeds","off","_default","standardSpeed","colorInit","end","aqua","azure","beige","black","blue","brown","cyan","darkblue","darkcyan","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkviolet","fuchsia","gold","green","indigo","khaki","lightblue","lightcyan","lightgreen","lightgrey","lightpink","lightyellow","lime","magenta","maroon","navy","olive","orange","pink","purple","violet","red","silver","white","yellow","transparent","classAnimationActions","borderBottom","borderColor","borderLeft","borderRight","borderTop","animateClass","queue","originalStyleAttr","originalStyle","action","dequeue","_addClass","classNames","_removeClass","_toggleClass","toggleClass","force","toggle","switchClass","save","restore","setMode","mode","getBaseline","origin","original","createWrapper","props","float","fontSize","active","activeElement","removeWrapper","replaceWith","setTransition","factor","unit","cssUnit","args2","effectMethod","_show","_hide","__toggle","val","jswing","swing","def","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","PI","easeOutSine","sin","easeInOutSine","easeInExpo","pow","easeOutExpo","easeInOutExpo","easeInCirc","sqrt","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","blind","overflow","ref","animation","bounce","times","motion","animation1","animation2","clip","explode","rows","pieces","cells","floor","fade","fold","horizFirst","widthFirst","percent","highlight","pulsate","isVisible","animateTo","puff","from","scale","to","props1","props2","cProps","vProps","hProps","baseline","child","c_original","shake","slide","transfer","endPosition","startPosition","animated","autoHeight","clearStyle","collapsible","fillSpace","header","icons","headerSelected","navigation","navigationFilter","location","running","children","headers","next","_findActive","_createIcons","_keydown","aria-expanded","aria-selected","_clickHandler","prependTo","_destroyIcons","contents","fillHeight","activate","altKey","currentIndex","index","toFocus","defOverflow","toHide","newHeader","oldHeader","newContent","oldContent","toShow","_toggle","clicked","currentTarget","clickedIsActive","down","_completed","animOptions","proxied","proxiedDuration","animations","accordion","blur","additions","paddingTop","paddingBottom","originalWidth","percentDone","showProps","hideProps","fxAttrs","parts","now","settings","bounceslide","requestIndex","autoFocus","minLength","my","at","collision","source","pending","suppressKeyPress","doc","ownerDocument","isMultiLine","role","aria-autocomplete","aria-haspopup","_move","_keyEvent","menu","term","close","clearTimeout","searching","selectedItem","search","previous","closing","_initSource","mousedown","menuElement","one","bgiframe","beforeunloadHandler","xhr","array","request","response","autocomplete","ajax","dataType","success","status","_search","_response","content","__response","_normalize","_suggest","deactivate","label","ul","empty","_renderMenu","_resizeMenu","of","_renderItem","text","last","keyEvent","escapeRegex","matcher","RegExp","grep","aria-activedescendant","mouseenter","mouseleave","elementHeight","move","prevAll","nextAll","nextPage","previousPage","lastActive","startXPos","startYPos","clickDragged","baseClasses","typeClasses","formResetHandler","buttons","radioGroup","radio","form","radios","primary","secondary","_determineButtonType","hasTitle","buttonElement","toggleButton","html","checked","keyup","_resetButton","ancestor","labelSelector","siblings","isDisabled","buttonText","multipleIcons","buttonClasses","rtl","Datepicker","debug","_curInst","_disabledInputs","_datepickerShowing","_inDialog","_mainDivId","_inlineClass","_appendClass","_triggerClass","_dialogClass","_disableClass","_unselectableClass","_currentClass","_dayOverClass","regional","closeText","prevText","nextText","currentText","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","weekHeader","dateFormat","firstDay","isRTL","showMonthAfterYear","yearSuffix","_defaults","showOn","showAnim","showOptions","defaultDate","appendText","buttonImage","buttonImageOnly","hideIfNoPrevNext","navigationAsDateFormat","gotoCurrent","changeMonth","changeYear","yearRange","showOtherMonths","selectOtherMonths","showWeek","calculateWeek","iso8601Week","shortYearCutoff","minDate","maxDate","beforeShowDay","beforeShow","onSelect","onChangeMonthYear","onClose","numberOfMonths","showCurrentAtPos","stepMonths","stepBigMonths","altField","altFormat","constrainInput","showButtonPanel","autoSize","dpDiv","bindHover","datepicker","_isDisabledDatepicker","instActive","inline","extendRemove","PROP_NAME","dpuuid","Date","getTime","markerClassName","maxRows","log","console","_widgetDatepicker","setDefaults","_attachDatepicker","inlineSettings","attrName","attrValue","getAttribute","eval","err","uuid","_newInst","_connectDatepicker","_inlineDatepicker","selectedDay","selectedMonth","selectedYear","drawMonth","drawYear","_attachments","keydown","_doKeyDown","keypress","_doKeyPress","_doKeyUp","_get","_autoSize","_disableDatepicker","_showDatepicker","alt","title","_lastInput","_hideDatepicker","date","findMax","names","maxI","setMonth","setDate","getDay","_formatDate","divSpan","_setDate","_getDefaultDate","_updateDatepicker","_updateAlternate","_dialogDatepicker","_dialogInst","_dialogInput","_pos","browserWidth","clientWidth","browserHeight","clientHeight","scrollX","scrollY","blockUI","_destroyDatepicker","$target","_enableDatepicker","_getInst","_optionDatepicker","_getDateDatepicker","_getMinMaxDate","_changeDatepicker","_refreshDatepicker","_setDateDatepicker","noDefault","_setDateFromField","_getDate","handled","sel","_selectDay","dateStr","_adjustDate","_clearDate","_gotoToday","stopPropagation","chars","_possibleChars","chr","fromCharCode","charCode","lastVal","parseDate","_getFormatConfig","beforeShowSettings","_findPos","isFixed","_checkOffset","postProcess","cover","borders","_getBorders","_generateHTML","_attachHandlers","numMonths","_getNumberOfMonths","cols","yearshtml","origyearshtml","convert","thin","medium","thick","dpWidth","dpHeight","inputWidth","inputHeight","viewWidth","viewHeight","_tidyDialog","unblockUI","_checkExternalClick","period","_adjustInstDate","currentDay","currentMonth","currentYear","getDate","getMonth","getFullYear","_notifyChange","_selectMonthYear","selectedIndex","month","year","td","_selectDate","formatDate","noWeekends","day","checkDate","time","format","doy","literal","lookAhead","iFormat","getNumber","isDoubled","digits","substring","iValue","getName","shortNames","longNames","pair","substr","checkLiteral","_ticksTo1970","dim","_getDaysInMonth","_daylightSavingAdjust","ATOM","COOKIE","ISO_8601","RFC_822","RFC_850","RFC_1036","RFC_1123","RFC_2822","RSS","TICKS","TIMESTAMP","W3C","formatNumber","formatName","output","getYear","dates","_restrictMinMax","_determineDate","newDate","pattern","setHours","setMinutes","setSeconds","setMilliseconds","getHours","noChange","clear","origMonth","origYear","handler","today","selectDay","selectMonth","selectYear","isMultiMonth","currentDate","maxDraw","_canAdjustMonth","gotoDate","controls","buttonPanel","_isInRange","row","col","selectedDate","cornerClass","calender","_generateMonthYearHeader","thead","dow","daysInMonth","leadDays","_getFirstDayOfMonth","curRows","ceil","numRows","printDate","dRow","tbody","daySettings","otherMonth","unselectable","monthHtml","inMinYear","inMaxYear","years","thisYear","determineYear","endYear","onChange","minMax","curYear","curMonth","initialized","otherArgs","uiDialogClasses","sizeRelatedOptions","resizableRelatedOptions","attrFn","autoOpen","closeOnEscape","dialogClass","modal","using","topOffset","originalTitle","titleId","dialog","getTitleId","uiDialog","aria-labelledby","moveToTop","uiDialogTitlebar","uiDialogTitlebarClose","uiDialogTitlebarCloseText","beforeclose","beforeClose","_makeDraggable","_makeResizable","_createButtons","_isOpen","open","overlay","maxZ","thisZ","isOpen","saveScroll","$el","_size","_position","tabbables","hasButtons","uiDialogButtonPane","uiButtonSet","filteredUi","heightBeforeDrag","resizeHandles","_minHeight","myAt","offsetPosition","resizableOptions","isDraggable","isResizable","nonContentHeight","minContentHeight","create","instances","oldInstances","events","inArray","$overlays","horizontalPositions","verticalPositions","center","_offset","targetWidth","targetHeight","basePosition","targetElem","collisionPosition","elemWidth","elemHeight","collisionWidth","collisionHeight","fractions","dir","fit","flip","myOffset","atOffset","setOffset","curElem","curOffset","curTop","curLeft","testElement","testElementParent","testElementStyle","offsetTotal","aria-valuemin","aria-valuemax","aria-valuenow","_value","valueDiv","oldValue","_refreshValue","newValue","_percentage","percentage","toFixed","progressbar","orientation","range","values","existingHandles","handleCount","_keySliding","_mouseSliding","_animateOff","_handleIndex","_detectOrientation","_valueMin","curVal","newVal","_start","_valueMax","_trimAlignValue","_slide","_stop","normValue","closestHandle","mouseOverHandle","elementSize","_normValueFromMouse","thisDistance","_clickOffset","pixelTotal","pixelMouse","percentMouse","valueTotal","valueMouse","uiHash","otherVal","newValues","allowed","vals","_values","valsLength","valModStep","alignValue","valPercent","lastValPercent","valueMin","valueMax","oRange","_set","slider","getNextTabId","tabId","getNextListId","listId","ajaxOptions","cookie","idPrefix","panelTemplate","spinner","tabTemplate","_tabify","_tabId","_sanitizeSelector","hash","_cookie","_ui","tab","panel","anchors","_cleanup","lis","init","resetStyle","fragmentId","panels","baseEl","hrefBase","$panel","insertAfter","unique","li","addState","state","removeState","hideFx","showFx","showTab","$show","hideTab","$hide","$li","_getIndex","prefix","span","tabs","rotation","rotate","ms","continuing","_rotate","_unrotate","Error","WebkitTransition","MozTransition","OTransition","transition","emulateTransitionEnd","on","alert","Constructor","noConflict","DEFAULTS","isLoading","loadingText","setState","resetText","proxy","$indicators","paused","sliding","interval","$active","$items","pause","cycle","clearInterval","setInterval","getActiveIndex","relatedTarget","carousel","transitioning","$parent","dimension","collapse","dropdown","$backdrop","isShown","remote","backdrop","keyboard","escape","enforceFocus","hideModal","removeBackdrop","enabled","hoverState","placement","template","getOptions","enter","leave","_options","fixTitle","getDefaults","getDelegateOptions","hasContent","tip","setContent","detach","getPosition","getCalculatedOffset","applyPlacement","$tip","replaceArrow","arrow","getTitle","getBoundingClientRect","$arrow","validate","toggleEnabled","tooltip","getContent","popover","process","$body","$scrollElement","offsets","targets","activeTarget","isWindow","parentsUntil","scrollspy","$window","checkPosition","checkPositionWithEventLoop","affixed","unpin","pinnedOffset","RESET","getPinnedOffset","affix","offsetBottom"],"mappings":"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","file":"head.js","sourcesContent":["/*!\r\n * Bootstrap v3.1.0 (http://getbootstrap.com)\r\n * Copyright 2011-2014 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n */\r\nif(\"undefined\"==typeof jQuery)throw new Error(\"Bootstrap requires jQuery\");+function(a){\"use strict\";function b(){var a=document.createElement(\"bootstrap\"),b={WebkitTransition:\"webkitTransitionEnd\",MozTransition:\"transitionend\",OTransition:\"oTransitionEnd otransitionend\",transition:\"transitionend\"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){\"use strict\";var b='[data-dismiss=\"alert\"]',c=function(c){a(c).on(\"click\",b,this.close)};c.prototype.close=function(b){function c(){f.trigger(\"closed.bs.alert\").remove()}var d=a(this),e=d.attr(\"data-target\");e||(e=d.attr(\"href\"),e=e&&e.replace(/.*(?=#[^\\s]*$)/,\"\"));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass(\"alert\")?d:d.parent()),f.trigger(b=a.Event(\"close.bs.alert\")),b.isDefaultPrevented()||(f.removeClass(\"in\"),a.support.transition&&f.hasClass(\"fade\")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data(\"bs.alert\");e||d.data(\"bs.alert\",e=new c(this)),\"string\"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on(\"click.bs.alert.data-api\",b,c.prototype.close)}(jQuery),+function(a){\"use strict\";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.isLoading=!1};b.DEFAULTS={loadingText:\"loading...\"},b.prototype.setState=function(b){var c=\"disabled\",d=this.$element,e=d.is(\"input\")?\"val\":\"html\",f=d.data();b+=\"Text\",f.resetText||d.data(\"resetText\",d[e]()),d[e](f[b]||this.options[b]),setTimeout(a.proxy(function(){\"loadingText\"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},b.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle=\"buttons\"]');if(b.length){var c=this.$element.find(\"input\");\"radio\"==c.prop(\"type\")&&(c.prop(\"checked\")&&this.$element.hasClass(\"active\")?a=!1:b.find(\".active\").removeClass(\"active\")),a&&c.prop(\"checked\",!this.$element.hasClass(\"active\")).trigger(\"change\")}a&&this.$element.toggleClass(\"active\")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data(\"bs.button\"),f=\"object\"==typeof c&&c;e||d.data(\"bs.button\",e=new b(this,f)),\"toggle\"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on(\"click.bs.button.data-api\",\"[data-toggle^=button]\",function(b){var c=a(b.target);c.hasClass(\"btn\")||(c=c.closest(\".btn\")),c.button(\"toggle\"),b.preventDefault()})}(jQuery),+function(a){\"use strict\";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(\".carousel-indicators\"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,\"hover\"==this.options.pause&&this.$element.on(\"mouseenter\",a.proxy(this.pause,this)).on(\"mouseleave\",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:\"hover\",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(\".item.active\"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one(\"slid.bs.carousel\",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?\"next\":\"prev\",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(\".next, .prev\").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide(\"next\")},b.prototype.prev=function(){return this.sliding?void 0:this.slide(\"prev\")},b.prototype.slide=function(b,c){var d=this.$element.find(\".item.active\"),e=c||d[b](),f=this.interval,g=\"next\"==b?\"left\":\"right\",h=\"next\"==b?\"first\":\"last\",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(\".item\")[h]()}if(e.hasClass(\"active\"))return this.sliding=!1;var j=a.Event(\"slide.bs.carousel\",{relatedTarget:e[0],direction:g});return this.$element.trigger(j),j.isDefaultPrevented()?void 0:(this.sliding=!0,f&&this.pause(),this.$indicators.length&&(this.$indicators.find(\".active\").removeClass(\"active\"),this.$element.one(\"slid.bs.carousel\",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass(\"active\")})),a.support.transition&&this.$element.hasClass(\"slide\")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(\" \")).addClass(\"active\"),d.removeClass([\"active\",g].join(\" \")),i.sliding=!1,setTimeout(function(){i.$element.trigger(\"slid.bs.carousel\")},0)}).emulateTransitionEnd(1e3*d.css(\"transition-duration\").slice(0,-1))):(d.removeClass(\"active\"),e.addClass(\"active\"),this.sliding=!1,this.$element.trigger(\"slid.bs.carousel\")),f&&this.cycle(),this)};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data(\"bs.carousel\"),f=a.extend({},b.DEFAULTS,d.data(),\"object\"==typeof c&&c),g=\"string\"==typeof c?c:f.slide;e||d.data(\"bs.carousel\",e=new b(this,f)),\"number\"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on(\"click.bs.carousel.data-api\",\"[data-slide], [data-slide-to]\",function(b){var c,d=a(this),e=a(d.attr(\"data-target\")||(c=d.attr(\"href\"))&&c.replace(/.*(?=#[^\\s]+$)/,\"\")),f=a.extend({},e.data(),d.data()),g=d.attr(\"data-slide-to\");g&&(f.interval=!1),e.carousel(f),(g=d.attr(\"data-slide-to\"))&&e.data(\"bs.carousel\").to(g),b.preventDefault()}),a(window).on(\"load\",function(){a('[data-ride=\"carousel\"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){\"use strict\";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass(\"width\");return a?\"width\":\"height\"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass(\"in\")){var b=a.Event(\"show.bs.collapse\");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find(\"> .panel > .in\");if(c&&c.length){var d=c.data(\"bs.collapse\");if(d&&d.transitioning)return;c.collapse(\"hide\"),d||c.data(\"bs.collapse\",null)}var e=this.dimension();this.$element.removeClass(\"collapse\").addClass(\"collapsing\")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass(\"collapsing\").addClass(\"collapse in\")[e](\"auto\"),this.transitioning=0,this.$element.trigger(\"shown.bs.collapse\")};if(!a.support.transition)return f.call(this);var g=a.camelCase([\"scroll\",e].join(\"-\"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass(\"in\")){var b=a.Event(\"hide.bs.collapse\");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass(\"collapsing\").removeClass(\"collapse\").removeClass(\"in\"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger(\"hidden.bs.collapse\").removeClass(\"collapsing\").addClass(\"collapse\")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass(\"in\")?\"hide\":\"show\"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data(\"bs.collapse\"),f=a.extend({},b.DEFAULTS,d.data(),\"object\"==typeof c&&c);!e&&f.toggle&&\"show\"==c&&(c=!c),e||d.data(\"bs.collapse\",e=new b(this,f)),\"string\"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on(\"click.bs.collapse.data-api\",\"[data-toggle=collapse]\",function(b){var c,d=a(this),e=d.attr(\"data-target\")||b.preventDefault()||(c=d.attr(\"href\"))&&c.replace(/.*(?=#[^\\s]+$)/,\"\"),f=a(e),g=f.data(\"bs.collapse\"),h=g?\"toggle\":d.data(),i=d.attr(\"data-parent\"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent=\"'+i+'\"]').not(d).addClass(\"collapsed\"),d[f.hasClass(\"in\")?\"addClass\":\"removeClass\"](\"collapsed\")),f.collapse(h)})}(jQuery),+function(a){\"use strict\";function b(b){a(d).remove(),a(e).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass(\"open\")&&(d.trigger(b=a.Event(\"hide.bs.dropdown\",e)),b.isDefaultPrevented()||d.removeClass(\"open\").trigger(\"hidden.bs.dropdown\",e))})}function c(b){var c=b.attr(\"data-target\");c||(c=b.attr(\"href\"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\\s]*$)/,\"\"));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=\".dropdown-backdrop\",e=\"[data-toggle=dropdown]\",f=function(b){a(b).on(\"click.bs.dropdown\",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(\".disabled, :disabled\")){var f=c(e),g=f.hasClass(\"open\");if(b(),!g){\"ontouchstart\"in document.documentElement&&!f.closest(\".navbar-nav\").length&&a('
').insertAfter(a(this)).on(\"click\",b);var h={relatedTarget:this};if(f.trigger(d=a.Event(\"show.bs.dropdown\",h)),d.isDefaultPrevented())return;f.toggleClass(\"open\").trigger(\"shown.bs.dropdown\",h),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(\".disabled, :disabled\")){var f=c(d),g=f.hasClass(\"open\");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=\" li:not(.divider):visible a\",i=f.find(\"[role=menu]\"+h+\", [role=listbox]\"+h);if(i.length){var j=i.index(i.filter(\":focus\"));38==b.keyCode&&j>0&&j--,40==b.keyCode&&j').appendTo(document.body),this.$element.on(\"click.dismiss.bs.modal\",a.proxy(function(a){a.target===a.currentTarget&&(\"static\"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass(\"in\"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass(\"in\"),a.support.transition&&this.$element.hasClass(\"fade\")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data(\"bs.modal\"),g=a.extend({},b.DEFAULTS,e.data(),\"object\"==typeof c&&c);f||e.data(\"bs.modal\",f=new b(this,g)),\"string\"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on(\"click.bs.modal.data-api\",'[data-toggle=\"modal\"]',function(b){var c=a(this),d=c.attr(\"href\"),e=a(c.attr(\"data-target\")||d&&d.replace(/.*(?=#[^\\s]+$)/,\"\")),f=e.data(\"bs.modal\")?\"toggle\":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());c.is(\"a\")&&b.preventDefault(),e.modal(f,this).one(\"hide\",function(){c.is(\":visible\")&&c.focus()})}),a(document).on(\"show.bs.modal\",\".modal\",function(){a(document.body).addClass(\"modal-open\")}).on(\"hidden.bs.modal\",\".modal\",function(){a(document.body).removeClass(\"modal-open\")})}(jQuery),+function(a){\"use strict\";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init(\"tooltip\",a,b)};b.DEFAULTS={animation:!0,placement:\"top\",selector:!1,template:'
',trigger:\"hover focus\",title:\"\",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(\" \"),f=e.length;f--;){var g=e[f];if(\"click\"==g)this.$element.on(\"click.\"+this.type,this.options.selector,a.proxy(this.toggle,this));else if(\"manual\"!=g){var h=\"hover\"==g?\"mouseenter\":\"focusin\",i=\"hover\"==g?\"mouseleave\":\"focusout\";this.$element.on(h+\".\"+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+\".\"+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:\"manual\",selector:\"\"}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&\"number\"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data(\"bs.\"+this.type);return clearTimeout(c.timeout),c.hoverState=\"in\",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){\"in\"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data(\"bs.\"+this.type);return clearTimeout(c.timeout),c.hoverState=\"out\",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){\"out\"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},b.prototype.show=function(){var b=a.Event(\"show.bs.\"+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this,d=this.tip();this.setContent(),this.options.animation&&d.addClass(\"fade\");var e=\"function\"==typeof this.options.placement?this.options.placement.call(this,d[0],this.$element[0]):this.options.placement,f=/\\s?auto?\\s?/i,g=f.test(e);g&&(e=e.replace(f,\"\")||\"top\"),d.detach().css({top:0,left:0,display:\"block\"}).addClass(e),this.options.container?d.appendTo(this.options.container):d.insertAfter(this.$element);var h=this.getPosition(),i=d[0].offsetWidth,j=d[0].offsetHeight;if(g){var k=this.$element.parent(),l=e,m=document.documentElement.scrollTop||document.body.scrollTop,n=\"body\"==this.options.container?window.innerWidth:k.outerWidth(),o=\"body\"==this.options.container?window.innerHeight:k.outerHeight(),p=\"body\"==this.options.container?0:k.offset().left;e=\"bottom\"==e&&h.top+h.height+j-m>o?\"top\":\"top\"==e&&h.top-m-j<0?\"bottom\":\"right\"==e&&h.right+i>n?\"left\":\"left\"==e&&h.left-i

'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(\".popover-title\")[this.options.html?\"html\":\"text\"](b),a.find(\".popover-content\")[this.options.html?\"string\"==typeof c?\"html\":\"append\":\"text\"](c),a.removeClass(\"fade top bottom left right in\"),a.find(\".popover-title\").html()||a.find(\".popover-title\").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr(\"data-content\")||(\"function\"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(\".arrow\")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data(\"bs.popover\"),f=\"object\"==typeof c&&c;(e||\"destroy\"!=c)&&(e||d.data(\"bs.popover\",e=new b(this,f)),\"string\"==typeof c&&e[c]())})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){\"use strict\";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(a(c).is(\"body\")?window:c),this.$body=a(\"body\"),this.$scrollElement=this.$element.on(\"scroll.bs.scroll-spy.data-api\",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr(\"href\"))&&e.replace(/.*(?=#[^\\s]+$)/,\"\")||\"\")+\" .nav li > a\",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?\"offset\":\"position\";this.offsets=a([]),this.targets=a([]);{var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data(\"target\")||d.attr(\"href\"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(\":visible\")&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})}},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,\".active\").removeClass(\"active\");var c=this.selector+'[data-target=\"'+b+'\"],'+this.selector+'[href=\"'+b+'\"]',d=a(c).parents(\"li\").addClass(\"active\");d.parent(\".dropdown-menu\").length&&(d=d.closest(\"li.dropdown\").addClass(\"active\")),d.trigger(\"activate.bs.scrollspy\")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data(\"bs.scrollspy\"),f=\"object\"==typeof c&&c;e||d.data(\"bs.scrollspy\",e=new b(this,f)),\"string\"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on(\"load\",function(){a('[data-spy=\"scroll\"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){\"use strict\";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest(\"ul:not(.dropdown-menu)\"),d=b.data(\"target\");if(d||(d=b.attr(\"href\"),d=d&&d.replace(/.*(?=#[^\\s]*$)/,\"\")),!b.parent(\"li\").hasClass(\"active\")){var e=c.find(\".active:last a\")[0],f=a.Event(\"show.bs.tab\",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent(\"li\"),c),this.activate(g,g.parent(),function(){b.trigger({type:\"shown.bs.tab\",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass(\"active\").find(\"> .dropdown-menu > .active\").removeClass(\"active\"),b.addClass(\"active\"),g?(b[0].offsetWidth,b.addClass(\"in\")):b.removeClass(\"fade\"),b.parent(\".dropdown-menu\")&&b.closest(\"li.dropdown\").addClass(\"active\"),d&&d()}var f=c.find(\"> .active\"),g=d&&a.support.transition&&f.hasClass(\"fade\");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass(\"in\")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data(\"bs.tab\");e||d.data(\"bs.tab\",e=new b(this)),\"string\"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on(\"click.bs.tab.data-api\",'[data-toggle=\"tab\"], [data-toggle=\"pill\"]',function(b){b.preventDefault(),a(this).tab(\"show\")})}(jQuery),+function(a){\"use strict\";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on(\"scroll.bs.affix.data-api\",a.proxy(this.checkPosition,this)).on(\"click.bs.affix.data-api\",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};b.RESET=\"affix affix-top affix-bottom\",b.DEFAULTS={offset:0},b.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(b.RESET).addClass(\"affix\");var a=this.$window.scrollTop(),c=this.$element.offset();return this.pinnedOffset=c.top-a},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(\":visible\")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;\"top\"==this.affixed&&(e.top+=d),\"object\"!=typeof f&&(h=g=f),\"function\"==typeof g&&(g=f.top(this.$element)),\"function\"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?\"bottom\":null!=g&&g>=d?\"top\":!1;if(this.affixed!==i){this.unpin&&this.$element.css(\"top\",\"\");var j=\"affix\"+(i?\"-\"+i:\"\"),k=a.Event(j+\".bs.affix\");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin=\"bottom\"==i?this.getPinnedOffset():null,this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace(\"affix\",\"affixed\"))),\"bottom\"==i&&this.$element.offset({top:c-h-this.$element.height()}))}}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data(\"bs.affix\"),f=\"object\"==typeof c&&c;e||d.data(\"bs.affix\",e=new b(this,f)),\"string\"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on(\"load\",function(){a('[data-spy=\"affix\"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery);","/*!\r\n * jQuery Browser Plugin 0.1.0\r\n * https://github.com/gabceb/jquery-browser-plugin\r\n *\r\n * Original jquery-browser code Copyright 2005, 2015 jQuery Foundation, Inc. and other contributors\r\n * http://jquery.org/license\r\n *\r\n * Modifications Copyright 2015 Gabriel Cebrian\r\n * https://github.com/gabceb\r\n *\r\n * Released under the MIT license\r\n *\r\n * Date: 05-07-2015\r\n */\r\n/*global window: false */\r\n\r\n(function (factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define(['jquery'], function ($) {\r\n return factory($);\r\n });\r\n } else if (typeof module === 'object' && typeof module.exports === 'object') {\r\n // Node-like environment\r\n module.exports = factory(require('jquery'));\r\n } else {\r\n // Browser globals\r\n factory(window.jQuery);\r\n }\r\n}(function(jQuery) {\r\n \"use strict\";\r\n\r\n function uaMatch( ua ) {\r\n // If an UA is not provided, default to the current browser UA.\r\n if ( ua === undefined ) {\r\n ua = window.navigator.userAgent;\r\n }\r\n ua = ua.toLowerCase();\r\n\r\n var match = /(edge)\\/([\\w.]+)/.exec( ua ) ||\r\n /(opr)[\\/]([\\w.]+)/.exec( ua ) ||\r\n /(chrome)[ \\/]([\\w.]+)/.exec( ua ) ||\r\n /(iemobile)[\\/]([\\w.]+)/.exec( ua ) ||\r\n /(version)(applewebkit)[ \\/]([\\w.]+).*(safari)[ \\/]([\\w.]+)/.exec( ua ) ||\r\n /(webkit)[ \\/]([\\w.]+).*(version)[ \\/]([\\w.]+).*(safari)[ \\/]([\\w.]+)/.exec( ua ) ||\r\n /(webkit)[ \\/]([\\w.]+)/.exec( ua ) ||\r\n /(opera)(?:.*version|)[ \\/]([\\w.]+)/.exec( ua ) ||\r\n /(msie) ([\\w.]+)/.exec( ua ) ||\r\n ua.indexOf(\"trident\") >= 0 && /(rv)(?::| )([\\w.]+)/.exec( ua ) ||\r\n ua.indexOf(\"compatible\") < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec( ua ) ||\r\n [];\r\n\r\n var platform_match = /(ipad)/.exec( ua ) ||\r\n /(ipod)/.exec( ua ) ||\r\n /(windows phone)/.exec( ua ) ||\r\n /(iphone)/.exec( ua ) ||\r\n /(kindle)/.exec( ua ) ||\r\n /(silk)/.exec( ua ) ||\r\n /(android)/.exec( ua ) ||\r\n /(win)/.exec( ua ) ||\r\n /(mac)/.exec( ua ) ||\r\n /(linux)/.exec( ua ) ||\r\n /(cros)/.exec( ua ) ||\r\n /(playbook)/.exec( ua ) ||\r\n /(bb)/.exec( ua ) ||\r\n /(blackberry)/.exec( ua ) ||\r\n [];\r\n\r\n var browser = {},\r\n matched = {\r\n browser: match[ 5 ] || match[ 3 ] || match[ 1 ] || \"\",\r\n version: match[ 2 ] || match[ 4 ] || \"0\",\r\n versionNumber: match[ 4 ] || match[ 2 ] || \"0\",\r\n platform: platform_match[ 0 ] || \"\"\r\n };\r\n\r\n if ( matched.browser ) {\r\n browser[ matched.browser ] = true;\r\n browser.version = matched.version;\r\n browser.versionNumber = parseInt(matched.versionNumber, 10);\r\n }\r\n\r\n if ( matched.platform ) {\r\n browser[ matched.platform ] = true;\r\n }\r\n\r\n // These are all considered mobile platforms, meaning they run a mobile browser\r\n if ( browser.android || browser.bb || browser.blackberry || browser.ipad || browser.iphone ||\r\n browser.ipod || browser.kindle || browser.playbook || browser.silk || browser[ \"windows phone\" ]) {\r\n browser.mobile = true;\r\n }\r\n\r\n // These are all considered desktop platforms, meaning they run a desktop browser\r\n if ( browser.cros || browser.mac || browser.linux || browser.win ) {\r\n browser.desktop = true;\r\n }\r\n\r\n // Chrome, Opera 15+ and Safari are webkit based browsers\r\n if ( browser.chrome || browser.opr || browser.safari ) {\r\n browser.webkit = true;\r\n }\r\n\r\n // IE11 has a new token so we will assign it msie to avoid breaking changes\r\n if ( browser.rv || browser.iemobile) {\r\n var ie = \"msie\";\r\n\r\n matched.browser = ie;\r\n browser[ie] = true;\r\n }\r\n\r\n // Edge is officially known as Microsoft Edge, so rewrite the key to match\r\n if ( browser.edge ) {\r\n delete browser.edge;\r\n var msedge = \"msedge\";\r\n\r\n matched.browser = msedge;\r\n browser[msedge] = true;\r\n }\r\n\r\n // Blackberry browsers are marked as Safari on BlackBerry\r\n if ( browser.safari && browser.blackberry ) {\r\n var blackberry = \"blackberry\";\r\n\r\n matched.browser = blackberry;\r\n browser[blackberry] = true;\r\n }\r\n\r\n // Playbook browsers are marked as Safari on Playbook\r\n if ( browser.safari && browser.playbook ) {\r\n var playbook = \"playbook\";\r\n\r\n matched.browser = playbook;\r\n browser[playbook] = true;\r\n }\r\n\r\n // BB10 is a newer OS version of BlackBerry\r\n if ( browser.bb ) {\r\n var bb = \"blackberry\";\r\n\r\n matched.browser = bb;\r\n browser[bb] = true;\r\n }\r\n\r\n // Opera 15+ are identified as opr\r\n if ( browser.opr ) {\r\n var opera = \"opera\";\r\n\r\n matched.browser = opera;\r\n browser[opera] = true;\r\n }\r\n\r\n // Stock Android browsers are marked as Safari on Android.\r\n if ( browser.safari && browser.android ) {\r\n var android = \"android\";\r\n\r\n matched.browser = android;\r\n browser[android] = true;\r\n }\r\n\r\n // Kindle browsers are marked as Safari on Kindle\r\n if ( browser.safari && browser.kindle ) {\r\n var kindle = \"kindle\";\r\n\r\n matched.browser = kindle;\r\n browser[kindle] = true;\r\n }\r\n\r\n // Kindle Silk browsers are marked as Safari on Kindle\r\n if ( browser.safari && browser.silk ) {\r\n var silk = \"silk\";\r\n\r\n matched.browser = silk;\r\n browser[silk] = true;\r\n }\r\n\r\n // Assign the name and platform variable\r\n browser.name = matched.browser;\r\n browser.platform = matched.platform;\r\n return browser;\r\n }\r\n\r\n // Run the matching process, also assign the function to the returned object\r\n // for manual, jQuery-free use if desired\r\n window.jQBrowser = uaMatch( window.navigator.userAgent );\r\n window.jQBrowser.uaMatch = uaMatch;\r\n\r\n // Only assign to jQuery.browser if jQuery is loaded\r\n if ( jQuery ) {\r\n jQuery.browser = window.jQBrowser;\r\n }\r\n\r\n return window.jQBrowser;\r\n}));\r\n","/* Modernizr 2.6.1 (Custom Build) | MIT & BSD\r\n * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load\r\n */\r\n;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+\";\")+(b||\"\"))}function F(a,b){return typeof a===b}function G(a,b){return!!~(\"\"+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,\"-\")&&j[e]!==c)return b==\"pfx\"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,\"function\")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+\" \"+p.join(d+\" \")+d).split(\" \");return F(b,\"string\")||F(b,\"undefined\")?H(e,b):(e=(a+\" \"+q.join(d+\" \")+d).split(\" \"),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d',a,\"\"].join(\"\"),k.id=h,(l?k:m).innerHTML+=f,m.appendChild(k),l||(m.style.background=\"\",g.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y(\"@media \"+b+\" { #\"+h+\" { position: absolute; } }\",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)[\"position\"]==\"absolute\"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||\"div\"),d=\"on\"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement(\"div\")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,\"\"),f=F(e[d],\"function\"),F(e[d],\"undefined\")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:\"input\",change:\"input\",submit:\"form\",reset:\"form\",error:\"img\",load:\"img\",abort:\"img\"};return d}(),B={}.hasOwnProperty,C;!F(B,\"undefined\")&&!F(B.call,\"undefined\")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],\"undefined\")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!=\"function\")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J(\"flexWrap\")},s.canvas=function(){var a=b.createElement(\"canvas\");return!!a.getContext&&!!a.getContext(\"2d\")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement(\"canvas\").getContext(\"2d\").fillText,\"function\")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return\"ontouchstart\"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y([\"@media (\",n.join(\"touch-enabled),(\"),h,\")\",\"{#modernizr{top:9px;position:absolute}}\"].join(\"\"),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return\"geolocation\"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J(\"indexedDB\",a)},s.hashchange=function(){return A(\"hashchange\",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement(\"div\");return\"draggable\"in a||\"ondragstart\"in a&&\"ondrop\"in a},s.websockets=function(){return\"WebSocket\"in a||\"MozWebSocket\"in a},s.rgba=function(){return D(\"background-color:rgba(150,255,150,.5)\"),G(j.backgroundColor,\"rgba\")},s.hsla=function(){return D(\"background-color:hsla(120,40%,100%,.5)\"),G(j.backgroundColor,\"rgba\")||G(j.backgroundColor,\"hsla\")},s.multiplebgs=function(){return D(\"background:url(https://),url(https://),red url(https://)\"),/(url\\s*\\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J(\"backgroundSize\")},s.borderimage=function(){return J(\"borderImage\")},s.borderradius=function(){return J(\"borderRadius\")},s.boxshadow=function(){return J(\"boxShadow\")},s.textshadow=function(){return b.createElement(\"div\").style.textShadow===\"\"},s.opacity=function(){return E(\"opacity:.55\"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J(\"animationName\")},s.csscolumns=function(){return J(\"columnCount\")},s.cssgradients=function(){var a=\"background-image:\",b=\"gradient(linear,left top,right bottom,from(#9f9),to(white));\",c=\"linear-gradient(left top,#9f9, white);\";return D((a+\"-webkit- \".split(\" \").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,\"gradient\")},s.cssreflections=function(){return J(\"boxReflect\")},s.csstransforms=function(){return!!J(\"transform\")},s.csstransforms3d=function(){var a=!!J(\"perspective\");return a&&\"webkitPerspective\"in g.style&&y(\"@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}\",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J(\"transition\")},s.fontface=function(){var a;return y('@font-face {font-family:\"font\";src:url(\"https://\")}',function(c,d){var e=b.getElementById(\"smodernizr\"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||\"\":\"\";a=/src/i.test(g)&&g.indexOf(d.split(\" \")[0])===0}),a},s.generatedcontent=function(){var a;return y(['#modernizr:after{content:\"',l,'\";visibility:hidden}'].join(\"\"),function(b){a=b.offsetHeight>=1}),a},s.video=function(){var a=b.createElement(\"video\"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs=\"theora\"').replace(/^no$/,\"\"),c.h264=a.canPlayType('video/mp4; codecs=\"avc1.42E01E\"').replace(/^no$/,\"\"),c.webm=a.canPlayType('video/webm; codecs=\"vp8, vorbis\"').replace(/^no$/,\"\")}catch(d){}return c},s.audio=function(){var a=b.createElement(\"audio\"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/,\"\"),c.mp3=a.canPlayType(\"audio/mpeg;\").replace(/^no$/,\"\"),c.wav=a.canPlayType('audio/wav; codecs=\"1\"').replace(/^no$/,\"\"),c.m4a=(a.canPlayType(\"audio/x-m4a;\")||a.canPlayType(\"audio/aac;\")).replace(/^no$/,\"\")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,\"svg\").createSVGRect},s.inlinesvg=function(){var a=b.createElement(\"div\");return a.innerHTML=\"\",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,\"animate\")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,\"clipPath\")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?\"\":\"no-\")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a==\"object\")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b==\"function\"?b():b,f&&(g.className+=\" \"+(b?\"\":\"no-\")+a),e[a]=b}return e},D(\"\"),i=k=null,function(a,b){function k(a,b){var c=a.createElement(\"p\"),d=a.getElementsByTagName(\"head\")[0]||a.documentElement;return c.innerHTML=\"x\",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a==\"string\"?a.split(\" \"):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e\",f=\"hidden\"in a,j=a.childNodes.length==1||function(){b.createElement(\"a\");var a=b.createDocumentFragment();return typeof a.cloneNode==\"undefined\"||typeof a.createDocumentFragment==\"undefined\"||typeof a.createElement==\"undefined\"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||\"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video\",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:\"default\",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,\"pfx\")},g.className=g.className.replace(/(^|\\s)no-js(\\s|$)/,\"$1$2\")+(f?\" js \"+v.join(\" \"):\"\"),e}(this,this.document),function(a,b,c){function d(a){return o.call(a)==\"[object Function]\"}function e(a){return typeof a==\"string\"}function f(){}function g(a){return!a||a==\"loaded\"||a==\"complete\"||a==\"uninitialized\"}function h(){var a=p.shift();q=1,a?a.t?m(function(){(a.t==\"c\"?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){a!=\"img\"&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l={},o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};y[c]===1&&(r=1,y[c]=[],l=b.createElement(a)),a==\"object\"?l.data=c:(l.src=c,l.type=a),l.width=l.height=\"0\",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),a!=\"img\"&&(r||y[c]===2?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||\"j\",e(a)?i(b==\"c\"?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),p.length==1&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName(\"script\")[0],o={}.toString,p=[],q=0,r=\"MozAppearance\"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&o.call(a.opera)==\"[object Opera]\",l=!!b.attachEvent&&!l,u=r?\"object\":l?\"script\":\"img\",v=l?\"script\":u,w=Array.isArray||function(a){return o.call(a)==\"[object Array]\"},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split(\"!\"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f
\r\n\t\t\t\t\tvalue = parseInt( elem.css( \"zIndex\" ), 10 );\r\n\t\t\t\t\tif ( !isNaN( value ) && value !== 0 ) {\r\n\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telem = elem.parent();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t},\r\n\r\n\tdisableSelection: function() {\r\n\t\treturn this.bind( ( $.support.selectstart ? \"selectstart\" : \"mousedown\" ) +\r\n\t\t\t\".ui-disableSelection\", function( event ) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t});\r\n\t},\r\n\r\n\tenableSelection: function() {\r\n\t\treturn this.unbind( \".ui-disableSelection\" );\r\n\t}\r\n});\r\n\r\n// support: jQuery <1.8\r\nif ( !$( \"\" ).outerWidth( 1 ).jquery ) {\r\n\t$.each( [ \"Width\", \"Height\" ], function( i, name ) {\r\n\t\tvar side = name === \"Width\" ? [ \"Left\", \"Right\" ] : [ \"Top\", \"Bottom\" ],\r\n\t\t\ttype = name.toLowerCase(),\r\n\t\t\torig = {\r\n\t\t\t\tinnerWidth: $.fn.innerWidth,\r\n\t\t\t\tinnerHeight: $.fn.innerHeight,\r\n\t\t\t\touterWidth: $.fn.outerWidth,\r\n\t\t\t\touterHeight: $.fn.outerHeight\r\n\t\t\t};\r\n\r\n\t\tfunction reduce( elem, size, border, margin ) {\r\n\t\t\t$.each( side, function() {\r\n\t\t\t\tsize -= parseFloat( $.curCSS( elem, \"padding\" + this, true) ) || 0;\r\n\t\t\t\tif ( border ) {\r\n\t\t\t\t\tsize -= parseFloat( $.curCSS( elem, \"border\" + this + \"Width\", true) ) || 0;\r\n\t\t\t\t}\r\n\t\t\t\tif ( margin ) {\r\n\t\t\t\t\tsize -= parseFloat( $.curCSS( elem, \"margin\" + this, true) ) || 0;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn size;\r\n\t\t}\r\n\r\n\t\t$.fn[ \"inner\" + name ] = function( size ) {\r\n\t\t\tif ( size === undefined ) {\r\n\t\t\t\treturn orig[ \"inner\" + name ].call( this );\r\n\t\t\t}\r\n\r\n\t\t\treturn this.each(function() {\r\n\t\t\t\t$( this ).css( type, reduce( this, size ) + \"px\" );\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t$.fn[ \"outer\" + name] = function( size, margin ) {\r\n\t\t\tif ( typeof size !== \"number\" ) {\r\n\t\t\t\treturn orig[ \"outer\" + name ].call( this, size );\r\n\t\t\t}\r\n\r\n\t\t\treturn this.each(function() {\r\n\t\t\t\t$( this).css( type, reduce( this, size, true, margin ) + \"px\" );\r\n\t\t\t});\r\n\t\t};\r\n\t});\r\n}\r\n\r\n// selectors\r\nfunction focusable( element, isTabIndexNotNaN ) {\r\n\tvar nodeName = element.nodeName.toLowerCase();\r\n\tif ( \"area\" === nodeName ) {\r\n\t\tvar map = element.parentNode,\r\n\t\t\tmapName = map.name,\r\n\t\t\timg;\r\n\t\tif ( !element.href || !mapName || map.nodeName.toLowerCase() !== \"map\" ) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\timg = $( \"img[usemap=#\" + mapName + \"]\" )[0];\r\n\t\treturn !!img && visible( img );\r\n\t}\r\n\treturn ( /input|select|textarea|button|object/.test( nodeName )\r\n\t\t? !element.disabled\r\n\t\t: \"a\" == nodeName\r\n\t\t\t? element.href || isTabIndexNotNaN\r\n\t\t\t: isTabIndexNotNaN)\r\n\t\t// the element and all of its ancestors must be visible\r\n\t\t&& visible( element );\r\n}\r\n\r\nfunction visible( element ) {\r\n\treturn !$( element ).parents().andSelf().filter(function() {\r\n\t\treturn $.curCSS( this, \"visibility\" ) === \"hidden\" ||\r\n\t\t\t$.expr.filters.hidden( this );\r\n\t}).length;\r\n}\r\n\r\n$.extend( $.expr[ \":\" ], {\r\n\tdata: $.expr.createPseudo ?\r\n\t\t$.expr.createPseudo(function( dataName ) {\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\treturn !!$.data( elem, dataName );\r\n\t\t\t};\r\n\t\t}) :\r\n\t\t// support: jQuery <1.8\r\n\t\tfunction( elem, i, match ) {\r\n\t\t\treturn !!$.data( elem, match[ 3 ] );\r\n\t\t},\r\n\r\n\tfocusable: function( element ) {\r\n\t\treturn focusable( element, !isNaN( $.attr( element, \"tabindex\" ) ) );\r\n\t},\r\n\r\n\ttabbable: function( element ) {\r\n\t\tvar tabIndex = $.attr( element, \"tabindex\" ),\r\n\t\t\tisTabIndexNaN = isNaN( tabIndex );\r\n\t\treturn ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );\r\n\t}\r\n});\r\n\r\n// support\r\n$(function() {\r\n\tvar body = document.body,\r\n\t\tdiv = body.appendChild( div = document.createElement( \"div\" ) );\r\n\r\n\t// access offsetHeight before setting the style to prevent a layout bug\r\n\t// in IE 9 which causes the elemnt to continue to take up space even\r\n\t// after it is removed from the DOM (#8026)\r\n\tdiv.offsetHeight;\r\n\r\n\t$.extend( div.style, {\r\n\t\tminHeight: \"100px\",\r\n\t\theight: \"auto\",\r\n\t\tpadding: 0,\r\n\t\tborderWidth: 0\r\n\t});\r\n\r\n\t$.support.minHeight = div.offsetHeight === 100;\r\n\t$.support.selectstart = \"onselectstart\" in div;\r\n\r\n\t// set display to none to avoid a layout bug in IE\r\n\t// http://dev.jquery.com/ticket/4014\r\n\tbody.removeChild( div ).style.display = \"none\";\r\n});\r\n\r\n// jQuery <1.4.3 uses curCSS, in 1.4.3 - 1.7.2 curCSS = css, 1.8+ only has css\r\nif ( !$.curCSS ) {\r\n\t$.curCSS = $.css;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n// deprecated\r\n$.extend( $.ui, {\r\n\t// $.ui.plugin is deprecated. Use the proxy pattern instead.\r\n\tplugin: {\r\n\t\tadd: function( module, option, set ) {\r\n\t\t\tvar proto = $.ui[ module ].prototype;\r\n\t\t\tfor ( var i in set ) {\r\n\t\t\t\tproto.plugins[ i ] = proto.plugins[ i ] || [];\r\n\t\t\t\tproto.plugins[ i ].push( [ option, set[ i ] ] );\r\n\t\t\t}\r\n\t\t},\r\n\t\tcall: function( instance, name, args ) {\r\n\t\t\tvar set = instance.plugins[ name ];\r\n\t\t\tif ( !set || !instance.element[ 0 ].parentNode ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\r\n\t\t\tfor ( var i = 0; i < set.length; i++ ) {\r\n\t\t\t\tif ( instance.options[ set[ i ][ 0 ] ] ) {\r\n\t\t\t\t\tset[ i ][ 1 ].apply( instance.element, args );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t\r\n\t// will be deprecated when we switch to jQuery 1.4 - use jQuery.contains()\r\n\tcontains: function( a, b ) {\r\n\t\treturn document.compareDocumentPosition ?\r\n\t\t\ta.compareDocumentPosition( b ) & 16 :\r\n\t\t\ta !== b && a.contains( b );\r\n\t},\r\n\t\r\n\t// only used by resizable\r\n\thasScroll: function( el, a ) {\r\n\t\r\n\t\t//If overflow is hidden, the element might have extra content, but the user wants to hide it\r\n\t\tif ( $( el ).css( \"overflow\" ) === \"hidden\") {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\r\n\t\tvar scroll = ( a && a === \"left\" ) ? \"scrollLeft\" : \"scrollTop\",\r\n\t\t\thas = false;\r\n\t\r\n\t\tif ( el[ scroll ] > 0 ) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\r\n\t\t// TODO: determine which cases actually cause this to happen\r\n\t\t// if the element doesn't have the scroll set, see if it's possible to\r\n\t\t// set the scroll\r\n\t\tel[ scroll ] = 1;\r\n\t\thas = ( el[ scroll ] > 0 );\r\n\t\tel[ scroll ] = 0;\r\n\t\treturn has;\r\n\t},\r\n\t\r\n\t// these are odd functions, fix the API or move into individual plugins\r\n\tisOverAxis: function( x, reference, size ) {\r\n\t\t//Determines when x coordinate is over \"b\" element axis\r\n\t\treturn ( x > reference ) && ( x < ( reference + size ) );\r\n\t},\r\n\tisOver: function( y, x, top, left, height, width ) {\r\n\t\t//Determines when x, y coordinates is over \"b\" element\r\n\t\treturn $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width );\r\n\t}\r\n});\r\n\r\n})( jQuery );\r\n\r\n(function( $, undefined ) {\r\n\r\n// jQuery 1.4+\r\nif ( $.cleanData ) {\r\n\tvar _cleanData = $.cleanData;\r\n\t$.cleanData = function( elems ) {\r\n\t\tfor ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {\r\n\t\t\ttry {\r\n\t\t\t\t$( elem ).triggerHandler( \"remove\" );\r\n\t\t\t// http://bugs.jquery.com/ticket/8235\r\n\t\t\t} catch( e ) {}\r\n\t\t}\r\n\t\t_cleanData( elems );\r\n\t};\r\n} else {\r\n\tvar _remove = $.fn.remove;\r\n\t$.fn.remove = function( selector, keepData ) {\r\n\t\treturn this.each(function() {\r\n\t\t\tif ( !keepData ) {\r\n\t\t\t\tif ( !selector || $.filter( selector, [ this ] ).length ) {\r\n\t\t\t\t\t$( \"*\", this ).add( [ this ] ).each(function() {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t$( this ).triggerHandler( \"remove\" );\r\n\t\t\t\t\t\t// http://bugs.jquery.com/ticket/8235\r\n\t\t\t\t\t\t} catch( e ) {}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn _remove.call( $(this), selector, keepData );\r\n\t\t});\r\n\t};\r\n}\r\n\r\n$.widget = function( name, base, prototype ) {\r\n\tvar namespace = name.split( \".\" )[ 0 ],\r\n\t\tfullName;\r\n\tname = name.split( \".\" )[ 1 ];\r\n\tfullName = namespace + \"-\" + name;\r\n\r\n\tif ( !prototype ) {\r\n\t\tprototype = base;\r\n\t\tbase = $.Widget;\r\n\t}\r\n\r\n\t// create selector for plugin\r\n\t$.expr[ \":\" ][ fullName ] = function( elem ) {\r\n\t\treturn !!$.data( elem, name );\r\n\t};\r\n\r\n\t$[ namespace ] = $[ namespace ] || {};\r\n\t$[ namespace ][ name ] = function( options, element ) {\r\n\t\t// allow instantiation without initializing for simple inheritance\r\n\t\tif ( arguments.length ) {\r\n\t\t\tthis._createWidget( options, element );\r\n\t\t}\r\n\t};\r\n\r\n\tvar basePrototype = new base();\r\n\t// we need to make the options hash a property directly on the new instance\r\n\t// otherwise we'll modify the options hash on the prototype that we're\r\n\t// inheriting from\r\n//\t$.each( basePrototype, function( key, val ) {\r\n//\t\tif ( $.isPlainObject(val) ) {\r\n//\t\t\tbasePrototype[ key ] = $.extend( {}, val );\r\n//\t\t}\r\n//\t});\r\n\tbasePrototype.options = $.extend( true, {}, basePrototype.options );\r\n\t$[ namespace ][ name ].prototype = $.extend( true, basePrototype, {\r\n\t\tnamespace: namespace,\r\n\t\twidgetName: name,\r\n\t\twidgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name,\r\n\t\twidgetBaseClass: fullName\r\n\t}, prototype );\r\n\r\n\t$.widget.bridge( name, $[ namespace ][ name ] );\r\n};\r\n\r\n$.widget.bridge = function( name, object ) {\r\n\t$.fn[ name ] = function( options ) {\r\n\t\tvar isMethodCall = typeof options === \"string\",\r\n\t\t\targs = Array.prototype.slice.call( arguments, 1 ),\r\n\t\t\treturnValue = this;\r\n\r\n\t\t// allow multiple hashes to be passed on init\r\n\t\toptions = !isMethodCall && args.length ?\r\n\t\t\t$.extend.apply( null, [ true, options ].concat(args) ) :\r\n\t\t\toptions;\r\n\r\n\t\t// prevent calls to internal methods\r\n\t\tif ( isMethodCall && options.charAt( 0 ) === \"_\" ) {\r\n\t\t\treturn returnValue;\r\n\t\t}\r\n\r\n\t\tif ( isMethodCall ) {\r\n\t\t\tthis.each(function() {\r\n\t\t\t\tvar instance = $.data( this, name ),\r\n\t\t\t\t\tmethodValue = instance && $.isFunction( instance[options] ) ?\r\n\t\t\t\t\t\tinstance[ options ].apply( instance, args ) :\r\n\t\t\t\t\t\tinstance;\r\n\t\t\t\t// TODO: add this back in 1.9 and use $.error() (see #5972)\r\n//\t\t\t\tif ( !instance ) {\r\n//\t\t\t\t\tthrow \"cannot call methods on \" + name + \" prior to initialization; \" +\r\n//\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\";\r\n//\t\t\t\t}\r\n//\t\t\t\tif ( !$.isFunction( instance[options] ) ) {\r\n//\t\t\t\t\tthrow \"no such method '\" + options + \"' for \" + name + \" widget instance\";\r\n//\t\t\t\t}\r\n//\t\t\t\tvar methodValue = instance[ options ].apply( instance, args );\r\n\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\r\n\t\t\t\t\treturnValue = methodValue;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.each(function() {\r\n\t\t\t\tvar instance = $.data( this, name );\r\n\t\t\t\tif ( instance ) {\r\n\t\t\t\t\tinstance.option( options || {} )._init();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$.data( this, name, new object( options, this ) );\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn returnValue;\r\n\t};\r\n};\r\n\r\n$.Widget = function( options, element ) {\r\n\t// allow instantiation without initializing for simple inheritance\r\n\tif ( arguments.length ) {\r\n\t\tthis._createWidget( options, element );\r\n\t}\r\n};\r\n\r\n$.Widget.prototype = {\r\n\twidgetName: \"widget\",\r\n\twidgetEventPrefix: \"\",\r\n\toptions: {\r\n\t\tdisabled: false\r\n\t},\r\n\t_createWidget: function( options, element ) {\r\n\t\t// $.widget.bridge stores the plugin instance, but we do it anyway\r\n\t\t// so that it's stored even before the _create function runs\r\n\t\t$.data( element, this.widgetName, this );\r\n\t\tthis.element = $( element );\r\n\t\tthis.options = $.extend( true, {},\r\n\t\t\tthis.options,\r\n\t\t\tthis._getCreateOptions(),\r\n\t\t\toptions );\r\n\r\n\t\tvar self = this;\r\n\t\tthis.element.bind( \"remove.\" + this.widgetName, function() {\r\n\t\t\tself.destroy();\r\n\t\t});\r\n\r\n\t\tthis._create();\r\n\t\tthis._trigger( \"create\" );\r\n\t\tthis._init();\r\n\t},\r\n\t_getCreateOptions: function() {\r\n\t\treturn $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ];\r\n\t},\r\n\t_create: function() {},\r\n\t_init: function() {},\r\n\r\n\tdestroy: function() {\r\n\t\tthis.element\r\n\t\t\t.unbind( \".\" + this.widgetName )\r\n\t\t\t.removeData( this.widgetName );\r\n\t\tthis.widget()\r\n\t\t\t.unbind( \".\" + this.widgetName )\r\n\t\t\t.removeAttr( \"aria-disabled\" )\r\n\t\t\t.removeClass(\r\n\t\t\t\tthis.widgetBaseClass + \"-disabled \" +\r\n\t\t\t\t\"ui-state-disabled\" );\r\n\t},\r\n\r\n\twidget: function() {\r\n\t\treturn this.element;\r\n\t},\r\n\r\n\toption: function( key, value ) {\r\n\t\tvar options = key;\r\n\r\n\t\tif ( arguments.length === 0 ) {\r\n\t\t\t// don't return a reference to the internal hash\r\n\t\t\treturn $.extend( {}, this.options );\r\n\t\t}\r\n\r\n\t\tif (typeof key === \"string\" ) {\r\n\t\t\tif ( value === undefined ) {\r\n\t\t\t\treturn this.options[ key ];\r\n\t\t\t}\r\n\t\t\toptions = {};\r\n\t\t\toptions[ key ] = value;\r\n\t\t}\r\n\r\n\t\tthis._setOptions( options );\r\n\r\n\t\treturn this;\r\n\t},\r\n\t_setOptions: function( options ) {\r\n\t\tvar self = this;\r\n\t\t$.each( options, function( key, value ) {\r\n\t\t\tself._setOption( key, value );\r\n\t\t});\r\n\r\n\t\treturn this;\r\n\t},\r\n\t_setOption: function( key, value ) {\r\n\t\tthis.options[ key ] = value;\r\n\r\n\t\tif ( key === \"disabled\" ) {\r\n\t\t\tthis.widget()\r\n\t\t\t\t[ value ? \"addClass\" : \"removeClass\"](\r\n\t\t\t\t\tthis.widgetBaseClass + \"-disabled\" + \" \" +\r\n\t\t\t\t\t\"ui-state-disabled\" )\r\n\t\t\t\t.attr( \"aria-disabled\", value );\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tenable: function() {\r\n\t\treturn this._setOption( \"disabled\", false );\r\n\t},\r\n\tdisable: function() {\r\n\t\treturn this._setOption( \"disabled\", true );\r\n\t},\r\n\r\n\t_trigger: function( type, event, data ) {\r\n\t\tvar prop, orig,\r\n\t\t\tcallback = this.options[ type ];\r\n\r\n\t\tdata = data || {};\r\n\t\tevent = $.Event( event );\r\n\t\tevent.type = ( type === this.widgetEventPrefix ?\r\n\t\t\ttype :\r\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\r\n\t\t// the original event may come from any element\r\n\t\t// so we need to reset the target on the new event\r\n\t\tevent.target = this.element[ 0 ];\r\n\r\n\t\t// copy original event properties over to the new event\r\n\t\torig = event.originalEvent;\r\n\t\tif ( orig ) {\r\n\t\t\tfor ( prop in orig ) {\r\n\t\t\t\tif ( !( prop in event ) ) {\r\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.element.trigger( event, data );\r\n\r\n\t\treturn !( $.isFunction(callback) &&\r\n\t\t\tcallback.call( this.element[0], event, data ) === false ||\r\n\t\t\tevent.isDefaultPrevented() );\r\n\t}\r\n};\r\n\r\n})( jQuery );\r\n\r\n(function( $, undefined ) {\r\n\r\nvar mouseHandled = false;\r\n$( document ).mouseup( function( e ) {\r\n\tmouseHandled = false;\r\n});\r\n\r\n$.widget(\"ui.mouse\", {\r\n\toptions: {\r\n\t\tcancel: ':input,option',\r\n\t\tdistance: 1,\r\n\t\tdelay: 0\r\n\t},\r\n\t_mouseInit: function() {\r\n\t\tvar self = this;\r\n\r\n\t\tthis.element\r\n\t\t\t.bind('mousedown.'+this.widgetName, function(event) {\r\n\t\t\t\treturn self._mouseDown(event);\r\n\t\t\t})\r\n\t\t\t.bind('click.'+this.widgetName, function(event) {\r\n\t\t\t\tif (true === $.data(event.target, self.widgetName + '.preventClickEvent')) {\r\n\t\t\t\t $.removeData(event.target, self.widgetName + '.preventClickEvent');\r\n\t\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tthis.started = false;\r\n\t},\r\n\r\n\t// TODO: make sure destroying one instance of mouse doesn't mess with\r\n\t// other instances of mouse\r\n\t_mouseDestroy: function() {\r\n\t\tthis.element.unbind('.'+this.widgetName);\r\n\t\t$(document)\r\n\t\t\t.unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)\r\n\t\t\t.unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);\r\n\t},\r\n\r\n\t_mouseDown: function(event) {\r\n\t\t// don't let more than one widget handle mouseStart\r\n\t\tif( mouseHandled ) { return };\r\n\r\n\t\t// we may have missed mouseup (out of window)\r\n\t\t(this._mouseStarted && this._mouseUp(event));\r\n\r\n\t\tthis._mouseDownEvent = event;\r\n\r\n\t\tvar self = this,\r\n\t\t\tbtnIsLeft = (event.which == 1),\r\n\t\t\t// event.target.nodeName works around a bug in IE 8 with\r\n\t\t\t// disabled inputs (#7620)\r\n\t\t\telIsCancel = (typeof this.options.cancel == \"string\" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);\r\n\t\tif (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tthis.mouseDelayMet = !this.options.delay;\r\n\t\tif (!this.mouseDelayMet) {\r\n\t\t\tthis._mouseDelayTimer = setTimeout(function() {\r\n\t\t\t\tself.mouseDelayMet = true;\r\n\t\t\t}, this.options.delay);\r\n\t\t}\r\n\r\n\t\tif (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {\r\n\t\t\tthis._mouseStarted = (this._mouseStart(event) !== false);\r\n\t\t\tif (!this._mouseStarted) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Click event may never have fired (Gecko & Opera)\r\n\t\tif (true === $.data(event.target, this.widgetName + '.preventClickEvent')) {\r\n\t\t\t$.removeData(event.target, this.widgetName + '.preventClickEvent');\r\n\t\t}\r\n\r\n\t\t// these delegates are required to keep context\r\n\t\tthis._mouseMoveDelegate = function(event) {\r\n\t\t\treturn self._mouseMove(event);\r\n\t\t};\r\n\t\tthis._mouseUpDelegate = function(event) {\r\n\t\t\treturn self._mouseUp(event);\r\n\t\t};\r\n\t\t$(document)\r\n\t\t\t.bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)\r\n\t\t\t.bind('mouseup.'+this.widgetName, this._mouseUpDelegate);\r\n\r\n\t\tevent.preventDefault();\r\n\t\t\r\n\t\tmouseHandled = true;\r\n\t\treturn true;\r\n\t},\r\n\r\n\t_mouseMove: function(event) {\r\n\t\t// IE mouseup check - mouseup happened when mouse was out of window\r\n\t\tif ($.browser.msie && !(document.documentMode >= 9) && !event.button) {\r\n\t\t\treturn this._mouseUp(event);\r\n\t\t}\r\n\r\n\t\tif (this._mouseStarted) {\r\n\t\t\tthis._mouseDrag(event);\r\n\t\t\treturn event.preventDefault();\r\n\t\t}\r\n\r\n\t\tif (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {\r\n\t\t\tthis._mouseStarted =\r\n\t\t\t\t(this._mouseStart(this._mouseDownEvent, event) !== false);\r\n\t\t\t(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));\r\n\t\t}\r\n\r\n\t\treturn !this._mouseStarted;\r\n\t},\r\n\r\n\t_mouseUp: function(event) {\r\n\t\t$(document)\r\n\t\t\t.unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)\r\n\t\t\t.unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);\r\n\r\n\t\tif (this._mouseStarted) {\r\n\t\t\tthis._mouseStarted = false;\r\n\r\n\t\t\tif (event.target == this._mouseDownEvent.target) {\r\n\t\t\t $.data(event.target, this.widgetName + '.preventClickEvent', true);\r\n\t\t\t}\r\n\r\n\t\t\tthis._mouseStop(event);\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_mouseDistanceMet: function(event) {\r\n\t\treturn (Math.max(\r\n\t\t\t\tMath.abs(this._mouseDownEvent.pageX - event.pageX),\r\n\t\t\t\tMath.abs(this._mouseDownEvent.pageY - event.pageY)\r\n\t\t\t) >= this.options.distance\r\n\t\t);\r\n\t},\r\n\r\n\t_mouseDelayMet: function(event) {\r\n\t\treturn this.mouseDelayMet;\r\n\t},\r\n\r\n\t// These are placeholder methods, to be overriden by extending plugin\r\n\t_mouseStart: function(event) {},\r\n\t_mouseDrag: function(event) {},\r\n\t_mouseStop: function(event) {},\r\n\t_mouseCapture: function(event) { return true; }\r\n});\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.widget(\"ui.draggable\", $.ui.mouse, {\r\n\twidgetEventPrefix: \"drag\",\r\n\toptions: {\r\n\t\taddClasses: true,\r\n\t\tappendTo: \"parent\",\r\n\t\taxis: false,\r\n\t\tconnectToSortable: false,\r\n\t\tcontainment: false,\r\n\t\tcursor: \"auto\",\r\n\t\tcursorAt: false,\r\n\t\tgrid: false,\r\n\t\thandle: false,\r\n\t\thelper: \"original\",\r\n\t\tiframeFix: false,\r\n\t\topacity: false,\r\n\t\trefreshPositions: false,\r\n\t\trevert: false,\r\n\t\trevertDuration: 500,\r\n\t\tscope: \"default\",\r\n\t\tscroll: true,\r\n\t\tscrollSensitivity: 20,\r\n\t\tscrollSpeed: 20,\r\n\t\tsnap: false,\r\n\t\tsnapMode: \"both\",\r\n\t\tsnapTolerance: 20,\r\n\t\tstack: false,\r\n\t\tzIndex: false\r\n\t},\r\n\t_create: function() {\r\n\r\n\t\tif (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css(\"position\")))\r\n\t\t\tthis.element[0].style.position = 'relative';\r\n\r\n\t\t(this.options.addClasses && this.element.addClass(\"ui-draggable\"));\r\n\t\t(this.options.disabled && this.element.addClass(\"ui-draggable-disabled\"));\r\n\r\n\t\tthis._mouseInit();\r\n\r\n\t},\r\n\r\n\tdestroy: function() {\r\n\t\tif(!this.element.data('draggable')) return;\r\n\t\tthis.element\r\n\t\t\t.removeData(\"draggable\")\r\n\t\t\t.unbind(\".draggable\")\r\n\t\t\t.removeClass(\"ui-draggable\"\r\n\t\t\t\t+ \" ui-draggable-dragging\"\r\n\t\t\t\t+ \" ui-draggable-disabled\");\r\n\t\tthis._mouseDestroy();\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_mouseCapture: function(event) {\r\n\r\n\t\tvar o = this.options;\r\n\r\n\t\t// among others, prevent a drag on a resizable-handle\r\n\t\tif (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle'))\r\n\t\t\treturn false;\r\n\r\n\t\t//Quit if we're not on a valid handle\r\n\t\tthis.handle = this._getHandle(event);\r\n\t\tif (!this.handle)\r\n\t\t\treturn false;\r\n\t\t\r\n\t\tif ( o.iframeFix ) {\r\n\t\t\t$(o.iframeFix === true ? \"iframe\" : o.iframeFix).each(function() {\r\n\t\t\t\t$('
')\r\n\t\t\t\t.css({\r\n\t\t\t\t\twidth: this.offsetWidth+\"px\", height: this.offsetHeight+\"px\",\r\n\t\t\t\t\tposition: \"absolute\", opacity: \"0.001\", zIndex: 1000\r\n\t\t\t\t})\r\n\t\t\t\t.css($(this).offset())\r\n\t\t\t\t.appendTo(\"body\");\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\r\n\t},\r\n\r\n\t_mouseStart: function(event) {\r\n\r\n\t\tvar o = this.options;\r\n\r\n\t\t//Create and append the visible helper\r\n\t\tthis.helper = this._createHelper(event);\r\n\r\n\t\tthis.helper.addClass(\"ui-draggable-dragging\");\r\n\r\n\t\t//Cache the helper size\r\n\t\tthis._cacheHelperProportions();\r\n\r\n\t\t//If ddmanager is used for droppables, set the global draggable\r\n\t\tif($.ui.ddmanager)\r\n\t\t\t$.ui.ddmanager.current = this;\r\n\r\n\t\t/*\r\n\t\t * - Position generation -\r\n\t\t * This block generates everything position related - it's the core of draggables.\r\n\t\t */\r\n\r\n\t\t//Cache the margins of the original element\r\n\t\tthis._cacheMargins();\r\n\r\n\t\t//Store the helper's css position\r\n\t\tthis.cssPosition = this.helper.css(\"position\");\r\n\t\tthis.scrollParent = this.helper.scrollParent();\r\n\r\n\t\t//The element's absolute position on the page minus margins\r\n\t\tthis.offset = this.positionAbs = this.element.offset();\r\n\t\tthis.offset = {\r\n\t\t\ttop: this.offset.top - this.margins.top,\r\n\t\t\tleft: this.offset.left - this.margins.left\r\n\t\t};\r\n\r\n\t\t$.extend(this.offset, {\r\n\t\t\tclick: { //Where the click happened, relative to the element\r\n\t\t\t\tleft: event.pageX - this.offset.left,\r\n\t\t\t\ttop: event.pageY - this.offset.top\r\n\t\t\t},\r\n\t\t\tparent: this._getParentOffset(),\r\n\t\t\trelative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper\r\n\t\t});\r\n\r\n\t\t//Generate the original position\r\n\t\tthis.originalPosition = this.position = this._generatePosition(event);\r\n\t\tthis.originalPageX = event.pageX;\r\n\t\tthis.originalPageY = event.pageY;\r\n\r\n\t\t//Adjust the mouse offset relative to the helper if 'cursorAt' is supplied\r\n\t\t(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));\r\n\r\n\t\t//Set a containment if given in the options\r\n\t\tif(o.containment)\r\n\t\t\tthis._setContainment();\r\n\r\n\t\t//Trigger event + callbacks\r\n\t\tif(this._trigger(\"start\", event) === false) {\r\n\t\t\tthis._clear();\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t//Recache the helper size\r\n\t\tthis._cacheHelperProportions();\r\n\r\n\t\t//Prepare the droppable offsets\r\n\t\tif ($.ui.ddmanager && !o.dropBehaviour)\r\n\t\t\t$.ui.ddmanager.prepareOffsets(this, event);\r\n\r\n\t\t\r\n\t\tthis._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position\r\n\t\t\r\n\t\t//If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)\r\n\t\tif ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event);\r\n\t\t\r\n\t\treturn true;\r\n\t},\r\n\r\n\t_mouseDrag: function(event, noPropagation) {\r\n\r\n\t\t//Compute the helpers position\r\n\t\tthis.position = this._generatePosition(event);\r\n\t\tthis.positionAbs = this._convertPositionTo(\"absolute\");\r\n\r\n\t\t//Call plugins and callbacks and use the resulting position if something is returned\r\n\t\tif (!noPropagation) {\r\n\t\t\tvar ui = this._uiHash();\r\n\t\t\tif(this._trigger('drag', event, ui) === false) {\r\n\t\t\t\tthis._mouseUp({});\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.position = ui.position;\r\n\t\t}\r\n\r\n\t\tif(!this.options.axis || this.options.axis != \"y\") this.helper[0].style.left = this.position.left+'px';\r\n\t\tif(!this.options.axis || this.options.axis != \"x\") this.helper[0].style.top = this.position.top+'px';\r\n\t\tif($.ui.ddmanager) $.ui.ddmanager.drag(this, event);\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_mouseStop: function(event) {\r\n\r\n\t\t//If we are using droppables, inform the manager about the drop\r\n\t\tvar dropped = false;\r\n\t\tif ($.ui.ddmanager && !this.options.dropBehaviour)\r\n\t\t\tdropped = $.ui.ddmanager.drop(this, event);\r\n\r\n\t\t//if a drop comes from outside (a sortable)\r\n\t\tif(this.dropped) {\r\n\t\t\tdropped = this.dropped;\r\n\t\t\tthis.dropped = false;\r\n\t\t}\r\n\t\t\r\n\t\t//if the original element is no longer in the DOM don't bother to continue (see #8269)\r\n\t\tvar element = this.element[0], elementInDom = false;\r\n\t\twhile ( element && (element = element.parentNode) ) {\r\n\t\t\tif (element == document ) {\r\n\t\t\t\telementInDom = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif ( !elementInDom && this.options.helper === \"original\" )\r\n\t\t\treturn false;\r\n\r\n\t\tif((this.options.revert == \"invalid\" && !dropped) || (this.options.revert == \"valid\" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) {\r\n\t\t\tvar self = this;\r\n\t\t\t$(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {\r\n\t\t\t\tif(self._trigger(\"stop\", event) !== false) {\r\n\t\t\t\t\tself._clear();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tif(this._trigger(\"stop\", event) !== false) {\r\n\t\t\t\tthis._clear();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n\t\r\n\t_mouseUp: function(event) {\r\n\t\tif (this.options.iframeFix === true) {\r\n\t\t\t$(\"div.ui-draggable-iframeFix\").each(function() { \r\n\t\t\t\tthis.parentNode.removeChild(this); \r\n\t\t\t}); //Remove frame helpers\r\n\t\t}\r\n\t\t\r\n\t\t//If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)\r\n\t\tif( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event);\r\n\t\t\r\n\t\treturn $.ui.mouse.prototype._mouseUp.call(this, event);\r\n\t},\r\n\t\r\n\tcancel: function() {\r\n\t\t\r\n\t\tif(this.helper.is(\".ui-draggable-dragging\")) {\r\n\t\t\tthis._mouseUp({});\r\n\t\t} else {\r\n\t\t\tthis._clear();\r\n\t\t}\r\n\t\t\r\n\t\treturn this;\r\n\t\t\r\n\t},\r\n\r\n\t_getHandle: function(event) {\r\n\r\n\t\tvar handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false;\r\n\t\t$(this.options.handle, this.element)\r\n\t\t\t.find(\"*\")\r\n\t\t\t.andSelf()\r\n\t\t\t.each(function() {\r\n\t\t\t\tif(this == event.target) handle = true;\r\n\t\t\t});\r\n\r\n\t\treturn handle;\r\n\r\n\t},\r\n\r\n\t_createHelper: function(event) {\r\n\r\n\t\tvar o = this.options;\r\n\t\tvar helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone().removeAttr('id') : this.element);\r\n\r\n\t\tif(!helper.parents('body').length)\r\n\t\t\thelper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo));\r\n\r\n\t\tif(helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css(\"position\")))\r\n\t\t\thelper.css(\"position\", \"absolute\");\r\n\r\n\t\treturn helper;\r\n\r\n\t},\r\n\r\n\t_adjustOffsetFromHelper: function(obj) {\r\n\t\tif (typeof obj == 'string') {\r\n\t\t\tobj = obj.split(' ');\r\n\t\t}\r\n\t\tif ($.isArray(obj)) {\r\n\t\t\tobj = {left: +obj[0], top: +obj[1] || 0};\r\n\t\t}\r\n\t\tif ('left' in obj) {\r\n\t\t\tthis.offset.click.left = obj.left + this.margins.left;\r\n\t\t}\r\n\t\tif ('right' in obj) {\r\n\t\t\tthis.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;\r\n\t\t}\r\n\t\tif ('top' in obj) {\r\n\t\t\tthis.offset.click.top = obj.top + this.margins.top;\r\n\t\t}\r\n\t\tif ('bottom' in obj) {\r\n\t\t\tthis.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;\r\n\t\t}\r\n\t},\r\n\r\n\t_getParentOffset: function() {\r\n\r\n\t\t//Get the offsetParent and cache its position\r\n\t\tthis.offsetParent = this.helper.offsetParent();\r\n\t\tvar po = this.offsetParent.offset();\r\n\r\n\t\t// This is a special case where we need to modify a offset calculated on start, since the following happened:\r\n\t\t// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent\r\n\t\t// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that\r\n\t\t// the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag\r\n\t\tif(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {\r\n\t\t\tpo.left += this.scrollParent.scrollLeft();\r\n\t\t\tpo.top += this.scrollParent.scrollTop();\r\n\t\t}\r\n\r\n\t\tif((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information\r\n\t\t|| (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix\r\n\t\t\tpo = { top: 0, left: 0 };\r\n\r\n\t\treturn {\r\n\t\t\ttop: po.top + (parseInt(this.offsetParent.css(\"borderTopWidth\"),10) || 0),\r\n\t\t\tleft: po.left + (parseInt(this.offsetParent.css(\"borderLeftWidth\"),10) || 0)\r\n\t\t};\r\n\r\n\t},\r\n\r\n\t_getRelativeOffset: function() {\r\n\r\n\t\tif(this.cssPosition == \"relative\") {\r\n\t\t\tvar p = this.element.position();\r\n\t\t\treturn {\r\n\t\t\t\ttop: p.top - (parseInt(this.helper.css(\"top\"),10) || 0) + this.scrollParent.scrollTop(),\r\n\t\t\t\tleft: p.left - (parseInt(this.helper.css(\"left\"),10) || 0) + this.scrollParent.scrollLeft()\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\treturn { top: 0, left: 0 };\r\n\t\t}\r\n\r\n\t},\r\n\r\n\t_cacheMargins: function() {\r\n\t\tthis.margins = {\r\n\t\t\tleft: (parseInt(this.element.css(\"marginLeft\"),10) || 0),\r\n\t\t\ttop: (parseInt(this.element.css(\"marginTop\"),10) || 0),\r\n\t\t\tright: (parseInt(this.element.css(\"marginRight\"),10) || 0),\r\n\t\t\tbottom: (parseInt(this.element.css(\"marginBottom\"),10) || 0)\r\n\t\t};\r\n\t},\r\n\r\n\t_cacheHelperProportions: function() {\r\n\t\tthis.helperProportions = {\r\n\t\t\twidth: this.helper.outerWidth(),\r\n\t\t\theight: this.helper.outerHeight()\r\n\t\t};\r\n\t},\r\n\r\n\t_setContainment: function() {\r\n\r\n\t\tvar o = this.options;\r\n\t\tif(o.containment == 'parent') o.containment = this.helper[0].parentNode;\r\n\t\tif(o.containment == 'document' || o.containment == 'window') this.containment = [\r\n\t\t\to.containment == 'document' ? 0 : $(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left,\r\n\t\t\to.containment == 'document' ? 0 : $(window).scrollTop() - this.offset.relative.top - this.offset.parent.top,\r\n\t\t\t(o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,\r\n\t\t\t(o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top\r\n\t\t];\r\n\r\n\t\tif(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) {\r\n\t\t var c = $(o.containment);\r\n\t\t\tvar ce = c[0]; if(!ce) return;\r\n\t\t\tvar co = c.offset();\r\n\t\t\tvar over = ($(ce).css(\"overflow\") != 'hidden');\r\n\r\n\t\t\tthis.containment = [\r\n\t\t\t\t(parseInt($(ce).css(\"borderLeftWidth\"),10) || 0) + (parseInt($(ce).css(\"paddingLeft\"),10) || 0),\r\n\t\t\t\t(parseInt($(ce).css(\"borderTopWidth\"),10) || 0) + (parseInt($(ce).css(\"paddingTop\"),10) || 0),\r\n\t\t\t\t(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css(\"borderLeftWidth\"),10) || 0) - (parseInt($(ce).css(\"paddingRight\"),10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right,\r\n\t\t\t\t(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css(\"borderTopWidth\"),10) || 0) - (parseInt($(ce).css(\"paddingBottom\"),10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom\r\n\t\t\t];\r\n\t\t\tthis.relative_container = c;\r\n\r\n\t\t} else if(o.containment.constructor == Array) {\r\n\t\t\tthis.containment = o.containment;\r\n\t\t}\r\n\r\n\t},\r\n\r\n\t_convertPositionTo: function(d, pos) {\r\n\r\n\t\tif(!pos) pos = this.position;\r\n\t\tvar mod = d == \"absolute\" ? 1 : -1;\r\n\t\tvar o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);\r\n\r\n\t\treturn {\r\n\t\t\ttop: (\r\n\t\t\t\tpos.top\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\r\n\t\t\t\t+ this.offset.relative.top * mod\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\r\n\t\t\t\t+ this.offset.parent.top * mod\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\r\n\t\t\t\t- ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)\r\n\t\t\t),\r\n\t\t\tleft: (\r\n\t\t\t\tpos.left\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\r\n\t\t\t\t+ this.offset.relative.left * mod\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\r\n\t\t\t\t+ this.offset.parent.left * mod\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\r\n\t\t\t\t- ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)\r\n\t\t\t)\r\n\t\t};\r\n\r\n\t},\r\n\r\n\t_generatePosition: function(event) {\r\n\r\n\t\tvar o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);\r\n\t\tvar pageX = event.pageX;\r\n\t\tvar pageY = event.pageY;\r\n\r\n\t\t/*\r\n\t\t * - Position constraining -\r\n\t\t * Constrain the position to a mix of grid, containment.\r\n\t\t */\r\n\r\n\t\tif(this.originalPosition) { //If we are not dragging yet, we won't check for options\r\n\t\t var containment;\r\n\t\t if(this.containment) {\r\n\t\t\t\t if (this.relative_container){\r\n\t\t\t\t var co = this.relative_container.offset();\r\n\t\t\t\t containment = [ this.containment[0] + co.left,\r\n\t\t\t\t\t\t this.containment[1] + co.top,\r\n\t\t\t\t\t\t this.containment[2] + co.left,\r\n\t\t\t\t\t\t this.containment[3] + co.top ];\r\n\t\t\t\t }\r\n\t\t\t\t else {\r\n\t\t\t\t containment = this.containment;\r\n\t\t\t\t }\r\n\r\n\t\t\t\tif(event.pageX - this.offset.click.left < containment[0]) pageX = containment[0] + this.offset.click.left;\r\n\t\t\t\tif(event.pageY - this.offset.click.top < containment[1]) pageY = containment[1] + this.offset.click.top;\r\n\t\t\t\tif(event.pageX - this.offset.click.left > containment[2]) pageX = containment[2] + this.offset.click.left;\r\n\t\t\t\tif(event.pageY - this.offset.click.top > containment[3]) pageY = containment[3] + this.offset.click.top;\r\n\t\t\t}\r\n\r\n\t\t\tif(o.grid) {\r\n\t\t\t\t//Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950)\r\n\t\t\t\tvar top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;\r\n\t\t\t\tpageY = containment ? (!(top - this.offset.click.top < containment[1] || top - this.offset.click.top > containment[3]) ? top : (!(top - this.offset.click.top < containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;\r\n\r\n\t\t\t\tvar left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX;\r\n\t\t\t\tpageX = containment ? (!(left - this.offset.click.left < containment[0] || left - this.offset.click.left > containment[2]) ? left : (!(left - this.offset.click.left < containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: (\r\n\t\t\t\tpageY\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\r\n\t\t\t\t- this.offset.click.top\t\t\t\t\t\t\t\t\t\t\t\t\t// Click offset (relative to the element)\r\n\t\t\t\t- this.offset.relative.top\t\t\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\r\n\t\t\t\t- this.offset.parent.top\t\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\r\n\t\t\t\t+ ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))\r\n\t\t\t),\r\n\t\t\tleft: (\r\n\t\t\t\tpageX\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\r\n\t\t\t\t- this.offset.click.left\t\t\t\t\t\t\t\t\t\t\t\t// Click offset (relative to the element)\r\n\t\t\t\t- this.offset.relative.left\t\t\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\r\n\t\t\t\t- this.offset.parent.left\t\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\r\n\t\t\t\t+ ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))\r\n\t\t\t)\r\n\t\t};\r\n\r\n\t},\r\n\r\n\t_clear: function() {\r\n\t\tthis.helper.removeClass(\"ui-draggable-dragging\");\r\n\t\tif(this.helper[0] != this.element[0] && !this.cancelHelperRemoval) this.helper.remove();\r\n\t\t//if($.ui.ddmanager) $.ui.ddmanager.current = null;\r\n\t\tthis.helper = null;\r\n\t\tthis.cancelHelperRemoval = false;\r\n\t},\r\n\r\n\t// From now on bulk stuff - mainly helpers\r\n\r\n\t_trigger: function(type, event, ui) {\r\n\t\tui = ui || this._uiHash();\r\n\t\t$.ui.plugin.call(this, type, [event, ui]);\r\n\t\tif(type == \"drag\") this.positionAbs = this._convertPositionTo(\"absolute\"); //The absolute position has to be recalculated after plugins\r\n\t\treturn $.Widget.prototype._trigger.call(this, type, event, ui);\r\n\t},\r\n\r\n\tplugins: {},\r\n\r\n\t_uiHash: function(event) {\r\n\t\treturn {\r\n\t\t\thelper: this.helper,\r\n\t\t\tposition: this.position,\r\n\t\t\toriginalPosition: this.originalPosition,\r\n\t\t\toffset: this.positionAbs\r\n\t\t};\r\n\t}\r\n\r\n});\r\n\r\n$.extend($.ui.draggable, {\r\n\tversion: \"1.8.22\"\r\n});\r\n\r\n$.ui.plugin.add(\"draggable\", \"connectToSortable\", {\r\n\tstart: function(event, ui) {\r\n\r\n\t\tvar inst = $(this).data(\"draggable\"), o = inst.options,\r\n\t\t\tuiSortable = $.extend({}, ui, { item: inst.element });\r\n\t\tinst.sortables = [];\r\n\t\t$(o.connectToSortable).each(function() {\r\n\t\t\tvar sortable = $.data(this, 'sortable');\r\n\t\t\tif (sortable && !sortable.options.disabled) {\r\n\t\t\t\tinst.sortables.push({\r\n\t\t\t\t\tinstance: sortable,\r\n\t\t\t\t\tshouldRevert: sortable.options.revert\r\n\t\t\t\t});\r\n\t\t\t\tsortable.refreshPositions();\t// Call the sortable's refreshPositions at drag start to refresh the containerCache since the sortable container cache is used in drag and needs to be up to date (this will ensure it's initialised as well as being kept in step with any changes that might have happened on the page).\r\n\t\t\t\tsortable._trigger(\"activate\", event, uiSortable);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t},\r\n\tstop: function(event, ui) {\r\n\r\n\t\t//If we are still over the sortable, we fake the stop event of the sortable, but also remove helper\r\n\t\tvar inst = $(this).data(\"draggable\"),\r\n\t\t\tuiSortable = $.extend({}, ui, { item: inst.element });\r\n\r\n\t\t$.each(inst.sortables, function() {\r\n\t\t\tif(this.instance.isOver) {\r\n\r\n\t\t\t\tthis.instance.isOver = 0;\r\n\r\n\t\t\t\tinst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance\r\n\t\t\t\tthis.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work)\r\n\r\n\t\t\t\t//The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: 'valid/invalid'\r\n\t\t\t\tif(this.shouldRevert) this.instance.options.revert = true;\r\n\r\n\t\t\t\t//Trigger the stop of the sortable\r\n\t\t\t\tthis.instance._mouseStop(event);\r\n\r\n\t\t\t\tthis.instance.options.helper = this.instance.options._helper;\r\n\r\n\t\t\t\t//If the helper has been the original item, restore properties in the sortable\r\n\t\t\t\tif(inst.options.helper == 'original')\r\n\t\t\t\t\tthis.instance.currentItem.css({ top: 'auto', left: 'auto' });\r\n\r\n\t\t\t} else {\r\n\t\t\t\tthis.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance\r\n\t\t\t\tthis.instance._trigger(\"deactivate\", event, uiSortable);\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t},\r\n\tdrag: function(event, ui) {\r\n\r\n\t\tvar inst = $(this).data(\"draggable\"), self = this;\r\n\r\n\t\tvar checkPos = function(o) {\r\n\t\t\tvar dyClick = this.offset.click.top, dxClick = this.offset.click.left;\r\n\t\t\tvar helperTop = this.positionAbs.top, helperLeft = this.positionAbs.left;\r\n\t\t\tvar itemHeight = o.height, itemWidth = o.width;\r\n\t\t\tvar itemTop = o.top, itemLeft = o.left;\r\n\r\n\t\t\treturn $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth);\r\n\t\t};\r\n\r\n\t\t$.each(inst.sortables, function(i) {\r\n\t\t\t\r\n\t\t\t//Copy over some variables to allow calling the sortable's native _intersectsWith\r\n\t\t\tthis.instance.positionAbs = inst.positionAbs;\r\n\t\t\tthis.instance.helperProportions = inst.helperProportions;\r\n\t\t\tthis.instance.offset.click = inst.offset.click;\r\n\t\t\t\r\n\t\t\tif(this.instance._intersectsWith(this.instance.containerCache)) {\r\n\r\n\t\t\t\t//If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once\r\n\t\t\t\tif(!this.instance.isOver) {\r\n\r\n\t\t\t\t\tthis.instance.isOver = 1;\r\n\t\t\t\t\t//Now we fake the start of dragging for the sortable instance,\r\n\t\t\t\t\t//by cloning the list group item, appending it to the sortable and using it as inst.currentItem\r\n\t\t\t\t\t//We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one)\r\n\t\t\t\t\tthis.instance.currentItem = $(self).clone().removeAttr('id').appendTo(this.instance.element).data(\"sortable-item\", true);\r\n\t\t\t\t\tthis.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it\r\n\t\t\t\t\tthis.instance.options.helper = function() { return ui.helper[0]; };\r\n\r\n\t\t\t\t\tevent.target = this.instance.currentItem[0];\r\n\t\t\t\t\tthis.instance._mouseCapture(event, true);\r\n\t\t\t\t\tthis.instance._mouseStart(event, true, true);\r\n\r\n\t\t\t\t\t//Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes\r\n\t\t\t\t\tthis.instance.offset.click.top = inst.offset.click.top;\r\n\t\t\t\t\tthis.instance.offset.click.left = inst.offset.click.left;\r\n\t\t\t\t\tthis.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left;\r\n\t\t\t\t\tthis.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top;\r\n\r\n\t\t\t\t\tinst._trigger(\"toSortable\", event);\r\n\t\t\t\t\tinst.dropped = this.instance.element; //draggable revert needs that\r\n\t\t\t\t\t//hack so receive/update callbacks work (mostly)\r\n\t\t\t\t\tinst.currentItem = inst.element;\r\n\t\t\t\t\tthis.instance.fromOutside = inst;\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable\r\n\t\t\t\tif(this.instance.currentItem) this.instance._mouseDrag(event);\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\t//If it doesn't intersect with the sortable, and it intersected before,\r\n\t\t\t\t//we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval\r\n\t\t\t\tif(this.instance.isOver) {\r\n\r\n\t\t\t\t\tthis.instance.isOver = 0;\r\n\t\t\t\t\tthis.instance.cancelHelperRemoval = true;\r\n\t\t\t\t\t\r\n\t\t\t\t\t//Prevent reverting on this forced stop\r\n\t\t\t\t\tthis.instance.options.revert = false;\r\n\t\t\t\t\t\r\n\t\t\t\t\t// The out event needs to be triggered independently\r\n\t\t\t\t\tthis.instance._trigger('out', event, this.instance._uiHash(this.instance));\r\n\t\t\t\t\t\r\n\t\t\t\t\tthis.instance._mouseStop(event, true);\r\n\t\t\t\t\tthis.instance.options.helper = this.instance.options._helper;\r\n\r\n\t\t\t\t\t//Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size\r\n\t\t\t\t\tthis.instance.currentItem.remove();\r\n\t\t\t\t\tif(this.instance.placeholder) this.instance.placeholder.remove();\r\n\r\n\t\t\t\t\tinst._trigger(\"fromSortable\", event);\r\n\t\t\t\t\tinst.dropped = false; //draggable revert needs that\r\n\t\t\t\t}\r\n\r\n\t\t\t};\r\n\r\n\t\t});\r\n\r\n\t}\r\n});\r\n\r\n$.ui.plugin.add(\"draggable\", \"cursor\", {\r\n\tstart: function(event, ui) {\r\n\t\tvar t = $('body'), o = $(this).data('draggable').options;\r\n\t\tif (t.css(\"cursor\")) o._cursor = t.css(\"cursor\");\r\n\t\tt.css(\"cursor\", o.cursor);\r\n\t},\r\n\tstop: function(event, ui) {\r\n\t\tvar o = $(this).data('draggable').options;\r\n\t\tif (o._cursor) $('body').css(\"cursor\", o._cursor);\r\n\t}\r\n});\r\n\r\n$.ui.plugin.add(\"draggable\", \"opacity\", {\r\n\tstart: function(event, ui) {\r\n\t\tvar t = $(ui.helper), o = $(this).data('draggable').options;\r\n\t\tif(t.css(\"opacity\")) o._opacity = t.css(\"opacity\");\r\n\t\tt.css('opacity', o.opacity);\r\n\t},\r\n\tstop: function(event, ui) {\r\n\t\tvar o = $(this).data('draggable').options;\r\n\t\tif(o._opacity) $(ui.helper).css('opacity', o._opacity);\r\n\t}\r\n});\r\n\r\n$.ui.plugin.add(\"draggable\", \"scroll\", {\r\n\tstart: function(event, ui) {\r\n\t\tvar i = $(this).data(\"draggable\");\r\n\t\tif(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset();\r\n\t},\r\n\tdrag: function(event, ui) {\r\n\r\n\t\tvar i = $(this).data(\"draggable\"), o = i.options, scrolled = false;\r\n\r\n\t\tif(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') {\r\n\r\n\t\t\tif(!o.axis || o.axis != 'x') {\r\n\t\t\t\tif((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)\r\n\t\t\t\t\ti.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed;\r\n\t\t\t\telse if(event.pageY - i.overflowOffset.top < o.scrollSensitivity)\r\n\t\t\t\t\ti.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed;\r\n\t\t\t}\r\n\r\n\t\t\tif(!o.axis || o.axis != 'y') {\r\n\t\t\t\tif((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)\r\n\t\t\t\t\ti.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed;\r\n\t\t\t\telse if(event.pageX - i.overflowOffset.left < o.scrollSensitivity)\r\n\t\t\t\t\ti.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed;\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\r\n\t\t\tif(!o.axis || o.axis != 'x') {\r\n\t\t\t\tif(event.pageY - $(document).scrollTop() < o.scrollSensitivity)\r\n\t\t\t\t\tscrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);\r\n\t\t\t\telse if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)\r\n\t\t\t\t\tscrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);\r\n\t\t\t}\r\n\r\n\t\t\tif(!o.axis || o.axis != 'y') {\r\n\t\t\t\tif(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)\r\n\t\t\t\t\tscrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);\r\n\t\t\t\telse if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)\r\n\t\t\t\t\tscrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tif(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)\r\n\t\t\t$.ui.ddmanager.prepareOffsets(i, event);\r\n\r\n\t}\r\n});\r\n\r\n$.ui.plugin.add(\"draggable\", \"snap\", {\r\n\tstart: function(event, ui) {\r\n\r\n\t\tvar i = $(this).data(\"draggable\"), o = i.options;\r\n\t\ti.snapElements = [];\r\n\r\n\t\t$(o.snap.constructor != String ? ( o.snap.items || ':data(draggable)' ) : o.snap).each(function() {\r\n\t\t\tvar $t = $(this); var $o = $t.offset();\r\n\t\t\tif(this != i.element[0]) i.snapElements.push({\r\n\t\t\t\titem: this,\r\n\t\t\t\twidth: $t.outerWidth(), height: $t.outerHeight(),\r\n\t\t\t\ttop: $o.top, left: $o.left\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t},\r\n\tdrag: function(event, ui) {\r\n\r\n\t\tvar inst = $(this).data(\"draggable\"), o = inst.options;\r\n\t\tvar d = o.snapTolerance;\r\n\r\n\t\tvar x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,\r\n\t\t\ty1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;\r\n\r\n\t\tfor (var i = inst.snapElements.length - 1; i >= 0; i--){\r\n\r\n\t\t\tvar l = inst.snapElements[i].left, r = l + inst.snapElements[i].width,\r\n\t\t\t\tt = inst.snapElements[i].top, b = t + inst.snapElements[i].height;\r\n\r\n\t\t\t//Yes, I know, this is insane ;)\r\n\t\t\tif(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) {\r\n\t\t\t\tif(inst.snapElements[i].snapping) (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));\r\n\t\t\t\tinst.snapElements[i].snapping = false;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tif(o.snapMode != 'inner') {\r\n\t\t\t\tvar ts = Math.abs(t - y2) <= d;\r\n\t\t\t\tvar bs = Math.abs(b - y1) <= d;\r\n\t\t\t\tvar ls = Math.abs(l - x2) <= d;\r\n\t\t\t\tvar rs = Math.abs(r - x1) <= d;\r\n\t\t\t\tif(ts) ui.position.top = inst._convertPositionTo(\"relative\", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top;\r\n\t\t\t\tif(bs) ui.position.top = inst._convertPositionTo(\"relative\", { top: b, left: 0 }).top - inst.margins.top;\r\n\t\t\t\tif(ls) ui.position.left = inst._convertPositionTo(\"relative\", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left;\r\n\t\t\t\tif(rs) ui.position.left = inst._convertPositionTo(\"relative\", { top: 0, left: r }).left - inst.margins.left;\r\n\t\t\t}\r\n\r\n\t\t\tvar first = (ts || bs || ls || rs);\r\n\r\n\t\t\tif(o.snapMode != 'outer') {\r\n\t\t\t\tvar ts = Math.abs(t - y1) <= d;\r\n\t\t\t\tvar bs = Math.abs(b - y2) <= d;\r\n\t\t\t\tvar ls = Math.abs(l - x1) <= d;\r\n\t\t\t\tvar rs = Math.abs(r - x2) <= d;\r\n\t\t\t\tif(ts) ui.position.top = inst._convertPositionTo(\"relative\", { top: t, left: 0 }).top - inst.margins.top;\r\n\t\t\t\tif(bs) ui.position.top = inst._convertPositionTo(\"relative\", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top;\r\n\t\t\t\tif(ls) ui.position.left = inst._convertPositionTo(\"relative\", { top: 0, left: l }).left - inst.margins.left;\r\n\t\t\t\tif(rs) ui.position.left = inst._convertPositionTo(\"relative\", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left;\r\n\t\t\t}\r\n\r\n\t\t\tif(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first))\r\n\t\t\t\t(inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));\r\n\t\t\tinst.snapElements[i].snapping = (ts || bs || ls || rs || first);\r\n\r\n\t\t};\r\n\r\n\t}\r\n});\r\n\r\n$.ui.plugin.add(\"draggable\", \"stack\", {\r\n\tstart: function(event, ui) {\r\n\r\n\t\tvar o = $(this).data(\"draggable\").options;\r\n\r\n\t\tvar group = $.makeArray($(o.stack)).sort(function(a,b) {\r\n\t\t\treturn (parseInt($(a).css(\"zIndex\"),10) || 0) - (parseInt($(b).css(\"zIndex\"),10) || 0);\r\n\t\t});\r\n\t\tif (!group.length) { return; }\r\n\t\t\r\n\t\tvar min = parseInt(group[0].style.zIndex) || 0;\r\n\t\t$(group).each(function(i) {\r\n\t\t\tthis.style.zIndex = min + i;\r\n\t\t});\r\n\r\n\t\tthis[0].style.zIndex = min + group.length;\r\n\r\n\t}\r\n});\r\n\r\n$.ui.plugin.add(\"draggable\", \"zIndex\", {\r\n\tstart: function(event, ui) {\r\n\t\tvar t = $(ui.helper), o = $(this).data(\"draggable\").options;\r\n\t\tif(t.css(\"zIndex\")) o._zIndex = t.css(\"zIndex\");\r\n\t\tt.css('zIndex', o.zIndex);\r\n\t},\r\n\tstop: function(event, ui) {\r\n\t\tvar o = $(this).data(\"draggable\").options;\r\n\t\tif(o._zIndex) $(ui.helper).css('zIndex', o._zIndex);\r\n\t}\r\n});\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.widget(\"ui.droppable\", {\r\n\twidgetEventPrefix: \"drop\",\r\n\toptions: {\r\n\t\taccept: '*',\r\n\t\tactiveClass: false,\r\n\t\taddClasses: true,\r\n\t\tgreedy: false,\r\n\t\thoverClass: false,\r\n\t\tscope: 'default',\r\n\t\ttolerance: 'intersect'\r\n\t},\r\n\t_create: function() {\r\n\r\n\t\tvar o = this.options, accept = o.accept;\r\n\t\tthis.isover = 0; this.isout = 1;\r\n\r\n\t\tthis.accept = $.isFunction(accept) ? accept : function(d) {\r\n\t\t\treturn d.is(accept);\r\n\t\t};\r\n\r\n\t\t//Store the droppable's proportions\r\n\t\tthis.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight };\r\n\r\n\t\t// Add the reference and positions to the manager\r\n\t\t$.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || [];\r\n\t\t$.ui.ddmanager.droppables[o.scope].push(this);\r\n\r\n\t\t(o.addClasses && this.element.addClass(\"ui-droppable\"));\r\n\r\n\t},\r\n\r\n\tdestroy: function() {\r\n\t\tvar drop = $.ui.ddmanager.droppables[this.options.scope];\r\n\t\tfor ( var i = 0; i < drop.length; i++ )\r\n\t\t\tif ( drop[i] == this )\r\n\t\t\t\tdrop.splice(i, 1);\r\n\r\n\t\tthis.element\r\n\t\t\t.removeClass(\"ui-droppable ui-droppable-disabled\")\r\n\t\t\t.removeData(\"droppable\")\r\n\t\t\t.unbind(\".droppable\");\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_setOption: function(key, value) {\r\n\r\n\t\tif(key == 'accept') {\r\n\t\t\tthis.accept = $.isFunction(value) ? value : function(d) {\r\n\t\t\t\treturn d.is(value);\r\n\t\t\t};\r\n\t\t}\r\n\t\t$.Widget.prototype._setOption.apply(this, arguments);\r\n\t},\r\n\r\n\t_activate: function(event) {\r\n\t\tvar draggable = $.ui.ddmanager.current;\r\n\t\tif(this.options.activeClass) this.element.addClass(this.options.activeClass);\r\n\t\t(draggable && this._trigger('activate', event, this.ui(draggable)));\r\n\t},\r\n\r\n\t_deactivate: function(event) {\r\n\t\tvar draggable = $.ui.ddmanager.current;\r\n\t\tif(this.options.activeClass) this.element.removeClass(this.options.activeClass);\r\n\t\t(draggable && this._trigger('deactivate', event, this.ui(draggable)));\r\n\t},\r\n\r\n\t_over: function(event) {\r\n\r\n\t\tvar draggable = $.ui.ddmanager.current;\r\n\t\tif (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element\r\n\r\n\t\tif (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {\r\n\t\t\tif(this.options.hoverClass) this.element.addClass(this.options.hoverClass);\r\n\t\t\tthis._trigger('over', event, this.ui(draggable));\r\n\t\t}\r\n\r\n\t},\r\n\r\n\t_out: function(event) {\r\n\r\n\t\tvar draggable = $.ui.ddmanager.current;\r\n\t\tif (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element\r\n\r\n\t\tif (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {\r\n\t\t\tif(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);\r\n\t\t\tthis._trigger('out', event, this.ui(draggable));\r\n\t\t}\r\n\r\n\t},\r\n\r\n\t_drop: function(event,custom) {\r\n\r\n\t\tvar draggable = custom || $.ui.ddmanager.current;\r\n\t\tif (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return false; // Bail if draggable and droppable are same element\r\n\r\n\t\tvar childrenIntersection = false;\r\n\t\tthis.element.find(\":data(droppable)\").not(\".ui-draggable-dragging\").each(function() {\r\n\t\t\tvar inst = $.data(this, 'droppable');\r\n\t\t\tif(\r\n\t\t\t\tinst.options.greedy\r\n\t\t\t\t&& !inst.options.disabled\r\n\t\t\t\t&& inst.options.scope == draggable.options.scope\r\n\t\t\t\t&& inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element))\r\n\t\t\t\t&& $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)\r\n\t\t\t) { childrenIntersection = true; return false; }\r\n\t\t});\r\n\t\tif(childrenIntersection) return false;\r\n\r\n\t\tif(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {\r\n\t\t\tif(this.options.activeClass) this.element.removeClass(this.options.activeClass);\r\n\t\t\tif(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);\r\n\t\t\tthis._trigger('drop', event, this.ui(draggable));\r\n\t\t\treturn this.element;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\r\n\t},\r\n\r\n\tui: function(c) {\r\n\t\treturn {\r\n\t\t\tdraggable: (c.currentItem || c.element),\r\n\t\t\thelper: c.helper,\r\n\t\t\tposition: c.position,\r\n\t\t\toffset: c.positionAbs\r\n\t\t};\r\n\t}\r\n\r\n});\r\n\r\n$.extend($.ui.droppable, {\r\n\tversion: \"1.8.22\"\r\n});\r\n\r\n$.ui.intersect = function(draggable, droppable, toleranceMode) {\r\n\r\n\tif (!droppable.offset) return false;\r\n\r\n\tvar x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width,\r\n\t\ty1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height;\r\n\tvar l = droppable.offset.left, r = l + droppable.proportions.width,\r\n\t\tt = droppable.offset.top, b = t + droppable.proportions.height;\r\n\r\n\tswitch (toleranceMode) {\r\n\t\tcase 'fit':\r\n\t\t\treturn (l <= x1 && x2 <= r\r\n\t\t\t\t&& t <= y1 && y2 <= b);\r\n\t\t\tbreak;\r\n\t\tcase 'intersect':\r\n\t\t\treturn (l < x1 + (draggable.helperProportions.width / 2) // Right Half\r\n\t\t\t\t&& x2 - (draggable.helperProportions.width / 2) < r // Left Half\r\n\t\t\t\t&& t < y1 + (draggable.helperProportions.height / 2) // Bottom Half\r\n\t\t\t\t&& y2 - (draggable.helperProportions.height / 2) < b ); // Top Half\r\n\t\t\tbreak;\r\n\t\tcase 'pointer':\r\n\t\t\tvar draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left),\r\n\t\t\t\tdraggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top),\r\n\t\t\t\tisOver = $.ui.isOver(draggableTop, draggableLeft, t, l, droppable.proportions.height, droppable.proportions.width);\r\n\t\t\treturn isOver;\r\n\t\t\tbreak;\r\n\t\tcase 'touch':\r\n\t\t\treturn (\r\n\t\t\t\t\t(y1 >= t && y1 <= b) ||\t// Top edge touching\r\n\t\t\t\t\t(y2 >= t && y2 <= b) ||\t// Bottom edge touching\r\n\t\t\t\t\t(y1 < t && y2 > b)\t\t// Surrounded vertically\r\n\t\t\t\t) && (\r\n\t\t\t\t\t(x1 >= l && x1 <= r) ||\t// Left edge touching\r\n\t\t\t\t\t(x2 >= l && x2 <= r) ||\t// Right edge touching\r\n\t\t\t\t\t(x1 < l && x2 > r)\t\t// Surrounded horizontally\r\n\t\t\t\t);\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\treturn false;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n};\r\n\r\n/*\r\n\tThis manager tracks offsets of draggables and droppables\r\n*/\r\n$.ui.ddmanager = {\r\n\tcurrent: null,\r\n\tdroppables: { 'default': [] },\r\n\tprepareOffsets: function(t, event) {\r\n\r\n\t\tvar m = $.ui.ddmanager.droppables[t.options.scope] || [];\r\n\t\tvar type = event ? event.type : null; // workaround for #2317\r\n\t\tvar list = (t.currentItem || t.element).find(\":data(droppable)\").andSelf();\r\n\r\n\t\tdroppablesLoop: for (var i = 0; i < m.length; i++) {\r\n\r\n\t\t\tif(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) continue;\t//No disabled and non-accepted\r\n\t\t\tfor (var j=0; j < list.length; j++) { if(list[j] == m[i].element[0]) { m[i].proportions.height = 0; continue droppablesLoop; } }; //Filter out elements in the current dragged item\r\n\t\t\tm[i].visible = m[i].element.css(\"display\") != \"none\"; if(!m[i].visible) continue; \t\t\t\t\t\t\t\t\t//If the element is not visible, continue\r\n\r\n\t\t\tif(type == \"mousedown\") m[i]._activate.call(m[i], event); //Activate the droppable if used directly from draggables\r\n\r\n\t\t\tm[i].offset = m[i].element.offset();\r\n\t\t\tm[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight };\r\n\r\n\t\t}\r\n\r\n\t},\r\n\tdrop: function(draggable, event) {\r\n\r\n\t\tvar dropped = false;\r\n\t\t$.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {\r\n\r\n\t\t\tif(!this.options) return;\r\n\t\t\tif (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance))\r\n\t\t\t\tdropped = this._drop.call(this, event) || dropped;\r\n\r\n\t\t\tif (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {\r\n\t\t\t\tthis.isout = 1; this.isover = 0;\r\n\t\t\t\tthis._deactivate.call(this, event);\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t\treturn dropped;\r\n\r\n\t},\r\n\tdragStart: function( draggable, event ) {\r\n\t\t//Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003)\r\n\t\tdraggable.element.parents( \":not(body,html)\" ).bind( \"scroll.droppable\", function() {\r\n\t\t\tif( !draggable.options.refreshPositions ) $.ui.ddmanager.prepareOffsets( draggable, event );\r\n\t\t});\r\n\t},\r\n\tdrag: function(draggable, event) {\r\n\r\n\t\t//If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse.\r\n\t\tif(draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event);\r\n\r\n\t\t//Run through all droppables and check their positions based on specific tolerance options\r\n\t\t$.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {\r\n\r\n\t\t\tif(this.options.disabled || this.greedyChild || !this.visible) return;\r\n\t\t\tvar intersects = $.ui.intersect(draggable, this, this.options.tolerance);\r\n\r\n\t\t\tvar c = !intersects && this.isover == 1 ? 'isout' : (intersects && this.isover == 0 ? 'isover' : null);\r\n\t\t\tif(!c) return;\r\n\r\n\t\t\tvar parentInstance;\r\n\t\t\tif (this.options.greedy) {\r\n\t\t\t\tvar parent = this.element.parents(':data(droppable):eq(0)');\r\n\t\t\t\tif (parent.length) {\r\n\t\t\t\t\tparentInstance = $.data(parent[0], 'droppable');\r\n\t\t\t\t\tparentInstance.greedyChild = (c == 'isover' ? 1 : 0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// we just moved into a greedy child\r\n\t\t\tif (parentInstance && c == 'isover') {\r\n\t\t\t\tparentInstance['isover'] = 0;\r\n\t\t\t\tparentInstance['isout'] = 1;\r\n\t\t\t\tparentInstance._out.call(parentInstance, event);\r\n\t\t\t}\r\n\r\n\t\t\tthis[c] = 1; this[c == 'isout' ? 'isover' : 'isout'] = 0;\r\n\t\t\tthis[c == \"isover\" ? \"_over\" : \"_out\"].call(this, event);\r\n\r\n\t\t\t// we just moved out of a greedy child\r\n\t\t\tif (parentInstance && c == 'isout') {\r\n\t\t\t\tparentInstance['isout'] = 0;\r\n\t\t\t\tparentInstance['isover'] = 1;\r\n\t\t\t\tparentInstance._over.call(parentInstance, event);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t},\r\n\tdragStop: function( draggable, event ) {\r\n\t\tdraggable.element.parents( \":not(body,html)\" ).unbind( \"scroll.droppable\" );\r\n\t\t//Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003)\r\n\t\tif( !draggable.options.refreshPositions ) $.ui.ddmanager.prepareOffsets( draggable, event );\r\n\t}\r\n};\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.widget(\"ui.resizable\", $.ui.mouse, {\r\n\twidgetEventPrefix: \"resize\",\r\n\toptions: {\r\n\t\talsoResize: false,\r\n\t\tanimate: false,\r\n\t\tanimateDuration: \"slow\",\r\n\t\tanimateEasing: \"swing\",\r\n\t\taspectRatio: false,\r\n\t\tautoHide: false,\r\n\t\tcontainment: false,\r\n\t\tghost: false,\r\n\t\tgrid: false,\r\n\t\thandles: \"e,s,se\",\r\n\t\thelper: false,\r\n\t\tmaxHeight: null,\r\n\t\tmaxWidth: null,\r\n\t\tminHeight: 10,\r\n\t\tminWidth: 10,\r\n\t\tzIndex: 1000\r\n\t},\r\n\t_create: function() {\r\n\r\n\t\tvar self = this, o = this.options;\r\n\t\tthis.element.addClass(\"ui-resizable\");\r\n\r\n\t\t$.extend(this, {\r\n\t\t\t_aspectRatio: !!(o.aspectRatio),\r\n\t\t\taspectRatio: o.aspectRatio,\r\n\t\t\toriginalElement: this.element,\r\n\t\t\t_proportionallyResizeElements: [],\r\n\t\t\t_helper: o.helper || o.ghost || o.animate ? o.helper || 'ui-resizable-helper' : null\r\n\t\t});\r\n\r\n\t\t//Wrap the element if it cannot hold child nodes\r\n\t\tif(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {\r\n\r\n\t\t\t//Create a wrapper element and set the wrapper to the new current internal element\r\n\t\t\tthis.element.wrap(\r\n\t\t\t\t$('
').css({\r\n\t\t\t\t\tposition: this.element.css('position'),\r\n\t\t\t\t\twidth: this.element.outerWidth(),\r\n\t\t\t\t\theight: this.element.outerHeight(),\r\n\t\t\t\t\ttop: this.element.css('top'),\r\n\t\t\t\t\tleft: this.element.css('left')\r\n\t\t\t\t})\r\n\t\t\t);\r\n\r\n\t\t\t//Overwrite the original this.element\r\n\t\t\tthis.element = this.element.parent().data(\r\n\t\t\t\t\"resizable\", this.element.data('resizable')\r\n\t\t\t);\r\n\r\n\t\t\tthis.elementIsWrapper = true;\r\n\r\n\t\t\t//Move margins to the wrapper\r\n\t\t\tthis.element.css({ marginLeft: this.originalElement.css(\"marginLeft\"), marginTop: this.originalElement.css(\"marginTop\"), marginRight: this.originalElement.css(\"marginRight\"), marginBottom: this.originalElement.css(\"marginBottom\") });\r\n\t\t\tthis.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0});\r\n\r\n\t\t\t//Prevent Safari textarea resize\r\n\t\t\tthis.originalResizeStyle = this.originalElement.css('resize');\r\n\t\t\tthis.originalElement.css('resize', 'none');\r\n\r\n\t\t\t//Push the actual element to our proportionallyResize internal array\r\n\t\t\tthis._proportionallyResizeElements.push(this.originalElement.css({ position: 'static', zoom: 1, display: 'block' }));\r\n\r\n\t\t\t// avoid IE jump (hard set the margin)\r\n\t\t\tthis.originalElement.css({ margin: this.originalElement.css('margin') });\r\n\r\n\t\t\t// fix handlers offset\r\n\t\t\tthis._proportionallyResize();\r\n\r\n\t\t}\r\n\r\n\t\tthis.handles = o.handles || (!$('.ui-resizable-handle', this.element).length ? \"e,s,se\" : { n: '.ui-resizable-n', e: '.ui-resizable-e', s: '.ui-resizable-s', w: '.ui-resizable-w', se: '.ui-resizable-se', sw: '.ui-resizable-sw', ne: '.ui-resizable-ne', nw: '.ui-resizable-nw' });\r\n\t\tif(this.handles.constructor == String) {\r\n\r\n\t\t\tif(this.handles == 'all') this.handles = 'n,e,s,w,se,sw,ne,nw';\r\n\t\t\tvar n = this.handles.split(\",\"); this.handles = {};\r\n\r\n\t\t\tfor(var i = 0; i < n.length; i++) {\r\n\r\n\t\t\t\tvar handle = $.trim(n[i]), hname = 'ui-resizable-'+handle;\r\n\t\t\t\tvar axis = $('
');\r\n\r\n\t\t\t\t// Apply zIndex to all handles - see #7960\r\n\t\t\t\taxis.css({ zIndex: o.zIndex });\r\n\r\n\t\t\t\t//TODO : What's going on here?\r\n\t\t\t\tif ('se' == handle) {\r\n\t\t\t\t\taxis.addClass('ui-icon ui-icon-gripsmall-diagonal-se');\r\n\t\t\t\t};\r\n\r\n\t\t\t\t//Insert into internal handles object and append to element\r\n\t\t\t\tthis.handles[handle] = '.ui-resizable-'+handle;\r\n\t\t\t\tthis.element.append(axis);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tthis._renderAxis = function(target) {\r\n\r\n\t\t\ttarget = target || this.element;\r\n\r\n\t\t\tfor(var i in this.handles) {\r\n\r\n\t\t\t\tif(this.handles[i].constructor == String)\r\n\t\t\t\t\tthis.handles[i] = $(this.handles[i], this.element).show();\r\n\r\n\t\t\t\t//Apply pad to wrapper element, needed to fix axis position (textarea, inputs, scrolls)\r\n\t\t\t\tif (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {\r\n\r\n\t\t\t\t\tvar axis = $(this.handles[i], this.element), padWrapper = 0;\r\n\r\n\t\t\t\t\t//Checking the correct pad and border\r\n\t\t\t\t\tpadWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();\r\n\r\n\t\t\t\t\t//The padding type i have to apply...\r\n\t\t\t\t\tvar padPos = [ 'padding',\r\n\t\t\t\t\t\t/ne|nw|n/.test(i) ? 'Top' :\r\n\t\t\t\t\t\t/se|sw|s/.test(i) ? 'Bottom' :\r\n\t\t\t\t\t\t/^e$/.test(i) ? 'Right' : 'Left' ].join(\"\");\r\n\r\n\t\t\t\t\ttarget.css(padPos, padWrapper);\r\n\r\n\t\t\t\t\tthis._proportionallyResize();\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//TODO: What's that good for? There's not anything to be executed left\r\n\t\t\t\tif(!$(this.handles[i]).length)\r\n\t\t\t\t\tcontinue;\r\n\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//TODO: make renderAxis a prototype function\r\n\t\tthis._renderAxis(this.element);\r\n\r\n\t\tthis._handles = $('.ui-resizable-handle', this.element)\r\n\t\t\t.disableSelection();\r\n\r\n\t\t//Matching axis name\r\n\t\tthis._handles.mouseover(function() {\r\n\t\t\tif (!self.resizing) {\r\n\t\t\t\tif (this.className)\r\n\t\t\t\t\tvar axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);\r\n\t\t\t\t//Axis, default = se\r\n\t\t\t\tself.axis = axis && axis[1] ? axis[1] : 'se';\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//If we want to auto hide the elements\r\n\t\tif (o.autoHide) {\r\n\t\t\tthis._handles.hide();\r\n\t\t\t$(this.element)\r\n\t\t\t\t.addClass(\"ui-resizable-autohide\")\r\n\t\t\t\t.hover(function() {\r\n\t\t\t\t\tif (o.disabled) return;\r\n\t\t\t\t\t$(this).removeClass(\"ui-resizable-autohide\");\r\n\t\t\t\t\tself._handles.show();\r\n\t\t\t\t},\r\n\t\t\t\tfunction(){\r\n\t\t\t\t\tif (o.disabled) return;\r\n\t\t\t\t\tif (!self.resizing) {\r\n\t\t\t\t\t\t$(this).addClass(\"ui-resizable-autohide\");\r\n\t\t\t\t\t\tself._handles.hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\t//Initialize the mouse interaction\r\n\t\tthis._mouseInit();\r\n\r\n\t},\r\n\r\n\tdestroy: function() {\r\n\r\n\t\tthis._mouseDestroy();\r\n\r\n\t\tvar _destroy = function(exp) {\r\n\t\t\t$(exp).removeClass(\"ui-resizable ui-resizable-disabled ui-resizable-resizing\")\r\n\t\t\t\t.removeData(\"resizable\").unbind(\".resizable\").find('.ui-resizable-handle').remove();\r\n\t\t};\r\n\r\n\t\t//TODO: Unwrap at same DOM position\r\n\t\tif (this.elementIsWrapper) {\r\n\t\t\t_destroy(this.element);\r\n\t\t\tvar wrapper = this.element;\r\n\t\t\twrapper.after(\r\n\t\t\t\tthis.originalElement.css({\r\n\t\t\t\t\tposition: wrapper.css('position'),\r\n\t\t\t\t\twidth: wrapper.outerWidth(),\r\n\t\t\t\t\theight: wrapper.outerHeight(),\r\n\t\t\t\t\ttop: wrapper.css('top'),\r\n\t\t\t\t\tleft: wrapper.css('left')\r\n\t\t\t\t})\r\n\t\t\t).remove();\r\n\t\t}\r\n\r\n\t\tthis.originalElement.css('resize', this.originalResizeStyle);\r\n\t\t_destroy(this.originalElement);\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_mouseCapture: function(event) {\r\n\t\tvar handle = false;\r\n\t\tfor (var i in this.handles) {\r\n\t\t\tif ($(this.handles[i])[0] == event.target) {\r\n\t\t\t\thandle = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn !this.options.disabled && handle;\r\n\t},\r\n\r\n\t_mouseStart: function(event) {\r\n\r\n\t\tvar o = this.options, iniPos = this.element.position(), el = this.element;\r\n\r\n\t\tthis.resizing = true;\r\n\t\tthis.documentScroll = { top: $(document).scrollTop(), left: $(document).scrollLeft() };\r\n\r\n\t\t// bugfix for http://dev.jquery.com/ticket/1749\r\n\t\tif (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) {\r\n\t\t\tel.css({ position: 'absolute', top: iniPos.top, left: iniPos.left });\r\n\t\t}\r\n\r\n\t\tthis._renderProxy();\r\n\r\n\t\tvar curleft = num(this.helper.css('left')), curtop = num(this.helper.css('top'));\r\n\r\n\t\tif (o.containment) {\r\n\t\t\tcurleft += $(o.containment).scrollLeft() || 0;\r\n\t\t\tcurtop += $(o.containment).scrollTop() || 0;\r\n\t\t}\r\n\r\n\t\t//Store needed variables\r\n\t\tthis.offset = this.helper.offset();\r\n\t\tthis.position = { left: curleft, top: curtop };\r\n\t\tthis.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };\r\n\t\tthis.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };\r\n\t\tthis.originalPosition = { left: curleft, top: curtop };\r\n\t\tthis.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() };\r\n\t\tthis.originalMousePosition = { left: event.pageX, top: event.pageY };\r\n\r\n\t\t//Aspect Ratio\r\n\t\tthis.aspectRatio = (typeof o.aspectRatio == 'number') ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1);\r\n\r\n\t var cursor = $('.ui-resizable-' + this.axis).css('cursor');\r\n\t $('body').css('cursor', cursor == 'auto' ? this.axis + '-resize' : cursor);\r\n\r\n\t\tel.addClass(\"ui-resizable-resizing\");\r\n\t\tthis._propagate(\"start\", event);\r\n\t\treturn true;\r\n\t},\r\n\r\n\t_mouseDrag: function(event) {\r\n\r\n\t\t//Increase performance, avoid regex\r\n\t\tvar el = this.helper, o = this.options, props = {},\r\n\t\t\tself = this, smp = this.originalMousePosition, a = this.axis;\r\n\r\n\t\tvar dx = (event.pageX-smp.left)||0, dy = (event.pageY-smp.top)||0;\r\n\t\tvar trigger = this._change[a];\r\n\t\tif (!trigger) return false;\r\n\r\n\t\t// Calculate the attrs that will be change\r\n\t\tvar data = trigger.apply(this, [event, dx, dy]), ie6 = $.browser.msie && $.browser.version < 7, csdif = this.sizeDiff;\r\n\r\n\t\t// Put this in the mouseDrag handler since the user can start pressing shift while resizing\r\n\t\tthis._updateVirtualBoundaries(event.shiftKey);\r\n\t\tif (this._aspectRatio || event.shiftKey)\r\n\t\t\tdata = this._updateRatio(data, event);\r\n\r\n\t\tdata = this._respectSize(data, event);\r\n\r\n\t\t// plugins callbacks need to be called first\r\n\t\tthis._propagate(\"resize\", event);\r\n\r\n\t\tel.css({\r\n\t\t\ttop: this.position.top + \"px\", left: this.position.left + \"px\",\r\n\t\t\twidth: this.size.width + \"px\", height: this.size.height + \"px\"\r\n\t\t});\r\n\r\n\t\tif (!this._helper && this._proportionallyResizeElements.length)\r\n\t\t\tthis._proportionallyResize();\r\n\r\n\t\tthis._updateCache(data);\r\n\r\n\t\t// calling the user callback at the end\r\n\t\tthis._trigger('resize', event, this.ui());\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_mouseStop: function(event) {\r\n\r\n\t\tthis.resizing = false;\r\n\t\tvar o = this.options, self = this;\r\n\r\n\t\tif(this._helper) {\r\n\t\t\tvar pr = this._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName),\r\n\t\t\t\tsoffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height,\r\n\t\t\t\tsoffsetw = ista ? 0 : self.sizeDiff.width;\r\n\r\n\t\t\tvar s = { width: (self.helper.width() - soffsetw), height: (self.helper.height() - soffseth) },\r\n\t\t\t\tleft = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null,\r\n\t\t\t\ttop = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null;\r\n\r\n\t\t\tif (!o.animate)\r\n\t\t\t\tthis.element.css($.extend(s, { top: top, left: left }));\r\n\r\n\t\t\tself.helper.height(self.size.height);\r\n\t\t\tself.helper.width(self.size.width);\r\n\r\n\t\t\tif (this._helper && !o.animate) this._proportionallyResize();\r\n\t\t}\r\n\r\n\t\t$('body').css('cursor', 'auto');\r\n\r\n\t\tthis.element.removeClass(\"ui-resizable-resizing\");\r\n\r\n\t\tthis._propagate(\"stop\", event);\r\n\r\n\t\tif (this._helper) this.helper.remove();\r\n\t\treturn false;\r\n\r\n\t},\r\n\r\n _updateVirtualBoundaries: function(forceAspectRatio) {\r\n var o = this.options, pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b;\r\n\r\n b = {\r\n minWidth: isNumber(o.minWidth) ? o.minWidth : 0,\r\n maxWidth: isNumber(o.maxWidth) ? o.maxWidth : Infinity,\r\n minHeight: isNumber(o.minHeight) ? o.minHeight : 0,\r\n maxHeight: isNumber(o.maxHeight) ? o.maxHeight : Infinity\r\n };\r\n\r\n if(this._aspectRatio || forceAspectRatio) {\r\n // We want to create an enclosing box whose aspect ration is the requested one\r\n // First, compute the \"projected\" size for each dimension based on the aspect ratio and other dimension\r\n pMinWidth = b.minHeight * this.aspectRatio;\r\n pMinHeight = b.minWidth / this.aspectRatio;\r\n pMaxWidth = b.maxHeight * this.aspectRatio;\r\n pMaxHeight = b.maxWidth / this.aspectRatio;\r\n\r\n if(pMinWidth > b.minWidth) b.minWidth = pMinWidth;\r\n if(pMinHeight > b.minHeight) b.minHeight = pMinHeight;\r\n if(pMaxWidth < b.maxWidth) b.maxWidth = pMaxWidth;\r\n if(pMaxHeight < b.maxHeight) b.maxHeight = pMaxHeight;\r\n }\r\n this._vBoundaries = b;\r\n },\r\n\r\n\t_updateCache: function(data) {\r\n\t\tvar o = this.options;\r\n\t\tthis.offset = this.helper.offset();\r\n\t\tif (isNumber(data.left)) this.position.left = data.left;\r\n\t\tif (isNumber(data.top)) this.position.top = data.top;\r\n\t\tif (isNumber(data.height)) this.size.height = data.height;\r\n\t\tif (isNumber(data.width)) this.size.width = data.width;\r\n\t},\r\n\r\n\t_updateRatio: function(data, event) {\r\n\r\n\t\tvar o = this.options, cpos = this.position, csize = this.size, a = this.axis;\r\n\r\n\t\tif (isNumber(data.height)) data.width = (data.height * this.aspectRatio);\r\n\t\telse if (isNumber(data.width)) data.height = (data.width / this.aspectRatio);\r\n\r\n\t\tif (a == 'sw') {\r\n\t\t\tdata.left = cpos.left + (csize.width - data.width);\r\n\t\t\tdata.top = null;\r\n\t\t}\r\n\t\tif (a == 'nw') {\r\n\t\t\tdata.top = cpos.top + (csize.height - data.height);\r\n\t\t\tdata.left = cpos.left + (csize.width - data.width);\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t},\r\n\r\n\t_respectSize: function(data, event) {\r\n\r\n\t\tvar el = this.helper, o = this._vBoundaries, pRatio = this._aspectRatio || event.shiftKey, a = this.axis,\r\n\t\t\t\tismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height),\r\n\t\t\t\t\tisminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height);\r\n\r\n\t\tif (isminw) data.width = o.minWidth;\r\n\t\tif (isminh) data.height = o.minHeight;\r\n\t\tif (ismaxw) data.width = o.maxWidth;\r\n\t\tif (ismaxh) data.height = o.maxHeight;\r\n\r\n\t\tvar dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height;\r\n\t\tvar cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a);\r\n\r\n\t\tif (isminw && cw) data.left = dw - o.minWidth;\r\n\t\tif (ismaxw && cw) data.left = dw - o.maxWidth;\r\n\t\tif (isminh && ch)\tdata.top = dh - o.minHeight;\r\n\t\tif (ismaxh && ch)\tdata.top = dh - o.maxHeight;\r\n\r\n\t\t// fixing jump error on top/left - bug #2330\r\n\t\tvar isNotwh = !data.width && !data.height;\r\n\t\tif (isNotwh && !data.left && data.top) data.top = null;\r\n\t\telse if (isNotwh && !data.top && data.left) data.left = null;\r\n\r\n\t\treturn data;\r\n\t},\r\n\r\n\t_proportionallyResize: function() {\r\n\r\n\t\tvar o = this.options;\r\n\t\tif (!this._proportionallyResizeElements.length) return;\r\n\t\tvar element = this.helper || this.element;\r\n\r\n\t\tfor (var i=0; i < this._proportionallyResizeElements.length; i++) {\r\n\r\n\t\t\tvar prel = this._proportionallyResizeElements[i];\r\n\r\n\t\t\tif (!this.borderDif) {\r\n\t\t\t\tvar b = [prel.css('borderTopWidth'), prel.css('borderRightWidth'), prel.css('borderBottomWidth'), prel.css('borderLeftWidth')],\r\n\t\t\t\t\tp = [prel.css('paddingTop'), prel.css('paddingRight'), prel.css('paddingBottom'), prel.css('paddingLeft')];\r\n\r\n\t\t\t\tthis.borderDif = $.map(b, function(v, i) {\r\n\t\t\t\t\tvar border = parseInt(v,10)||0, padding = parseInt(p[i],10)||0;\r\n\t\t\t\t\treturn border + padding;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif ($.browser.msie && !(!($(element).is(':hidden') || $(element).parents(':hidden').length)))\r\n\t\t\t\tcontinue;\r\n\r\n\t\t\tprel.css({\r\n\t\t\t\theight: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0,\r\n\t\t\t\twidth: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0\r\n\t\t\t});\r\n\r\n\t\t};\r\n\r\n\t},\r\n\r\n\t_renderProxy: function() {\r\n\r\n\t\tvar el = this.element, o = this.options;\r\n\t\tthis.elementOffset = el.offset();\r\n\r\n\t\tif(this._helper) {\r\n\r\n\t\t\tthis.helper = this.helper || $('
');\r\n\r\n\t\t\t// fix ie6 offset TODO: This seems broken\r\n\t\t\tvar ie6 = $.browser.msie && $.browser.version < 7, ie6offset = (ie6 ? 1 : 0),\r\n\t\t\tpxyoffset = ( ie6 ? 2 : -1 );\r\n\r\n\t\t\tthis.helper.addClass(this._helper).css({\r\n\t\t\t\twidth: this.element.outerWidth() + pxyoffset,\r\n\t\t\t\theight: this.element.outerHeight() + pxyoffset,\r\n\t\t\t\tposition: 'absolute',\r\n\t\t\t\tleft: this.elementOffset.left - ie6offset +'px',\r\n\t\t\t\ttop: this.elementOffset.top - ie6offset +'px',\r\n\t\t\t\tzIndex: ++o.zIndex //TODO: Don't modify option\r\n\t\t\t});\r\n\r\n\t\t\tthis.helper\r\n\t\t\t\t.appendTo(\"body\")\r\n\t\t\t\t.disableSelection();\r\n\r\n\t\t} else {\r\n\t\t\tthis.helper = this.element;\r\n\t\t}\r\n\r\n\t},\r\n\r\n\t_change: {\r\n\t\te: function(event, dx, dy) {\r\n\t\t\treturn { width: this.originalSize.width + dx };\r\n\t\t},\r\n\t\tw: function(event, dx, dy) {\r\n\t\t\tvar o = this.options, cs = this.originalSize, sp = this.originalPosition;\r\n\t\t\treturn { left: sp.left + dx, width: cs.width - dx };\r\n\t\t},\r\n\t\tn: function(event, dx, dy) {\r\n\t\t\tvar o = this.options, cs = this.originalSize, sp = this.originalPosition;\r\n\t\t\treturn { top: sp.top + dy, height: cs.height - dy };\r\n\t\t},\r\n\t\ts: function(event, dx, dy) {\r\n\t\t\treturn { height: this.originalSize.height + dy };\r\n\t\t},\r\n\t\tse: function(event, dx, dy) {\r\n\t\t\treturn $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));\r\n\t\t},\r\n\t\tsw: function(event, dx, dy) {\r\n\t\t\treturn $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));\r\n\t\t},\r\n\t\tne: function(event, dx, dy) {\r\n\t\t\treturn $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));\r\n\t\t},\r\n\t\tnw: function(event, dx, dy) {\r\n\t\t\treturn $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));\r\n\t\t}\r\n\t},\r\n\r\n\t_propagate: function(n, event) {\r\n\t\t$.ui.plugin.call(this, n, [event, this.ui()]);\r\n\t\t(n != \"resize\" && this._trigger(n, event, this.ui()));\r\n\t},\r\n\r\n\tplugins: {},\r\n\r\n\tui: function() {\r\n\t\treturn {\r\n\t\t\toriginalElement: this.originalElement,\r\n\t\t\telement: this.element,\r\n\t\t\thelper: this.helper,\r\n\t\t\tposition: this.position,\r\n\t\t\tsize: this.size,\r\n\t\t\toriginalSize: this.originalSize,\r\n\t\t\toriginalPosition: this.originalPosition\r\n\t\t};\r\n\t}\r\n\r\n});\r\n\r\n$.extend($.ui.resizable, {\r\n\tversion: \"1.8.22\"\r\n});\r\n\r\n/*\r\n * Resizable Extensions\r\n */\r\n\r\n$.ui.plugin.add(\"resizable\", \"alsoResize\", {\r\n\r\n\tstart: function (event, ui) {\r\n\t\tvar self = $(this).data(\"resizable\"), o = self.options;\r\n\r\n\t\tvar _store = function (exp) {\r\n\t\t\t$(exp).each(function() {\r\n\t\t\t\tvar el = $(this);\r\n\t\t\t\tel.data(\"resizable-alsoresize\", {\r\n\t\t\t\t\twidth: parseInt(el.width(), 10), height: parseInt(el.height(), 10),\r\n\t\t\t\t\tleft: parseInt(el.css('left'), 10), top: parseInt(el.css('top'), 10)\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tif (typeof(o.alsoResize) == 'object' && !o.alsoResize.parentNode) {\r\n\t\t\tif (o.alsoResize.length) { o.alsoResize = o.alsoResize[0]; _store(o.alsoResize); }\r\n\t\t\telse { $.each(o.alsoResize, function (exp) { _store(exp); }); }\r\n\t\t}else{\r\n\t\t\t_store(o.alsoResize);\r\n\t\t}\r\n\t},\r\n\r\n\tresize: function (event, ui) {\r\n\t\tvar self = $(this).data(\"resizable\"), o = self.options, os = self.originalSize, op = self.originalPosition;\r\n\r\n\t\tvar delta = {\r\n\t\t\theight: (self.size.height - os.height) || 0, width: (self.size.width - os.width) || 0,\r\n\t\t\ttop: (self.position.top - op.top) || 0, left: (self.position.left - op.left) || 0\r\n\t\t},\r\n\r\n\t\t_alsoResize = function (exp, c) {\r\n\t\t\t$(exp).each(function() {\r\n\t\t\t\tvar el = $(this), start = $(this).data(\"resizable-alsoresize\"), style = {}, \r\n\t\t\t\t\tcss = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];\r\n\r\n\t\t\t\t$.each(css, function (i, prop) {\r\n\t\t\t\t\tvar sum = (start[prop]||0) + (delta[prop]||0);\r\n\t\t\t\t\tif (sum && sum >= 0)\r\n\t\t\t\t\t\tstyle[prop] = sum || null;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tel.css(style);\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tif (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {\r\n\t\t\t$.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); });\r\n\t\t}else{\r\n\t\t\t_alsoResize(o.alsoResize);\r\n\t\t}\r\n\t},\r\n\r\n\tstop: function (event, ui) {\r\n\t\t$(this).removeData(\"resizable-alsoresize\");\r\n\t}\r\n});\r\n\r\n$.ui.plugin.add(\"resizable\", \"animate\", {\r\n\r\n\tstop: function(event, ui) {\r\n\t\tvar self = $(this).data(\"resizable\"), o = self.options;\r\n\r\n\t\tvar pr = self._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName),\r\n\t\t\t\t\tsoffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height,\r\n\t\t\t\t\t\tsoffsetw = ista ? 0 : self.sizeDiff.width;\r\n\r\n\t\tvar style = { width: (self.size.width - soffsetw), height: (self.size.height - soffseth) },\r\n\t\t\t\t\tleft = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null,\r\n\t\t\t\t\t\ttop = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null;\r\n\r\n\t\tself.element.animate(\r\n\t\t\t$.extend(style, top && left ? { top: top, left: left } : {}), {\r\n\t\t\t\tduration: o.animateDuration,\r\n\t\t\t\teasing: o.animateEasing,\r\n\t\t\t\tstep: function() {\r\n\r\n\t\t\t\t\tvar data = {\r\n\t\t\t\t\t\twidth: parseInt(self.element.css('width'), 10),\r\n\t\t\t\t\t\theight: parseInt(self.element.css('height'), 10),\r\n\t\t\t\t\t\ttop: parseInt(self.element.css('top'), 10),\r\n\t\t\t\t\t\tleft: parseInt(self.element.css('left'), 10)\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tif (pr && pr.length) $(pr[0]).css({ width: data.width, height: data.height });\r\n\r\n\t\t\t\t\t// propagating resize, and updating values for each animation step\r\n\t\t\t\t\tself._updateCache(data);\r\n\t\t\t\t\tself._propagate(\"resize\", event);\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n});\r\n\r\n$.ui.plugin.add(\"resizable\", \"containment\", {\r\n\r\n\tstart: function(event, ui) {\r\n\t\tvar self = $(this).data(\"resizable\"), o = self.options, el = self.element;\r\n\t\tvar oc = o.containment,\tce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc;\r\n\t\tif (!ce) return;\r\n\r\n\t\tself.containerElement = $(ce);\r\n\r\n\t\tif (/document/.test(oc) || oc == document) {\r\n\t\t\tself.containerOffset = { left: 0, top: 0 };\r\n\t\t\tself.containerPosition = { left: 0, top: 0 };\r\n\r\n\t\t\tself.parentData = {\r\n\t\t\t\telement: $(document), left: 0, top: 0,\r\n\t\t\t\twidth: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t// i'm a node, so compute top, left, right, bottom\r\n\t\telse {\r\n\t\t\tvar element = $(ce), p = [];\r\n\t\t\t$([ \"Top\", \"Right\", \"Left\", \"Bottom\" ]).each(function(i, name) { p[i] = num(element.css(\"padding\" + name)); });\r\n\r\n\t\t\tself.containerOffset = element.offset();\r\n\t\t\tself.containerPosition = element.position();\r\n\t\t\tself.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) };\r\n\r\n\t\t\tvar co = self.containerOffset, ch = self.containerSize.height,\tcw = self.containerSize.width,\r\n\t\t\t\t\t\twidth = ($.ui.hasScroll(ce, \"left\") ? ce.scrollWidth : cw ), height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch);\r\n\r\n\t\t\tself.parentData = {\r\n\t\t\t\telement: ce, left: co.left, top: co.top, width: width, height: height\r\n\t\t\t};\r\n\t\t}\r\n\t},\r\n\r\n\tresize: function(event, ui) {\r\n\t\tvar self = $(this).data(\"resizable\"), o = self.options,\r\n\t\t\t\tps = self.containerSize, co = self.containerOffset, cs = self.size, cp = self.position,\r\n\t\t\t\tpRatio = self._aspectRatio || event.shiftKey, cop = { top:0, left:0 }, ce = self.containerElement;\r\n\r\n\t\tif (ce[0] != document && (/static/).test(ce.css('position'))) cop = co;\r\n\r\n\t\tif (cp.left < (self._helper ? co.left : 0)) {\r\n\t\t\tself.size.width = self.size.width + (self._helper ? (self.position.left - co.left) : (self.position.left - cop.left));\r\n\t\t\tif (pRatio) self.size.height = self.size.width / self.aspectRatio;\r\n\t\t\tself.position.left = o.helper ? co.left : 0;\r\n\t\t}\r\n\r\n\t\tif (cp.top < (self._helper ? co.top : 0)) {\r\n\t\t\tself.size.height = self.size.height + (self._helper ? (self.position.top - co.top) : self.position.top);\r\n\t\t\tif (pRatio) self.size.width = self.size.height * self.aspectRatio;\r\n\t\t\tself.position.top = self._helper ? co.top : 0;\r\n\t\t}\r\n\r\n\t\tself.offset.left = self.parentData.left+self.position.left;\r\n\t\tself.offset.top = self.parentData.top+self.position.top;\r\n\r\n\t\tvar woset = Math.abs( (self._helper ? self.offset.left - cop.left : (self.offset.left - cop.left)) + self.sizeDiff.width ),\r\n\t\t\t\t\thoset = Math.abs( (self._helper ? self.offset.top - cop.top : (self.offset.top - co.top)) + self.sizeDiff.height );\r\n\r\n\t\tvar isParent = self.containerElement.get(0) == self.element.parent().get(0),\r\n\t\t isOffsetRelative = /relative|absolute/.test(self.containerElement.css('position'));\r\n\r\n\t\tif(isParent && isOffsetRelative) woset -= self.parentData.left;\r\n\r\n\t\tif (woset + self.size.width >= self.parentData.width) {\r\n\t\t\tself.size.width = self.parentData.width - woset;\r\n\t\t\tif (pRatio) self.size.height = self.size.width / self.aspectRatio;\r\n\t\t}\r\n\r\n\t\tif (hoset + self.size.height >= self.parentData.height) {\r\n\t\t\tself.size.height = self.parentData.height - hoset;\r\n\t\t\tif (pRatio) self.size.width = self.size.height * self.aspectRatio;\r\n\t\t}\r\n\t},\r\n\r\n\tstop: function(event, ui){\r\n\t\tvar self = $(this).data(\"resizable\"), o = self.options, cp = self.position,\r\n\t\t\t\tco = self.containerOffset, cop = self.containerPosition, ce = self.containerElement;\r\n\r\n\t\tvar helper = $(self.helper), ho = helper.offset(), w = helper.outerWidth() - self.sizeDiff.width, h = helper.outerHeight() - self.sizeDiff.height;\r\n\r\n\t\tif (self._helper && !o.animate && (/relative/).test(ce.css('position')))\r\n\t\t\t$(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });\r\n\r\n\t\tif (self._helper && !o.animate && (/static/).test(ce.css('position')))\r\n\t\t\t$(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });\r\n\r\n\t}\r\n});\r\n\r\n$.ui.plugin.add(\"resizable\", \"ghost\", {\r\n\r\n\tstart: function(event, ui) {\r\n\r\n\t\tvar self = $(this).data(\"resizable\"), o = self.options, cs = self.size;\r\n\r\n\t\tself.ghost = self.originalElement.clone();\r\n\t\tself.ghost\r\n\t\t\t.css({ opacity: .25, display: 'block', position: 'relative', height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 })\r\n\t\t\t.addClass('ui-resizable-ghost')\r\n\t\t\t.addClass(typeof o.ghost == 'string' ? o.ghost : '');\r\n\r\n\t\tself.ghost.appendTo(self.helper);\r\n\r\n\t},\r\n\r\n\tresize: function(event, ui){\r\n\t\tvar self = $(this).data(\"resizable\"), o = self.options;\r\n\t\tif (self.ghost) self.ghost.css({ position: 'relative', height: self.size.height, width: self.size.width });\r\n\t},\r\n\r\n\tstop: function(event, ui){\r\n\t\tvar self = $(this).data(\"resizable\"), o = self.options;\r\n\t\tif (self.ghost && self.helper) self.helper.get(0).removeChild(self.ghost.get(0));\r\n\t}\r\n\r\n});\r\n\r\n$.ui.plugin.add(\"resizable\", \"grid\", {\r\n\r\n\tresize: function(event, ui) {\r\n\t\tvar self = $(this).data(\"resizable\"), o = self.options, cs = self.size, os = self.originalSize, op = self.originalPosition, a = self.axis, ratio = o._aspectRatio || event.shiftKey;\r\n\t\to.grid = typeof o.grid == \"number\" ? [o.grid, o.grid] : o.grid;\r\n\t\tvar ox = Math.round((cs.width - os.width) / (o.grid[0]||1)) * (o.grid[0]||1), oy = Math.round((cs.height - os.height) / (o.grid[1]||1)) * (o.grid[1]||1);\r\n\r\n\t\tif (/^(se|s|e)$/.test(a)) {\r\n\t\t\tself.size.width = os.width + ox;\r\n\t\t\tself.size.height = os.height + oy;\r\n\t\t}\r\n\t\telse if (/^(ne)$/.test(a)) {\r\n\t\t\tself.size.width = os.width + ox;\r\n\t\t\tself.size.height = os.height + oy;\r\n\t\t\tself.position.top = op.top - oy;\r\n\t\t}\r\n\t\telse if (/^(sw)$/.test(a)) {\r\n\t\t\tself.size.width = os.width + ox;\r\n\t\t\tself.size.height = os.height + oy;\r\n\t\t\tself.position.left = op.left - ox;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tself.size.width = os.width + ox;\r\n\t\t\tself.size.height = os.height + oy;\r\n\t\t\tself.position.top = op.top - oy;\r\n\t\t\tself.position.left = op.left - ox;\r\n\t\t}\r\n\t}\r\n\r\n});\r\n\r\nvar num = function(v) {\r\n\treturn parseInt(v, 10) || 0;\r\n};\r\n\r\nvar isNumber = function(value) {\r\n\treturn !isNaN(parseInt(value, 10));\r\n};\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.widget(\"ui.selectable\", $.ui.mouse, {\r\n\toptions: {\r\n\t\tappendTo: 'body',\r\n\t\tautoRefresh: true,\r\n\t\tdistance: 0,\r\n\t\tfilter: '*',\r\n\t\ttolerance: 'touch'\r\n\t},\r\n\t_create: function() {\r\n\t\tvar self = this;\r\n\r\n\t\tthis.element.addClass(\"ui-selectable\");\r\n\r\n\t\tthis.dragged = false;\r\n\r\n\t\t// cache selectee children based on filter\r\n\t\tvar selectees;\r\n\t\tthis.refresh = function() {\r\n\t\t\tselectees = $(self.options.filter, self.element[0]);\r\n\t\t\tselectees.addClass(\"ui-selectee\");\r\n\t\t\tselectees.each(function() {\r\n\t\t\t\tvar $this = $(this);\r\n\t\t\t\tvar pos = $this.offset();\r\n\t\t\t\t$.data(this, \"selectable-item\", {\r\n\t\t\t\t\telement: this,\r\n\t\t\t\t\t$element: $this,\r\n\t\t\t\t\tleft: pos.left,\r\n\t\t\t\t\ttop: pos.top,\r\n\t\t\t\t\tright: pos.left + $this.outerWidth(),\r\n\t\t\t\t\tbottom: pos.top + $this.outerHeight(),\r\n\t\t\t\t\tstartselected: false,\r\n\t\t\t\t\tselected: $this.hasClass('ui-selected'),\r\n\t\t\t\t\tselecting: $this.hasClass('ui-selecting'),\r\n\t\t\t\t\tunselecting: $this.hasClass('ui-unselecting')\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\t\tthis.refresh();\r\n\r\n\t\tthis.selectees = selectees.addClass(\"ui-selectee\");\r\n\r\n\t\tthis._mouseInit();\r\n\r\n\t\tthis.helper = $(\"
\");\r\n\t},\r\n\r\n\tdestroy: function() {\r\n\t\tthis.selectees\r\n\t\t\t.removeClass(\"ui-selectee\")\r\n\t\t\t.removeData(\"selectable-item\");\r\n\t\tthis.element\r\n\t\t\t.removeClass(\"ui-selectable ui-selectable-disabled\")\r\n\t\t\t.removeData(\"selectable\")\r\n\t\t\t.unbind(\".selectable\");\r\n\t\tthis._mouseDestroy();\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_mouseStart: function(event) {\r\n\t\tvar self = this;\r\n\r\n\t\tthis.opos = [event.pageX, event.pageY];\r\n\r\n\t\tif (this.options.disabled)\r\n\t\t\treturn;\r\n\r\n\t\tvar options = this.options;\r\n\r\n\t\tthis.selectees = $(options.filter, this.element[0]);\r\n\r\n\t\tthis._trigger(\"start\", event);\r\n\r\n\t\t$(options.appendTo).append(this.helper);\r\n\t\t// position helper (lasso)\r\n\t\tthis.helper.css({\r\n\t\t\t\"left\": event.clientX,\r\n\t\t\t\"top\": event.clientY,\r\n\t\t\t\"width\": 0,\r\n\t\t\t\"height\": 0\r\n\t\t});\r\n\r\n\t\tif (options.autoRefresh) {\r\n\t\t\tthis.refresh();\r\n\t\t}\r\n\r\n\t\tthis.selectees.filter('.ui-selected').each(function() {\r\n\t\t\tvar selectee = $.data(this, \"selectable-item\");\r\n\t\t\tselectee.startselected = true;\r\n\t\t\tif (!event.metaKey && !event.ctrlKey) {\r\n\t\t\t\tselectee.$element.removeClass('ui-selected');\r\n\t\t\t\tselectee.selected = false;\r\n\t\t\t\tselectee.$element.addClass('ui-unselecting');\r\n\t\t\t\tselectee.unselecting = true;\r\n\t\t\t\t// selectable UNSELECTING callback\r\n\t\t\t\tself._trigger(\"unselecting\", event, {\r\n\t\t\t\t\tunselecting: selectee.element\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$(event.target).parents().andSelf().each(function() {\r\n\t\t\tvar selectee = $.data(this, \"selectable-item\");\r\n\t\t\tif (selectee) {\r\n\t\t\t\tvar doSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass('ui-selected');\r\n\t\t\t\tselectee.$element\r\n\t\t\t\t\t.removeClass(doSelect ? \"ui-unselecting\" : \"ui-selected\")\r\n\t\t\t\t\t.addClass(doSelect ? \"ui-selecting\" : \"ui-unselecting\");\r\n\t\t\t\tselectee.unselecting = !doSelect;\r\n\t\t\t\tselectee.selecting = doSelect;\r\n\t\t\t\tselectee.selected = doSelect;\r\n\t\t\t\t// selectable (UN)SELECTING callback\r\n\t\t\t\tif (doSelect) {\r\n\t\t\t\t\tself._trigger(\"selecting\", event, {\r\n\t\t\t\t\t\tselecting: selectee.element\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself._trigger(\"unselecting\", event, {\r\n\t\t\t\t\t\tunselecting: selectee.element\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t},\r\n\r\n\t_mouseDrag: function(event) {\r\n\t\tvar self = this;\r\n\t\tthis.dragged = true;\r\n\r\n\t\tif (this.options.disabled)\r\n\t\t\treturn;\r\n\r\n\t\tvar options = this.options;\r\n\r\n\t\tvar x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY;\r\n\t\tif (x1 > x2) { var tmp = x2; x2 = x1; x1 = tmp; }\r\n\t\tif (y1 > y2) { var tmp = y2; y2 = y1; y1 = tmp; }\r\n\t\tthis.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1});\r\n\r\n\t\tthis.selectees.each(function() {\r\n\t\t\tvar selectee = $.data(this, \"selectable-item\");\r\n\t\t\t//prevent helper from being selected if appendTo: selectable\r\n\t\t\tif (!selectee || selectee.element == self.element[0])\r\n\t\t\t\treturn;\r\n\t\t\tvar hit = false;\r\n\t\t\tif (options.tolerance == 'touch') {\r\n\t\t\t\thit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) );\r\n\t\t\t} else if (options.tolerance == 'fit') {\r\n\t\t\t\thit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);\r\n\t\t\t}\r\n\r\n\t\t\tif (hit) {\r\n\t\t\t\t// SELECT\r\n\t\t\t\tif (selectee.selected) {\r\n\t\t\t\t\tselectee.$element.removeClass('ui-selected');\r\n\t\t\t\t\tselectee.selected = false;\r\n\t\t\t\t}\r\n\t\t\t\tif (selectee.unselecting) {\r\n\t\t\t\t\tselectee.$element.removeClass('ui-unselecting');\r\n\t\t\t\t\tselectee.unselecting = false;\r\n\t\t\t\t}\r\n\t\t\t\tif (!selectee.selecting) {\r\n\t\t\t\t\tselectee.$element.addClass('ui-selecting');\r\n\t\t\t\t\tselectee.selecting = true;\r\n\t\t\t\t\t// selectable SELECTING callback\r\n\t\t\t\t\tself._trigger(\"selecting\", event, {\r\n\t\t\t\t\t\tselecting: selectee.element\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// UNSELECT\r\n\t\t\t\tif (selectee.selecting) {\r\n\t\t\t\t\tif ((event.metaKey || event.ctrlKey) && selectee.startselected) {\r\n\t\t\t\t\t\tselectee.$element.removeClass('ui-selecting');\r\n\t\t\t\t\t\tselectee.selecting = false;\r\n\t\t\t\t\t\tselectee.$element.addClass('ui-selected');\r\n\t\t\t\t\t\tselectee.selected = true;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tselectee.$element.removeClass('ui-selecting');\r\n\t\t\t\t\t\tselectee.selecting = false;\r\n\t\t\t\t\t\tif (selectee.startselected) {\r\n\t\t\t\t\t\t\tselectee.$element.addClass('ui-unselecting');\r\n\t\t\t\t\t\t\tselectee.unselecting = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// selectable UNSELECTING callback\r\n\t\t\t\t\t\tself._trigger(\"unselecting\", event, {\r\n\t\t\t\t\t\t\tunselecting: selectee.element\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (selectee.selected) {\r\n\t\t\t\t\tif (!event.metaKey && !event.ctrlKey && !selectee.startselected) {\r\n\t\t\t\t\t\tselectee.$element.removeClass('ui-selected');\r\n\t\t\t\t\t\tselectee.selected = false;\r\n\r\n\t\t\t\t\t\tselectee.$element.addClass('ui-unselecting');\r\n\t\t\t\t\t\tselectee.unselecting = true;\r\n\t\t\t\t\t\t// selectable UNSELECTING callback\r\n\t\t\t\t\t\tself._trigger(\"unselecting\", event, {\r\n\t\t\t\t\t\t\tunselecting: selectee.element\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_mouseStop: function(event) {\r\n\t\tvar self = this;\r\n\r\n\t\tthis.dragged = false;\r\n\r\n\t\tvar options = this.options;\r\n\r\n\t\t$('.ui-unselecting', this.element[0]).each(function() {\r\n\t\t\tvar selectee = $.data(this, \"selectable-item\");\r\n\t\t\tselectee.$element.removeClass('ui-unselecting');\r\n\t\t\tselectee.unselecting = false;\r\n\t\t\tselectee.startselected = false;\r\n\t\t\tself._trigger(\"unselected\", event, {\r\n\t\t\t\tunselected: selectee.element\r\n\t\t\t});\r\n\t\t});\r\n\t\t$('.ui-selecting', this.element[0]).each(function() {\r\n\t\t\tvar selectee = $.data(this, \"selectable-item\");\r\n\t\t\tselectee.$element.removeClass('ui-selecting').addClass('ui-selected');\r\n\t\t\tselectee.selecting = false;\r\n\t\t\tselectee.selected = true;\r\n\t\t\tselectee.startselected = true;\r\n\t\t\tself._trigger(\"selected\", event, {\r\n\t\t\t\tselected: selectee.element\r\n\t\t\t});\r\n\t\t});\r\n\t\tthis._trigger(\"stop\", event);\r\n\r\n\t\tthis.helper.remove();\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n});\r\n\r\n$.extend($.ui.selectable, {\r\n\tversion: \"1.8.22\"\r\n});\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.widget(\"ui.sortable\", $.ui.mouse, {\r\n\twidgetEventPrefix: \"sort\",\r\n\tready: false,\r\n\toptions: {\r\n\t\tappendTo: \"parent\",\r\n\t\taxis: false,\r\n\t\tconnectWith: false,\r\n\t\tcontainment: false,\r\n\t\tcursor: 'auto',\r\n\t\tcursorAt: false,\r\n\t\tdropOnEmpty: true,\r\n\t\tforcePlaceholderSize: false,\r\n\t\tforceHelperSize: false,\r\n\t\tgrid: false,\r\n\t\thandle: false,\r\n\t\thelper: \"original\",\r\n\t\titems: '> *',\r\n\t\topacity: false,\r\n\t\tplaceholder: false,\r\n\t\trevert: false,\r\n\t\tscroll: true,\r\n\t\tscrollSensitivity: 20,\r\n\t\tscrollSpeed: 20,\r\n\t\tscope: \"default\",\r\n\t\ttolerance: \"intersect\",\r\n\t\tzIndex: 1000\r\n\t},\r\n\t_create: function() {\r\n\r\n\t\tvar o = this.options;\r\n\t\tthis.containerCache = {};\r\n\t\tthis.element.addClass(\"ui-sortable\");\r\n\r\n\t\t//Get the items\r\n\t\tthis.refresh();\r\n\r\n\t\t//Let's determine if the items are being displayed horizontally\r\n\t\tthis.floating = this.items.length ? o.axis === 'x' || (/left|right/).test(this.items[0].item.css('float')) || (/inline|table-cell/).test(this.items[0].item.css('display')) : false;\r\n\r\n\t\t//Let's determine the parent's offset\r\n\t\tthis.offset = this.element.offset();\r\n\r\n\t\t//Initialize mouse events for interaction\r\n\t\tthis._mouseInit();\r\n\t\t\r\n\t\t//We're ready to go\r\n\t\tthis.ready = true\r\n\r\n\t},\r\n\r\n\tdestroy: function() {\r\n\t\t$.Widget.prototype.destroy.call( this );\r\n\t\tthis.element\r\n\t\t\t.removeClass(\"ui-sortable ui-sortable-disabled\");\r\n\t\tthis._mouseDestroy();\r\n\r\n\t\tfor ( var i = this.items.length - 1; i >= 0; i-- )\r\n\t\t\tthis.items[i].item.removeData(this.widgetName + \"-item\");\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_setOption: function(key, value){\r\n\t\tif ( key === \"disabled\" ) {\r\n\t\t\tthis.options[ key ] = value;\r\n\t\r\n\t\t\tthis.widget()\r\n\t\t\t\t[ value ? \"addClass\" : \"removeClass\"]( \"ui-sortable-disabled\" );\r\n\t\t} else {\r\n\t\t\t// Don't call widget base _setOption for disable as it adds ui-state-disabled class\r\n\t\t\t$.Widget.prototype._setOption.apply(this, arguments);\r\n\t\t}\r\n\t},\r\n\r\n\t_mouseCapture: function(event, overrideHandle) {\r\n\t\tvar that = this;\r\n\r\n\t\tif (this.reverting) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif(this.options.disabled || this.options.type == 'static') return false;\r\n\r\n\t\t//We have to refresh the items data once first\r\n\t\tthis._refreshItems(event);\r\n\r\n\t\t//Find out if the clicked node (or one of its parents) is a actual item in this.items\r\n\t\tvar currentItem = null, self = this, nodes = $(event.target).parents().each(function() {\r\n\t\t\tif($.data(this, that.widgetName + '-item') == self) {\r\n\t\t\t\tcurrentItem = $(this);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\tif($.data(event.target, that.widgetName + '-item') == self) currentItem = $(event.target);\r\n\r\n\t\tif(!currentItem) return false;\r\n\t\tif(this.options.handle && !overrideHandle) {\r\n\t\t\tvar validHandle = false;\r\n\r\n\t\t\t$(this.options.handle, currentItem).find(\"*\").andSelf().each(function() { if(this == event.target) validHandle = true; });\r\n\t\t\tif(!validHandle) return false;\r\n\t\t}\r\n\r\n\t\tthis.currentItem = currentItem;\r\n\t\tthis._removeCurrentsFromItems();\r\n\t\treturn true;\r\n\r\n\t},\r\n\r\n\t_mouseStart: function(event, overrideHandle, noActivation) {\r\n\r\n\t\tvar o = this.options, self = this;\r\n\t\tthis.currentContainer = this;\r\n\r\n\t\t//We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture\r\n\t\tthis.refreshPositions();\r\n\r\n\t\t//Create and append the visible helper\r\n\t\tthis.helper = this._createHelper(event);\r\n\r\n\t\t//Cache the helper size\r\n\t\tthis._cacheHelperProportions();\r\n\r\n\t\t/*\r\n\t\t * - Position generation -\r\n\t\t * This block generates everything position related - it's the core of draggables.\r\n\t\t */\r\n\r\n\t\t//Cache the margins of the original element\r\n\t\tthis._cacheMargins();\r\n\r\n\t\t//Get the next scrolling parent\r\n\t\tthis.scrollParent = this.helper.scrollParent();\r\n\r\n\t\t//The element's absolute position on the page minus margins\r\n\t\tthis.offset = this.currentItem.offset();\r\n\t\tthis.offset = {\r\n\t\t\ttop: this.offset.top - this.margins.top,\r\n\t\t\tleft: this.offset.left - this.margins.left\r\n\t\t};\r\n\r\n\t\t$.extend(this.offset, {\r\n\t\t\tclick: { //Where the click happened, relative to the element\r\n\t\t\t\tleft: event.pageX - this.offset.left,\r\n\t\t\t\ttop: event.pageY - this.offset.top\r\n\t\t\t},\r\n\t\t\tparent: this._getParentOffset(),\r\n\t\t\trelative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper\r\n\t\t});\r\n\r\n\t\t// Only after we got the offset, we can change the helper's position to absolute\r\n\t\t// TODO: Still need to figure out a way to make relative sorting possible\r\n\t\tthis.helper.css(\"position\", \"absolute\");\r\n\t\tthis.cssPosition = this.helper.css(\"position\");\r\n\t\t\r\n\t\t//Generate the original position\r\n\t\tthis.originalPosition = this._generatePosition(event);\r\n\t\tthis.originalPageX = event.pageX;\r\n\t\tthis.originalPageY = event.pageY;\r\n\r\n\t\t//Adjust the mouse offset relative to the helper if 'cursorAt' is supplied\r\n\t\t(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));\r\n\r\n\t\t//Cache the former DOM position\r\n\t\tthis.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] };\r\n\r\n\t\t//If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way\r\n\t\tif(this.helper[0] != this.currentItem[0]) {\r\n\t\t\tthis.currentItem.hide();\r\n\t\t}\r\n\r\n\t\t//Create the placeholder\r\n\t\tthis._createPlaceholder();\r\n\r\n\t\t//Set a containment if given in the options\r\n\t\tif(o.containment)\r\n\t\t\tthis._setContainment();\r\n\r\n\t\tif(o.cursor) { // cursor option\r\n\t\t\tif ($('body').css(\"cursor\")) this._storedCursor = $('body').css(\"cursor\");\r\n\t\t\t$('body').css(\"cursor\", o.cursor);\r\n\t\t}\r\n\r\n\t\tif(o.opacity) { // opacity option\r\n\t\t\tif (this.helper.css(\"opacity\")) this._storedOpacity = this.helper.css(\"opacity\");\r\n\t\t\tthis.helper.css(\"opacity\", o.opacity);\r\n\t\t}\r\n\r\n\t\tif(o.zIndex) { // zIndex option\r\n\t\t\tif (this.helper.css(\"zIndex\")) this._storedZIndex = this.helper.css(\"zIndex\");\r\n\t\t\tthis.helper.css(\"zIndex\", o.zIndex);\r\n\t\t}\r\n\r\n\t\t//Prepare scrolling\r\n\t\tif(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML')\r\n\t\t\tthis.overflowOffset = this.scrollParent.offset();\r\n\r\n\t\t//Call callbacks\r\n\t\tthis._trigger(\"start\", event, this._uiHash());\r\n\r\n\t\t//Recache the helper size\r\n\t\tif(!this._preserveHelperProportions)\r\n\t\t\tthis._cacheHelperProportions();\r\n\r\n\r\n\t\t//Post 'activate' events to possible containers\r\n\t\tif(!noActivation) {\r\n\t\t\t for (var i = this.containers.length - 1; i >= 0; i--) { this.containers[i]._trigger(\"activate\", event, self._uiHash(this)); }\r\n\t\t}\r\n\r\n\t\t//Prepare possible droppables\r\n\t\tif($.ui.ddmanager)\r\n\t\t\t$.ui.ddmanager.current = this;\r\n\r\n\t\tif ($.ui.ddmanager && !o.dropBehaviour)\r\n\t\t\t$.ui.ddmanager.prepareOffsets(this, event);\r\n\r\n\t\tthis.dragging = true;\r\n\r\n\t\tthis.helper.addClass(\"ui-sortable-helper\");\r\n\t\tthis._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position\r\n\t\treturn true;\r\n\r\n\t},\r\n\r\n\t_mouseDrag: function(event) {\r\n\r\n\t\t//Compute the helpers position\r\n\t\tthis.position = this._generatePosition(event);\r\n\t\tthis.positionAbs = this._convertPositionTo(\"absolute\");\r\n\r\n\t\tif (!this.lastPositionAbs) {\r\n\t\t\tthis.lastPositionAbs = this.positionAbs;\r\n\t\t}\r\n\r\n\t\t//Do scrolling\r\n\t\tif(this.options.scroll) {\r\n\t\t\tvar o = this.options, scrolled = false;\r\n\t\t\tif(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') {\r\n\r\n\t\t\t\tif((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)\r\n\t\t\t\t\tthis.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed;\r\n\t\t\t\telse if(event.pageY - this.overflowOffset.top < o.scrollSensitivity)\r\n\t\t\t\t\tthis.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;\r\n\r\n\t\t\t\tif((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)\r\n\t\t\t\t\tthis.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed;\r\n\t\t\t\telse if(event.pageX - this.overflowOffset.left < o.scrollSensitivity)\r\n\t\t\t\t\tthis.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\tif(event.pageY - $(document).scrollTop() < o.scrollSensitivity)\r\n\t\t\t\t\tscrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);\r\n\t\t\t\telse if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)\r\n\t\t\t\t\tscrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);\r\n\r\n\t\t\t\tif(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)\r\n\t\t\t\t\tscrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);\r\n\t\t\t\telse if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)\r\n\t\t\t\t\tscrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)\r\n\t\t\t\t$.ui.ddmanager.prepareOffsets(this, event);\r\n\t\t}\r\n\r\n\t\t//Regenerate the absolute position used for position checks\r\n\t\tthis.positionAbs = this._convertPositionTo(\"absolute\");\r\n\r\n\t\t//Set the helper position\r\n\t\tif(!this.options.axis || this.options.axis != \"y\") this.helper[0].style.left = this.position.left+'px';\r\n\t\tif(!this.options.axis || this.options.axis != \"x\") this.helper[0].style.top = this.position.top+'px';\r\n\r\n\t\t//Rearrange\r\n\t\tfor (var i = this.items.length - 1; i >= 0; i--) {\r\n\r\n\t\t\t//Cache variables and intersection, continue if no intersection\r\n\t\t\tvar item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item);\r\n\t\t\tif (!intersection) continue;\r\n\r\n\t\t\tif(itemElement != this.currentItem[0] //cannot intersect with itself\r\n\t\t\t\t&&\tthis.placeholder[intersection == 1 ? \"next\" : \"prev\"]()[0] != itemElement //no useless actions that have been done before\r\n\t\t\t\t&&\t!$.ui.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked\r\n\t\t\t\t&& (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true)\r\n\t\t\t\t//&& itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container\r\n\t\t\t) {\r\n\r\n\t\t\t\tthis.direction = intersection == 1 ? \"down\" : \"up\";\r\n\r\n\t\t\t\tif (this.options.tolerance == \"pointer\" || this._intersectsWithSides(item)) {\r\n\t\t\t\t\tthis._rearrange(event, item);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._trigger(\"change\", event, this._uiHash());\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//Post events to containers\r\n\t\tthis._contactContainers(event);\r\n\r\n\t\t//Interconnect with droppables\r\n\t\tif($.ui.ddmanager) $.ui.ddmanager.drag(this, event);\r\n\r\n\t\t//Call callbacks\r\n\t\tthis._trigger('sort', event, this._uiHash());\r\n\r\n\t\tthis.lastPositionAbs = this.positionAbs;\r\n\t\treturn false;\r\n\r\n\t},\r\n\r\n\t_mouseStop: function(event, noPropagation) {\r\n\r\n\t\tif(!event) return;\r\n\r\n\t\t//If we are using droppables, inform the manager about the drop\r\n\t\tif ($.ui.ddmanager && !this.options.dropBehaviour)\r\n\t\t\t$.ui.ddmanager.drop(this, event);\r\n\r\n\t\tif(this.options.revert) {\r\n\t\t\tvar self = this;\r\n\t\t\tvar cur = self.placeholder.offset();\r\n\r\n\t\t\tself.reverting = true;\r\n\r\n\t\t\t$(this.helper).animate({\r\n\t\t\t\tleft: cur.left - this.offset.parent.left - self.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft),\r\n\t\t\t\ttop: cur.top - this.offset.parent.top - self.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)\r\n\t\t\t}, parseInt(this.options.revert, 10) || 500, function() {\r\n\t\t\t\tself._clear(event);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis._clear(event, noPropagation);\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\r\n\t},\r\n\r\n\tcancel: function() {\r\n\r\n\t\tvar self = this;\r\n\r\n\t\tif(this.dragging) {\r\n\r\n\t\t\tthis._mouseUp({ target: null });\r\n\r\n\t\t\tif(this.options.helper == \"original\")\r\n\t\t\t\tthis.currentItem.css(this._storedCSS).removeClass(\"ui-sortable-helper\");\r\n\t\t\telse\r\n\t\t\t\tthis.currentItem.show();\r\n\r\n\t\t\t//Post deactivating events to containers\r\n\t\t\tfor (var i = this.containers.length - 1; i >= 0; i--){\r\n\t\t\t\tthis.containers[i]._trigger(\"deactivate\", null, self._uiHash(this));\r\n\t\t\t\tif(this.containers[i].containerCache.over) {\r\n\t\t\t\t\tthis.containers[i]._trigger(\"out\", null, self._uiHash(this));\r\n\t\t\t\t\tthis.containers[i].containerCache.over = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tif (this.placeholder) {\r\n\t\t\t//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!\r\n\t\t\tif(this.placeholder[0].parentNode) this.placeholder[0].parentNode.removeChild(this.placeholder[0]);\r\n\t\t\tif(this.options.helper != \"original\" && this.helper && this.helper[0].parentNode) this.helper.remove();\r\n\r\n\t\t\t$.extend(this, {\r\n\t\t\t\thelper: null,\r\n\t\t\t\tdragging: false,\r\n\t\t\t\treverting: false,\r\n\t\t\t\t_noFinalSort: null\r\n\t\t\t});\r\n\r\n\t\t\tif(this.domPosition.prev) {\r\n\t\t\t\t$(this.domPosition.prev).after(this.currentItem);\r\n\t\t\t} else {\r\n\t\t\t\t$(this.domPosition.parent).prepend(this.currentItem);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\r\n\t},\r\n\r\n\tserialize: function(o) {\r\n\r\n\t\tvar items = this._getItemsAsjQuery(o && o.connected);\r\n\t\tvar str = []; o = o || {};\r\n\r\n\t\t$(items).each(function() {\r\n\t\t\tvar res = ($(o.item || this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/));\r\n\t\t\tif(res) str.push((o.key || res[1]+'[]')+'='+(o.key && o.expression ? res[1] : res[2]));\r\n\t\t});\r\n\r\n\t\tif(!str.length && o.key) {\r\n\t\t\tstr.push(o.key + '=');\r\n\t\t}\r\n\r\n\t\treturn str.join('&');\r\n\r\n\t},\r\n\r\n\ttoArray: function(o) {\r\n\r\n\t\tvar items = this._getItemsAsjQuery(o && o.connected);\r\n\t\tvar ret = []; o = o || {};\r\n\r\n\t\titems.each(function() { ret.push($(o.item || this).attr(o.attribute || 'id') || ''); });\r\n\t\treturn ret;\r\n\r\n\t},\r\n\r\n\t/* Be careful with the following core functions */\r\n\t_intersectsWith: function(item) {\r\n\r\n\t\tvar x1 = this.positionAbs.left,\r\n\t\t\tx2 = x1 + this.helperProportions.width,\r\n\t\t\ty1 = this.positionAbs.top,\r\n\t\t\ty2 = y1 + this.helperProportions.height;\r\n\r\n\t\tvar l = item.left,\r\n\t\t\tr = l + item.width,\r\n\t\t\tt = item.top,\r\n\t\t\tb = t + item.height;\r\n\r\n\t\tvar dyClick = this.offset.click.top,\r\n\t\t\tdxClick = this.offset.click.left;\r\n\r\n\t\tvar isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r;\r\n\r\n\t\tif(\t this.options.tolerance == \"pointer\"\r\n\t\t\t|| this.options.forcePointerForContainers\r\n\t\t\t|| (this.options.tolerance != \"pointer\" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height'])\r\n\t\t) {\r\n\t\t\treturn isOverElement;\r\n\t\t} else {\r\n\r\n\t\t\treturn (l < x1 + (this.helperProportions.width / 2) // Right Half\r\n\t\t\t\t&& x2 - (this.helperProportions.width / 2) < r // Left Half\r\n\t\t\t\t&& t < y1 + (this.helperProportions.height / 2) // Bottom Half\r\n\t\t\t\t&& y2 - (this.helperProportions.height / 2) < b ); // Top Half\r\n\r\n\t\t}\r\n\t},\r\n\r\n\t_intersectsWithPointer: function(item) {\r\n\r\n\t\tvar isOverElementHeight = (this.options.axis === 'x') || $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height),\r\n\t\t\tisOverElementWidth = (this.options.axis === 'y') || $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width),\r\n\t\t\tisOverElement = isOverElementHeight && isOverElementWidth,\r\n\t\t\tverticalDirection = this._getDragVerticalDirection(),\r\n\t\t\thorizontalDirection = this._getDragHorizontalDirection();\r\n\r\n\t\tif (!isOverElement)\r\n\t\t\treturn false;\r\n\r\n\t\treturn this.floating ?\r\n\t\t\t( ((horizontalDirection && horizontalDirection == \"right\") || verticalDirection == \"down\") ? 2 : 1 )\r\n\t\t\t: ( verticalDirection && (verticalDirection == \"down\" ? 2 : 1) );\r\n\r\n\t},\r\n\r\n\t_intersectsWithSides: function(item) {\r\n\r\n\t\tvar isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height),\r\n\t\t\tisOverRightHalf = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width),\r\n\t\t\tverticalDirection = this._getDragVerticalDirection(),\r\n\t\t\thorizontalDirection = this._getDragHorizontalDirection();\r\n\r\n\t\tif (this.floating && horizontalDirection) {\r\n\t\t\treturn ((horizontalDirection == \"right\" && isOverRightHalf) || (horizontalDirection == \"left\" && !isOverRightHalf));\r\n\t\t} else {\r\n\t\t\treturn verticalDirection && ((verticalDirection == \"down\" && isOverBottomHalf) || (verticalDirection == \"up\" && !isOverBottomHalf));\r\n\t\t}\r\n\r\n\t},\r\n\r\n\t_getDragVerticalDirection: function() {\r\n\t\tvar delta = this.positionAbs.top - this.lastPositionAbs.top;\r\n\t\treturn delta != 0 && (delta > 0 ? \"down\" : \"up\");\r\n\t},\r\n\r\n\t_getDragHorizontalDirection: function() {\r\n\t\tvar delta = this.positionAbs.left - this.lastPositionAbs.left;\r\n\t\treturn delta != 0 && (delta > 0 ? \"right\" : \"left\");\r\n\t},\r\n\r\n\trefresh: function(event) {\r\n\t\tthis._refreshItems(event);\r\n\t\tthis.refreshPositions();\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_connectWith: function() {\r\n\t\tvar options = this.options;\r\n\t\treturn options.connectWith.constructor == String\r\n\t\t\t? [options.connectWith]\r\n\t\t\t: options.connectWith;\r\n\t},\r\n\t\r\n\t_getItemsAsjQuery: function(connected) {\r\n\r\n\t\tvar self = this;\r\n\t\tvar items = [];\r\n\t\tvar queries = [];\r\n\t\tvar connectWith = this._connectWith();\r\n\r\n\t\tif(connectWith && connected) {\r\n\t\t\tfor (var i = connectWith.length - 1; i >= 0; i--){\r\n\t\t\t\tvar cur = $(connectWith[i]);\r\n\t\t\t\tfor (var j = cur.length - 1; j >= 0; j--){\r\n\t\t\t\t\tvar inst = $.data(cur[j], this.widgetName);\r\n\t\t\t\t\tif(inst && inst != this && !inst.options.disabled) {\r\n\t\t\t\t\t\tqueries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(\".ui-sortable-helper\").not('.ui-sortable-placeholder'), inst]);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tqueries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(\".ui-sortable-helper\").not('.ui-sortable-placeholder'), this]);\r\n\r\n\t\tfor (var i = queries.length - 1; i >= 0; i--){\r\n\t\t\tqueries[i][0].each(function() {\r\n\t\t\t\titems.push(this);\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\treturn $(items);\r\n\r\n\t},\r\n\r\n\t_removeCurrentsFromItems: function() {\r\n\r\n\t\tvar list = this.currentItem.find(\":data(\" + this.widgetName + \"-item)\");\r\n\r\n\t\tfor (var i=0; i < this.items.length; i++) {\r\n\r\n\t\t\tfor (var j=0; j < list.length; j++) {\r\n\t\t\t\tif(list[j] == this.items[i].item[0])\r\n\t\t\t\t\tthis.items.splice(i,1);\r\n\t\t\t};\r\n\r\n\t\t};\r\n\r\n\t},\r\n\r\n\t_refreshItems: function(event) {\r\n\r\n\t\tthis.items = [];\r\n\t\tthis.containers = [this];\r\n\t\tvar items = this.items;\r\n\t\tvar self = this;\r\n\t\tvar queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]];\r\n\t\tvar connectWith = this._connectWith();\r\n\r\n\t\tif(connectWith && this.ready) { //Shouldn't be run the first time through due to massive slow-down\r\n\t\t\tfor (var i = connectWith.length - 1; i >= 0; i--){\r\n\t\t\t\tvar cur = $(connectWith[i]);\r\n\t\t\t\tfor (var j = cur.length - 1; j >= 0; j--){\r\n\t\t\t\t\tvar inst = $.data(cur[j], this.widgetName);\r\n\t\t\t\t\tif(inst && inst != this && !inst.options.disabled) {\r\n\t\t\t\t\t\tqueries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]);\r\n\t\t\t\t\t\tthis.containers.push(inst);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfor (var i = queries.length - 1; i >= 0; i--) {\r\n\t\t\tvar targetData = queries[i][1];\r\n\t\t\tvar _queries = queries[i][0];\r\n\r\n\t\t\tfor (var j=0, queriesLength = _queries.length; j < queriesLength; j++) {\r\n\t\t\t\tvar item = $(_queries[j]);\r\n\r\n\t\t\t\titem.data(this.widgetName + '-item', targetData); // Data for target checking (mouse manager)\r\n\r\n\t\t\t\titems.push({\r\n\t\t\t\t\titem: item,\r\n\t\t\t\t\tinstance: targetData,\r\n\t\t\t\t\twidth: 0, height: 0,\r\n\t\t\t\t\tleft: 0, top: 0\r\n\t\t\t\t});\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t},\r\n\r\n\trefreshPositions: function(fast) {\r\n\r\n\t\t//This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change\r\n\t\tif(this.offsetParent && this.helper) {\r\n\t\t\tthis.offset.parent = this._getParentOffset();\r\n\t\t}\r\n\r\n\t\tfor (var i = this.items.length - 1; i >= 0; i--){\r\n\t\t\tvar item = this.items[i];\r\n\r\n\t\t\t//We ignore calculating positions of all connected containers when we're not over them\r\n\t\t\tif(item.instance != this.currentContainer && this.currentContainer && item.item[0] != this.currentItem[0])\r\n\t\t\t\tcontinue;\r\n\r\n\t\t\tvar t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;\r\n\r\n\t\t\tif (!fast) {\r\n\t\t\t\titem.width = t.outerWidth();\r\n\t\t\t\titem.height = t.outerHeight();\r\n\t\t\t}\r\n\r\n\t\t\tvar p = t.offset();\r\n\t\t\titem.left = p.left;\r\n\t\t\titem.top = p.top;\r\n\t\t};\r\n\r\n\t\tif(this.options.custom && this.options.custom.refreshContainers) {\r\n\t\t\tthis.options.custom.refreshContainers.call(this);\r\n\t\t} else {\r\n\t\t\tfor (var i = this.containers.length - 1; i >= 0; i--){\r\n\t\t\t\tvar p = this.containers[i].element.offset();\r\n\t\t\t\tthis.containers[i].containerCache.left = p.left;\r\n\t\t\t\tthis.containers[i].containerCache.top = p.top;\r\n\t\t\t\tthis.containers[i].containerCache.width\t= this.containers[i].element.outerWidth();\r\n\t\t\t\tthis.containers[i].containerCache.height = this.containers[i].element.outerHeight();\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_createPlaceholder: function(that) {\r\n\r\n\t\tvar self = that || this, o = self.options;\r\n\r\n\t\tif(!o.placeholder || o.placeholder.constructor == String) {\r\n\t\t\tvar className = o.placeholder;\r\n\t\t\to.placeholder = {\r\n\t\t\t\telement: function() {\r\n\r\n\t\t\t\t\tvar el = $(document.createElement(self.currentItem[0].nodeName))\r\n\t\t\t\t\t\t.addClass(className || self.currentItem[0].className+\" ui-sortable-placeholder\")\r\n\t\t\t\t\t\t.removeClass(\"ui-sortable-helper\")[0];\r\n\r\n\t\t\t\t\tif(!className)\r\n\t\t\t\t\t\tel.style.visibility = \"hidden\";\r\n\r\n\t\t\t\t\treturn el;\r\n\t\t\t\t},\r\n\t\t\t\tupdate: function(container, p) {\r\n\r\n\t\t\t\t\t// 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that\r\n\t\t\t\t\t// 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified\r\n\t\t\t\t\tif(className && !o.forcePlaceholderSize) return;\r\n\r\n\t\t\t\t\t//If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item\r\n\t\t\t\t\tif(!p.height()) { p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10)); };\r\n\t\t\t\t\tif(!p.width()) { p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10)); };\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t//Create the placeholder\r\n\t\tself.placeholder = $(o.placeholder.element.call(self.element, self.currentItem));\r\n\r\n\t\t//Append it after the actual current item\r\n\t\tself.currentItem.after(self.placeholder);\r\n\r\n\t\t//Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)\r\n\t\to.placeholder.update(self, self.placeholder);\r\n\r\n\t},\r\n\r\n\t_contactContainers: function(event) {\r\n\t\t\r\n\t\t// get innermost container that intersects with item \r\n\t\tvar innermostContainer = null, innermostIndex = null;\t\t\r\n\t\t\r\n\t\t\r\n\t\tfor (var i = this.containers.length - 1; i >= 0; i--){\r\n\r\n\t\t\t// never consider a container that's located within the item itself \r\n\t\t\tif($.ui.contains(this.currentItem[0], this.containers[i].element[0]))\r\n\t\t\t\tcontinue;\r\n\r\n\t\t\tif(this._intersectsWith(this.containers[i].containerCache)) {\r\n\r\n\t\t\t\t// if we've already found a container and it's more \"inner\" than this, then continue \r\n\t\t\t\tif(innermostContainer && $.ui.contains(this.containers[i].element[0], innermostContainer.element[0]))\r\n\t\t\t\t\tcontinue;\r\n\r\n\t\t\t\tinnermostContainer = this.containers[i]; \r\n\t\t\t\tinnermostIndex = i;\r\n\t\t\t\t\t\r\n\t\t\t} else {\r\n\t\t\t\t// container doesn't intersect. trigger \"out\" event if necessary \r\n\t\t\t\tif(this.containers[i].containerCache.over) {\r\n\t\t\t\t\tthis.containers[i]._trigger(\"out\", event, this._uiHash(this));\r\n\t\t\t\t\tthis.containers[i].containerCache.over = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t\r\n\t\t// if no intersecting containers found, return \r\n\t\tif(!innermostContainer) return; \r\n\r\n\t\t// move the item into the container if it's not there already\r\n\t\tif(this.containers.length === 1) {\r\n\t\t\tthis.containers[innermostIndex]._trigger(\"over\", event, this._uiHash(this));\r\n\t\t\tthis.containers[innermostIndex].containerCache.over = 1;\r\n\t\t} else if(this.currentContainer != this.containers[innermostIndex]) {\r\n\r\n\t\t\t//When entering a new container, we will find the item with the least distance and append our item near it\r\n\t\t\tvar dist = 10000; var itemWithLeastDistance = null; var base = this.positionAbs[this.containers[innermostIndex].floating ? 'left' : 'top'];\r\n\t\t\tfor (var j = this.items.length - 1; j >= 0; j--) {\r\n\t\t\t\tif(!$.ui.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue;\r\n\t\t\t\tvar cur = this.containers[innermostIndex].floating ? this.items[j].item.offset().left : this.items[j].item.offset().top;\r\n\t\t\t\tif(Math.abs(cur - base) < dist) {\r\n\t\t\t\t\tdist = Math.abs(cur - base); itemWithLeastDistance = this.items[j];\r\n\t\t\t\t\tthis.direction = (cur - base > 0) ? 'down' : 'up';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(!itemWithLeastDistance && !this.options.dropOnEmpty) //Check if dropOnEmpty is enabled\r\n\t\t\t\treturn;\r\n\r\n\t\t\tthis.currentContainer = this.containers[innermostIndex];\r\n\t\t\titemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true);\r\n\t\t\tthis._trigger(\"change\", event, this._uiHash());\r\n\t\t\tthis.containers[innermostIndex]._trigger(\"change\", event, this._uiHash(this));\r\n\r\n\t\t\t//Update the placeholder\r\n\t\t\tthis.options.placeholder.update(this.currentContainer, this.placeholder);\r\n\r\n\t\t\tthis.containers[innermostIndex]._trigger(\"over\", event, this._uiHash(this));\r\n\t\t\tthis.containers[innermostIndex].containerCache.over = 1;\r\n\t\t} \r\n\t\r\n\t\t\r\n\t},\r\n\r\n\t_createHelper: function(event) {\r\n\r\n\t\tvar o = this.options;\r\n\t\tvar helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem);\r\n\r\n\t\tif(!helper.parents('body').length) //Add the helper to the DOM if that didn't happen already\r\n\t\t\t$(o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]);\r\n\r\n\t\tif(helper[0] == this.currentItem[0])\r\n\t\t\tthis._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css(\"position\"), top: this.currentItem.css(\"top\"), left: this.currentItem.css(\"left\") };\r\n\r\n\t\tif(helper[0].style.width == '' || o.forceHelperSize) helper.width(this.currentItem.width());\r\n\t\tif(helper[0].style.height == '' || o.forceHelperSize) helper.height(this.currentItem.height());\r\n\r\n\t\treturn helper;\r\n\r\n\t},\r\n\r\n\t_adjustOffsetFromHelper: function(obj) {\r\n\t\tif (typeof obj == 'string') {\r\n\t\t\tobj = obj.split(' ');\r\n\t\t}\r\n\t\tif ($.isArray(obj)) {\r\n\t\t\tobj = {left: +obj[0], top: +obj[1] || 0};\r\n\t\t}\r\n\t\tif ('left' in obj) {\r\n\t\t\tthis.offset.click.left = obj.left + this.margins.left;\r\n\t\t}\r\n\t\tif ('right' in obj) {\r\n\t\t\tthis.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;\r\n\t\t}\r\n\t\tif ('top' in obj) {\r\n\t\t\tthis.offset.click.top = obj.top + this.margins.top;\r\n\t\t}\r\n\t\tif ('bottom' in obj) {\r\n\t\t\tthis.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;\r\n\t\t}\r\n\t},\r\n\r\n\t_getParentOffset: function() {\r\n\r\n\r\n\t\t//Get the offsetParent and cache its position\r\n\t\tthis.offsetParent = this.helper.offsetParent();\r\n\t\tvar po = this.offsetParent.offset();\r\n\r\n\t\t// This is a special case where we need to modify a offset calculated on start, since the following happened:\r\n\t\t// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent\r\n\t\t// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that\r\n\t\t// the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag\r\n\t\tif(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {\r\n\t\t\tpo.left += this.scrollParent.scrollLeft();\r\n\t\t\tpo.top += this.scrollParent.scrollTop();\r\n\t\t}\r\n\r\n\t\tif((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information\r\n\t\t|| (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix\r\n\t\t\tpo = { top: 0, left: 0 };\r\n\r\n\t\treturn {\r\n\t\t\ttop: po.top + (parseInt(this.offsetParent.css(\"borderTopWidth\"),10) || 0),\r\n\t\t\tleft: po.left + (parseInt(this.offsetParent.css(\"borderLeftWidth\"),10) || 0)\r\n\t\t};\r\n\r\n\t},\r\n\r\n\t_getRelativeOffset: function() {\r\n\r\n\t\tif(this.cssPosition == \"relative\") {\r\n\t\t\tvar p = this.currentItem.position();\r\n\t\t\treturn {\r\n\t\t\t\ttop: p.top - (parseInt(this.helper.css(\"top\"),10) || 0) + this.scrollParent.scrollTop(),\r\n\t\t\t\tleft: p.left - (parseInt(this.helper.css(\"left\"),10) || 0) + this.scrollParent.scrollLeft()\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\treturn { top: 0, left: 0 };\r\n\t\t}\r\n\r\n\t},\r\n\r\n\t_cacheMargins: function() {\r\n\t\tthis.margins = {\r\n\t\t\tleft: (parseInt(this.currentItem.css(\"marginLeft\"),10) || 0),\r\n\t\t\ttop: (parseInt(this.currentItem.css(\"marginTop\"),10) || 0)\r\n\t\t};\r\n\t},\r\n\r\n\t_cacheHelperProportions: function() {\r\n\t\tthis.helperProportions = {\r\n\t\t\twidth: this.helper.outerWidth(),\r\n\t\t\theight: this.helper.outerHeight()\r\n\t\t};\r\n\t},\r\n\r\n\t_setContainment: function() {\r\n\r\n\t\tvar o = this.options;\r\n\t\tif(o.containment == 'parent') o.containment = this.helper[0].parentNode;\r\n\t\tif(o.containment == 'document' || o.containment == 'window') this.containment = [\r\n\t\t\t0 - this.offset.relative.left - this.offset.parent.left,\r\n\t\t\t0 - this.offset.relative.top - this.offset.parent.top,\r\n\t\t\t$(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,\r\n\t\t\t($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top\r\n\t\t];\r\n\r\n\t\tif(!(/^(document|window|parent)$/).test(o.containment)) {\r\n\t\t\tvar ce = $(o.containment)[0];\r\n\t\t\tvar co = $(o.containment).offset();\r\n\t\t\tvar over = ($(ce).css(\"overflow\") != 'hidden');\r\n\r\n\t\t\tthis.containment = [\r\n\t\t\t\tco.left + (parseInt($(ce).css(\"borderLeftWidth\"),10) || 0) + (parseInt($(ce).css(\"paddingLeft\"),10) || 0) - this.margins.left,\r\n\t\t\t\tco.top + (parseInt($(ce).css(\"borderTopWidth\"),10) || 0) + (parseInt($(ce).css(\"paddingTop\"),10) || 0) - this.margins.top,\r\n\t\t\t\tco.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css(\"borderLeftWidth\"),10) || 0) - (parseInt($(ce).css(\"paddingRight\"),10) || 0) - this.helperProportions.width - this.margins.left,\r\n\t\t\t\tco.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css(\"borderTopWidth\"),10) || 0) - (parseInt($(ce).css(\"paddingBottom\"),10) || 0) - this.helperProportions.height - this.margins.top\r\n\t\t\t];\r\n\t\t}\r\n\r\n\t},\r\n\r\n\t_convertPositionTo: function(d, pos) {\r\n\r\n\t\tif(!pos) pos = this.position;\r\n\t\tvar mod = d == \"absolute\" ? 1 : -1;\r\n\t\tvar o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);\r\n\r\n\t\treturn {\r\n\t\t\ttop: (\r\n\t\t\t\tpos.top\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\r\n\t\t\t\t+ this.offset.relative.top * mod\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\r\n\t\t\t\t+ this.offset.parent.top * mod\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\r\n\t\t\t\t- ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)\r\n\t\t\t),\r\n\t\t\tleft: (\r\n\t\t\t\tpos.left\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\r\n\t\t\t\t+ this.offset.relative.left * mod\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\r\n\t\t\t\t+ this.offset.parent.left * mod\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\r\n\t\t\t\t- ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)\r\n\t\t\t)\r\n\t\t};\r\n\r\n\t},\r\n\r\n\t_generatePosition: function(event) {\r\n\r\n\t\tvar o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);\r\n\r\n\t\t// This is another very weird special case that only happens for relative elements:\r\n\t\t// 1. If the css position is relative\r\n\t\t// 2. and the scroll parent is the document or similar to the offset parent\r\n\t\t// we have to refresh the relative offset during the scroll so there are no jumps\r\n\t\tif(this.cssPosition == 'relative' && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) {\r\n\t\t\tthis.offset.relative = this._getRelativeOffset();\r\n\t\t}\r\n\r\n\t\tvar pageX = event.pageX;\r\n\t\tvar pageY = event.pageY;\r\n\r\n\t\t/*\r\n\t\t * - Position constraining -\r\n\t\t * Constrain the position to a mix of grid, containment.\r\n\t\t */\r\n\r\n\t\tif(this.originalPosition) { //If we are not dragging yet, we won't check for options\r\n\r\n\t\t\tif(this.containment) {\r\n\t\t\t\tif(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left;\r\n\t\t\t\tif(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top;\r\n\t\t\t\tif(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left;\r\n\t\t\t\tif(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top;\r\n\t\t\t}\r\n\r\n\t\t\tif(o.grid) {\r\n\t\t\t\tvar top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];\r\n\t\t\t\tpageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;\r\n\r\n\t\t\t\tvar left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];\r\n\t\t\t\tpageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: (\r\n\t\t\t\tpageY\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\r\n\t\t\t\t- this.offset.click.top\t\t\t\t\t\t\t\t\t\t\t\t\t// Click offset (relative to the element)\r\n\t\t\t\t- this.offset.relative.top\t\t\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\r\n\t\t\t\t- this.offset.parent.top\t\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\r\n\t\t\t\t+ ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))\r\n\t\t\t),\r\n\t\t\tleft: (\r\n\t\t\t\tpageX\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\r\n\t\t\t\t- this.offset.click.left\t\t\t\t\t\t\t\t\t\t\t\t// Click offset (relative to the element)\r\n\t\t\t\t- this.offset.relative.left\t\t\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\r\n\t\t\t\t- this.offset.parent.left\t\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\r\n\t\t\t\t+ ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))\r\n\t\t\t)\r\n\t\t};\r\n\r\n\t},\r\n\r\n\t_rearrange: function(event, i, a, hardRefresh) {\r\n\r\n\t\ta ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == 'down' ? i.item[0] : i.item[0].nextSibling));\r\n\r\n\t\t//Various things done here to improve the performance:\r\n\t\t// 1. we create a setTimeout, that calls refreshPositions\r\n\t\t// 2. on the instance, we have a counter variable, that get's higher after every append\r\n\t\t// 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same\r\n\t\t// 4. this lets only the last addition to the timeout stack through\r\n\t\tthis.counter = this.counter ? ++this.counter : 1;\r\n\t\tvar self = this, counter = this.counter;\r\n\r\n\t\twindow.setTimeout(function() {\r\n\t\t\tif(counter == self.counter) self.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove\r\n\t\t},0);\r\n\r\n\t},\r\n\r\n\t_clear: function(event, noPropagation) {\r\n\r\n\t\tthis.reverting = false;\r\n\t\t// We delay all events that have to be triggered to after the point where the placeholder has been removed and\r\n\t\t// everything else normalized again\r\n\t\tvar delayedTriggers = [], self = this;\r\n\r\n\t\t// We first have to update the dom position of the actual currentItem\r\n\t\t// Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088)\r\n\t\tif(!this._noFinalSort && this.currentItem.parent().length) this.placeholder.before(this.currentItem);\r\n\t\tthis._noFinalSort = null;\r\n\r\n\t\tif(this.helper[0] == this.currentItem[0]) {\r\n\t\t\tfor(var i in this._storedCSS) {\r\n\t\t\t\tif(this._storedCSS[i] == 'auto' || this._storedCSS[i] == 'static') this._storedCSS[i] = '';\r\n\t\t\t}\r\n\t\t\tthis.currentItem.css(this._storedCSS).removeClass(\"ui-sortable-helper\");\r\n\t\t} else {\r\n\t\t\tthis.currentItem.show();\r\n\t\t}\r\n\r\n\t\tif(this.fromOutside && !noPropagation) delayedTriggers.push(function(event) { this._trigger(\"receive\", event, this._uiHash(this.fromOutside)); });\r\n\t\tif((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(\".ui-sortable-helper\")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !noPropagation) delayedTriggers.push(function(event) { this._trigger(\"update\", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed\r\n\t\tif(!$.ui.contains(this.element[0], this.currentItem[0])) { //Node was moved out of the current element\r\n\t\t\tif(!noPropagation) delayedTriggers.push(function(event) { this._trigger(\"remove\", event, this._uiHash()); });\r\n\t\t\tfor (var i = this.containers.length - 1; i >= 0; i--){\r\n\t\t\t\tif($.ui.contains(this.containers[i].element[0], this.currentItem[0]) && !noPropagation) {\r\n\t\t\t\t\tdelayedTriggers.push((function(c) { return function(event) { c._trigger(\"receive\", event, this._uiHash(this)); }; }).call(this, this.containers[i]));\r\n\t\t\t\t\tdelayedTriggers.push((function(c) { return function(event) { c._trigger(\"update\", event, this._uiHash(this)); }; }).call(this, this.containers[i]));\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\t//Post events to containers\r\n\t\tfor (var i = this.containers.length - 1; i >= 0; i--){\r\n\t\t\tif(!noPropagation) delayedTriggers.push((function(c) { return function(event) { c._trigger(\"deactivate\", event, this._uiHash(this)); }; }).call(this, this.containers[i]));\r\n\t\t\tif(this.containers[i].containerCache.over) {\r\n\t\t\t\tdelayedTriggers.push((function(c) { return function(event) { c._trigger(\"out\", event, this._uiHash(this)); }; }).call(this, this.containers[i]));\r\n\t\t\t\tthis.containers[i].containerCache.over = 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//Do what was originally in plugins\r\n\t\tif(this._storedCursor) $('body').css(\"cursor\", this._storedCursor); //Reset cursor\r\n\t\tif(this._storedOpacity) this.helper.css(\"opacity\", this._storedOpacity); //Reset opacity\r\n\t\tif(this._storedZIndex) this.helper.css(\"zIndex\", this._storedZIndex == 'auto' ? '' : this._storedZIndex); //Reset z-index\r\n\r\n\t\tthis.dragging = false;\r\n\t\tif(this.cancelHelperRemoval) {\r\n\t\t\tif(!noPropagation) {\r\n\t\t\t\tthis._trigger(\"beforeStop\", event, this._uiHash());\r\n\t\t\t\tfor (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events\r\n\t\t\t\tthis._trigger(\"stop\", event, this._uiHash());\r\n\t\t\t}\r\n\r\n\t\t\tthis.fromOutside = false;\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif(!noPropagation) this._trigger(\"beforeStop\", event, this._uiHash());\r\n\r\n\t\t//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!\r\n\t\tthis.placeholder[0].parentNode.removeChild(this.placeholder[0]);\r\n\r\n\t\tif(this.helper[0] != this.currentItem[0]) this.helper.remove(); this.helper = null;\r\n\r\n\t\tif(!noPropagation) {\r\n\t\t\tfor (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events\r\n\t\t\tthis._trigger(\"stop\", event, this._uiHash());\r\n\t\t}\r\n\r\n\t\tthis.fromOutside = false;\r\n\t\treturn true;\r\n\r\n\t},\r\n\r\n\t_trigger: function() {\r\n\t\tif ($.Widget.prototype._trigger.apply(this, arguments) === false) {\r\n\t\t\tthis.cancel();\r\n\t\t}\r\n\t},\r\n\r\n\t_uiHash: function(inst) {\r\n\t\tvar self = inst || this;\r\n\t\treturn {\r\n\t\t\thelper: self.helper,\r\n\t\t\tplaceholder: self.placeholder || $([]),\r\n\t\t\tposition: self.position,\r\n\t\t\toriginalPosition: self.originalPosition,\r\n\t\t\toffset: self.positionAbs,\r\n\t\t\titem: self.currentItem,\r\n\t\t\tsender: inst ? inst.element : null\r\n\t\t};\r\n\t}\r\n\r\n});\r\n\r\n$.extend($.ui.sortable, {\r\n\tversion: \"1.8.22\"\r\n});\r\n\r\n})(jQuery);\r\n\r\n;jQuery.effects || (function($, undefined) {\r\n\r\n$.effects = {};\r\n\r\n\r\n\r\n/******************************************************************************/\r\n/****************************** COLOR ANIMATIONS ******************************/\r\n/******************************************************************************/\r\n\r\n// override the animation for color styles\r\n$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor',\r\n\t'borderRightColor', 'borderTopColor', 'borderColor', 'color', 'outlineColor'],\r\nfunction(i, attr) {\r\n\t$.fx.step[attr] = function(fx) {\r\n\t\tif (!fx.colorInit) {\r\n\t\t\tfx.start = getColor(fx.elem, attr);\r\n\t\t\tfx.end = getRGB(fx.end);\r\n\t\t\tfx.colorInit = true;\r\n\t\t}\r\n\r\n\t\tfx.elem.style[attr] = 'rgb(' +\r\n\t\t\tMath.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + ',' +\r\n\t\t\tMath.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + ',' +\r\n\t\t\tMath.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ')';\r\n\t};\r\n});\r\n\r\n// Color Conversion functions from highlightFade\r\n// By Blair Mitchelmore\r\n// http://jquery.offput.ca/highlightFade/\r\n\r\n// Parse strings looking for color tuples [255,255,255]\r\nfunction getRGB(color) {\r\n\t\tvar result;\r\n\r\n\t\t// Check if we're already dealing with an array of colors\r\n\t\tif ( color && color.constructor == Array && color.length == 3 )\r\n\t\t\t\treturn color;\r\n\r\n\t\t// Look for rgb(num,num,num)\r\n\t\tif (result = /rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/.exec(color))\r\n\t\t\t\treturn [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)];\r\n\r\n\t\t// Look for rgb(num%,num%,num%)\r\n\t\tif (result = /rgb\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)/.exec(color))\r\n\t\t\t\treturn [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];\r\n\r\n\t\t// Look for #a0b1c2\r\n\t\tif (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))\r\n\t\t\t\treturn [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];\r\n\r\n\t\t// Look for #fff\r\n\t\tif (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))\r\n\t\t\t\treturn [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];\r\n\r\n\t\t// Look for rgba(0, 0, 0, 0) == transparent in Safari 3\r\n\t\tif (result = /rgba\\(0, 0, 0, 0\\)/.exec(color))\r\n\t\t\t\treturn colors['transparent'];\r\n\r\n\t\t// Otherwise, we're most likely dealing with a named color\r\n\t\treturn colors[$.trim(color).toLowerCase()];\r\n}\r\n\r\nfunction getColor(elem, attr) {\r\n\t\tvar color;\r\n\r\n\t\tdo {\r\n\t\t\t\t// jQuery <1.4.3 uses curCSS, in 1.4.3 - 1.7.2 curCSS = css, 1.8+ only has css\r\n\t\t\t\tcolor = ($.curCSS || $.css)(elem, attr);\r\n\r\n\t\t\t\t// Keep going until we find an element that has color, or we hit the body\r\n\t\t\t\tif ( color != '' && color != 'transparent' || $.nodeName(elem, \"body\") )\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tattr = \"backgroundColor\";\r\n\t\t} while ( elem = elem.parentNode );\r\n\r\n\t\treturn getRGB(color);\r\n};\r\n\r\n// Some named colors to work with\r\n// From Interface by Stefan Petre\r\n// http://interface.eyecon.ro/\r\n\r\nvar colors = {\r\n\taqua:[0,255,255],\r\n\tazure:[240,255,255],\r\n\tbeige:[245,245,220],\r\n\tblack:[0,0,0],\r\n\tblue:[0,0,255],\r\n\tbrown:[165,42,42],\r\n\tcyan:[0,255,255],\r\n\tdarkblue:[0,0,139],\r\n\tdarkcyan:[0,139,139],\r\n\tdarkgrey:[169,169,169],\r\n\tdarkgreen:[0,100,0],\r\n\tdarkkhaki:[189,183,107],\r\n\tdarkmagenta:[139,0,139],\r\n\tdarkolivegreen:[85,107,47],\r\n\tdarkorange:[255,140,0],\r\n\tdarkorchid:[153,50,204],\r\n\tdarkred:[139,0,0],\r\n\tdarksalmon:[233,150,122],\r\n\tdarkviolet:[148,0,211],\r\n\tfuchsia:[255,0,255],\r\n\tgold:[255,215,0],\r\n\tgreen:[0,128,0],\r\n\tindigo:[75,0,130],\r\n\tkhaki:[240,230,140],\r\n\tlightblue:[173,216,230],\r\n\tlightcyan:[224,255,255],\r\n\tlightgreen:[144,238,144],\r\n\tlightgrey:[211,211,211],\r\n\tlightpink:[255,182,193],\r\n\tlightyellow:[255,255,224],\r\n\tlime:[0,255,0],\r\n\tmagenta:[255,0,255],\r\n\tmaroon:[128,0,0],\r\n\tnavy:[0,0,128],\r\n\tolive:[128,128,0],\r\n\torange:[255,165,0],\r\n\tpink:[255,192,203],\r\n\tpurple:[128,0,128],\r\n\tviolet:[128,0,128],\r\n\tred:[255,0,0],\r\n\tsilver:[192,192,192],\r\n\twhite:[255,255,255],\r\n\tyellow:[255,255,0],\r\n\ttransparent: [255,255,255]\r\n};\r\n\r\n\r\n\r\n/******************************************************************************/\r\n/****************************** CLASS ANIMATIONS ******************************/\r\n/******************************************************************************/\r\n\r\nvar classAnimationActions = ['add', 'remove', 'toggle'],\r\n\tshorthandStyles = {\r\n\t\tborder: 1,\r\n\t\tborderBottom: 1,\r\n\t\tborderColor: 1,\r\n\t\tborderLeft: 1,\r\n\t\tborderRight: 1,\r\n\t\tborderTop: 1,\r\n\t\tborderWidth: 1,\r\n\t\tmargin: 1,\r\n\t\tpadding: 1\r\n\t};\r\n\r\nfunction getElementStyles() {\r\n\tvar style = document.defaultView\r\n\t\t\t? document.defaultView.getComputedStyle(this, null)\r\n\t\t\t: this.currentStyle,\r\n\t\tnewStyle = {},\r\n\t\tkey,\r\n\t\tcamelCase;\r\n\r\n\t// webkit enumerates style porperties\r\n\tif (style && style.length && style[0] && style[style[0]]) {\r\n\t\tvar len = style.length;\r\n\t\twhile (len--) {\r\n\t\t\tkey = style[len];\r\n\t\t\tif (typeof style[key] == 'string') {\r\n\t\t\t\tcamelCase = key.replace(/\\-(\\w)/g, function(all, letter){\r\n\t\t\t\t\treturn letter.toUpperCase();\r\n\t\t\t\t});\r\n\t\t\t\tnewStyle[camelCase] = style[key];\r\n\t\t\t}\r\n\t\t}\r\n\t} else {\r\n\t\tfor (key in style) {\r\n\t\t\tif (typeof style[key] === 'string') {\r\n\t\t\t\tnewStyle[key] = style[key];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\treturn newStyle;\r\n}\r\n\r\nfunction filterStyles(styles) {\r\n\tvar name, value;\r\n\tfor (name in styles) {\r\n\t\tvalue = styles[name];\r\n\t\tif (\r\n\t\t\t// ignore null and undefined values\r\n\t\t\tvalue == null ||\r\n\t\t\t// ignore functions (when does this occur?)\r\n\t\t\t$.isFunction(value) ||\r\n\t\t\t// shorthand styles that need to be expanded\r\n\t\t\tname in shorthandStyles ||\r\n\t\t\t// ignore scrollbars (break in IE)\r\n\t\t\t(/scrollbar/).test(name) ||\r\n\r\n\t\t\t// only colors or values that can be converted to numbers\r\n\t\t\t(!(/color/i).test(name) && isNaN(parseFloat(value)))\r\n\t\t) {\r\n\t\t\tdelete styles[name];\r\n\t\t}\r\n\t}\r\n\t\r\n\treturn styles;\r\n}\r\n\r\nfunction styleDifference(oldStyle, newStyle) {\r\n\tvar diff = { _: 0 }, // http://dev.jquery.com/ticket/5459\r\n\t\tname;\r\n\r\n\tfor (name in newStyle) {\r\n\t\tif (oldStyle[name] != newStyle[name]) {\r\n\t\t\tdiff[name] = newStyle[name];\r\n\t\t}\r\n\t}\r\n\r\n\treturn diff;\r\n}\r\n\r\n$.effects.animateClass = function(value, duration, easing, callback) {\r\n\tif ($.isFunction(easing)) {\r\n\t\tcallback = easing;\r\n\t\teasing = null;\r\n\t}\r\n\r\n\treturn this.queue(function() {\r\n\t\tvar that = $(this),\r\n\t\t\toriginalStyleAttr = that.attr('style') || ' ',\r\n\t\t\toriginalStyle = filterStyles(getElementStyles.call(this)),\r\n\t\t\tnewStyle,\r\n\t\t\tclassName = that.attr('class') || \"\";\r\n\r\n\t\t$.each(classAnimationActions, function(i, action) {\r\n\t\t\tif (value[action]) {\r\n\t\t\t\tthat[action + 'Class'](value[action]);\r\n\t\t\t}\r\n\t\t});\r\n\t\tnewStyle = filterStyles(getElementStyles.call(this));\r\n\t\tthat.attr('class', className);\r\n\r\n\t\tthat.animate(styleDifference(originalStyle, newStyle), {\r\n\t\t\tqueue: false,\r\n\t\t\tduration: duration,\r\n\t\t\teasing: easing,\r\n\t\t\tcomplete: function() {\r\n\t\t\t\t$.each(classAnimationActions, function(i, action) {\r\n\t\t\t\t\tif (value[action]) { that[action + 'Class'](value[action]); }\r\n\t\t\t\t});\r\n\t\t\t\t// work around bug in IE by clearing the cssText before setting it\r\n\t\t\t\tif (typeof that.attr('style') == 'object') {\r\n\t\t\t\t\tthat.attr('style').cssText = '';\r\n\t\t\t\t\tthat.attr('style').cssText = originalStyleAttr;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthat.attr('style', originalStyleAttr);\r\n\t\t\t\t}\r\n\t\t\t\tif (callback) { callback.apply(this, arguments); }\r\n\t\t\t\t$.dequeue( this );\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n};\r\n\r\n$.fn.extend({\r\n\t_addClass: $.fn.addClass,\r\n\taddClass: function(classNames, speed, easing, callback) {\r\n\t\treturn speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames);\r\n\t},\r\n\r\n\t_removeClass: $.fn.removeClass,\r\n\tremoveClass: function(classNames,speed,easing,callback) {\r\n\t\treturn speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames);\r\n\t},\r\n\r\n\t_toggleClass: $.fn.toggleClass,\r\n\ttoggleClass: function(classNames, force, speed, easing, callback) {\r\n\t\tif ( typeof force == \"boolean\" || force === undefined ) {\r\n\t\t\tif ( !speed ) {\r\n\t\t\t\t// without speed parameter;\r\n\t\t\t\treturn this._toggleClass(classNames, force);\r\n\t\t\t} else {\r\n\t\t\t\treturn $.effects.animateClass.apply(this, [(force?{add:classNames}:{remove:classNames}),speed,easing,callback]);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// without switch parameter;\r\n\t\t\treturn $.effects.animateClass.apply(this, [{ toggle: classNames },force,speed,easing]);\r\n\t\t}\r\n\t},\r\n\r\n\tswitchClass: function(remove,add,speed,easing,callback) {\r\n\t\treturn $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]);\r\n\t}\r\n});\r\n\r\n\r\n\r\n/******************************************************************************/\r\n/*********************************** EFFECTS **********************************/\r\n/******************************************************************************/\r\n\r\n$.extend($.effects, {\r\n\tversion: \"1.8.22\",\r\n\r\n\t// Saves a set of properties in a data storage\r\n\tsave: function(element, set) {\r\n\t\tfor(var i=0; i < set.length; i++) {\r\n\t\t\tif(set[i] !== null) element.data(\"ec.storage.\"+set[i], element[0].style[set[i]]);\r\n\t\t}\r\n\t},\r\n\r\n\t// Restores a set of previously saved properties from a data storage\r\n\trestore: function(element, set) {\r\n\t\tfor(var i=0; i < set.length; i++) {\r\n\t\t\tif(set[i] !== null) element.css(set[i], element.data(\"ec.storage.\"+set[i]));\r\n\t\t}\r\n\t},\r\n\r\n\tsetMode: function(el, mode) {\r\n\t\tif (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle\r\n\t\treturn mode;\r\n\t},\r\n\r\n\tgetBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value\r\n\t\t// this should be a little more flexible in the future to handle a string & hash\r\n\t\tvar y, x;\r\n\t\tswitch (origin[0]) {\r\n\t\t\tcase 'top': y = 0; break;\r\n\t\t\tcase 'middle': y = 0.5; break;\r\n\t\t\tcase 'bottom': y = 1; break;\r\n\t\t\tdefault: y = origin[0] / original.height;\r\n\t\t};\r\n\t\tswitch (origin[1]) {\r\n\t\t\tcase 'left': x = 0; break;\r\n\t\t\tcase 'center': x = 0.5; break;\r\n\t\t\tcase 'right': x = 1; break;\r\n\t\t\tdefault: x = origin[1] / original.width;\r\n\t\t};\r\n\t\treturn {x: x, y: y};\r\n\t},\r\n\r\n\t// Wraps the element around a wrapper that copies position properties\r\n\tcreateWrapper: function(element) {\r\n\r\n\t\t// if the element is already wrapped, return it\r\n\t\tif (element.parent().is('.ui-effects-wrapper')) {\r\n\t\t\treturn element.parent();\r\n\t\t}\r\n\r\n\t\t// wrap the element\r\n\t\tvar props = {\r\n\t\t\t\twidth: element.outerWidth(true),\r\n\t\t\t\theight: element.outerHeight(true),\r\n\t\t\t\t'float': element.css('float')\r\n\t\t\t},\r\n\t\t\twrapper = $('
')\r\n\t\t\t\t.addClass('ui-effects-wrapper')\r\n\t\t\t\t.css({\r\n\t\t\t\t\tfontSize: '100%',\r\n\t\t\t\t\tbackground: 'transparent',\r\n\t\t\t\t\tborder: 'none',\r\n\t\t\t\t\tmargin: 0,\r\n\t\t\t\t\tpadding: 0\r\n\t\t\t\t}),\r\n\t\t\tactive = document.activeElement;\r\n\r\n\t\t// support: Firefox\r\n\t\t// Firefox incorrectly exposes anonymous content\r\n\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=561664\r\n\t\ttry {\r\n\t\t\tactive.id;\r\n\t\t} catch( e ) {\r\n\t\t\tactive = document.body;\r\n\t\t}\r\n\r\n\t\telement.wrap( wrapper );\r\n\r\n\t\t// Fixes #7595 - Elements lose focus when wrapped.\r\n\t\tif ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {\r\n\t\t\t$( active ).focus();\r\n\t\t}\r\n\t\t\r\n\t\twrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element\r\n\r\n\t\t// transfer positioning properties to the wrapper\r\n\t\tif (element.css('position') == 'static') {\r\n\t\t\twrapper.css({ position: 'relative' });\r\n\t\t\telement.css({ position: 'relative' });\r\n\t\t} else {\r\n\t\t\t$.extend(props, {\r\n\t\t\t\tposition: element.css('position'),\r\n\t\t\t\tzIndex: element.css('z-index')\r\n\t\t\t});\r\n\t\t\t$.each(['top', 'left', 'bottom', 'right'], function(i, pos) {\r\n\t\t\t\tprops[pos] = element.css(pos);\r\n\t\t\t\tif (isNaN(parseInt(props[pos], 10))) {\r\n\t\t\t\t\tprops[pos] = 'auto';\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\telement.css({position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto' });\r\n\t\t}\r\n\r\n\t\treturn wrapper.css(props).show();\r\n\t},\r\n\r\n\tremoveWrapper: function(element) {\r\n\t\tvar parent,\r\n\t\t\tactive = document.activeElement;\r\n\t\t\r\n\t\tif (element.parent().is('.ui-effects-wrapper')) {\r\n\t\t\tparent = element.parent().replaceWith(element);\r\n\t\t\t// Fixes #7595 - Elements lose focus when wrapped.\r\n\t\t\tif ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {\r\n\t\t\t\t$( active ).focus();\r\n\t\t\t}\r\n\t\t\treturn parent;\r\n\t\t}\r\n\t\t\t\r\n\t\treturn element;\r\n\t},\r\n\r\n\tsetTransition: function(element, list, factor, value) {\r\n\t\tvalue = value || {};\r\n\t\t$.each(list, function(i, x){\r\n\t\t\tvar unit = element.cssUnit(x);\r\n\t\t\tif (unit[0] > 0) value[x] = unit[0] * factor + unit[1];\r\n\t\t});\r\n\t\treturn value;\r\n\t}\r\n});\r\n\r\n\r\nfunction _normalizeArguments(effect, options, speed, callback) {\r\n\t// shift params for method overloading\r\n\tif (typeof effect == 'object') {\r\n\t\tcallback = options;\r\n\t\tspeed = null;\r\n\t\toptions = effect;\r\n\t\teffect = options.effect;\r\n\t}\r\n\tif ($.isFunction(options)) {\r\n\t\tcallback = options;\r\n\t\tspeed = null;\r\n\t\toptions = {};\r\n\t}\r\n if (typeof options == 'number' || $.fx.speeds[options]) {\r\n\t\tcallback = speed;\r\n\t\tspeed = options;\r\n\t\toptions = {};\r\n\t}\r\n\tif ($.isFunction(speed)) {\r\n\t\tcallback = speed;\r\n\t\tspeed = null;\r\n\t}\r\n\r\n\toptions = options || {};\r\n\r\n\tspeed = speed || options.duration;\r\n\tspeed = $.fx.off ? 0 : typeof speed == 'number'\r\n\t\t? speed : speed in $.fx.speeds ? $.fx.speeds[speed] : $.fx.speeds._default;\r\n\r\n\tcallback = callback || options.complete;\r\n\r\n\treturn [effect, options, speed, callback];\r\n}\r\n\r\nfunction standardSpeed( speed ) {\r\n\t// valid standard speeds\r\n\tif ( !speed || typeof speed === \"number\" || $.fx.speeds[ speed ] ) {\r\n\t\treturn true;\r\n\t}\r\n\t\r\n\t// invalid strings - treat as \"normal\" speed\r\n\tif ( typeof speed === \"string\" && !$.effects[ speed ] ) {\r\n\t\treturn true;\r\n\t}\r\n\t\r\n\treturn false;\r\n}\r\n\r\n$.fn.extend({\r\n\teffect: function(effect, options, speed, callback) {\r\n\t\tvar args = _normalizeArguments.apply(this, arguments),\r\n\t\t\t// TODO: make effects take actual parameters instead of a hash\r\n\t\t\targs2 = {\r\n\t\t\t\toptions: args[1],\r\n\t\t\t\tduration: args[2],\r\n\t\t\t\tcallback: args[3]\r\n\t\t\t},\r\n\t\t\tmode = args2.options.mode,\r\n\t\t\teffectMethod = $.effects[effect];\r\n\t\t\r\n\t\tif ( $.fx.off || !effectMethod ) {\r\n\t\t\t// delegate to the original method (e.g., .show()) if possible\r\n\t\t\tif ( mode ) {\r\n\t\t\t\treturn this[ mode ]( args2.duration, args2.callback );\r\n\t\t\t} else {\r\n\t\t\t\treturn this.each(function() {\r\n\t\t\t\t\tif ( args2.callback ) {\r\n\t\t\t\t\t\targs2.callback.call( this );\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\treturn effectMethod.call(this, args2);\r\n\t},\r\n\r\n\t_show: $.fn.show,\r\n\tshow: function(speed) {\r\n\t\tif ( standardSpeed( speed ) ) {\r\n\t\t\treturn this._show.apply(this, arguments);\r\n\t\t} else {\r\n\t\t\tvar args = _normalizeArguments.apply(this, arguments);\r\n\t\t\targs[1].mode = 'show';\r\n\t\t\treturn this.effect.apply(this, args);\r\n\t\t}\r\n\t},\r\n\r\n\t_hide: $.fn.hide,\r\n\thide: function(speed) {\r\n\t\tif ( standardSpeed( speed ) ) {\r\n\t\t\treturn this._hide.apply(this, arguments);\r\n\t\t} else {\r\n\t\t\tvar args = _normalizeArguments.apply(this, arguments);\r\n\t\t\targs[1].mode = 'hide';\r\n\t\t\treturn this.effect.apply(this, args);\r\n\t\t}\r\n\t},\r\n\r\n\t// jQuery core overloads toggle and creates _toggle\r\n\t__toggle: $.fn.toggle,\r\n\ttoggle: function(speed) {\r\n\t\tif ( standardSpeed( speed ) || typeof speed === \"boolean\" || $.isFunction( speed ) ) {\r\n\t\t\treturn this.__toggle.apply(this, arguments);\r\n\t\t} else {\r\n\t\t\tvar args = _normalizeArguments.apply(this, arguments);\r\n\t\t\targs[1].mode = 'toggle';\r\n\t\t\treturn this.effect.apply(this, args);\r\n\t\t}\r\n\t},\r\n\r\n\t// helper functions\r\n\tcssUnit: function(key) {\r\n\t\tvar style = this.css(key), val = [];\r\n\t\t$.each( ['em','px','%','pt'], function(i, unit){\r\n\t\t\tif(style.indexOf(unit) > 0)\r\n\t\t\t\tval = [parseFloat(style), unit];\r\n\t\t});\r\n\t\treturn val;\r\n\t}\r\n});\r\n\r\n\r\n\r\n/******************************************************************************/\r\n/*********************************** EASING ***********************************/\r\n/******************************************************************************/\r\n\r\n/*\r\n * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/\r\n *\r\n * Uses the built in easing capabilities added In jQuery 1.1\r\n * to offer multiple easing options\r\n *\r\n * TERMS OF USE - jQuery Easing\r\n *\r\n * Open source under the BSD License.\r\n *\r\n * Copyright 2008 George McGinley Smith\r\n * All rights reserved.\r\n *\r\n * Redistribution and use in source and binary forms, with or without modification,\r\n * are permitted provided that the following conditions are met:\r\n *\r\n * Redistributions of source code must retain the above copyright notice, this list of\r\n * conditions and the following disclaimer.\r\n * Redistributions in binary form must reproduce the above copyright notice, this list\r\n * of conditions and the following disclaimer in the documentation and/or other materials\r\n * provided with the distribution.\r\n *\r\n * Neither the name of the author nor the names of contributors may be used to endorse\r\n * or promote products derived from this software without specific prior written permission.\r\n *\r\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY\r\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r\n * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\r\n * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r\n * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r\n * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED\r\n * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\r\n * OF THE POSSIBILITY OF SUCH DAMAGE.\r\n *\r\n*/\r\n\r\n// t: current time, b: begInnIng value, c: change In value, d: duration\r\n$.easing.jswing = $.easing.swing;\r\n\r\n$.extend($.easing,\r\n{\r\n\tdef: 'easeOutQuad',\r\n\tswing: function (x, t, b, c, d) {\r\n\t\t//alert($.easing.default);\r\n\t\treturn $.easing[$.easing.def](x, t, b, c, d);\r\n\t},\r\n\teaseInQuad: function (x, t, b, c, d) {\r\n\t\treturn c*(t/=d)*t + b;\r\n\t},\r\n\teaseOutQuad: function (x, t, b, c, d) {\r\n\t\treturn -c *(t/=d)*(t-2) + b;\r\n\t},\r\n\teaseInOutQuad: function (x, t, b, c, d) {\r\n\t\tif ((t/=d/2) < 1) return c/2*t*t + b;\r\n\t\treturn -c/2 * ((--t)*(t-2) - 1) + b;\r\n\t},\r\n\teaseInCubic: function (x, t, b, c, d) {\r\n\t\treturn c*(t/=d)*t*t + b;\r\n\t},\r\n\teaseOutCubic: function (x, t, b, c, d) {\r\n\t\treturn c*((t=t/d-1)*t*t + 1) + b;\r\n\t},\r\n\teaseInOutCubic: function (x, t, b, c, d) {\r\n\t\tif ((t/=d/2) < 1) return c/2*t*t*t + b;\r\n\t\treturn c/2*((t-=2)*t*t + 2) + b;\r\n\t},\r\n\teaseInQuart: function (x, t, b, c, d) {\r\n\t\treturn c*(t/=d)*t*t*t + b;\r\n\t},\r\n\teaseOutQuart: function (x, t, b, c, d) {\r\n\t\treturn -c * ((t=t/d-1)*t*t*t - 1) + b;\r\n\t},\r\n\teaseInOutQuart: function (x, t, b, c, d) {\r\n\t\tif ((t/=d/2) < 1) return c/2*t*t*t*t + b;\r\n\t\treturn -c/2 * ((t-=2)*t*t*t - 2) + b;\r\n\t},\r\n\teaseInQuint: function (x, t, b, c, d) {\r\n\t\treturn c*(t/=d)*t*t*t*t + b;\r\n\t},\r\n\teaseOutQuint: function (x, t, b, c, d) {\r\n\t\treturn c*((t=t/d-1)*t*t*t*t + 1) + b;\r\n\t},\r\n\teaseInOutQuint: function (x, t, b, c, d) {\r\n\t\tif ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;\r\n\t\treturn c/2*((t-=2)*t*t*t*t + 2) + b;\r\n\t},\r\n\teaseInSine: function (x, t, b, c, d) {\r\n\t\treturn -c * Math.cos(t/d * (Math.PI/2)) + c + b;\r\n\t},\r\n\teaseOutSine: function (x, t, b, c, d) {\r\n\t\treturn c * Math.sin(t/d * (Math.PI/2)) + b;\r\n\t},\r\n\teaseInOutSine: function (x, t, b, c, d) {\r\n\t\treturn -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;\r\n\t},\r\n\teaseInExpo: function (x, t, b, c, d) {\r\n\t\treturn (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;\r\n\t},\r\n\teaseOutExpo: function (x, t, b, c, d) {\r\n\t\treturn (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;\r\n\t},\r\n\teaseInOutExpo: function (x, t, b, c, d) {\r\n\t\tif (t==0) return b;\r\n\t\tif (t==d) return b+c;\r\n\t\tif ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;\r\n\t\treturn c/2 * (-Math.pow(2, -10 * --t) + 2) + b;\r\n\t},\r\n\teaseInCirc: function (x, t, b, c, d) {\r\n\t\treturn -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;\r\n\t},\r\n\teaseOutCirc: function (x, t, b, c, d) {\r\n\t\treturn c * Math.sqrt(1 - (t=t/d-1)*t) + b;\r\n\t},\r\n\teaseInOutCirc: function (x, t, b, c, d) {\r\n\t\tif ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;\r\n\t\treturn c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;\r\n\t},\r\n\teaseInElastic: function (x, t, b, c, d) {\r\n\t\tvar s=1.70158;var p=0;var a=c;\r\n\t\tif (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;\r\n\t\tif (a < Math.abs(c)) { a=c; var s=p/4; }\r\n\t\telse var s = p/(2*Math.PI) * Math.asin (c/a);\r\n\t\treturn -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;\r\n\t},\r\n\teaseOutElastic: function (x, t, b, c, d) {\r\n\t\tvar s=1.70158;var p=0;var a=c;\r\n\t\tif (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;\r\n\t\tif (a < Math.abs(c)) { a=c; var s=p/4; }\r\n\t\telse var s = p/(2*Math.PI) * Math.asin (c/a);\r\n\t\treturn a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;\r\n\t},\r\n\teaseInOutElastic: function (x, t, b, c, d) {\r\n\t\tvar s=1.70158;var p=0;var a=c;\r\n\t\tif (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);\r\n\t\tif (a < Math.abs(c)) { a=c; var s=p/4; }\r\n\t\telse var s = p/(2*Math.PI) * Math.asin (c/a);\r\n\t\tif (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;\r\n\t\treturn a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;\r\n\t},\r\n\teaseInBack: function (x, t, b, c, d, s) {\r\n\t\tif (s == undefined) s = 1.70158;\r\n\t\treturn c*(t/=d)*t*((s+1)*t - s) + b;\r\n\t},\r\n\teaseOutBack: function (x, t, b, c, d, s) {\r\n\t\tif (s == undefined) s = 1.70158;\r\n\t\treturn c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;\r\n\t},\r\n\teaseInOutBack: function (x, t, b, c, d, s) {\r\n\t\tif (s == undefined) s = 1.70158;\r\n\t\tif ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;\r\n\t\treturn c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;\r\n\t},\r\n\teaseInBounce: function (x, t, b, c, d) {\r\n\t\treturn c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b;\r\n\t},\r\n\teaseOutBounce: function (x, t, b, c, d) {\r\n\t\tif ((t/=d) < (1/2.75)) {\r\n\t\t\treturn c*(7.5625*t*t) + b;\r\n\t\t} else if (t < (2/2.75)) {\r\n\t\t\treturn c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;\r\n\t\t} else if (t < (2.5/2.75)) {\r\n\t\t\treturn c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;\r\n\t\t} else {\r\n\t\t\treturn c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;\r\n\t\t}\r\n\t},\r\n\teaseInOutBounce: function (x, t, b, c, d) {\r\n\t\tif (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;\r\n\t\treturn $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;\r\n\t}\r\n});\r\n\r\n/*\r\n *\r\n * TERMS OF USE - EASING EQUATIONS\r\n *\r\n * Open source under the BSD License.\r\n *\r\n * Copyright 2001 Robert Penner\r\n * All rights reserved.\r\n *\r\n * Redistribution and use in source and binary forms, with or without modification,\r\n * are permitted provided that the following conditions are met:\r\n *\r\n * Redistributions of source code must retain the above copyright notice, this list of\r\n * conditions and the following disclaimer.\r\n * Redistributions in binary form must reproduce the above copyright notice, this list\r\n * of conditions and the following disclaimer in the documentation and/or other materials\r\n * provided with the distribution.\r\n *\r\n * Neither the name of the author nor the names of contributors may be used to endorse\r\n * or promote products derived from this software without specific prior written permission.\r\n *\r\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY\r\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r\n * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\r\n * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r\n * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r\n * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED\r\n * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\r\n * OF THE POSSIBILITY OF SUCH DAMAGE.\r\n *\r\n */\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.effects.blind = function(o) {\r\n\r\n\treturn this.queue(function() {\r\n\r\n\t\t// Create element\r\n\t\tvar el = $(this), props = ['position','top','bottom','left','right'];\r\n\r\n\t\t// Set options\r\n\t\tvar mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode\r\n\t\tvar direction = o.options.direction || 'vertical'; // Default direction\r\n\r\n\t\t// Adjust\r\n\t\t$.effects.save(el, props); el.show(); // Save & Show\r\n\t\tvar wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper\r\n\t\tvar ref = (direction == 'vertical') ? 'height' : 'width';\r\n\t\tvar distance = (direction == 'vertical') ? wrapper.height() : wrapper.width();\r\n\t\tif(mode == 'show') wrapper.css(ref, 0); // Shift\r\n\r\n\t\t// Animation\r\n\t\tvar animation = {};\r\n\t\tanimation[ref] = mode == 'show' ? distance : 0;\r\n\r\n\t\t// Animate\r\n\t\twrapper.animate(animation, o.duration, o.options.easing, function() {\r\n\t\t\tif(mode == 'hide') el.hide(); // Hide\r\n\t\t\t$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore\r\n\t\t\tif(o.callback) o.callback.apply(el[0], arguments); // Callback\r\n\t\t\tel.dequeue();\r\n\t\t});\r\n\r\n\t});\r\n\r\n};\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.effects.bounce = function(o) {\r\n\r\n\treturn this.queue(function() {\r\n\r\n\t\t// Create element\r\n\t\tvar el = $(this), props = ['position','top','bottom','left','right'];\r\n\r\n\t\t// Set options\r\n\t\tvar mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode\r\n\t\tvar direction = o.options.direction || 'up'; // Default direction\r\n\t\tvar distance = o.options.distance || 20; // Default distance\r\n\t\tvar times = o.options.times || 5; // Default # of times\r\n\t\tvar speed = o.duration || 250; // Default speed per bounce\r\n\t\tif (/show|hide/.test(mode)) props.push('opacity'); // Avoid touching opacity to prevent clearType and PNG issues in IE\r\n\r\n\t\t// Adjust\r\n\t\t$.effects.save(el, props); el.show(); // Save & Show\r\n\t\t$.effects.createWrapper(el); // Create Wrapper\r\n\t\tvar ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';\r\n\t\tvar motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';\r\n\t\tvar distance = o.options.distance || (ref == 'top' ? el.outerHeight(true) / 3 : el.outerWidth(true) / 3);\r\n\t\tif (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift\r\n\t\tif (mode == 'hide') distance = distance / (times * 2);\r\n\t\tif (mode != 'hide') times--;\r\n\r\n\t\t// Animate\r\n\t\tif (mode == 'show') { // Show Bounce\r\n\t\t\tvar animation = {opacity: 1};\r\n\t\t\tanimation[ref] = (motion == 'pos' ? '+=' : '-=') + distance;\r\n\t\t\tel.animate(animation, speed / 2, o.options.easing);\r\n\t\t\tdistance = distance / 2;\r\n\t\t\ttimes--;\r\n\t\t};\r\n\t\tfor (var i = 0; i < times; i++) { // Bounces\r\n\t\t\tvar animation1 = {}, animation2 = {};\r\n\t\t\tanimation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;\r\n\t\t\tanimation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;\r\n\t\t\tel.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing);\r\n\t\t\tdistance = (mode == 'hide') ? distance * 2 : distance / 2;\r\n\t\t};\r\n\t\tif (mode == 'hide') { // Last Bounce\r\n\t\t\tvar animation = {opacity: 0};\r\n\t\t\tanimation[ref] = (motion == 'pos' ? '-=' : '+=') + distance;\r\n\t\t\tel.animate(animation, speed / 2, o.options.easing, function(){\r\n\t\t\t\tel.hide(); // Hide\r\n\t\t\t\t$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore\r\n\t\t\t\tif(o.callback) o.callback.apply(this, arguments); // Callback\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tvar animation1 = {}, animation2 = {};\r\n\t\t\tanimation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;\r\n\t\t\tanimation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;\r\n\t\t\tel.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing, function(){\r\n\t\t\t\t$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore\r\n\t\t\t\tif(o.callback) o.callback.apply(this, arguments); // Callback\r\n\t\t\t});\r\n\t\t};\r\n\t\tel.queue('fx', function() { el.dequeue(); });\r\n\t\tel.dequeue();\r\n\t});\r\n\r\n};\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.effects.clip = function(o) {\r\n\r\n\treturn this.queue(function() {\r\n\r\n\t\t// Create element\r\n\t\tvar el = $(this), props = ['position','top','bottom','left','right','height','width'];\r\n\r\n\t\t// Set options\r\n\t\tvar mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode\r\n\t\tvar direction = o.options.direction || 'vertical'; // Default direction\r\n\r\n\t\t// Adjust\r\n\t\t$.effects.save(el, props); el.show(); // Save & Show\r\n\t\tvar wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper\r\n\t\tvar animate = el[0].tagName == 'IMG' ? wrapper : el;\r\n\t\tvar ref = {\r\n\t\t\tsize: (direction == 'vertical') ? 'height' : 'width',\r\n\t\t\tposition: (direction == 'vertical') ? 'top' : 'left'\r\n\t\t};\r\n\t\tvar distance = (direction == 'vertical') ? animate.height() : animate.width();\r\n\t\tif(mode == 'show') { animate.css(ref.size, 0); animate.css(ref.position, distance / 2); } // Shift\r\n\r\n\t\t// Animation\r\n\t\tvar animation = {};\r\n\t\tanimation[ref.size] = mode == 'show' ? distance : 0;\r\n\t\tanimation[ref.position] = mode == 'show' ? 0 : distance / 2;\r\n\r\n\t\t// Animate\r\n\t\tanimate.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {\r\n\t\t\tif(mode == 'hide') el.hide(); // Hide\r\n\t\t\t$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore\r\n\t\t\tif(o.callback) o.callback.apply(el[0], arguments); // Callback\r\n\t\t\tel.dequeue();\r\n\t\t}});\r\n\r\n\t});\r\n\r\n};\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.effects.drop = function(o) {\r\n\r\n\treturn this.queue(function() {\r\n\r\n\t\t// Create element\r\n\t\tvar el = $(this), props = ['position','top','bottom','left','right','opacity'];\r\n\r\n\t\t// Set options\r\n\t\tvar mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode\r\n\t\tvar direction = o.options.direction || 'left'; // Default Direction\r\n\r\n\t\t// Adjust\r\n\t\t$.effects.save(el, props); el.show(); // Save & Show\r\n\t\t$.effects.createWrapper(el); // Create Wrapper\r\n\t\tvar ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';\r\n\t\tvar motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';\r\n\t\tvar distance = o.options.distance || (ref == 'top' ? el.outerHeight( true ) / 2 : el.outerWidth( true ) / 2);\r\n\t\tif (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift\r\n\r\n\t\t// Animation\r\n\t\tvar animation = {opacity: mode == 'show' ? 1 : 0};\r\n\t\tanimation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance;\r\n\r\n\t\t// Animate\r\n\t\tel.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {\r\n\t\t\tif(mode == 'hide') el.hide(); // Hide\r\n\t\t\t$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore\r\n\t\t\tif(o.callback) o.callback.apply(this, arguments); // Callback\r\n\t\t\tel.dequeue();\r\n\t\t}});\r\n\r\n\t});\r\n\r\n};\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.effects.explode = function(o) {\r\n\r\n\treturn this.queue(function() {\r\n\r\n\tvar rows = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;\r\n\tvar cells = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;\r\n\r\n\to.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode;\r\n\tvar el = $(this).show().css('visibility', 'hidden');\r\n\tvar offset = el.offset();\r\n\r\n\t//Substract the margins - not fixing the problem yet.\r\n\toffset.top -= parseInt(el.css(\"marginTop\"),10) || 0;\r\n\toffset.left -= parseInt(el.css(\"marginLeft\"),10) || 0;\r\n\r\n\tvar width = el.outerWidth(true);\r\n\tvar height = el.outerHeight(true);\r\n\r\n\tfor(var i=0;i')\r\n\t\t\t\t.css({\r\n\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\tvisibility: 'visible',\r\n\t\t\t\t\tleft: -j*(width/cells),\r\n\t\t\t\t\ttop: -i*(height/rows)\r\n\t\t\t\t})\r\n\t\t\t\t.parent()\r\n\t\t\t\t.addClass('ui-effects-explode')\r\n\t\t\t\t.css({\r\n\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\toverflow: 'hidden',\r\n\t\t\t\t\twidth: width/cells,\r\n\t\t\t\t\theight: height/rows,\r\n\t\t\t\t\tleft: offset.left + j*(width/cells) + (o.options.mode == 'show' ? (j-Math.floor(cells/2))*(width/cells) : 0),\r\n\t\t\t\t\ttop: offset.top + i*(height/rows) + (o.options.mode == 'show' ? (i-Math.floor(rows/2))*(height/rows) : 0),\r\n\t\t\t\t\topacity: o.options.mode == 'show' ? 0 : 1\r\n\t\t\t\t}).animate({\r\n\t\t\t\t\tleft: offset.left + j*(width/cells) + (o.options.mode == 'show' ? 0 : (j-Math.floor(cells/2))*(width/cells)),\r\n\t\t\t\t\ttop: offset.top + i*(height/rows) + (o.options.mode == 'show' ? 0 : (i-Math.floor(rows/2))*(height/rows)),\r\n\t\t\t\t\topacity: o.options.mode == 'show' ? 1 : 0\r\n\t\t\t\t}, o.duration || 500);\r\n\t\t}\r\n\t}\r\n\r\n\t// Set a timeout, to call the callback approx. when the other animations have finished\r\n\tsetTimeout(function() {\r\n\r\n\t\to.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide();\r\n\t\t\t\tif(o.callback) o.callback.apply(el[0]); // Callback\r\n\t\t\t\tel.dequeue();\r\n\r\n\t\t\t\t$('div.ui-effects-explode').remove();\r\n\r\n\t}, o.duration || 500);\r\n\r\n\r\n\t});\r\n\r\n};\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.effects.fade = function(o) {\r\n\treturn this.queue(function() {\r\n\t\tvar elem = $(this),\r\n\t\t\tmode = $.effects.setMode(elem, o.options.mode || 'hide');\r\n\r\n\t\telem.animate({ opacity: mode }, {\r\n\t\t\tqueue: false,\r\n\t\t\tduration: o.duration,\r\n\t\t\teasing: o.options.easing,\r\n\t\t\tcomplete: function() {\r\n\t\t\t\t(o.callback && o.callback.apply(this, arguments));\r\n\t\t\t\telem.dequeue();\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n};\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.effects.fold = function(o) {\r\n\r\n\treturn this.queue(function() {\r\n\r\n\t\t// Create element\r\n\t\tvar el = $(this), props = ['position','top','bottom','left','right'];\r\n\r\n\t\t// Set options\r\n\t\tvar mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode\r\n\t\tvar size = o.options.size || 15; // Default fold size\r\n\t\tvar horizFirst = !(!o.options.horizFirst); // Ensure a boolean value\r\n\t\tvar duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2;\r\n\r\n\t\t// Adjust\r\n\t\t$.effects.save(el, props); el.show(); // Save & Show\r\n\t\tvar wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper\r\n\t\tvar widthFirst = ((mode == 'show') != horizFirst);\r\n\t\tvar ref = widthFirst ? ['width', 'height'] : ['height', 'width'];\r\n\t\tvar distance = widthFirst ? [wrapper.width(), wrapper.height()] : [wrapper.height(), wrapper.width()];\r\n\t\tvar percent = /([0-9]+)%/.exec(size);\r\n\t\tif(percent) size = parseInt(percent[1],10) / 100 * distance[mode == 'hide' ? 0 : 1];\r\n\t\tif(mode == 'show') wrapper.css(horizFirst ? {height: 0, width: size} : {height: size, width: 0}); // Shift\r\n\r\n\t\t// Animation\r\n\t\tvar animation1 = {}, animation2 = {};\r\n\t\tanimation1[ref[0]] = mode == 'show' ? distance[0] : size;\r\n\t\tanimation2[ref[1]] = mode == 'show' ? distance[1] : 0;\r\n\r\n\t\t// Animate\r\n\t\twrapper.animate(animation1, duration, o.options.easing)\r\n\t\t.animate(animation2, duration, o.options.easing, function() {\r\n\t\t\tif(mode == 'hide') el.hide(); // Hide\r\n\t\t\t$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore\r\n\t\t\tif(o.callback) o.callback.apply(el[0], arguments); // Callback\r\n\t\t\tel.dequeue();\r\n\t\t});\r\n\r\n\t});\r\n\r\n};\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.effects.highlight = function(o) {\r\n\treturn this.queue(function() {\r\n\t\tvar elem = $(this),\r\n\t\t\tprops = ['backgroundImage', 'backgroundColor', 'opacity'],\r\n\t\t\tmode = $.effects.setMode(elem, o.options.mode || 'show'),\r\n\t\t\tanimation = {\r\n\t\t\t\tbackgroundColor: elem.css('backgroundColor')\r\n\t\t\t};\r\n\r\n\t\tif (mode == 'hide') {\r\n\t\t\tanimation.opacity = 0;\r\n\t\t}\r\n\r\n\t\t$.effects.save(elem, props);\r\n\t\telem\r\n\t\t\t.show()\r\n\t\t\t.css({\r\n\t\t\t\tbackgroundImage: 'none',\r\n\t\t\t\tbackgroundColor: o.options.color || '#ffff99'\r\n\t\t\t})\r\n\t\t\t.animate(animation, {\r\n\t\t\t\tqueue: false,\r\n\t\t\t\tduration: o.duration,\r\n\t\t\t\teasing: o.options.easing,\r\n\t\t\t\tcomplete: function() {\r\n\t\t\t\t\t(mode == 'hide' && elem.hide());\r\n\t\t\t\t\t$.effects.restore(elem, props);\r\n\t\t\t\t\t(mode == 'show' && !$.support.opacity && this.style.removeAttribute('filter'));\r\n\t\t\t\t\t(o.callback && o.callback.apply(this, arguments));\r\n\t\t\t\t\telem.dequeue();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t});\r\n};\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.effects.pulsate = function(o) {\r\n\treturn this.queue(function() {\r\n\t\tvar elem = $(this),\r\n\t\t\tmode = $.effects.setMode(elem, o.options.mode || 'show'),\r\n\t\t\ttimes = ((o.options.times || 5) * 2) - 1,\r\n\t\t\tduration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2,\r\n\t\t\tisVisible = elem.is(':visible'),\r\n\t\t\tanimateTo = 0;\r\n\r\n\t\tif (!isVisible) {\r\n\t\t\telem.css('opacity', 0).show();\r\n\t\t\tanimateTo = 1;\r\n\t\t}\r\n\r\n\t\tif ((mode == 'hide' && isVisible) || (mode == 'show' && !isVisible)) {\r\n\t\t\ttimes--;\r\n\t\t}\r\n\r\n\t\tfor (var i = 0; i < times; i++) {\r\n\t\t\telem.animate({ opacity: animateTo }, duration, o.options.easing);\r\n\t\t\tanimateTo = (animateTo + 1) % 2;\r\n\t\t}\r\n\r\n\t\telem.animate({ opacity: animateTo }, duration, o.options.easing, function() {\r\n\t\t\tif (animateTo == 0) {\r\n\t\t\t\telem.hide();\r\n\t\t\t}\r\n\t\t\t(o.callback && o.callback.apply(this, arguments));\r\n\t\t});\r\n\r\n\t\telem\r\n\t\t\t.queue('fx', function() { elem.dequeue(); })\r\n\t\t\t.dequeue();\r\n\t});\r\n};\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.effects.puff = function(o) {\r\n\treturn this.queue(function() {\r\n\t\tvar elem = $(this),\r\n\t\t\tmode = $.effects.setMode(elem, o.options.mode || 'hide'),\r\n\t\t\tpercent = parseInt(o.options.percent, 10) || 150,\r\n\t\t\tfactor = percent / 100,\r\n\t\t\toriginal = { height: elem.height(), width: elem.width() };\r\n\r\n\t\t$.extend(o.options, {\r\n\t\t\tfade: true,\r\n\t\t\tmode: mode,\r\n\t\t\tpercent: mode == 'hide' ? percent : 100,\r\n\t\t\tfrom: mode == 'hide'\r\n\t\t\t\t? original\r\n\t\t\t\t: {\r\n\t\t\t\t\theight: original.height * factor,\r\n\t\t\t\t\twidth: original.width * factor\r\n\t\t\t\t}\r\n\t\t});\r\n\r\n\t\telem.effect('scale', o.options, o.duration, o.callback);\r\n\t\telem.dequeue();\r\n\t});\r\n};\r\n\r\n$.effects.scale = function(o) {\r\n\r\n\treturn this.queue(function() {\r\n\r\n\t\t// Create element\r\n\t\tvar el = $(this);\r\n\r\n\t\t// Set options\r\n\t\tvar options = $.extend(true, {}, o.options);\r\n\t\tvar mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode\r\n\t\tvar percent = parseInt(o.options.percent,10) || (parseInt(o.options.percent,10) == 0 ? 0 : (mode == 'hide' ? 0 : 100)); // Set default scaling percent\r\n\t\tvar direction = o.options.direction || 'both'; // Set default axis\r\n\t\tvar origin = o.options.origin; // The origin of the scaling\r\n\t\tif (mode != 'effect') { // Set default origin and restore for show/hide\r\n\t\t\toptions.origin = origin || ['middle','center'];\r\n\t\t\toptions.restore = true;\r\n\t\t}\r\n\t\tvar original = {height: el.height(), width: el.width()}; // Save original\r\n\t\tel.from = o.options.from || (mode == 'show' ? {height: 0, width: 0} : original); // Default from state\r\n\r\n\t\t// Adjust\r\n\t\tvar factor = { // Set scaling factor\r\n\t\t\ty: direction != 'horizontal' ? (percent / 100) : 1,\r\n\t\t\tx: direction != 'vertical' ? (percent / 100) : 1\r\n\t\t};\r\n\t\tel.to = {height: original.height * factor.y, width: original.width * factor.x}; // Set to state\r\n\r\n\t\tif (o.options.fade) { // Fade option to support puff\r\n\t\t\tif (mode == 'show') {el.from.opacity = 0; el.to.opacity = 1;};\r\n\t\t\tif (mode == 'hide') {el.from.opacity = 1; el.to.opacity = 0;};\r\n\t\t};\r\n\r\n\t\t// Animation\r\n\t\toptions.from = el.from; options.to = el.to; options.mode = mode;\r\n\r\n\t\t// Animate\r\n\t\tel.effect('size', options, o.duration, o.callback);\r\n\t\tel.dequeue();\r\n\t});\r\n\r\n};\r\n\r\n$.effects.size = function(o) {\r\n\r\n\treturn this.queue(function() {\r\n\r\n\t\t// Create element\r\n\t\tvar el = $(this), props = ['position','top','bottom','left','right','width','height','overflow','opacity'];\r\n\t\tvar props1 = ['position','top','bottom','left','right','overflow','opacity']; // Always restore\r\n\t\tvar props2 = ['width','height','overflow']; // Copy for children\r\n\t\tvar cProps = ['fontSize'];\r\n\t\tvar vProps = ['borderTopWidth', 'borderBottomWidth', 'paddingTop', 'paddingBottom'];\r\n\t\tvar hProps = ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', 'paddingRight'];\r\n\r\n\t\t// Set options\r\n\t\tvar mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode\r\n\t\tvar restore = o.options.restore || false; // Default restore\r\n\t\tvar scale = o.options.scale || 'both'; // Default scale mode\r\n\t\tvar origin = o.options.origin; // The origin of the sizing\r\n\t\tvar original = {height: el.height(), width: el.width()}; // Save original\r\n\t\tel.from = o.options.from || original; // Default from state\r\n\t\tel.to = o.options.to || original; // Default to state\r\n\t\t// Adjust\r\n\t\tif (origin) { // Calculate baseline shifts\r\n\t\t\tvar baseline = $.effects.getBaseline(origin, original);\r\n\t\t\tel.from.top = (original.height - el.from.height) * baseline.y;\r\n\t\t\tel.from.left = (original.width - el.from.width) * baseline.x;\r\n\t\t\tel.to.top = (original.height - el.to.height) * baseline.y;\r\n\t\t\tel.to.left = (original.width - el.to.width) * baseline.x;\r\n\t\t};\r\n\t\tvar factor = { // Set scaling factor\r\n\t\t\tfrom: {y: el.from.height / original.height, x: el.from.width / original.width},\r\n\t\t\tto: {y: el.to.height / original.height, x: el.to.width / original.width}\r\n\t\t};\r\n\t\tif (scale == 'box' || scale == 'both') { // Scale the css box\r\n\t\t\tif (factor.from.y != factor.to.y) { // Vertical props scaling\r\n\t\t\t\tprops = props.concat(vProps);\r\n\t\t\t\tel.from = $.effects.setTransition(el, vProps, factor.from.y, el.from);\r\n\t\t\t\tel.to = $.effects.setTransition(el, vProps, factor.to.y, el.to);\r\n\t\t\t};\r\n\t\t\tif (factor.from.x != factor.to.x) { // Horizontal props scaling\r\n\t\t\t\tprops = props.concat(hProps);\r\n\t\t\t\tel.from = $.effects.setTransition(el, hProps, factor.from.x, el.from);\r\n\t\t\t\tel.to = $.effects.setTransition(el, hProps, factor.to.x, el.to);\r\n\t\t\t};\r\n\t\t};\r\n\t\tif (scale == 'content' || scale == 'both') { // Scale the content\r\n\t\t\tif (factor.from.y != factor.to.y) { // Vertical props scaling\r\n\t\t\t\tprops = props.concat(cProps);\r\n\t\t\t\tel.from = $.effects.setTransition(el, cProps, factor.from.y, el.from);\r\n\t\t\t\tel.to = $.effects.setTransition(el, cProps, factor.to.y, el.to);\r\n\t\t\t};\r\n\t\t};\r\n\t\t$.effects.save(el, restore ? props : props1); el.show(); // Save & Show\r\n\t\t$.effects.createWrapper(el); // Create Wrapper\r\n\t\tel.css('overflow','hidden').css(el.from); // Shift\r\n\r\n\t\t// Animate\r\n\t\tif (scale == 'content' || scale == 'both') { // Scale the children\r\n\t\t\tvProps = vProps.concat(['marginTop','marginBottom']).concat(cProps); // Add margins/font-size\r\n\t\t\thProps = hProps.concat(['marginLeft','marginRight']); // Add margins\r\n\t\t\tprops2 = props.concat(vProps).concat(hProps); // Concat\r\n\t\t\tel.find(\"*[width]\").each(function(){\r\n\t\t\t\tvar child = $(this);\r\n\t\t\t\tif (restore) $.effects.save(child, props2);\r\n\t\t\t\tvar c_original = {height: child.height(), width: child.width()}; // Save original\r\n\t\t\t\tchild.from = {height: c_original.height * factor.from.y, width: c_original.width * factor.from.x};\r\n\t\t\t\tchild.to = {height: c_original.height * factor.to.y, width: c_original.width * factor.to.x};\r\n\t\t\t\tif (factor.from.y != factor.to.y) { // Vertical props scaling\r\n\t\t\t\t\tchild.from = $.effects.setTransition(child, vProps, factor.from.y, child.from);\r\n\t\t\t\t\tchild.to = $.effects.setTransition(child, vProps, factor.to.y, child.to);\r\n\t\t\t\t};\r\n\t\t\t\tif (factor.from.x != factor.to.x) { // Horizontal props scaling\r\n\t\t\t\t\tchild.from = $.effects.setTransition(child, hProps, factor.from.x, child.from);\r\n\t\t\t\t\tchild.to = $.effects.setTransition(child, hProps, factor.to.x, child.to);\r\n\t\t\t\t};\r\n\t\t\t\tchild.css(child.from); // Shift children\r\n\t\t\t\tchild.animate(child.to, o.duration, o.options.easing, function(){\r\n\t\t\t\t\tif (restore) $.effects.restore(child, props2); // Restore children\r\n\t\t\t\t}); // Animate children\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t// Animate\r\n\t\tel.animate(el.to, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {\r\n\t\t\tif (el.to.opacity === 0) {\r\n\t\t\t\tel.css('opacity', el.from.opacity);\r\n\t\t\t}\r\n\t\t\tif(mode == 'hide') el.hide(); // Hide\r\n\t\t\t$.effects.restore(el, restore ? props : props1); $.effects.removeWrapper(el); // Restore\r\n\t\t\tif(o.callback) o.callback.apply(this, arguments); // Callback\r\n\t\t\tel.dequeue();\r\n\t\t}});\r\n\r\n\t});\r\n\r\n};\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.effects.shake = function(o) {\r\n\r\n\treturn this.queue(function() {\r\n\r\n\t\t// Create element\r\n\t\tvar el = $(this), props = ['position','top','bottom','left','right'];\r\n\r\n\t\t// Set options\r\n\t\tvar mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode\r\n\t\tvar direction = o.options.direction || 'left'; // Default direction\r\n\t\tvar distance = o.options.distance || 20; // Default distance\r\n\t\tvar times = o.options.times || 3; // Default # of times\r\n\t\tvar speed = o.duration || o.options.duration || 140; // Default speed per shake\r\n\r\n\t\t// Adjust\r\n\t\t$.effects.save(el, props); el.show(); // Save & Show\r\n\t\t$.effects.createWrapper(el); // Create Wrapper\r\n\t\tvar ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';\r\n\t\tvar motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';\r\n\r\n\t\t// Animation\r\n\t\tvar animation = {}, animation1 = {}, animation2 = {};\r\n\t\tanimation[ref] = (motion == 'pos' ? '-=' : '+=') + distance;\r\n\t\tanimation1[ref] = (motion == 'pos' ? '+=' : '-=') + distance * 2;\r\n\t\tanimation2[ref] = (motion == 'pos' ? '-=' : '+=') + distance * 2;\r\n\r\n\t\t// Animate\r\n\t\tel.animate(animation, speed, o.options.easing);\r\n\t\tfor (var i = 1; i < times; i++) { // Shakes\r\n\t\t\tel.animate(animation1, speed, o.options.easing).animate(animation2, speed, o.options.easing);\r\n\t\t};\r\n\t\tel.animate(animation1, speed, o.options.easing).\r\n\t\tanimate(animation, speed / 2, o.options.easing, function(){ // Last shake\r\n\t\t\t$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore\r\n\t\t\tif(o.callback) o.callback.apply(this, arguments); // Callback\r\n\t\t});\r\n\t\tel.queue('fx', function() { el.dequeue(); });\r\n\t\tel.dequeue();\r\n\t});\r\n\r\n};\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.effects.slide = function(o) {\r\n\r\n\treturn this.queue(function() {\r\n\r\n\t\t// Create element\r\n\t\tvar el = $(this), props = ['position','top','bottom','left','right'];\r\n\r\n\t\t// Set options\r\n\t\tvar mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode\r\n\t\tvar direction = o.options.direction || 'left'; // Default Direction\r\n\r\n\t\t// Adjust\r\n\t\t$.effects.save(el, props); el.show(); // Save & Show\r\n\t\t$.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper\r\n\t\tvar ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';\r\n\t\tvar motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';\r\n\t\tvar distance = o.options.distance || (ref == 'top' ? el.outerHeight( true ) : el.outerWidth( true ));\r\n\t\tif (mode == 'show') el.css(ref, motion == 'pos' ? (isNaN(distance) ? \"-\" + distance : -distance) : distance); // Shift\r\n\r\n\t\t// Animation\r\n\t\tvar animation = {};\r\n\t\tanimation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance;\r\n\r\n\t\t// Animate\r\n\t\tel.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {\r\n\t\t\tif(mode == 'hide') el.hide(); // Hide\r\n\t\t\t$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore\r\n\t\t\tif(o.callback) o.callback.apply(this, arguments); // Callback\r\n\t\t\tel.dequeue();\r\n\t\t}});\r\n\r\n\t});\r\n\r\n};\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.effects.transfer = function(o) {\r\n\treturn this.queue(function() {\r\n\t\tvar elem = $(this),\r\n\t\t\ttarget = $(o.options.to),\r\n\t\t\tendPosition = target.offset(),\r\n\t\t\tanimation = {\r\n\t\t\t\ttop: endPosition.top,\r\n\t\t\t\tleft: endPosition.left,\r\n\t\t\t\theight: target.innerHeight(),\r\n\t\t\t\twidth: target.innerWidth()\r\n\t\t\t},\r\n\t\t\tstartPosition = elem.offset(),\r\n\t\t\ttransfer = $('
')\r\n\t\t\t\t.appendTo(document.body)\r\n\t\t\t\t.addClass(o.options.className)\r\n\t\t\t\t.css({\r\n\t\t\t\t\ttop: startPosition.top,\r\n\t\t\t\t\tleft: startPosition.left,\r\n\t\t\t\t\theight: elem.innerHeight(),\r\n\t\t\t\t\twidth: elem.innerWidth(),\r\n\t\t\t\t\tposition: 'absolute'\r\n\t\t\t\t})\r\n\t\t\t\t.animate(animation, o.duration, o.options.easing, function() {\r\n\t\t\t\t\ttransfer.remove();\r\n\t\t\t\t\t(o.callback && o.callback.apply(elem[0], arguments));\r\n\t\t\t\t\telem.dequeue();\r\n\t\t\t\t});\r\n\t});\r\n};\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\n$.widget( \"ui.accordion\", {\r\n\toptions: {\r\n\t\tactive: 0,\r\n\t\tanimated: \"slide\",\r\n\t\tautoHeight: true,\r\n\t\tclearStyle: false,\r\n\t\tcollapsible: false,\r\n\t\tevent: \"click\",\r\n\t\tfillSpace: false,\r\n\t\theader: \"> li > :first-child,> :not(li):even\",\r\n\t\ticons: {\r\n\t\t\theader: \"ui-icon-triangle-1-e\",\r\n\t\t\theaderSelected: \"ui-icon-triangle-1-s\"\r\n\t\t},\r\n\t\tnavigation: false,\r\n\t\tnavigationFilter: function() {\r\n\t\t\treturn this.href.toLowerCase() === location.href.toLowerCase();\r\n\t\t}\r\n\t},\r\n\r\n\t_create: function() {\r\n\t\tvar self = this,\r\n\t\t\toptions = self.options;\r\n\r\n\t\tself.running = 0;\r\n\r\n\t\tself.element\r\n\t\t\t.addClass( \"ui-accordion ui-widget ui-helper-reset\" )\r\n\t\t\t// in lack of child-selectors in CSS\r\n\t\t\t// we need to mark top-LIs in a UL-accordion for some IE-fix\r\n\t\t\t.children( \"li\" )\r\n\t\t\t\t.addClass( \"ui-accordion-li-fix\" );\r\n\r\n\t\tself.headers = self.element.find( options.header )\r\n\t\t\t.addClass( \"ui-accordion-header ui-helper-reset ui-state-default ui-corner-all\" )\r\n\t\t\t.bind( \"mouseenter.accordion\", function() {\r\n\t\t\t\tif ( options.disabled ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$( this ).addClass( \"ui-state-hover\" );\r\n\t\t\t})\r\n\t\t\t.bind( \"mouseleave.accordion\", function() {\r\n\t\t\t\tif ( options.disabled ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$( this ).removeClass( \"ui-state-hover\" );\r\n\t\t\t})\r\n\t\t\t.bind( \"focus.accordion\", function() {\r\n\t\t\t\tif ( options.disabled ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$( this ).addClass( \"ui-state-focus\" );\r\n\t\t\t})\r\n\t\t\t.bind( \"blur.accordion\", function() {\r\n\t\t\t\tif ( options.disabled ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$( this ).removeClass( \"ui-state-focus\" );\r\n\t\t\t});\r\n\r\n\t\tself.headers.next()\r\n\t\t\t.addClass( \"ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom\" );\r\n\r\n\t\tif ( options.navigation ) {\r\n\t\t\tvar current = self.element.find( \"a\" ).filter( options.navigationFilter ).eq( 0 );\r\n\t\t\tif ( current.length ) {\r\n\t\t\t\tvar header = current.closest( \".ui-accordion-header\" );\r\n\t\t\t\tif ( header.length ) {\r\n\t\t\t\t\t// anchor within header\r\n\t\t\t\t\tself.active = header;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// anchor within content\r\n\t\t\t\t\tself.active = current.closest( \".ui-accordion-content\" ).prev();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.active = self._findActive( self.active || options.active )\r\n\t\t\t.addClass( \"ui-state-default ui-state-active\" )\r\n\t\t\t.toggleClass( \"ui-corner-all\" )\r\n\t\t\t.toggleClass( \"ui-corner-top\" );\r\n\t\tself.active.next().addClass( \"ui-accordion-content-active\" );\r\n\r\n\t\tself._createIcons();\r\n\t\tself.resize();\r\n\t\t\r\n\t\t// ARIA\r\n\t\tself.element.attr( \"role\", \"tablist\" );\r\n\r\n\t\tself.headers\r\n\t\t\t.attr( \"role\", \"tab\" )\r\n\t\t\t.bind( \"keydown.accordion\", function( event ) {\r\n\t\t\t\treturn self._keydown( event );\r\n\t\t\t})\r\n\t\t\t.next()\r\n\t\t\t\t.attr( \"role\", \"tabpanel\" );\r\n\r\n\t\tself.headers\r\n\t\t\t.not( self.active || \"\" )\r\n\t\t\t.attr({\r\n\t\t\t\t\"aria-expanded\": \"false\",\r\n\t\t\t\t\"aria-selected\": \"false\",\r\n\t\t\t\ttabIndex: -1\r\n\t\t\t})\r\n\t\t\t.next()\r\n\t\t\t\t.hide();\r\n\r\n\t\t// make sure at least one header is in the tab order\r\n\t\tif ( !self.active.length ) {\r\n\t\t\tself.headers.eq( 0 ).attr( \"tabIndex\", 0 );\r\n\t\t} else {\r\n\t\t\tself.active\r\n\t\t\t\t.attr({\r\n\t\t\t\t\t\"aria-expanded\": \"true\",\r\n\t\t\t\t\t\"aria-selected\": \"true\",\r\n\t\t\t\t\ttabIndex: 0\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\t// only need links in tab order for Safari\r\n\t\tif ( !$.browser.safari ) {\r\n\t\t\tself.headers.find( \"a\" ).attr( \"tabIndex\", -1 );\r\n\t\t}\r\n\r\n\t\tif ( options.event ) {\r\n\t\t\tself.headers.bind( options.event.split(\" \").join(\".accordion \") + \".accordion\", function(event) {\r\n\t\t\t\tself._clickHandler.call( self, event, this );\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t_createIcons: function() {\r\n\t\tvar options = this.options;\r\n\t\tif ( options.icons ) {\r\n\t\t\t$( \"\" )\r\n\t\t\t\t.addClass( \"ui-icon \" + options.icons.header )\r\n\t\t\t\t.prependTo( this.headers );\r\n\t\t\tthis.active.children( \".ui-icon\" )\r\n\t\t\t\t.toggleClass(options.icons.header)\r\n\t\t\t\t.toggleClass(options.icons.headerSelected);\r\n\t\t\tthis.element.addClass( \"ui-accordion-icons\" );\r\n\t\t}\r\n\t},\r\n\r\n\t_destroyIcons: function() {\r\n\t\tthis.headers.children( \".ui-icon\" ).remove();\r\n\t\tthis.element.removeClass( \"ui-accordion-icons\" );\r\n\t},\r\n\r\n\tdestroy: function() {\r\n\t\tvar options = this.options;\r\n\r\n\t\tthis.element\r\n\t\t\t.removeClass( \"ui-accordion ui-widget ui-helper-reset\" )\r\n\t\t\t.removeAttr( \"role\" );\r\n\r\n\t\tthis.headers\r\n\t\t\t.unbind( \".accordion\" )\r\n\t\t\t.removeClass( \"ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top\" )\r\n\t\t\t.removeAttr( \"role\" )\r\n\t\t\t.removeAttr( \"aria-expanded\" )\r\n\t\t\t.removeAttr( \"aria-selected\" )\r\n\t\t\t.removeAttr( \"tabIndex\" );\r\n\r\n\t\tthis.headers.find( \"a\" ).removeAttr( \"tabIndex\" );\r\n\t\tthis._destroyIcons();\r\n\t\tvar contents = this.headers.next()\r\n\t\t\t.css( \"display\", \"\" )\r\n\t\t\t.removeAttr( \"role\" )\r\n\t\t\t.removeClass( \"ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled\" );\r\n\t\tif ( options.autoHeight || options.fillHeight ) {\r\n\t\t\tcontents.css( \"height\", \"\" );\r\n\t\t}\r\n\r\n\t\treturn $.Widget.prototype.destroy.call( this );\r\n\t},\r\n\r\n\t_setOption: function( key, value ) {\r\n\t\t$.Widget.prototype._setOption.apply( this, arguments );\r\n\t\t\t\r\n\t\tif ( key == \"active\" ) {\r\n\t\t\tthis.activate( value );\r\n\t\t}\r\n\t\tif ( key == \"icons\" ) {\r\n\t\t\tthis._destroyIcons();\r\n\t\t\tif ( value ) {\r\n\t\t\t\tthis._createIcons();\r\n\t\t\t}\r\n\t\t}\r\n\t\t// #5332 - opacity doesn't cascade to positioned elements in IE\r\n\t\t// so we need to add the disabled class to the headers and panels\r\n\t\tif ( key == \"disabled\" ) {\r\n\t\t\tthis.headers.add(this.headers.next())\r\n\t\t\t\t[ value ? \"addClass\" : \"removeClass\" ](\r\n\t\t\t\t\t\"ui-accordion-disabled ui-state-disabled\" );\r\n\t\t}\r\n\t},\r\n\r\n\t_keydown: function( event ) {\r\n\t\tif ( this.options.disabled || event.altKey || event.ctrlKey ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar keyCode = $.ui.keyCode,\r\n\t\t\tlength = this.headers.length,\r\n\t\t\tcurrentIndex = this.headers.index( event.target ),\r\n\t\t\ttoFocus = false;\r\n\r\n\t\tswitch ( event.keyCode ) {\r\n\t\t\tcase keyCode.RIGHT:\r\n\t\t\tcase keyCode.DOWN:\r\n\t\t\t\ttoFocus = this.headers[ ( currentIndex + 1 ) % length ];\r\n\t\t\t\tbreak;\r\n\t\t\tcase keyCode.LEFT:\r\n\t\t\tcase keyCode.UP:\r\n\t\t\t\ttoFocus = this.headers[ ( currentIndex - 1 + length ) % length ];\r\n\t\t\t\tbreak;\r\n\t\t\tcase keyCode.SPACE:\r\n\t\t\tcase keyCode.ENTER:\r\n\t\t\t\tthis._clickHandler( { target: event.target }, event.target );\r\n\t\t\t\tevent.preventDefault();\r\n\t\t}\r\n\r\n\t\tif ( toFocus ) {\r\n\t\t\t$( event.target ).attr( \"tabIndex\", -1 );\r\n\t\t\t$( toFocus ).attr( \"tabIndex\", 0 );\r\n\t\t\ttoFocus.focus();\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\tresize: function() {\r\n\t\tvar options = this.options,\r\n\t\t\tmaxHeight;\r\n\r\n\t\tif ( options.fillSpace ) {\r\n\t\t\tif ( $.browser.msie ) {\r\n\t\t\t\tvar defOverflow = this.element.parent().css( \"overflow\" );\r\n\t\t\t\tthis.element.parent().css( \"overflow\", \"hidden\");\r\n\t\t\t}\r\n\t\t\tmaxHeight = this.element.parent().height();\r\n\t\t\tif ($.browser.msie) {\r\n\t\t\t\tthis.element.parent().css( \"overflow\", defOverflow );\r\n\t\t\t}\r\n\r\n\t\t\tthis.headers.each(function() {\r\n\t\t\t\tmaxHeight -= $( this ).outerHeight( true );\r\n\t\t\t});\r\n\r\n\t\t\tthis.headers.next()\r\n\t\t\t\t.each(function() {\r\n\t\t\t\t\t$( this ).height( Math.max( 0, maxHeight -\r\n\t\t\t\t\t\t$( this ).innerHeight() + $( this ).height() ) );\r\n\t\t\t\t})\r\n\t\t\t\t.css( \"overflow\", \"auto\" );\r\n\t\t} else if ( options.autoHeight ) {\r\n\t\t\tmaxHeight = 0;\r\n\t\t\tthis.headers.next()\r\n\t\t\t\t.each(function() {\r\n\t\t\t\t\tmaxHeight = Math.max( maxHeight, $( this ).height( \"\" ).height() );\r\n\t\t\t\t})\r\n\t\t\t\t.height( maxHeight );\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tactivate: function( index ) {\r\n\t\t// TODO this gets called on init, changing the option without an explicit call for that\r\n\t\tthis.options.active = index;\r\n\t\t// call clickHandler with custom event\r\n\t\tvar active = this._findActive( index )[ 0 ];\r\n\t\tthis._clickHandler( { target: active }, active );\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_findActive: function( selector ) {\r\n\t\treturn selector\r\n\t\t\t? typeof selector === \"number\"\r\n\t\t\t\t? this.headers.filter( \":eq(\" + selector + \")\" )\r\n\t\t\t\t: this.headers.not( this.headers.not( selector ) )\r\n\t\t\t: selector === false\r\n\t\t\t\t? $( [] )\r\n\t\t\t\t: this.headers.filter( \":eq(0)\" );\r\n\t},\r\n\r\n\t// TODO isn't event.target enough? why the separate target argument?\r\n\t_clickHandler: function( event, target ) {\r\n\t\tvar options = this.options;\r\n\t\tif ( options.disabled ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// called only when using activate(false) to close all parts programmatically\r\n\t\tif ( !event.target ) {\r\n\t\t\tif ( !options.collapsible ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.active\r\n\t\t\t\t.removeClass( \"ui-state-active ui-corner-top\" )\r\n\t\t\t\t.addClass( \"ui-state-default ui-corner-all\" )\r\n\t\t\t\t.children( \".ui-icon\" )\r\n\t\t\t\t\t.removeClass( options.icons.headerSelected )\r\n\t\t\t\t\t.addClass( options.icons.header );\r\n\t\t\tthis.active.next().addClass( \"ui-accordion-content-active\" );\r\n\t\t\tvar toHide = this.active.next(),\r\n\t\t\t\tdata = {\r\n\t\t\t\t\toptions: options,\r\n\t\t\t\t\tnewHeader: $( [] ),\r\n\t\t\t\t\toldHeader: options.active,\r\n\t\t\t\t\tnewContent: $( [] ),\r\n\t\t\t\t\toldContent: toHide\r\n\t\t\t\t},\r\n\t\t\t\ttoShow = ( this.active = $( [] ) );\r\n\t\t\tthis._toggle( toShow, toHide, data );\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// get the click target\r\n\t\tvar clicked = $( event.currentTarget || target ),\r\n\t\t\tclickedIsActive = clicked[0] === this.active[0];\r\n\r\n\t\t// TODO the option is changed, is that correct?\r\n\t\t// TODO if it is correct, shouldn't that happen after determining that the click is valid?\r\n\t\toptions.active = options.collapsible && clickedIsActive ?\r\n\t\t\tfalse :\r\n\t\t\tthis.headers.index( clicked );\r\n\r\n\t\t// if animations are still active, or the active header is the target, ignore click\r\n\t\tif ( this.running || ( !options.collapsible && clickedIsActive ) ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// find elements to show and hide\r\n\t\tvar active = this.active,\r\n\t\t\ttoShow = clicked.next(),\r\n\t\t\ttoHide = this.active.next(),\r\n\t\t\tdata = {\r\n\t\t\t\toptions: options,\r\n\t\t\t\tnewHeader: clickedIsActive && options.collapsible ? $([]) : clicked,\r\n\t\t\t\toldHeader: this.active,\r\n\t\t\t\tnewContent: clickedIsActive && options.collapsible ? $([]) : toShow,\r\n\t\t\t\toldContent: toHide\r\n\t\t\t},\r\n\t\t\tdown = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] );\r\n\r\n\t\t// when the call to ._toggle() comes after the class changes\r\n\t\t// it causes a very odd bug in IE 8 (see #6720)\r\n\t\tthis.active = clickedIsActive ? $([]) : clicked;\r\n\t\tthis._toggle( toShow, toHide, data, clickedIsActive, down );\r\n\r\n\t\t// switch classes\r\n\t\tactive\r\n\t\t\t.removeClass( \"ui-state-active ui-corner-top\" )\r\n\t\t\t.addClass( \"ui-state-default ui-corner-all\" )\r\n\t\t\t.children( \".ui-icon\" )\r\n\t\t\t\t.removeClass( options.icons.headerSelected )\r\n\t\t\t\t.addClass( options.icons.header );\r\n\t\tif ( !clickedIsActive ) {\r\n\t\t\tclicked\r\n\t\t\t\t.removeClass( \"ui-state-default ui-corner-all\" )\r\n\t\t\t\t.addClass( \"ui-state-active ui-corner-top\" )\r\n\t\t\t\t.children( \".ui-icon\" )\r\n\t\t\t\t\t.removeClass( options.icons.header )\r\n\t\t\t\t\t.addClass( options.icons.headerSelected );\r\n\t\t\tclicked\r\n\t\t\t\t.next()\r\n\t\t\t\t.addClass( \"ui-accordion-content-active\" );\r\n\t\t}\r\n\r\n\t\treturn;\r\n\t},\r\n\r\n\t_toggle: function( toShow, toHide, data, clickedIsActive, down ) {\r\n\t\tvar self = this,\r\n\t\t\toptions = self.options;\r\n\r\n\t\tself.toShow = toShow;\r\n\t\tself.toHide = toHide;\r\n\t\tself.data = data;\r\n\r\n\t\tvar complete = function() {\r\n\t\t\tif ( !self ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\treturn self._completed.apply( self, arguments );\r\n\t\t};\r\n\r\n\t\t// trigger changestart event\r\n\t\tself._trigger( \"changestart\", null, self.data );\r\n\r\n\t\t// count elements to animate\r\n\t\tself.running = toHide.size() === 0 ? toShow.size() : toHide.size();\r\n\r\n\t\tif ( options.animated ) {\r\n\t\t\tvar animOptions = {};\r\n\r\n\t\t\tif ( options.collapsible && clickedIsActive ) {\r\n\t\t\t\tanimOptions = {\r\n\t\t\t\t\ttoShow: $( [] ),\r\n\t\t\t\t\ttoHide: toHide,\r\n\t\t\t\t\tcomplete: complete,\r\n\t\t\t\t\tdown: down,\r\n\t\t\t\t\tautoHeight: options.autoHeight || options.fillSpace\r\n\t\t\t\t};\r\n\t\t\t} else {\r\n\t\t\t\tanimOptions = {\r\n\t\t\t\t\ttoShow: toShow,\r\n\t\t\t\t\ttoHide: toHide,\r\n\t\t\t\t\tcomplete: complete,\r\n\t\t\t\t\tdown: down,\r\n\t\t\t\t\tautoHeight: options.autoHeight || options.fillSpace\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif ( !options.proxied ) {\r\n\t\t\t\toptions.proxied = options.animated;\r\n\t\t\t}\r\n\r\n\t\t\tif ( !options.proxiedDuration ) {\r\n\t\t\t\toptions.proxiedDuration = options.duration;\r\n\t\t\t}\r\n\r\n\t\t\toptions.animated = $.isFunction( options.proxied ) ?\r\n\t\t\t\toptions.proxied( animOptions ) :\r\n\t\t\t\toptions.proxied;\r\n\r\n\t\t\toptions.duration = $.isFunction( options.proxiedDuration ) ?\r\n\t\t\t\toptions.proxiedDuration( animOptions ) :\r\n\t\t\t\toptions.proxiedDuration;\r\n\r\n\t\t\tvar animations = $.ui.accordion.animations,\r\n\t\t\t\tduration = options.duration,\r\n\t\t\t\teasing = options.animated;\r\n\r\n\t\t\tif ( easing && !animations[ easing ] && !$.easing[ easing ] ) {\r\n\t\t\t\teasing = \"slide\";\r\n\t\t\t}\r\n\t\t\tif ( !animations[ easing ] ) {\r\n\t\t\t\tanimations[ easing ] = function( options ) {\r\n\t\t\t\t\tthis.slide( options, {\r\n\t\t\t\t\t\teasing: easing,\r\n\t\t\t\t\t\tduration: duration || 700\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tanimations[ easing ]( animOptions );\r\n\t\t} else {\r\n\t\t\tif ( options.collapsible && clickedIsActive ) {\r\n\t\t\t\ttoShow.toggle();\r\n\t\t\t} else {\r\n\t\t\t\ttoHide.hide();\r\n\t\t\t\ttoShow.show();\r\n\t\t\t}\r\n\r\n\t\t\tcomplete( true );\r\n\t\t}\r\n\r\n\t\t// TODO assert that the blur and focus triggers are really necessary, remove otherwise\r\n\t\ttoHide.prev()\r\n\t\t\t.attr({\r\n\t\t\t\t\"aria-expanded\": \"false\",\r\n\t\t\t\t\"aria-selected\": \"false\",\r\n\t\t\t\ttabIndex: -1\r\n\t\t\t})\r\n\t\t\t.blur();\r\n\t\ttoShow.prev()\r\n\t\t\t.attr({\r\n\t\t\t\t\"aria-expanded\": \"true\",\r\n\t\t\t\t\"aria-selected\": \"true\",\r\n\t\t\t\ttabIndex: 0\r\n\t\t\t})\r\n\t\t\t.focus();\r\n\t},\r\n\r\n\t_completed: function( cancel ) {\r\n\t\tthis.running = cancel ? 0 : --this.running;\r\n\t\tif ( this.running ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( this.options.clearStyle ) {\r\n\t\t\tthis.toShow.add( this.toHide ).css({\r\n\t\t\t\theight: \"\",\r\n\t\t\t\toverflow: \"\"\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// other classes are removed before the animation; this one needs to stay until completed\r\n\t\tthis.toHide.removeClass( \"ui-accordion-content-active\" );\r\n\t\t// Work around for rendering bug in IE (#5421)\r\n\t\tif ( this.toHide.length ) {\r\n\t\t\tthis.toHide.parent()[0].className = this.toHide.parent()[0].className;\r\n\t\t}\r\n\r\n\t\tthis._trigger( \"change\", null, this.data );\r\n\t}\r\n});\r\n\r\n$.extend( $.ui.accordion, {\r\n\tversion: \"1.8.22\",\r\n\tanimations: {\r\n\t\tslide: function( options, additions ) {\r\n\t\t\toptions = $.extend({\r\n\t\t\t\teasing: \"swing\",\r\n\t\t\t\tduration: 300\r\n\t\t\t}, options, additions );\r\n\t\t\tif ( !options.toHide.size() ) {\r\n\t\t\t\toptions.toShow.animate({\r\n\t\t\t\t\theight: \"show\",\r\n\t\t\t\t\tpaddingTop: \"show\",\r\n\t\t\t\t\tpaddingBottom: \"show\"\r\n\t\t\t\t}, options );\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif ( !options.toShow.size() ) {\r\n\t\t\t\toptions.toHide.animate({\r\n\t\t\t\t\theight: \"hide\",\r\n\t\t\t\t\tpaddingTop: \"hide\",\r\n\t\t\t\t\tpaddingBottom: \"hide\"\r\n\t\t\t\t}, options );\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar overflow = options.toShow.css( \"overflow\" ),\r\n\t\t\t\tpercentDone = 0,\r\n\t\t\t\tshowProps = {},\r\n\t\t\t\thideProps = {},\r\n\t\t\t\tfxAttrs = [ \"height\", \"paddingTop\", \"paddingBottom\" ],\r\n\t\t\t\toriginalWidth;\r\n\t\t\t// fix width before calculating height of hidden element\r\n\t\t\tvar s = options.toShow;\r\n\t\t\toriginalWidth = s[0].style.width;\r\n\t\t\ts.width( s.parent().width()\r\n\t\t\t\t- parseFloat( s.css( \"paddingLeft\" ) )\r\n\t\t\t\t- parseFloat( s.css( \"paddingRight\" ) )\r\n\t\t\t\t- ( parseFloat( s.css( \"borderLeftWidth\" ) ) || 0 )\r\n\t\t\t\t- ( parseFloat( s.css( \"borderRightWidth\" ) ) || 0 ) );\r\n\r\n\t\t\t$.each( fxAttrs, function( i, prop ) {\r\n\t\t\t\thideProps[ prop ] = \"hide\";\r\n\r\n\t\t\t\tvar parts = ( \"\" + $.css( options.toShow[0], prop ) ).match( /^([\\d+-.]+)(.*)$/ );\r\n\t\t\t\tshowProps[ prop ] = {\r\n\t\t\t\t\tvalue: parts[ 1 ],\r\n\t\t\t\t\tunit: parts[ 2 ] || \"px\"\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t\toptions.toShow.css({ height: 0, overflow: \"hidden\" }).show();\r\n\t\t\toptions.toHide\r\n\t\t\t\t.filter( \":hidden\" )\r\n\t\t\t\t\t.each( options.complete )\r\n\t\t\t\t.end()\r\n\t\t\t\t.filter( \":visible\" )\r\n\t\t\t\t.animate( hideProps, {\r\n\t\t\t\tstep: function( now, settings ) {\r\n\t\t\t\t\t// only calculate the percent when animating height\r\n\t\t\t\t\t// IE gets very inconsistent results when animating elements\r\n\t\t\t\t\t// with small values, which is common for padding\r\n\t\t\t\t\tif ( settings.prop == \"height\" ) {\r\n\t\t\t\t\t\tpercentDone = ( settings.end - settings.start === 0 ) ? 0 :\r\n\t\t\t\t\t\t\t( settings.now - settings.start ) / ( settings.end - settings.start );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\toptions.toShow[ 0 ].style[ settings.prop ] =\r\n\t\t\t\t\t\t( percentDone * showProps[ settings.prop ].value )\r\n\t\t\t\t\t\t+ showProps[ settings.prop ].unit;\r\n\t\t\t\t},\r\n\t\t\t\tduration: options.duration,\r\n\t\t\t\teasing: options.easing,\r\n\t\t\t\tcomplete: function() {\r\n\t\t\t\t\tif ( !options.autoHeight ) {\r\n\t\t\t\t\t\toptions.toShow.css( \"height\", \"\" );\r\n\t\t\t\t\t}\r\n\t\t\t\t\toptions.toShow.css({\r\n\t\t\t\t\t\twidth: originalWidth,\r\n\t\t\t\t\t\toverflow: overflow\r\n\t\t\t\t\t});\r\n\t\t\t\t\toptions.complete();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\t\tbounceslide: function( options ) {\r\n\t\t\tthis.slide( options, {\r\n\t\t\t\teasing: options.down ? \"easeOutBounce\" : \"swing\",\r\n\t\t\t\tduration: options.down ? 1000 : 200\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n});\r\n\r\n})( jQuery );\r\n\r\n(function( $, undefined ) {\r\n\r\n// used to prevent race conditions with remote data sources\r\nvar requestIndex = 0;\r\n\r\n$.widget( \"ui.autocomplete\", {\r\n\toptions: {\r\n\t\tappendTo: \"body\",\r\n\t\tautoFocus: false,\r\n\t\tdelay: 300,\r\n\t\tminLength: 1,\r\n\t\tposition: {\r\n\t\t\tmy: \"left top\",\r\n\t\t\tat: \"left bottom\",\r\n\t\t\tcollision: \"none\"\r\n\t\t},\r\n\t\tsource: null\r\n\t},\r\n\r\n\tpending: 0,\r\n\r\n\t_create: function() {\r\n\t\tvar self = this,\r\n\t\t\tdoc = this.element[ 0 ].ownerDocument,\r\n\t\t\tsuppressKeyPress;\r\n\t\tthis.isMultiLine = this.element.is( \"textarea\" );\r\n\r\n\t\tthis.element\r\n\t\t\t.addClass( \"ui-autocomplete-input\" )\r\n\t\t\t.attr( \"autocomplete\", \"off\" )\r\n\t\t\t// TODO verify these actually work as intended\r\n\t\t\t.attr({\r\n\t\t\t\trole: \"textbox\",\r\n\t\t\t\t\"aria-autocomplete\": \"list\",\r\n\t\t\t\t\"aria-haspopup\": \"true\"\r\n\t\t\t})\r\n\t\t\t.bind( \"keydown.autocomplete\", function( event ) {\r\n\t\t\t\tif ( self.options.disabled || self.element.propAttr( \"readOnly\" ) ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tsuppressKeyPress = false;\r\n\t\t\t\tvar keyCode = $.ui.keyCode;\r\n\t\t\t\tswitch( event.keyCode ) {\r\n\t\t\t\tcase keyCode.PAGE_UP:\r\n\t\t\t\t\tself._move( \"previousPage\", event );\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase keyCode.PAGE_DOWN:\r\n\t\t\t\t\tself._move( \"nextPage\", event );\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase keyCode.UP:\r\n\t\t\t\t\tself._keyEvent( \"previous\", event );\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase keyCode.DOWN:\r\n\t\t\t\t\tself._keyEvent( \"next\", event );\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase keyCode.ENTER:\r\n\t\t\t\tcase keyCode.NUMPAD_ENTER:\r\n\t\t\t\t\t// when menu is open and has focus\r\n\t\t\t\t\tif ( self.menu.active ) {\r\n\t\t\t\t\t\t// #6055 - Opera still allows the keypress to occur\r\n\t\t\t\t\t\t// which causes forms to submit\r\n\t\t\t\t\t\tsuppressKeyPress = true;\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//passthrough - ENTER and TAB both select the current element\r\n\t\t\t\tcase keyCode.TAB:\r\n\t\t\t\t\tif ( !self.menu.active ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tself.menu.select( event );\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase keyCode.ESCAPE:\r\n\t\t\t\t\tself.element.val( self.term );\r\n\t\t\t\t\tself.close( event );\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t// keypress is triggered before the input value is changed\r\n\t\t\t\t\tclearTimeout( self.searching );\r\n\t\t\t\t\tself.searching = setTimeout(function() {\r\n\t\t\t\t\t\t// only search if the value has changed\r\n\t\t\t\t\t\tif ( self.term != self.element.val() ) {\r\n\t\t\t\t\t\t\tself.selectedItem = null;\r\n\t\t\t\t\t\t\tself.search( null, event );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, self.options.delay );\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.bind( \"keypress.autocomplete\", function( event ) {\r\n\t\t\t\tif ( suppressKeyPress ) {\r\n\t\t\t\t\tsuppressKeyPress = false;\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.bind( \"focus.autocomplete\", function() {\r\n\t\t\t\tif ( self.options.disabled ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.selectedItem = null;\r\n\t\t\t\tself.previous = self.element.val();\r\n\t\t\t})\r\n\t\t\t.bind( \"blur.autocomplete\", function( event ) {\r\n\t\t\t\tif ( self.options.disabled ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tclearTimeout( self.searching );\r\n\t\t\t\t// clicks on the menu (or a button to trigger a search) will cause a blur event\r\n\t\t\t\tself.closing = setTimeout(function() {\r\n\t\t\t\t\tself.close( event );\r\n\t\t\t\t\tself._change( event );\r\n\t\t\t\t}, 150 );\r\n\t\t\t});\r\n\t\tthis._initSource();\r\n\t\tthis.menu = $( \"
    \" )\r\n\t\t\t.addClass( \"ui-autocomplete\" )\r\n\t\t\t.appendTo( $( this.options.appendTo || \"body\", doc )[0] )\r\n\t\t\t// prevent the close-on-blur in case of a \"slow\" click on the menu (long mousedown)\r\n\t\t\t.mousedown(function( event ) {\r\n\t\t\t\t// clicking on the scrollbar causes focus to shift to the body\r\n\t\t\t\t// but we can't detect a mouseup or a click immediately afterward\r\n\t\t\t\t// so we have to track the next mousedown and close the menu if\r\n\t\t\t\t// the user clicks somewhere outside of the autocomplete\r\n\t\t\t\tvar menuElement = self.menu.element[ 0 ];\r\n\t\t\t\tif ( !$( event.target ).closest( \".ui-menu-item\" ).length ) {\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t$( document ).one( 'mousedown', function( event ) {\r\n\t\t\t\t\t\t\tif ( event.target !== self.element[ 0 ] &&\r\n\t\t\t\t\t\t\t\tevent.target !== menuElement &&\r\n\t\t\t\t\t\t\t\t!$.ui.contains( menuElement, event.target ) ) {\r\n\t\t\t\t\t\t\t\tself.close();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}, 1 );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// use another timeout to make sure the blur-event-handler on the input was already triggered\r\n\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\tclearTimeout( self.closing );\r\n\t\t\t\t}, 13);\r\n\t\t\t})\r\n\t\t\t.menu({\r\n\t\t\t\tfocus: function( event, ui ) {\r\n\t\t\t\t\tvar item = ui.item.data( \"item.autocomplete\" );\r\n\t\t\t\t\tif ( false !== self._trigger( \"focus\", event, { item: item } ) ) {\r\n\t\t\t\t\t\t// use value to match what will end up in the input, if it was a key event\r\n\t\t\t\t\t\tif ( /^key/.test(event.originalEvent.type) ) {\r\n\t\t\t\t\t\t\tself.element.val( item.value );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tselected: function( event, ui ) {\r\n\t\t\t\t\tvar item = ui.item.data( \"item.autocomplete\" ),\r\n\t\t\t\t\t\tprevious = self.previous;\r\n\r\n\t\t\t\t\t// only trigger when focus was lost (click on menu)\r\n\t\t\t\t\tif ( self.element[0] !== doc.activeElement ) {\r\n\t\t\t\t\t\tself.element.focus();\r\n\t\t\t\t\t\tself.previous = previous;\r\n\t\t\t\t\t\t// #6109 - IE triggers two focus events and the second\r\n\t\t\t\t\t\t// is asynchronous, so we need to reset the previous\r\n\t\t\t\t\t\t// term synchronously and asynchronously :-(\r\n\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\tself.previous = previous;\r\n\t\t\t\t\t\t\tself.selectedItem = item;\r\n\t\t\t\t\t\t}, 1);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ( false !== self._trigger( \"select\", event, { item: item } ) ) {\r\n\t\t\t\t\t\tself.element.val( item.value );\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// reset the term after the select event\r\n\t\t\t\t\t// this allows custom select handling to work properly\r\n\t\t\t\t\tself.term = self.element.val();\r\n\r\n\t\t\t\t\tself.close( event );\r\n\t\t\t\t\tself.selectedItem = item;\r\n\t\t\t\t},\r\n\t\t\t\tblur: function( event, ui ) {\r\n\t\t\t\t\t// don't set the value of the text field if it's already correct\r\n\t\t\t\t\t// this prevents moving the cursor unnecessarily\r\n\t\t\t\t\tif ( self.menu.element.is(\":visible\") &&\r\n\t\t\t\t\t\t( self.element.val() !== self.term ) ) {\r\n\t\t\t\t\t\tself.element.val( self.term );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.zIndex( this.element.zIndex() + 1 )\r\n\t\t\t// workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781\r\n\t\t\t.css({ top: 0, left: 0 })\r\n\t\t\t.hide()\r\n\t\t\t.data( \"menu\" );\r\n\t\tif ( $.fn.bgiframe ) {\r\n\t\t\t this.menu.element.bgiframe();\r\n\t\t}\r\n\t\t// turning off autocomplete prevents the browser from remembering the\r\n\t\t// value when navigating through history, so we re-enable autocomplete\r\n\t\t// if the page is unloaded before the widget is destroyed. #7790\r\n\t\tself.beforeunloadHandler = function() {\r\n\t\t\tself.element.removeAttr( \"autocomplete\" );\r\n\t\t};\r\n\t\t$( window ).bind( \"beforeunload\", self.beforeunloadHandler );\r\n\t},\r\n\r\n\tdestroy: function() {\r\n\t\tthis.element\r\n\t\t\t.removeClass( \"ui-autocomplete-input\" )\r\n\t\t\t.removeAttr( \"autocomplete\" )\r\n\t\t\t.removeAttr( \"role\" )\r\n\t\t\t.removeAttr( \"aria-autocomplete\" )\r\n\t\t\t.removeAttr( \"aria-haspopup\" );\r\n\t\tthis.menu.element.remove();\r\n\t\t$( window ).unbind( \"beforeunload\", this.beforeunloadHandler );\r\n\t\t$.Widget.prototype.destroy.call( this );\r\n\t},\r\n\r\n\t_setOption: function( key, value ) {\r\n\t\t$.Widget.prototype._setOption.apply( this, arguments );\r\n\t\tif ( key === \"source\" ) {\r\n\t\t\tthis._initSource();\r\n\t\t}\r\n\t\tif ( key === \"appendTo\" ) {\r\n\t\t\tthis.menu.element.appendTo( $( value || \"body\", this.element[0].ownerDocument )[0] )\r\n\t\t}\r\n\t\tif ( key === \"disabled\" && value && this.xhr ) {\r\n\t\t\tthis.xhr.abort();\r\n\t\t}\r\n\t},\r\n\r\n\t_initSource: function() {\r\n\t\tvar self = this,\r\n\t\t\tarray,\r\n\t\t\turl;\r\n\t\tif ( $.isArray(this.options.source) ) {\r\n\t\t\tarray = this.options.source;\r\n\t\t\tthis.source = function( request, response ) {\r\n\t\t\t\tresponse( $.ui.autocomplete.filter(array, request.term) );\r\n\t\t\t};\r\n\t\t} else if ( typeof this.options.source === \"string\" ) {\r\n\t\t\turl = this.options.source;\r\n\t\t\tthis.source = function( request, response ) {\r\n\t\t\t\tif ( self.xhr ) {\r\n\t\t\t\t\tself.xhr.abort();\r\n\t\t\t\t}\r\n\t\t\t\tself.xhr = $.ajax({\r\n\t\t\t\t\turl: url,\r\n\t\t\t\t\tdata: request,\r\n\t\t\t\t\tdataType: \"json\",\r\n\t\t\t\t\tsuccess: function( data, status ) {\r\n\t\t\t\t\t\tresponse( data );\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror: function() {\r\n\t\t\t\t\t\tresponse( [] );\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tthis.source = this.options.source;\r\n\t\t}\r\n\t},\r\n\r\n\tsearch: function( value, event ) {\r\n\t\tvalue = value != null ? value : this.element.val();\r\n\r\n\t\t// always save the actual value, not the one passed as an argument\r\n\t\tthis.term = this.element.val();\r\n\r\n\t\tif ( value.length < this.options.minLength ) {\r\n\t\t\treturn this.close( event );\r\n\t\t}\r\n\r\n\t\tclearTimeout( this.closing );\r\n\t\tif ( this._trigger( \"search\", event ) === false ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\treturn this._search( value );\r\n\t},\r\n\r\n\t_search: function( value ) {\r\n\t\tthis.pending++;\r\n\t\tthis.element.addClass( \"ui-autocomplete-loading\" );\r\n\r\n\t\tthis.source( { term: value }, this._response() );\r\n\t},\r\n\r\n\t_response: function() {\r\n\t\tvar that = this,\r\n\t\t\tindex = ++requestIndex;\r\n\r\n\t\treturn function( content ) {\r\n\t\t\tif ( index === requestIndex ) {\r\n\t\t\t\tthat.__response( content );\r\n\t\t\t}\r\n\r\n\t\t\tthat.pending--;\r\n\t\t\tif ( !that.pending ) {\r\n\t\t\t\tthat.element.removeClass( \"ui-autocomplete-loading\" );\r\n\t\t\t}\r\n\t\t};\r\n\t},\r\n\r\n\t__response: function( content ) {\r\n\t\tif ( !this.options.disabled && content && content.length ) {\r\n\t\t\tcontent = this._normalize( content );\r\n\t\t\tthis._suggest( content );\r\n\t\t\tthis._trigger( \"open\" );\r\n\t\t} else {\r\n\t\t\tthis.close();\r\n\t\t}\r\n\t},\r\n\r\n\tclose: function( event ) {\r\n\t\tclearTimeout( this.closing );\r\n\t\tif ( this.menu.element.is(\":visible\") ) {\r\n\t\t\tthis.menu.element.hide();\r\n\t\t\tthis.menu.deactivate();\r\n\t\t\tthis._trigger( \"close\", event );\r\n\t\t}\r\n\t},\r\n\t\r\n\t_change: function( event ) {\r\n\t\tif ( this.previous !== this.element.val() ) {\r\n\t\t\tthis._trigger( \"change\", event, { item: this.selectedItem } );\r\n\t\t}\r\n\t},\r\n\r\n\t_normalize: function( items ) {\r\n\t\t// assume all items have the right format when the first item is complete\r\n\t\tif ( items.length && items[0].label && items[0].value ) {\r\n\t\t\treturn items;\r\n\t\t}\r\n\t\treturn $.map( items, function(item) {\r\n\t\t\tif ( typeof item === \"string\" ) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tlabel: item,\r\n\t\t\t\t\tvalue: item\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\treturn $.extend({\r\n\t\t\t\tlabel: item.label || item.value,\r\n\t\t\t\tvalue: item.value || item.label\r\n\t\t\t}, item );\r\n\t\t});\r\n\t},\r\n\r\n\t_suggest: function( items ) {\r\n\t\tvar ul = this.menu.element\r\n\t\t\t.empty()\r\n\t\t\t.zIndex( this.element.zIndex() + 1 );\r\n\t\tthis._renderMenu( ul, items );\r\n\t\t// TODO refresh should check if the active item is still in the dom, removing the need for a manual deactivate\r\n\t\tthis.menu.deactivate();\r\n\t\tthis.menu.refresh();\r\n\r\n\t\t// size and position menu\r\n\t\tul.show();\r\n\t\tthis._resizeMenu();\r\n\t\tul.position( $.extend({\r\n\t\t\tof: this.element\r\n\t\t}, this.options.position ));\r\n\r\n\t\tif ( this.options.autoFocus ) {\r\n\t\t\tthis.menu.next( new $.Event(\"mouseover\") );\r\n\t\t}\r\n\t},\r\n\r\n\t_resizeMenu: function() {\r\n\t\tvar ul = this.menu.element;\r\n\t\tul.outerWidth( Math.max(\r\n\t\t\t// Firefox wraps long text (possibly a rounding bug)\r\n\t\t\t// so we add 1px to avoid the wrapping (#7513)\r\n\t\t\tul.width( \"\" ).outerWidth() + 1,\r\n\t\t\tthis.element.outerWidth()\r\n\t\t) );\r\n\t},\r\n\r\n\t_renderMenu: function( ul, items ) {\r\n\t\tvar self = this;\r\n\t\t$.each( items, function( index, item ) {\r\n\t\t\tself._renderItem( ul, item );\r\n\t\t});\r\n\t},\r\n\r\n\t_renderItem: function( ul, item) {\r\n\t\treturn $( \"
  • \" )\r\n\t\t\t.data( \"item.autocomplete\", item )\r\n\t\t\t.append( $( \"
    \" ).text( item.label ) )\r\n\t\t\t.appendTo( ul );\r\n\t},\r\n\r\n\t_move: function( direction, event ) {\r\n\t\tif ( !this.menu.element.is(\":visible\") ) {\r\n\t\t\tthis.search( null, event );\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif ( this.menu.first() && /^previous/.test(direction) ||\r\n\t\t\t\tthis.menu.last() && /^next/.test(direction) ) {\r\n\t\t\tthis.element.val( this.term );\r\n\t\t\tthis.menu.deactivate();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.menu[ direction ]( event );\r\n\t},\r\n\r\n\twidget: function() {\r\n\t\treturn this.menu.element;\r\n\t},\r\n\t_keyEvent: function( keyEvent, event ) {\r\n\t\tif ( !this.isMultiLine || this.menu.element.is( \":visible\" ) ) {\r\n\t\t\tthis._move( keyEvent, event );\r\n\r\n\t\t\t// prevents moving cursor to beginning/end of the text field in some browsers\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\t}\r\n});\r\n\r\n$.extend( $.ui.autocomplete, {\r\n\tescapeRegex: function( value ) {\r\n\t\treturn value.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\r\n\t},\r\n\tfilter: function(array, term) {\r\n\t\tvar matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), \"i\" );\r\n\t\treturn $.grep( array, function(value) {\r\n\t\t\treturn matcher.test( value.label || value.value || value );\r\n\t\t});\r\n\t}\r\n});\r\n\r\n}( jQuery ));\r\n\r\n/*\r\n * jQuery UI Menu (not officially released)\r\n * \r\n * This widget isn't yet finished and the API is subject to change. We plan to finish\r\n * it for the next release. You're welcome to give it a try anyway and give us feedback,\r\n * as long as you're okay with migrating your code later on. We can help with that, too.\r\n *\r\n * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)\r\n * Dual licensed under the MIT or GPL Version 2 licenses.\r\n * http://jquery.org/license\r\n *\r\n * http://docs.jquery.com/UI/Menu\r\n *\r\n * Depends:\r\n *\tjquery.ui.core.js\r\n * jquery.ui.widget.js\r\n */\r\n(function($) {\r\n\r\n$.widget(\"ui.menu\", {\r\n\t_create: function() {\r\n\t\tvar self = this;\r\n\t\tthis.element\r\n\t\t\t.addClass(\"ui-menu ui-widget ui-widget-content ui-corner-all\")\r\n\t\t\t.attr({\r\n\t\t\t\trole: \"listbox\",\r\n\t\t\t\t\"aria-activedescendant\": \"ui-active-menuitem\"\r\n\t\t\t})\r\n\t\t\t.click(function( event ) {\r\n\t\t\t\tif ( !$( event.target ).closest( \".ui-menu-item a\" ).length ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t// temporary\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tself.select( event );\r\n\t\t\t});\r\n\t\tthis.refresh();\r\n\t},\r\n\t\r\n\trefresh: function() {\r\n\t\tvar self = this;\r\n\r\n\t\t// don't refresh list items that are already adapted\r\n\t\tvar items = this.element.children(\"li:not(.ui-menu-item):has(a)\")\r\n\t\t\t.addClass(\"ui-menu-item\")\r\n\t\t\t.attr(\"role\", \"menuitem\");\r\n\t\t\r\n\t\titems.children(\"a\")\r\n\t\t\t.addClass(\"ui-corner-all\")\r\n\t\t\t.attr(\"tabindex\", -1)\r\n\t\t\t// mouseenter doesn't work with event delegation\r\n\t\t\t.mouseenter(function( event ) {\r\n\t\t\t\tself.activate( event, $(this).parent() );\r\n\t\t\t})\r\n\t\t\t.mouseleave(function() {\r\n\t\t\t\tself.deactivate();\r\n\t\t\t});\r\n\t},\r\n\r\n\tactivate: function( event, item ) {\r\n\t\tthis.deactivate();\r\n\t\tif (this.hasScroll()) {\r\n\t\t\tvar offset = item.offset().top - this.element.offset().top,\r\n\t\t\t\tscroll = this.element.scrollTop(),\r\n\t\t\t\telementHeight = this.element.height();\r\n\t\t\tif (offset < 0) {\r\n\t\t\t\tthis.element.scrollTop( scroll + offset);\r\n\t\t\t} else if (offset >= elementHeight) {\r\n\t\t\t\tthis.element.scrollTop( scroll + offset - elementHeight + item.height());\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.active = item.eq(0)\r\n\t\t\t.children(\"a\")\r\n\t\t\t\t.addClass(\"ui-state-hover\")\r\n\t\t\t\t.attr(\"id\", \"ui-active-menuitem\")\r\n\t\t\t.end();\r\n\t\tthis._trigger(\"focus\", event, { item: item });\r\n\t},\r\n\r\n\tdeactivate: function() {\r\n\t\tif (!this.active) { return; }\r\n\r\n\t\tthis.active.children(\"a\")\r\n\t\t\t.removeClass(\"ui-state-hover\")\r\n\t\t\t.removeAttr(\"id\");\r\n\t\tthis._trigger(\"blur\");\r\n\t\tthis.active = null;\r\n\t},\r\n\r\n\tnext: function(event) {\r\n\t\tthis.move(\"next\", \".ui-menu-item:first\", event);\r\n\t},\r\n\r\n\tprevious: function(event) {\r\n\t\tthis.move(\"prev\", \".ui-menu-item:last\", event);\r\n\t},\r\n\r\n\tfirst: function() {\r\n\t\treturn this.active && !this.active.prevAll(\".ui-menu-item\").length;\r\n\t},\r\n\r\n\tlast: function() {\r\n\t\treturn this.active && !this.active.nextAll(\".ui-menu-item\").length;\r\n\t},\r\n\r\n\tmove: function(direction, edge, event) {\r\n\t\tif (!this.active) {\r\n\t\t\tthis.activate(event, this.element.children(edge));\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar next = this.active[direction + \"All\"](\".ui-menu-item\").eq(0);\r\n\t\tif (next.length) {\r\n\t\t\tthis.activate(event, next);\r\n\t\t} else {\r\n\t\t\tthis.activate(event, this.element.children(edge));\r\n\t\t}\r\n\t},\r\n\r\n\t// TODO merge with previousPage\r\n\tnextPage: function(event) {\r\n\t\tif (this.hasScroll()) {\r\n\t\t\t// TODO merge with no-scroll-else\r\n\t\t\tif (!this.active || this.last()) {\r\n\t\t\t\tthis.activate(event, this.element.children(\".ui-menu-item:first\"));\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar base = this.active.offset().top,\r\n\t\t\t\theight = this.element.height(),\r\n\t\t\t\tresult = this.element.children(\".ui-menu-item\").filter(function() {\r\n\t\t\t\t\tvar close = $(this).offset().top - base - height + $(this).height();\r\n\t\t\t\t\t// TODO improve approximation\r\n\t\t\t\t\treturn close < 10 && close > -10;\r\n\t\t\t\t});\r\n\r\n\t\t\t// TODO try to catch this earlier when scrollTop indicates the last page anyway\r\n\t\t\tif (!result.length) {\r\n\t\t\t\tresult = this.element.children(\".ui-menu-item:last\");\r\n\t\t\t}\r\n\t\t\tthis.activate(event, result);\r\n\t\t} else {\r\n\t\t\tthis.activate(event, this.element.children(\".ui-menu-item\")\r\n\t\t\t\t.filter(!this.active || this.last() ? \":first\" : \":last\"));\r\n\t\t}\r\n\t},\r\n\r\n\t// TODO merge with nextPage\r\n\tpreviousPage: function(event) {\r\n\t\tif (this.hasScroll()) {\r\n\t\t\t// TODO merge with no-scroll-else\r\n\t\t\tif (!this.active || this.first()) {\r\n\t\t\t\tthis.activate(event, this.element.children(\".ui-menu-item:last\"));\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar base = this.active.offset().top,\r\n\t\t\t\theight = this.element.height(),\r\n\t\t\t\tresult = this.element.children(\".ui-menu-item\").filter(function() {\r\n\t\t\t\t\tvar close = $(this).offset().top - base + height - $(this).height();\r\n\t\t\t\t\t// TODO improve approximation\r\n\t\t\t\t\treturn close < 10 && close > -10;\r\n\t\t\t\t});\r\n\r\n\t\t\t// TODO try to catch this earlier when scrollTop indicates the last page anyway\r\n\t\t\tif (!result.length) {\r\n\t\t\t\tresult = this.element.children(\".ui-menu-item:first\");\r\n\t\t\t}\r\n\t\t\tthis.activate(event, result);\r\n\t\t} else {\r\n\t\t\tthis.activate(event, this.element.children(\".ui-menu-item\")\r\n\t\t\t\t.filter(!this.active || this.first() ? \":last\" : \":first\"));\r\n\t\t}\r\n\t},\r\n\r\n\thasScroll: function() {\r\n\t\treturn this.element.height() < this.element[ $.fn.prop ? \"prop\" : \"attr\" ](\"scrollHeight\");\r\n\t},\r\n\r\n\tselect: function( event ) {\r\n\t\tthis._trigger(\"selected\", event, { item: this.active });\r\n\t}\r\n});\r\n\r\n}(jQuery));\r\n\r\n(function( $, undefined ) {\r\n\r\nvar lastActive, startXPos, startYPos, clickDragged,\r\n\tbaseClasses = \"ui-button ui-widget ui-state-default ui-corner-all\",\r\n\tstateClasses = \"ui-state-hover ui-state-active \",\r\n\ttypeClasses = \"ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only\",\r\n\tformResetHandler = function() {\r\n\t\tvar buttons = $( this ).find( \":ui-button\" );\r\n\t\tsetTimeout(function() {\r\n\t\t\tbuttons.button( \"refresh\" );\r\n\t\t}, 1 );\r\n\t},\r\n\tradioGroup = function( radio ) {\r\n\t\tvar name = radio.name,\r\n\t\t\tform = radio.form,\r\n\t\t\tradios = $( [] );\r\n\t\tif ( name ) {\r\n\t\t\tif ( form ) {\r\n\t\t\t\tradios = $( form ).find( \"[name='\" + name + \"']\" );\r\n\t\t\t} else {\r\n\t\t\t\tradios = $( \"[name='\" + name + \"']\", radio.ownerDocument )\r\n\t\t\t\t\t.filter(function() {\r\n\t\t\t\t\t\treturn !this.form;\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn radios;\r\n\t};\r\n\r\n$.widget( \"ui.button\", {\r\n\toptions: {\r\n\t\tdisabled: null,\r\n\t\ttext: true,\r\n\t\tlabel: null,\r\n\t\ticons: {\r\n\t\t\tprimary: null,\r\n\t\t\tsecondary: null\r\n\t\t}\r\n\t},\r\n\t_create: function() {\r\n\t\tthis.element.closest( \"form\" )\r\n\t\t\t.unbind( \"reset.button\" )\r\n\t\t\t.bind( \"reset.button\", formResetHandler );\r\n\r\n\t\tif ( typeof this.options.disabled !== \"boolean\" ) {\r\n\t\t\tthis.options.disabled = !!this.element.propAttr( \"disabled\" );\r\n\t\t} else {\r\n\t\t\tthis.element.propAttr( \"disabled\", this.options.disabled );\r\n\t\t}\r\n\r\n\t\tthis._determineButtonType();\r\n\t\tthis.hasTitle = !!this.buttonElement.attr( \"title\" );\r\n\r\n\t\tvar self = this,\r\n\t\t\toptions = this.options,\r\n\t\t\ttoggleButton = this.type === \"checkbox\" || this.type === \"radio\",\r\n\t\t\thoverClass = \"ui-state-hover\" + ( !toggleButton ? \" ui-state-active\" : \"\" ),\r\n\t\t\tfocusClass = \"ui-state-focus\";\r\n\r\n\t\tif ( options.label === null ) {\r\n\t\t\toptions.label = this.buttonElement.html();\r\n\t\t}\r\n\r\n\t\tthis.buttonElement\r\n\t\t\t.addClass( baseClasses )\r\n\t\t\t.attr( \"role\", \"button\" )\r\n\t\t\t.bind( \"mouseenter.button\", function() {\r\n\t\t\t\tif ( options.disabled ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$( this ).addClass( \"ui-state-hover\" );\r\n\t\t\t\tif ( this === lastActive ) {\r\n\t\t\t\t\t$( this ).addClass( \"ui-state-active\" );\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.bind( \"mouseleave.button\", function() {\r\n\t\t\t\tif ( options.disabled ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$( this ).removeClass( hoverClass );\r\n\t\t\t})\r\n\t\t\t.bind( \"click.button\", function( event ) {\r\n\t\t\t\tif ( options.disabled ) {\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tthis.element\r\n\t\t\t.bind( \"focus.button\", function() {\r\n\t\t\t\t// no need to check disabled, focus won't be triggered anyway\r\n\t\t\t\tself.buttonElement.addClass( focusClass );\r\n\t\t\t})\r\n\t\t\t.bind( \"blur.button\", function() {\r\n\t\t\t\tself.buttonElement.removeClass( focusClass );\r\n\t\t\t});\r\n\r\n\t\tif ( toggleButton ) {\r\n\t\t\tthis.element.bind( \"change.button\", function() {\r\n\t\t\t\tif ( clickDragged ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tself.refresh();\r\n\t\t\t});\r\n\t\t\t// if mouse moves between mousedown and mouseup (drag) set clickDragged flag\r\n\t\t\t// prevents issue where button state changes but checkbox/radio checked state\r\n\t\t\t// does not in Firefox (see ticket #6970)\r\n\t\t\tthis.buttonElement\r\n\t\t\t\t.bind( \"mousedown.button\", function( event ) {\r\n\t\t\t\t\tif ( options.disabled ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tclickDragged = false;\r\n\t\t\t\t\tstartXPos = event.pageX;\r\n\t\t\t\t\tstartYPos = event.pageY;\r\n\t\t\t\t})\r\n\t\t\t\t.bind( \"mouseup.button\", function( event ) {\r\n\t\t\t\t\tif ( options.disabled ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( startXPos !== event.pageX || startYPos !== event.pageY ) {\r\n\t\t\t\t\t\tclickDragged = true;\r\n\t\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif ( this.type === \"checkbox\" ) {\r\n\t\t\tthis.buttonElement.bind( \"click.button\", function() {\r\n\t\t\t\tif ( options.disabled || clickDragged ) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\t$( this ).toggleClass( \"ui-state-active\" );\r\n\t\t\t\tself.buttonElement.attr( \"aria-pressed\", self.element[0].checked );\r\n\t\t\t});\r\n\t\t} else if ( this.type === \"radio\" ) {\r\n\t\t\tthis.buttonElement.bind( \"click.button\", function() {\r\n\t\t\t\tif ( options.disabled || clickDragged ) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\t$( this ).addClass( \"ui-state-active\" );\r\n\t\t\t\tself.buttonElement.attr( \"aria-pressed\", \"true\" );\r\n\r\n\t\t\t\tvar radio = self.element[ 0 ];\r\n\t\t\t\tradioGroup( radio )\r\n\t\t\t\t\t.not( radio )\r\n\t\t\t\t\t.map(function() {\r\n\t\t\t\t\t\treturn $( this ).button( \"widget\" )[ 0 ];\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.removeClass( \"ui-state-active\" )\r\n\t\t\t\t\t.attr( \"aria-pressed\", \"false\" );\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.buttonElement\r\n\t\t\t\t.bind( \"mousedown.button\", function() {\r\n\t\t\t\t\tif ( options.disabled ) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$( this ).addClass( \"ui-state-active\" );\r\n\t\t\t\t\tlastActive = this;\r\n\t\t\t\t\t$( document ).one( \"mouseup\", function() {\r\n\t\t\t\t\t\tlastActive = null;\r\n\t\t\t\t\t});\r\n\t\t\t\t})\r\n\t\t\t\t.bind( \"mouseup.button\", function() {\r\n\t\t\t\t\tif ( options.disabled ) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$( this ).removeClass( \"ui-state-active\" );\r\n\t\t\t\t})\r\n\t\t\t\t.bind( \"keydown.button\", function(event) {\r\n\t\t\t\t\tif ( options.disabled ) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( event.keyCode == $.ui.keyCode.SPACE || event.keyCode == $.ui.keyCode.ENTER ) {\r\n\t\t\t\t\t\t$( this ).addClass( \"ui-state-active\" );\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.bind( \"keyup.button\", function() {\r\n\t\t\t\t\t$( this ).removeClass( \"ui-state-active\" );\r\n\t\t\t\t});\r\n\r\n\t\t\tif ( this.buttonElement.is(\"a\") ) {\r\n\t\t\t\tthis.buttonElement.keyup(function(event) {\r\n\t\t\t\t\tif ( event.keyCode === $.ui.keyCode.SPACE ) {\r\n\t\t\t\t\t\t// TODO pass through original event correctly (just as 2nd argument doesn't work)\r\n\t\t\t\t\t\t$( this ).click();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// TODO: pull out $.Widget's handling for the disabled option into\r\n\t\t// $.Widget.prototype._setOptionDisabled so it's easy to proxy and can\r\n\t\t// be overridden by individual plugins\r\n\t\tthis._setOption( \"disabled\", options.disabled );\r\n\t\tthis._resetButton();\r\n\t},\r\n\r\n\t_determineButtonType: function() {\r\n\r\n\t\tif ( this.element.is(\":checkbox\") ) {\r\n\t\t\tthis.type = \"checkbox\";\r\n\t\t} else if ( this.element.is(\":radio\") ) {\r\n\t\t\tthis.type = \"radio\";\r\n\t\t} else if ( this.element.is(\"input\") ) {\r\n\t\t\tthis.type = \"input\";\r\n\t\t} else {\r\n\t\t\tthis.type = \"button\";\r\n\t\t}\r\n\r\n\t\tif ( this.type === \"checkbox\" || this.type === \"radio\" ) {\r\n\t\t\t// we don't search against the document in case the element\r\n\t\t\t// is disconnected from the DOM\r\n\t\t\tvar ancestor = this.element.parents().filter(\":last\"),\r\n\t\t\t\tlabelSelector = \"label[for='\" + this.element.attr(\"id\") + \"']\";\r\n\t\t\tthis.buttonElement = ancestor.find( labelSelector );\r\n\t\t\tif ( !this.buttonElement.length ) {\r\n\t\t\t\tancestor = ancestor.length ? ancestor.siblings() : this.element.siblings();\r\n\t\t\t\tthis.buttonElement = ancestor.filter( labelSelector );\r\n\t\t\t\tif ( !this.buttonElement.length ) {\r\n\t\t\t\t\tthis.buttonElement = ancestor.find( labelSelector );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.element.addClass( \"ui-helper-hidden-accessible\" );\r\n\r\n\t\t\tvar checked = this.element.is( \":checked\" );\r\n\t\t\tif ( checked ) {\r\n\t\t\t\tthis.buttonElement.addClass( \"ui-state-active\" );\r\n\t\t\t}\r\n\t\t\tthis.buttonElement.attr( \"aria-pressed\", checked );\r\n\t\t} else {\r\n\t\t\tthis.buttonElement = this.element;\r\n\t\t}\r\n\t},\r\n\r\n\twidget: function() {\r\n\t\treturn this.buttonElement;\r\n\t},\r\n\r\n\tdestroy: function() {\r\n\t\tthis.element\r\n\t\t\t.removeClass( \"ui-helper-hidden-accessible\" );\r\n\t\tthis.buttonElement\r\n\t\t\t.removeClass( baseClasses + \" \" + stateClasses + \" \" + typeClasses )\r\n\t\t\t.removeAttr( \"role\" )\r\n\t\t\t.removeAttr( \"aria-pressed\" )\r\n\t\t\t.html( this.buttonElement.find(\".ui-button-text\").html() );\r\n\r\n\t\tif ( !this.hasTitle ) {\r\n\t\t\tthis.buttonElement.removeAttr( \"title\" );\r\n\t\t}\r\n\r\n\t\t$.Widget.prototype.destroy.call( this );\r\n\t},\r\n\r\n\t_setOption: function( key, value ) {\r\n\t\t$.Widget.prototype._setOption.apply( this, arguments );\r\n\t\tif ( key === \"disabled\" ) {\r\n\t\t\tif ( value ) {\r\n\t\t\t\tthis.element.propAttr( \"disabled\", true );\r\n\t\t\t} else {\r\n\t\t\t\tthis.element.propAttr( \"disabled\", false );\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._resetButton();\r\n\t},\r\n\r\n\trefresh: function() {\r\n\t\tvar isDisabled = this.element.is( \":disabled\" );\r\n\t\tif ( isDisabled !== this.options.disabled ) {\r\n\t\t\tthis._setOption( \"disabled\", isDisabled );\r\n\t\t}\r\n\t\tif ( this.type === \"radio\" ) {\r\n\t\t\tradioGroup( this.element[0] ).each(function() {\r\n\t\t\t\tif ( $( this ).is( \":checked\" ) ) {\r\n\t\t\t\t\t$( this ).button( \"widget\" )\r\n\t\t\t\t\t\t.addClass( \"ui-state-active\" )\r\n\t\t\t\t\t\t.attr( \"aria-pressed\", \"true\" );\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$( this ).button( \"widget\" )\r\n\t\t\t\t\t\t.removeClass( \"ui-state-active\" )\r\n\t\t\t\t\t\t.attr( \"aria-pressed\", \"false\" );\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else if ( this.type === \"checkbox\" ) {\r\n\t\t\tif ( this.element.is( \":checked\" ) ) {\r\n\t\t\t\tthis.buttonElement\r\n\t\t\t\t\t.addClass( \"ui-state-active\" )\r\n\t\t\t\t\t.attr( \"aria-pressed\", \"true\" );\r\n\t\t\t} else {\r\n\t\t\t\tthis.buttonElement\r\n\t\t\t\t\t.removeClass( \"ui-state-active\" )\r\n\t\t\t\t\t.attr( \"aria-pressed\", \"false\" );\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_resetButton: function() {\r\n\t\tif ( this.type === \"input\" ) {\r\n\t\t\tif ( this.options.label ) {\r\n\t\t\t\tthis.element.val( this.options.label );\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar buttonElement = this.buttonElement.removeClass( typeClasses ),\r\n\t\t\tbuttonText = $( \"\", this.element[0].ownerDocument )\r\n\t\t\t\t.addClass( \"ui-button-text\" )\r\n\t\t\t\t.html( this.options.label )\r\n\t\t\t\t.appendTo( buttonElement.empty() )\r\n\t\t\t\t.text(),\r\n\t\t\ticons = this.options.icons,\r\n\t\t\tmultipleIcons = icons.primary && icons.secondary,\r\n\t\t\tbuttonClasses = []; \r\n\r\n\t\tif ( icons.primary || icons.secondary ) {\r\n\t\t\tif ( this.options.text ) {\r\n\t\t\t\tbuttonClasses.push( \"ui-button-text-icon\" + ( multipleIcons ? \"s\" : ( icons.primary ? \"-primary\" : \"-secondary\" ) ) );\r\n\t\t\t}\r\n\r\n\t\t\tif ( icons.primary ) {\r\n\t\t\t\tbuttonElement.prepend( \"\" );\r\n\t\t\t}\r\n\r\n\t\t\tif ( icons.secondary ) {\r\n\t\t\t\tbuttonElement.append( \"\" );\r\n\t\t\t}\r\n\r\n\t\t\tif ( !this.options.text ) {\r\n\t\t\t\tbuttonClasses.push( multipleIcons ? \"ui-button-icons-only\" : \"ui-button-icon-only\" );\r\n\r\n\t\t\t\tif ( !this.hasTitle ) {\r\n\t\t\t\t\tbuttonElement.attr( \"title\", buttonText );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tbuttonClasses.push( \"ui-button-text-only\" );\r\n\t\t}\r\n\t\tbuttonElement.addClass( buttonClasses.join( \" \" ) );\r\n\t}\r\n});\r\n\r\n$.widget( \"ui.buttonset\", {\r\n\toptions: {\r\n\t\titems: \":button, :submit, :reset, :checkbox, :radio, a, :data(button)\"\r\n\t},\r\n\r\n\t_create: function() {\r\n\t\tthis.element.addClass( \"ui-buttonset\" );\r\n\t},\r\n\t\r\n\t_init: function() {\r\n\t\tthis.refresh();\r\n\t},\r\n\r\n\t_setOption: function( key, value ) {\r\n\t\tif ( key === \"disabled\" ) {\r\n\t\t\tthis.buttons.button( \"option\", key, value );\r\n\t\t}\r\n\r\n\t\t$.Widget.prototype._setOption.apply( this, arguments );\r\n\t},\r\n\t\r\n\trefresh: function() {\r\n\t\tvar rtl = this.element.css( \"direction\" ) === \"rtl\";\r\n\t\t\r\n\t\tthis.buttons = this.element.find( this.options.items )\r\n\t\t\t.filter( \":ui-button\" )\r\n\t\t\t\t.button( \"refresh\" )\r\n\t\t\t.end()\r\n\t\t\t.not( \":ui-button\" )\r\n\t\t\t\t.button()\r\n\t\t\t.end()\r\n\t\t\t.map(function() {\r\n\t\t\t\treturn $( this ).button( \"widget\" )[ 0 ];\r\n\t\t\t})\r\n\t\t\t\t.removeClass( \"ui-corner-all ui-corner-left ui-corner-right\" )\r\n\t\t\t\t.filter( \":first\" )\r\n\t\t\t\t\t.addClass( rtl ? \"ui-corner-right\" : \"ui-corner-left\" )\r\n\t\t\t\t.end()\r\n\t\t\t\t.filter( \":last\" )\r\n\t\t\t\t\t.addClass( rtl ? \"ui-corner-left\" : \"ui-corner-right\" )\r\n\t\t\t\t.end()\r\n\t\t\t.end();\r\n\t},\r\n\r\n\tdestroy: function() {\r\n\t\tthis.element.removeClass( \"ui-buttonset\" );\r\n\t\tthis.buttons\r\n\t\t\t.map(function() {\r\n\t\t\t\treturn $( this ).button( \"widget\" )[ 0 ];\r\n\t\t\t})\r\n\t\t\t\t.removeClass( \"ui-corner-left ui-corner-right\" )\r\n\t\t\t.end()\r\n\t\t\t.button( \"destroy\" );\r\n\r\n\t\t$.Widget.prototype.destroy.call( this );\r\n\t}\r\n});\r\n\r\n}( jQuery ) );\r\n\r\n(function( $, undefined ) {\r\n\r\n$.extend($.ui, { datepicker: { version: \"1.8.22\" } });\r\n\r\nvar PROP_NAME = 'datepicker';\r\nvar dpuuid = new Date().getTime();\r\nvar instActive;\r\n\r\n/* Date picker manager.\r\n Use the singleton instance of this class, $.datepicker, to interact with the date picker.\r\n Settings for (groups of) date pickers are maintained in an instance object,\r\n allowing multiple different settings on the same page. */\r\n\r\nfunction Datepicker() {\r\n\tthis.debug = false; // Change this to true to start debugging\r\n\tthis._curInst = null; // The current instance in use\r\n\tthis._keyEvent = false; // If the last event was a key event\r\n\tthis._disabledInputs = []; // List of date picker inputs that have been disabled\r\n\tthis._datepickerShowing = false; // True if the popup picker is showing , false if not\r\n\tthis._inDialog = false; // True if showing within a \"dialog\", false if not\r\n\tthis._mainDivId = 'ui-datepicker-div'; // The ID of the main datepicker division\r\n\tthis._inlineClass = 'ui-datepicker-inline'; // The name of the inline marker class\r\n\tthis._appendClass = 'ui-datepicker-append'; // The name of the append marker class\r\n\tthis._triggerClass = 'ui-datepicker-trigger'; // The name of the trigger marker class\r\n\tthis._dialogClass = 'ui-datepicker-dialog'; // The name of the dialog marker class\r\n\tthis._disableClass = 'ui-datepicker-disabled'; // The name of the disabled covering marker class\r\n\tthis._unselectableClass = 'ui-datepicker-unselectable'; // The name of the unselectable cell marker class\r\n\tthis._currentClass = 'ui-datepicker-current-day'; // The name of the current day marker class\r\n\tthis._dayOverClass = 'ui-datepicker-days-cell-over'; // The name of the day hover marker class\r\n\tthis.regional = []; // Available regional settings, indexed by language code\r\n\tthis.regional[''] = { // Default regional settings\r\n\t\tcloseText: 'Done', // Display text for close link\r\n\t\tprevText: 'Prev', // Display text for previous month link\r\n\t\tnextText: 'Next', // Display text for next month link\r\n\t\tcurrentText: 'Today', // Display text for current month link\r\n\t\tmonthNames: ['January','February','March','April','May','June',\r\n\t\t\t'July','August','September','October','November','December'], // Names of months for drop-down and formatting\r\n\t\tmonthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting\r\n\t\tdayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting\r\n\t\tdayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting\r\n\t\tdayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings for days starting at Sunday\r\n\t\tweekHeader: 'Wk', // Column header for week of the year\r\n\t\tdateFormat: 'mm/dd/yy', // See format options on parseDate\r\n\t\tfirstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...\r\n\t\tisRTL: false, // True if right-to-left language, false if left-to-right\r\n\t\tshowMonthAfterYear: false, // True if the year select precedes month, false for month then year\r\n\t\tyearSuffix: '' // Additional text to append to the year in the month headers\r\n\t};\r\n\tthis._defaults = { // Global defaults for all the date picker instances\r\n\t\tshowOn: 'focus', // 'focus' for popup on focus,\r\n\t\t\t// 'button' for trigger button, or 'both' for either\r\n\t\tshowAnim: 'fadeIn', // Name of jQuery animation for popup\r\n\t\tshowOptions: {}, // Options for enhanced animations\r\n\t\tdefaultDate: null, // Used when field is blank: actual date,\r\n\t\t\t// +/-number for offset from today, null for today\r\n\t\tappendText: '', // Display text following the input box, e.g. showing the format\r\n\t\tbuttonText: '...', // Text for trigger button\r\n\t\tbuttonImage: '', // URL for trigger button image\r\n\t\tbuttonImageOnly: false, // True if the image appears alone, false if it appears on a button\r\n\t\thideIfNoPrevNext: false, // True to hide next/previous month links\r\n\t\t\t// if not applicable, false to just disable them\r\n\t\tnavigationAsDateFormat: false, // True if date formatting applied to prev/today/next links\r\n\t\tgotoCurrent: false, // True if today link goes back to current selection instead\r\n\t\tchangeMonth: false, // True if month can be selected directly, false if only prev/next\r\n\t\tchangeYear: false, // True if year can be selected directly, false if only prev/next\r\n\t\tyearRange: 'c-10:c+10', // Range of years to display in drop-down,\r\n\t\t\t// either relative to today's year (-nn:+nn), relative to currently displayed year\r\n\t\t\t// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)\r\n\t\tshowOtherMonths: false, // True to show dates in other months, false to leave blank\r\n\t\tselectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable\r\n\t\tshowWeek: false, // True to show week of the year, false to not show it\r\n\t\tcalculateWeek: this.iso8601Week, // How to calculate the week of the year,\r\n\t\t\t// takes a Date and returns the number of the week for it\r\n\t\tshortYearCutoff: '+10', // Short year values < this are in the current century,\r\n\t\t\t// > this are in the previous century,\r\n\t\t\t// string value starting with '+' for current year + value\r\n\t\tminDate: null, // The earliest selectable date, or null for no limit\r\n\t\tmaxDate: null, // The latest selectable date, or null for no limit\r\n\t\tduration: 'fast', // Duration of display/closure\r\n\t\tbeforeShowDay: null, // Function that takes a date and returns an array with\r\n\t\t\t// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or '',\r\n\t\t\t// [2] = cell title (optional), e.g. $.datepicker.noWeekends\r\n\t\tbeforeShow: null, // Function that takes an input field and\r\n\t\t\t// returns a set of custom settings for the date picker\r\n\t\tonSelect: null, // Define a callback function when a date is selected\r\n\t\tonChangeMonthYear: null, // Define a callback function when the month or year is changed\r\n\t\tonClose: null, // Define a callback function when the datepicker is closed\r\n\t\tnumberOfMonths: 1, // Number of months to show at a time\r\n\t\tshowCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)\r\n\t\tstepMonths: 1, // Number of months to step back/forward\r\n\t\tstepBigMonths: 12, // Number of months to step back/forward for the big links\r\n\t\taltField: '', // Selector for an alternate field to store selected dates into\r\n\t\taltFormat: '', // The date format to use for the alternate field\r\n\t\tconstrainInput: true, // The input is constrained by the current date format\r\n\t\tshowButtonPanel: false, // True to show button panel, false to not show it\r\n\t\tautoSize: false, // True to size the input for the date format, false to leave as is\r\n\t\tdisabled: false // The initial disabled state\r\n\t};\r\n\t$.extend(this._defaults, this.regional['']);\r\n\tthis.dpDiv = bindHover($('
    '));\r\n}\r\n\r\n$.extend(Datepicker.prototype, {\r\n\t/* Class name added to elements to indicate already configured with a date picker. */\r\n\tmarkerClassName: 'hasDatepicker',\r\n\t\r\n\t//Keep track of the maximum number of rows displayed (see #7043)\r\n\tmaxRows: 4,\r\n\r\n\t/* Debug logging (if enabled). */\r\n\tlog: function () {\r\n\t\tif (this.debug)\r\n\t\t\tconsole.log.apply('', arguments);\r\n\t},\r\n\t\r\n\t// TODO rename to \"widget\" when switching to widget factory\r\n\t_widgetDatepicker: function() {\r\n\t\treturn this.dpDiv;\r\n\t},\r\n\r\n\t/* Override the default settings for all instances of the date picker.\r\n\t @param settings object - the new settings to use as defaults (anonymous object)\r\n\t @return the manager object */\r\n\tsetDefaults: function(settings) {\r\n\t\textendRemove(this._defaults, settings || {});\r\n\t\treturn this;\r\n\t},\r\n\r\n\t/* Attach the date picker to a jQuery selection.\r\n\t @param target element - the target input field or division or span\r\n\t @param settings object - the new settings to use for this date picker instance (anonymous) */\r\n\t_attachDatepicker: function(target, settings) {\r\n\t\t// check for settings on the control itself - in namespace 'date:'\r\n\t\tvar inlineSettings = null;\r\n\t\tfor (var attrName in this._defaults) {\r\n\t\t\tvar attrValue = target.getAttribute('date:' + attrName);\r\n\t\t\tif (attrValue) {\r\n\t\t\t\tinlineSettings = inlineSettings || {};\r\n\t\t\t\ttry {\r\n\t\t\t\t\tinlineSettings[attrName] = eval(attrValue);\r\n\t\t\t\t} catch (err) {\r\n\t\t\t\t\tinlineSettings[attrName] = attrValue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar nodeName = target.nodeName.toLowerCase();\r\n\t\tvar inline = (nodeName == 'div' || nodeName == 'span');\r\n\t\tif (!target.id) {\r\n\t\t\tthis.uuid += 1;\r\n\t\t\ttarget.id = 'dp' + this.uuid;\r\n\t\t}\r\n\t\tvar inst = this._newInst($(target), inline);\r\n\t\tinst.settings = $.extend({}, settings || {}, inlineSettings || {});\r\n\t\tif (nodeName == 'input') {\r\n\t\t\tthis._connectDatepicker(target, inst);\r\n\t\t} else if (inline) {\r\n\t\t\tthis._inlineDatepicker(target, inst);\r\n\t\t}\r\n\t},\r\n\r\n\t/* Create a new instance object. */\r\n\t_newInst: function(target, inline) {\r\n\t\tvar id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\\\\\$1'); // escape jQuery meta chars\r\n\t\treturn {id: id, input: target, // associated target\r\n\t\t\tselectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection\r\n\t\t\tdrawMonth: 0, drawYear: 0, // month being drawn\r\n\t\t\tinline: inline, // is datepicker inline or not\r\n\t\t\tdpDiv: (!inline ? this.dpDiv : // presentation div\r\n\t\t\tbindHover($('
    ')))};\r\n\t},\r\n\r\n\t/* Attach the date picker to an input field. */\r\n\t_connectDatepicker: function(target, inst) {\r\n\t\tvar input = $(target);\r\n\t\tinst.append = $([]);\r\n\t\tinst.trigger = $([]);\r\n\t\tif (input.hasClass(this.markerClassName))\r\n\t\t\treturn;\r\n\t\tthis._attachments(input, inst);\r\n\t\tinput.addClass(this.markerClassName).keydown(this._doKeyDown).\r\n\t\t\tkeypress(this._doKeyPress).keyup(this._doKeyUp).\r\n\t\t\tbind(\"setData.datepicker\", function(event, key, value) {\r\n\t\t\t\tinst.settings[key] = value;\r\n\t\t\t}).bind(\"getData.datepicker\", function(event, key) {\r\n\t\t\t\treturn this._get(inst, key);\r\n\t\t\t});\r\n\t\tthis._autoSize(inst);\r\n\t\t$.data(target, PROP_NAME, inst);\r\n\t\t//If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)\r\n\t\tif( inst.settings.disabled ) {\r\n\t\t\tthis._disableDatepicker( target );\r\n\t\t}\r\n\t},\r\n\r\n\t/* Make attachments based on settings. */\r\n\t_attachments: function(input, inst) {\r\n\t\tvar appendText = this._get(inst, 'appendText');\r\n\t\tvar isRTL = this._get(inst, 'isRTL');\r\n\t\tif (inst.append)\r\n\t\t\tinst.append.remove();\r\n\t\tif (appendText) {\r\n\t\t\tinst.append = $('' + appendText + '');\r\n\t\t\tinput[isRTL ? 'before' : 'after'](inst.append);\r\n\t\t}\r\n\t\tinput.unbind('focus', this._showDatepicker);\r\n\t\tif (inst.trigger)\r\n\t\t\tinst.trigger.remove();\r\n\t\tvar showOn = this._get(inst, 'showOn');\r\n\t\tif (showOn == 'focus' || showOn == 'both') // pop-up date picker when in the marked field\r\n\t\t\tinput.focus(this._showDatepicker);\r\n\t\tif (showOn == 'button' || showOn == 'both') { // pop-up date picker when button clicked\r\n\t\t\tvar buttonText = this._get(inst, 'buttonText');\r\n\t\t\tvar buttonImage = this._get(inst, 'buttonImage');\r\n\t\t\tinst.trigger = $(this._get(inst, 'buttonImageOnly') ?\r\n\t\t\t\t$('').addClass(this._triggerClass).\r\n\t\t\t\t\tattr({ src: buttonImage, alt: buttonText, title: buttonText }) :\r\n\t\t\t\t$('').addClass(this._triggerClass).\r\n\t\t\t\t\thtml(buttonImage == '' ? buttonText : $('').attr(\r\n\t\t\t\t\t{ src:buttonImage, alt:buttonText, title:buttonText })));\r\n\t\t\tinput[isRTL ? 'before' : 'after'](inst.trigger);\r\n\t\t\tinst.trigger.click(function() {\r\n\t\t\t\tif ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])\r\n\t\t\t\t\t$.datepicker._hideDatepicker();\r\n\t\t\t\telse if ($.datepicker._datepickerShowing && $.datepicker._lastInput != input[0]) {\r\n\t\t\t\t\t$.datepicker._hideDatepicker(); \r\n\t\t\t\t\t$.datepicker._showDatepicker(input[0]);\r\n\t\t\t\t} else\r\n\t\t\t\t\t$.datepicker._showDatepicker(input[0]);\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/* Apply the maximum length for the date format. */\r\n\t_autoSize: function(inst) {\r\n\t\tif (this._get(inst, 'autoSize') && !inst.inline) {\r\n\t\t\tvar date = new Date(2009, 12 - 1, 20); // Ensure double digits\r\n\t\t\tvar dateFormat = this._get(inst, 'dateFormat');\r\n\t\t\tif (dateFormat.match(/[DM]/)) {\r\n\t\t\t\tvar findMax = function(names) {\r\n\t\t\t\t\tvar max = 0;\r\n\t\t\t\t\tvar maxI = 0;\r\n\t\t\t\t\tfor (var i = 0; i < names.length; i++) {\r\n\t\t\t\t\t\tif (names[i].length > max) {\r\n\t\t\t\t\t\t\tmax = names[i].length;\r\n\t\t\t\t\t\t\tmaxI = i;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn maxI;\r\n\t\t\t\t};\r\n\t\t\t\tdate.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?\r\n\t\t\t\t\t'monthNames' : 'monthNamesShort'))));\r\n\t\t\t\tdate.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?\r\n\t\t\t\t\t'dayNames' : 'dayNamesShort'))) + 20 - date.getDay());\r\n\t\t\t}\r\n\t\t\tinst.input.attr('size', this._formatDate(inst, date).length);\r\n\t\t}\r\n\t},\r\n\r\n\t/* Attach an inline date picker to a div. */\r\n\t_inlineDatepicker: function(target, inst) {\r\n\t\tvar divSpan = $(target);\r\n\t\tif (divSpan.hasClass(this.markerClassName))\r\n\t\t\treturn;\r\n\t\tdivSpan.addClass(this.markerClassName).append(inst.dpDiv).\r\n\t\t\tbind(\"setData.datepicker\", function(event, key, value){\r\n\t\t\t\tinst.settings[key] = value;\r\n\t\t\t}).bind(\"getData.datepicker\", function(event, key){\r\n\t\t\t\treturn this._get(inst, key);\r\n\t\t\t});\r\n\t\t$.data(target, PROP_NAME, inst);\r\n\t\tthis._setDate(inst, this._getDefaultDate(inst), true);\r\n\t\tthis._updateDatepicker(inst);\r\n\t\tthis._updateAlternate(inst);\r\n\t\t//If disabled option is true, disable the datepicker before showing it (see ticket #5665)\r\n\t\tif( inst.settings.disabled ) {\r\n\t\t\tthis._disableDatepicker( target );\r\n\t\t}\r\n\t\t// Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements\r\n\t\t// http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height\r\n\t\tinst.dpDiv.css( \"display\", \"block\" );\r\n\t},\r\n\r\n\t/* Pop-up the date picker in a \"dialog\" box.\r\n\t @param input element - ignored\r\n\t @param date string or Date - the initial date to display\r\n\t @param onSelect function - the function to call when a date is selected\r\n\t @param settings object - update the dialog date picker instance's settings (anonymous object)\r\n\t @param pos int[2] - coordinates for the dialog's position within the screen or\r\n\t event - with x/y coordinates or\r\n\t leave empty for default (screen centre)\r\n\t @return the manager object */\r\n\t_dialogDatepicker: function(input, date, onSelect, settings, pos) {\r\n\t\tvar inst = this._dialogInst; // internal instance\r\n\t\tif (!inst) {\r\n\t\t\tthis.uuid += 1;\r\n\t\t\tvar id = 'dp' + this.uuid;\r\n\t\t\tthis._dialogInput = $('');\r\n\t\t\tthis._dialogInput.keydown(this._doKeyDown);\r\n\t\t\t$('body').append(this._dialogInput);\r\n\t\t\tinst = this._dialogInst = this._newInst(this._dialogInput, false);\r\n\t\t\tinst.settings = {};\r\n\t\t\t$.data(this._dialogInput[0], PROP_NAME, inst);\r\n\t\t}\r\n\t\textendRemove(inst.settings, settings || {});\r\n\t\tdate = (date && date.constructor == Date ? this._formatDate(inst, date) : date);\r\n\t\tthis._dialogInput.val(date);\r\n\r\n\t\tthis._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);\r\n\t\tif (!this._pos) {\r\n\t\t\tvar browserWidth = document.documentElement.clientWidth;\r\n\t\t\tvar browserHeight = document.documentElement.clientHeight;\r\n\t\t\tvar scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;\r\n\t\t\tvar scrollY = document.documentElement.scrollTop || document.body.scrollTop;\r\n\t\t\tthis._pos = // should use actual width/height below\r\n\t\t\t\t[(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];\r\n\t\t}\r\n\r\n\t\t// move input on screen for focus, but hidden behind dialog\r\n\t\tthis._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px');\r\n\t\tinst.settings.onSelect = onSelect;\r\n\t\tthis._inDialog = true;\r\n\t\tthis.dpDiv.addClass(this._dialogClass);\r\n\t\tthis._showDatepicker(this._dialogInput[0]);\r\n\t\tif ($.blockUI)\r\n\t\t\t$.blockUI(this.dpDiv);\r\n\t\t$.data(this._dialogInput[0], PROP_NAME, inst);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t/* Detach a datepicker from its control.\r\n\t @param target element - the target input field or division or span */\r\n\t_destroyDatepicker: function(target) {\r\n\t\tvar $target = $(target);\r\n\t\tvar inst = $.data(target, PROP_NAME);\r\n\t\tif (!$target.hasClass(this.markerClassName)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar nodeName = target.nodeName.toLowerCase();\r\n\t\t$.removeData(target, PROP_NAME);\r\n\t\tif (nodeName == 'input') {\r\n\t\t\tinst.append.remove();\r\n\t\t\tinst.trigger.remove();\r\n\t\t\t$target.removeClass(this.markerClassName).\r\n\t\t\t\tunbind('focus', this._showDatepicker).\r\n\t\t\t\tunbind('keydown', this._doKeyDown).\r\n\t\t\t\tunbind('keypress', this._doKeyPress).\r\n\t\t\t\tunbind('keyup', this._doKeyUp);\r\n\t\t} else if (nodeName == 'div' || nodeName == 'span')\r\n\t\t\t$target.removeClass(this.markerClassName).empty();\r\n\t},\r\n\r\n\t/* Enable the date picker to a jQuery selection.\r\n\t @param target element - the target input field or division or span */\r\n\t_enableDatepicker: function(target) {\r\n\t\tvar $target = $(target);\r\n\t\tvar inst = $.data(target, PROP_NAME);\r\n\t\tif (!$target.hasClass(this.markerClassName)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar nodeName = target.nodeName.toLowerCase();\r\n\t\tif (nodeName == 'input') {\r\n\t\t\ttarget.disabled = false;\r\n\t\t\tinst.trigger.filter('button').\r\n\t\t\t\teach(function() { this.disabled = false; }).end().\r\n\t\t\t\tfilter('img').css({opacity: '1.0', cursor: ''});\r\n\t\t}\r\n\t\telse if (nodeName == 'div' || nodeName == 'span') {\r\n\t\t\tvar inline = $target.children('.' + this._inlineClass);\r\n\t\t\tinline.children().removeClass('ui-state-disabled');\r\n\t\t\tinline.find(\"select.ui-datepicker-month, select.ui-datepicker-year\").\r\n\t\t\t\tremoveAttr(\"disabled\");\r\n\t\t}\r\n\t\tthis._disabledInputs = $.map(this._disabledInputs,\r\n\t\t\tfunction(value) { return (value == target ? null : value); }); // delete entry\r\n\t},\r\n\r\n\t/* Disable the date picker to a jQuery selection.\r\n\t @param target element - the target input field or division or span */\r\n\t_disableDatepicker: function(target) {\r\n\t\tvar $target = $(target);\r\n\t\tvar inst = $.data(target, PROP_NAME);\r\n\t\tif (!$target.hasClass(this.markerClassName)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar nodeName = target.nodeName.toLowerCase();\r\n\t\tif (nodeName == 'input') {\r\n\t\t\ttarget.disabled = true;\r\n\t\t\tinst.trigger.filter('button').\r\n\t\t\t\teach(function() { this.disabled = true; }).end().\r\n\t\t\t\tfilter('img').css({opacity: '0.5', cursor: 'default'});\r\n\t\t}\r\n\t\telse if (nodeName == 'div' || nodeName == 'span') {\r\n\t\t\tvar inline = $target.children('.' + this._inlineClass);\r\n\t\t\tinline.children().addClass('ui-state-disabled');\r\n\t\t\tinline.find(\"select.ui-datepicker-month, select.ui-datepicker-year\").\r\n\t\t\t\tattr(\"disabled\", \"disabled\");\r\n\t\t}\r\n\t\tthis._disabledInputs = $.map(this._disabledInputs,\r\n\t\t\tfunction(value) { return (value == target ? null : value); }); // delete entry\r\n\t\tthis._disabledInputs[this._disabledInputs.length] = target;\r\n\t},\r\n\r\n\t/* Is the first field in a jQuery collection disabled as a datepicker?\r\n\t @param target element - the target input field or division or span\r\n\t @return boolean - true if disabled, false if enabled */\r\n\t_isDisabledDatepicker: function(target) {\r\n\t\tif (!target) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tfor (var i = 0; i < this._disabledInputs.length; i++) {\r\n\t\t\tif (this._disabledInputs[i] == target)\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t/* Retrieve the instance data for the target control.\r\n\t @param target element - the target input field or division or span\r\n\t @return object - the associated instance data\r\n\t @throws error if a jQuery problem getting data */\r\n\t_getInst: function(target) {\r\n\t\ttry {\r\n\t\t\treturn $.data(target, PROP_NAME);\r\n\t\t}\r\n\t\tcatch (err) {\r\n\t\t\tthrow 'Missing instance data for this datepicker';\r\n\t\t}\r\n\t},\r\n\r\n\t/* Update or retrieve the settings for a date picker attached to an input field or division.\r\n\t @param target element - the target input field or division or span\r\n\t @param name object - the new settings to update or\r\n\t string - the name of the setting to change or retrieve,\r\n\t when retrieving also 'all' for all instance settings or\r\n\t 'defaults' for all global defaults\r\n\t @param value any - the new value for the setting\r\n\t (omit if above is an object or to retrieve a value) */\r\n\t_optionDatepicker: function(target, name, value) {\r\n\t\tvar inst = this._getInst(target);\r\n\t\tif (arguments.length == 2 && typeof name == 'string') {\r\n\t\t\treturn (name == 'defaults' ? $.extend({}, $.datepicker._defaults) :\r\n\t\t\t\t(inst ? (name == 'all' ? $.extend({}, inst.settings) :\r\n\t\t\t\tthis._get(inst, name)) : null));\r\n\t\t}\r\n\t\tvar settings = name || {};\r\n\t\tif (typeof name == 'string') {\r\n\t\t\tsettings = {};\r\n\t\t\tsettings[name] = value;\r\n\t\t}\r\n\t\tif (inst) {\r\n\t\t\tif (this._curInst == inst) {\r\n\t\t\t\tthis._hideDatepicker();\r\n\t\t\t}\r\n\t\t\tvar date = this._getDateDatepicker(target, true);\r\n\t\t\tvar minDate = this._getMinMaxDate(inst, 'min');\r\n\t\t\tvar maxDate = this._getMinMaxDate(inst, 'max');\r\n\t\t\textendRemove(inst.settings, settings);\r\n\t\t\t// reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided\r\n\t\t\tif (minDate !== null && settings['dateFormat'] !== undefined && settings['minDate'] === undefined)\r\n\t\t\t\tinst.settings.minDate = this._formatDate(inst, minDate);\r\n\t\t\tif (maxDate !== null && settings['dateFormat'] !== undefined && settings['maxDate'] === undefined)\r\n\t\t\t\tinst.settings.maxDate = this._formatDate(inst, maxDate);\r\n\t\t\tthis._attachments($(target), inst);\r\n\t\t\tthis._autoSize(inst);\r\n\t\t\tthis._setDate(inst, date);\r\n\t\t\tthis._updateAlternate(inst);\r\n\t\t\tthis._updateDatepicker(inst);\r\n\t\t}\r\n\t},\r\n\r\n\t// change method deprecated\r\n\t_changeDatepicker: function(target, name, value) {\r\n\t\tthis._optionDatepicker(target, name, value);\r\n\t},\r\n\r\n\t/* Redraw the date picker attached to an input field or division.\r\n\t @param target element - the target input field or division or span */\r\n\t_refreshDatepicker: function(target) {\r\n\t\tvar inst = this._getInst(target);\r\n\t\tif (inst) {\r\n\t\t\tthis._updateDatepicker(inst);\r\n\t\t}\r\n\t},\r\n\r\n\t/* Set the dates for a jQuery selection.\r\n\t @param target element - the target input field or division or span\r\n\t @param date Date - the new date */\r\n\t_setDateDatepicker: function(target, date) {\r\n\t\tvar inst = this._getInst(target);\r\n\t\tif (inst) {\r\n\t\t\tthis._setDate(inst, date);\r\n\t\t\tthis._updateDatepicker(inst);\r\n\t\t\tthis._updateAlternate(inst);\r\n\t\t}\r\n\t},\r\n\r\n\t/* Get the date(s) for the first entry in a jQuery selection.\r\n\t @param target element - the target input field or division or span\r\n\t @param noDefault boolean - true if no default date is to be used\r\n\t @return Date - the current date */\r\n\t_getDateDatepicker: function(target, noDefault) {\r\n\t\tvar inst = this._getInst(target);\r\n\t\tif (inst && !inst.inline)\r\n\t\t\tthis._setDateFromField(inst, noDefault);\r\n\t\treturn (inst ? this._getDate(inst) : null);\r\n\t},\r\n\r\n\t/* Handle keystrokes. */\r\n\t_doKeyDown: function(event) {\r\n\t\tvar inst = $.datepicker._getInst(event.target);\r\n\t\tvar handled = true;\r\n\t\tvar isRTL = inst.dpDiv.is('.ui-datepicker-rtl');\r\n\t\tinst._keyEvent = true;\r\n\t\tif ($.datepicker._datepickerShowing)\r\n\t\t\tswitch (event.keyCode) {\r\n\t\t\t\tcase 9: $.datepicker._hideDatepicker();\r\n\t\t\t\t\t\thandled = false;\r\n\t\t\t\t\t\tbreak; // hide on tab out\r\n\t\t\t\tcase 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + \r\n\t\t\t\t\t\t\t\t\t$.datepicker._currentClass + ')', inst.dpDiv);\r\n\t\t\t\t\t\tif (sel[0])\r\n\t\t\t\t\t\t\t$.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);\r\n\t\t\t\t\t\t\tvar onSelect = $.datepicker._get(inst, 'onSelect');\r\n\t\t\t\t\t\t\tif (onSelect) {\r\n\t\t\t\t\t\t\t\tvar dateStr = $.datepicker._formatDate(inst);\r\n\r\n\t\t\t\t\t\t\t\t// trigger custom callback\r\n\t\t\t\t\t\t\t\tonSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t$.datepicker._hideDatepicker();\r\n\t\t\t\t\t\treturn false; // don't submit the form\r\n\t\t\t\t\t\tbreak; // select the value on enter\r\n\t\t\t\tcase 27: $.datepicker._hideDatepicker();\r\n\t\t\t\t\t\tbreak; // hide on escape\r\n\t\t\t\tcase 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?\r\n\t\t\t\t\t\t\t-$.datepicker._get(inst, 'stepBigMonths') :\r\n\t\t\t\t\t\t\t-$.datepicker._get(inst, 'stepMonths')), 'M');\r\n\t\t\t\t\t\tbreak; // previous month/year on page up/+ ctrl\r\n\t\t\t\tcase 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?\r\n\t\t\t\t\t\t\t+$.datepicker._get(inst, 'stepBigMonths') :\r\n\t\t\t\t\t\t\t+$.datepicker._get(inst, 'stepMonths')), 'M');\r\n\t\t\t\t\t\tbreak; // next month/year on page down/+ ctrl\r\n\t\t\t\tcase 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target);\r\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\r\n\t\t\t\t\t\tbreak; // clear on ctrl or command +end\r\n\t\t\t\tcase 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target);\r\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\r\n\t\t\t\t\t\tbreak; // current on ctrl or command +home\r\n\t\t\t\tcase 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');\r\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\r\n\t\t\t\t\t\t// -1 day on ctrl or command +left\r\n\t\t\t\t\t\tif (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?\r\n\t\t\t\t\t\t\t\t\t-$.datepicker._get(inst, 'stepBigMonths') :\r\n\t\t\t\t\t\t\t\t\t-$.datepicker._get(inst, 'stepMonths')), 'M');\r\n\t\t\t\t\t\t// next month/year on alt +left on Mac\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\tcase 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D');\r\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\r\n\t\t\t\t\t\tbreak; // -1 week on ctrl or command +up\r\n\t\t\t\tcase 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');\r\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\r\n\t\t\t\t\t\t// +1 day on ctrl or command +right\r\n\t\t\t\t\t\tif (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?\r\n\t\t\t\t\t\t\t\t\t+$.datepicker._get(inst, 'stepBigMonths') :\r\n\t\t\t\t\t\t\t\t\t+$.datepicker._get(inst, 'stepMonths')), 'M');\r\n\t\t\t\t\t\t// next month/year on alt +right\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\tcase 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D');\r\n\t\t\t\t\t\thandled = event.ctrlKey || event.metaKey;\r\n\t\t\t\t\t\tbreak; // +1 week on ctrl or command +down\r\n\t\t\t\tdefault: handled = false;\r\n\t\t\t}\r\n\t\telse if (event.keyCode == 36 && event.ctrlKey) // display the date picker on ctrl+home\r\n\t\t\t$.datepicker._showDatepicker(this);\r\n\t\telse {\r\n\t\t\thandled = false;\r\n\t\t}\r\n\t\tif (handled) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\t\t}\r\n\t},\r\n\r\n\t/* Filter entered characters - based on date format. */\r\n\t_doKeyPress: function(event) {\r\n\t\tvar inst = $.datepicker._getInst(event.target);\r\n\t\tif ($.datepicker._get(inst, 'constrainInput')) {\r\n\t\t\tvar chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));\r\n\t\t\tvar chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode);\r\n\t\t\treturn event.ctrlKey || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);\r\n\t\t}\r\n\t},\r\n\r\n\t/* Synchronise manual entry and field/alternate field. */\r\n\t_doKeyUp: function(event) {\r\n\t\tvar inst = $.datepicker._getInst(event.target);\r\n\t\tif (inst.input.val() != inst.lastVal) {\r\n\t\t\ttry {\r\n\t\t\t\tvar date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),\r\n\t\t\t\t\t(inst.input ? inst.input.val() : null),\r\n\t\t\t\t\t$.datepicker._getFormatConfig(inst));\r\n\t\t\t\tif (date) { // only if valid\r\n\t\t\t\t\t$.datepicker._setDateFromField(inst);\r\n\t\t\t\t\t$.datepicker._updateAlternate(inst);\r\n\t\t\t\t\t$.datepicker._updateDatepicker(inst);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tcatch (err) {\r\n\t\t\t\t$.datepicker.log(err);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/* Pop-up the date picker for a given input field.\r\n If false returned from beforeShow event handler do not show. \r\n\t @param input element - the input field attached to the date picker or\r\n\t event - if triggered by focus */\r\n\t_showDatepicker: function(input) {\r\n\t\tinput = input.target || input;\r\n\t\tif (input.nodeName.toLowerCase() != 'input') // find from button/image trigger\r\n\t\t\tinput = $('input', input.parentNode)[0];\r\n\t\tif ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) // already here\r\n\t\t\treturn;\r\n\t\tvar inst = $.datepicker._getInst(input);\r\n\t\tif ($.datepicker._curInst && $.datepicker._curInst != inst) {\r\n\t\t\t$.datepicker._curInst.dpDiv.stop(true, true);\r\n\t\t\tif ( inst && $.datepicker._datepickerShowing ) {\r\n\t\t\t\t$.datepicker._hideDatepicker( $.datepicker._curInst.input[0] );\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar beforeShow = $.datepicker._get(inst, 'beforeShow');\r\n\t\tvar beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {};\r\n\t\tif(beforeShowSettings === false){\r\n //false\r\n\t\t\treturn;\r\n\t\t}\r\n\t\textendRemove(inst.settings, beforeShowSettings);\r\n\t\tinst.lastVal = null;\r\n\t\t$.datepicker._lastInput = input;\r\n\t\t$.datepicker._setDateFromField(inst);\r\n\t\tif ($.datepicker._inDialog) // hide cursor\r\n\t\t\tinput.value = '';\r\n\t\tif (!$.datepicker._pos) { // position below input\r\n\t\t\t$.datepicker._pos = $.datepicker._findPos(input);\r\n\t\t\t$.datepicker._pos[1] += input.offsetHeight; // add the height\r\n\t\t}\r\n\t\tvar isFixed = false;\r\n\t\t$(input).parents().each(function() {\r\n\t\t\tisFixed |= $(this).css('position') == 'fixed';\r\n\t\t\treturn !isFixed;\r\n\t\t});\r\n\t\tif (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled\r\n\t\t\t$.datepicker._pos[0] -= document.documentElement.scrollLeft;\r\n\t\t\t$.datepicker._pos[1] -= document.documentElement.scrollTop;\r\n\t\t}\r\n\t\tvar offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};\r\n\t\t$.datepicker._pos = null;\r\n\t\t//to avoid flashes on Firefox\r\n\t\tinst.dpDiv.empty();\r\n\t\t// determine sizing offscreen\r\n\t\tinst.dpDiv.css({position: 'absolute', display: 'block', top: '-1000px'});\r\n\t\t$.datepicker._updateDatepicker(inst);\r\n\t\t// fix width for dynamic number of date pickers\r\n\t\t// and adjust position before showing\r\n\t\toffset = $.datepicker._checkOffset(inst, offset, isFixed);\r\n\t\tinst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?\r\n\t\t\t'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none',\r\n\t\t\tleft: offset.left + 'px', top: offset.top + 'px'});\r\n\t\tif (!inst.inline) {\r\n\t\t\tvar showAnim = $.datepicker._get(inst, 'showAnim');\r\n\t\t\tvar duration = $.datepicker._get(inst, 'duration');\r\n\t\t\tvar postProcess = function() {\r\n\t\t\t\tvar cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only\r\n\t\t\t\tif( !! cover.length ){\r\n\t\t\t\t\tvar borders = $.datepicker._getBorders(inst.dpDiv);\r\n\t\t\t\t\tcover.css({left: -borders[0], top: -borders[1],\r\n\t\t\t\t\t\twidth: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()});\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tinst.dpDiv.zIndex($(input).zIndex()+1);\r\n\t\t\t$.datepicker._datepickerShowing = true;\r\n\t\t\tif ($.effects && $.effects[showAnim])\r\n\t\t\t\tinst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);\r\n\t\t\telse\r\n\t\t\t\tinst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess);\r\n\t\t\tif (!showAnim || !duration)\r\n\t\t\t\tpostProcess();\r\n\t\t\tif (inst.input.is(':visible') && !inst.input.is(':disabled'))\r\n\t\t\t\tinst.input.focus();\r\n\t\t\t$.datepicker._curInst = inst;\r\n\t\t}\r\n\t},\r\n\r\n\t/* Generate the date picker content. */\r\n\t_updateDatepicker: function(inst) {\r\n\t\tvar self = this;\r\n\t\tself.maxRows = 4; //Reset the max number of rows being displayed (see #7043)\r\n\t\tvar borders = $.datepicker._getBorders(inst.dpDiv);\r\n\t\tinstActive = inst; // for delegate hover events\r\n\t\tinst.dpDiv.empty().append(this._generateHTML(inst));\r\n\t\tthis._attachHandlers(inst);\r\n\t\tvar cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only\r\n\t\tif( !!cover.length ){ //avoid call to outerXXXX() when not in IE6\r\n\t\t\tcover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()})\r\n\t\t}\r\n\t\tinst.dpDiv.find('.' + this._dayOverClass + ' a').mouseover();\r\n\t\tvar numMonths = this._getNumberOfMonths(inst);\r\n\t\tvar cols = numMonths[1];\r\n\t\tvar width = 17;\r\n\t\tinst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');\r\n\t\tif (cols > 1)\r\n\t\t\tinst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');\r\n\t\tinst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') +\r\n\t\t\t'Class']('ui-datepicker-multi');\r\n\t\tinst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +\r\n\t\t\t'Class']('ui-datepicker-rtl');\r\n\t\tif (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input &&\r\n\t\t\t\t// #6694 - don't focus the input if it's already focused\r\n\t\t\t\t// this breaks the change event in IE\r\n\t\t\t\tinst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)\r\n\t\t\tinst.input.focus();\r\n\t\t// deffered render of the years select (to avoid flashes on Firefox) \r\n\t\tif( inst.yearshtml ){\r\n\t\t\tvar origyearshtml = inst.yearshtml;\r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\t//assure that inst.yearshtml didn't change.\r\n\t\t\t\tif( origyearshtml === inst.yearshtml && inst.yearshtml ){\r\n\t\t\t\t\tinst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml);\r\n\t\t\t\t}\r\n\t\t\t\torigyearshtml = inst.yearshtml = null;\r\n\t\t\t}, 0);\r\n\t\t}\r\n\t},\r\n\r\n\t/* Retrieve the size of left and top borders for an element.\r\n\t @param elem (jQuery object) the element of interest\r\n\t @return (number[2]) the left and top borders */\r\n\t_getBorders: function(elem) {\r\n\t\tvar convert = function(value) {\r\n\t\t\treturn {thin: 1, medium: 2, thick: 3}[value] || value;\r\n\t\t};\r\n\t\treturn [parseFloat(convert(elem.css('border-left-width'))),\r\n\t\t\tparseFloat(convert(elem.css('border-top-width')))];\r\n\t},\r\n\r\n\t/* Check positioning to remain on screen. */\r\n\t_checkOffset: function(inst, offset, isFixed) {\r\n\t\tvar dpWidth = inst.dpDiv.outerWidth();\r\n\t\tvar dpHeight = inst.dpDiv.outerHeight();\r\n\t\tvar inputWidth = inst.input ? inst.input.outerWidth() : 0;\r\n\t\tvar inputHeight = inst.input ? inst.input.outerHeight() : 0;\r\n\t\tvar viewWidth = document.documentElement.clientWidth + (isFixed ? 0 : $(document).scrollLeft());\r\n\t\tvar viewHeight = document.documentElement.clientHeight + (isFixed ? 0 : $(document).scrollTop());\r\n\r\n\t\toffset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0);\r\n\t\toffset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;\r\n\t\toffset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;\r\n\r\n\t\t// now check if datepicker is showing outside window viewport - move to a better place if so.\r\n\t\toffset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?\r\n\t\t\tMath.abs(offset.left + dpWidth - viewWidth) : 0);\r\n\t\toffset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?\r\n\t\t\tMath.abs(dpHeight + inputHeight) : 0);\r\n\r\n\t\treturn offset;\r\n\t},\r\n\r\n\t/* Find an object's position on the screen. */\r\n\t_findPos: function(obj) {\r\n\t\tvar inst = this._getInst(obj);\r\n\t\tvar isRTL = this._get(inst, 'isRTL');\r\n while (obj && (obj.type == 'hidden' || obj.nodeType != 1 || $.expr.filters.hidden(obj))) {\r\n obj = obj[isRTL ? 'previousSibling' : 'nextSibling'];\r\n }\r\n var position = $(obj).offset();\r\n\t return [position.left, position.top];\r\n\t},\r\n\r\n\t/* Hide the date picker from view.\r\n\t @param input element - the input field attached to the date picker */\r\n\t_hideDatepicker: function(input) {\r\n\t\tvar inst = this._curInst;\r\n\t\tif (!inst || (input && inst != $.data(input, PROP_NAME)))\r\n\t\t\treturn;\r\n\t\tif (this._datepickerShowing) {\r\n\t\t\tvar showAnim = this._get(inst, 'showAnim');\r\n\t\t\tvar duration = this._get(inst, 'duration');\r\n\t\t\tvar postProcess = function() {\r\n\t\t\t\t$.datepicker._tidyDialog(inst);\r\n\t\t\t};\r\n\t\t\tif ($.effects && $.effects[showAnim])\r\n\t\t\t\tinst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);\r\n\t\t\telse\r\n\t\t\t\tinst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' :\r\n\t\t\t\t\t(showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);\r\n\t\t\tif (!showAnim)\r\n\t\t\t\tpostProcess();\r\n\t\t\tthis._datepickerShowing = false;\r\n\t\t\tvar onClose = this._get(inst, 'onClose');\r\n\t\t\tif (onClose)\r\n\t\t\t\tonClose.apply((inst.input ? inst.input[0] : null),\r\n\t\t\t\t\t[(inst.input ? inst.input.val() : ''), inst]);\r\n\t\t\tthis._lastInput = null;\r\n\t\t\tif (this._inDialog) {\r\n\t\t\t\tthis._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });\r\n\t\t\t\tif ($.blockUI) {\r\n\t\t\t\t\t$.unblockUI();\r\n\t\t\t\t\t$('body').append(this.dpDiv);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._inDialog = false;\r\n\t\t}\r\n\t},\r\n\r\n\t/* Tidy up after a dialog display. */\r\n\t_tidyDialog: function(inst) {\r\n\t\tinst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar');\r\n\t},\r\n\r\n\t/* Close date picker if clicked elsewhere. */\r\n\t_checkExternalClick: function(event) {\r\n\t\tif (!$.datepicker._curInst)\r\n\t\t\treturn;\r\n\r\n\t\tvar $target = $(event.target),\r\n\t\t\tinst = $.datepicker._getInst($target[0]);\r\n\r\n\t\tif ( ( ( $target[0].id != $.datepicker._mainDivId &&\r\n\t\t\t\t$target.parents('#' + $.datepicker._mainDivId).length == 0 &&\r\n\t\t\t\t!$target.hasClass($.datepicker.markerClassName) &&\r\n\t\t\t\t!$target.closest(\".\" + $.datepicker._triggerClass).length &&\r\n\t\t\t\t$.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI) ) ) ||\r\n\t\t\t( $target.hasClass($.datepicker.markerClassName) && $.datepicker._curInst != inst ) )\r\n\t\t\t$.datepicker._hideDatepicker();\r\n\t},\r\n\r\n\t/* Adjust one of the date sub-fields. */\r\n\t_adjustDate: function(id, offset, period) {\r\n\t\tvar target = $(id);\r\n\t\tvar inst = this._getInst(target[0]);\r\n\t\tif (this._isDisabledDatepicker(target[0])) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._adjustInstDate(inst, offset +\r\n\t\t\t(period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), // undo positioning\r\n\t\t\tperiod);\r\n\t\tthis._updateDatepicker(inst);\r\n\t},\r\n\r\n\t/* Action for current link. */\r\n\t_gotoToday: function(id) {\r\n\t\tvar target = $(id);\r\n\t\tvar inst = this._getInst(target[0]);\r\n\t\tif (this._get(inst, 'gotoCurrent') && inst.currentDay) {\r\n\t\t\tinst.selectedDay = inst.currentDay;\r\n\t\t\tinst.drawMonth = inst.selectedMonth = inst.currentMonth;\r\n\t\t\tinst.drawYear = inst.selectedYear = inst.currentYear;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvar date = new Date();\r\n\t\t\tinst.selectedDay = date.getDate();\r\n\t\t\tinst.drawMonth = inst.selectedMonth = date.getMonth();\r\n\t\t\tinst.drawYear = inst.selectedYear = date.getFullYear();\r\n\t\t}\r\n\t\tthis._notifyChange(inst);\r\n\t\tthis._adjustDate(target);\r\n\t},\r\n\r\n\t/* Action for selecting a new month/year. */\r\n\t_selectMonthYear: function(id, select, period) {\r\n\t\tvar target = $(id);\r\n\t\tvar inst = this._getInst(target[0]);\r\n\t\tinst['selected' + (period == 'M' ? 'Month' : 'Year')] =\r\n\t\tinst['draw' + (period == 'M' ? 'Month' : 'Year')] =\r\n\t\t\tparseInt(select.options[select.selectedIndex].value,10);\r\n\t\tthis._notifyChange(inst);\r\n\t\tthis._adjustDate(target);\r\n\t},\r\n\r\n\t/* Action for selecting a day. */\r\n\t_selectDay: function(id, month, year, td) {\r\n\t\tvar target = $(id);\r\n\t\tif ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar inst = this._getInst(target[0]);\r\n\t\tinst.selectedDay = inst.currentDay = $('a', td).html();\r\n\t\tinst.selectedMonth = inst.currentMonth = month;\r\n\t\tinst.selectedYear = inst.currentYear = year;\r\n\t\tthis._selectDate(id, this._formatDate(inst,\r\n\t\t\tinst.currentDay, inst.currentMonth, inst.currentYear));\r\n\t},\r\n\r\n\t/* Erase the input field and hide the date picker. */\r\n\t_clearDate: function(id) {\r\n\t\tvar target = $(id);\r\n\t\tvar inst = this._getInst(target[0]);\r\n\t\tthis._selectDate(target, '');\r\n\t},\r\n\r\n\t/* Update the input field with the selected date. */\r\n\t_selectDate: function(id, dateStr) {\r\n\t\tvar target = $(id);\r\n\t\tvar inst = this._getInst(target[0]);\r\n\t\tdateStr = (dateStr != null ? dateStr : this._formatDate(inst));\r\n\t\tif (inst.input)\r\n\t\t\tinst.input.val(dateStr);\r\n\t\tthis._updateAlternate(inst);\r\n\t\tvar onSelect = this._get(inst, 'onSelect');\r\n\t\tif (onSelect)\r\n\t\t\tonSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback\r\n\t\telse if (inst.input)\r\n\t\t\tinst.input.trigger('change'); // fire the change event\r\n\t\tif (inst.inline)\r\n\t\t\tthis._updateDatepicker(inst);\r\n\t\telse {\r\n\t\t\tthis._hideDatepicker();\r\n\t\t\tthis._lastInput = inst.input[0];\r\n\t\t\tif (typeof(inst.input[0]) != 'object')\r\n\t\t\t\tinst.input.focus(); // restore focus\r\n\t\t\tthis._lastInput = null;\r\n\t\t}\r\n\t},\r\n\r\n\t/* Update any alternate field to synchronise with the main field. */\r\n\t_updateAlternate: function(inst) {\r\n\t\tvar altField = this._get(inst, 'altField');\r\n\t\tif (altField) { // update alternate field too\r\n\t\t\tvar altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat');\r\n\t\t\tvar date = this._getDate(inst);\r\n\t\t\tvar dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));\r\n\t\t\t$(altField).each(function() { $(this).val(dateStr); });\r\n\t\t}\r\n\t},\r\n\r\n\t/* Set as beforeShowDay function to prevent selection of weekends.\r\n\t @param date Date - the date to customise\r\n\t @return [boolean, string] - is this date selectable?, what is its CSS class? */\r\n\tnoWeekends: function(date) {\r\n\t\tvar day = date.getDay();\r\n\t\treturn [(day > 0 && day < 6), ''];\r\n\t},\r\n\r\n\t/* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.\r\n\t @param date Date - the date to get the week for\r\n\t @return number - the number of the week within the year that contains this date */\r\n\tiso8601Week: function(date) {\r\n\t\tvar checkDate = new Date(date.getTime());\r\n\t\t// Find Thursday of this week starting on Monday\r\n\t\tcheckDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));\r\n\t\tvar time = checkDate.getTime();\r\n\t\tcheckDate.setMonth(0); // Compare with Jan 1\r\n\t\tcheckDate.setDate(1);\r\n\t\treturn Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;\r\n\t},\r\n\r\n\t/* Parse a string value into a date object.\r\n\t See formatDate below for the possible formats.\r\n\r\n\t @param format string - the expected format of the date\r\n\t @param value string - the date in the above format\r\n\t @param settings Object - attributes include:\r\n\t shortYearCutoff number - the cutoff year for determining the century (optional)\r\n\t dayNamesShort string[7] - abbreviated names of the days from Sunday (optional)\r\n\t dayNames string[7] - names of the days from Sunday (optional)\r\n\t monthNamesShort string[12] - abbreviated names of the months (optional)\r\n\t monthNames string[12] - names of the months (optional)\r\n\t @return Date - the extracted date value or null if value is blank */\r\n\tparseDate: function (format, value, settings) {\r\n\t\tif (format == null || value == null)\r\n\t\t\tthrow 'Invalid arguments';\r\n\t\tvalue = (typeof value == 'object' ? value.toString() : value + '');\r\n\t\tif (value == '')\r\n\t\t\treturn null;\r\n\t\tvar shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff;\r\n\t\tshortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :\r\n\t\t\t\tnew Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));\r\n\t\tvar dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;\r\n\t\tvar dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;\r\n\t\tvar monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;\r\n\t\tvar monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;\r\n\t\tvar year = -1;\r\n\t\tvar month = -1;\r\n\t\tvar day = -1;\r\n\t\tvar doy = -1;\r\n\t\tvar literal = false;\r\n\t\t// Check whether a format character is doubled\r\n\t\tvar lookAhead = function(match) {\r\n\t\t\tvar matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);\r\n\t\t\tif (matches)\r\n\t\t\t\tiFormat++;\r\n\t\t\treturn matches;\r\n\t\t};\r\n\t\t// Extract a number from the string value\r\n\t\tvar getNumber = function(match) {\r\n\t\t\tvar isDoubled = lookAhead(match);\r\n\t\t\tvar size = (match == '@' ? 14 : (match == '!' ? 20 :\r\n\t\t\t\t(match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));\r\n\t\t\tvar digits = new RegExp('^\\\\d{1,' + size + '}');\r\n\t\t\tvar num = value.substring(iValue).match(digits);\r\n\t\t\tif (!num)\r\n\t\t\t\tthrow 'Missing number at position ' + iValue;\r\n\t\t\tiValue += num[0].length;\r\n\t\t\treturn parseInt(num[0], 10);\r\n\t\t};\r\n\t\t// Extract a name from the string value and convert to an index\r\n\t\tvar getName = function(match, shortNames, longNames) {\r\n\t\t\tvar names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) {\r\n\t\t\t\treturn [ [k, v] ];\r\n\t\t\t}).sort(function (a, b) {\r\n\t\t\t\treturn -(a[1].length - b[1].length);\r\n\t\t\t});\r\n\t\t\tvar index = -1;\r\n\t\t\t$.each(names, function (i, pair) {\r\n\t\t\t\tvar name = pair[1];\r\n\t\t\t\tif (value.substr(iValue, name.length).toLowerCase() == name.toLowerCase()) {\r\n\t\t\t\t\tindex = pair[0];\r\n\t\t\t\t\tiValue += name.length;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (index != -1)\r\n\t\t\t\treturn index + 1;\r\n\t\t\telse\r\n\t\t\t\tthrow 'Unknown name at position ' + iValue;\r\n\t\t};\r\n\t\t// Confirm that a literal character matches the string value\r\n\t\tvar checkLiteral = function() {\r\n\t\t\tif (value.charAt(iValue) != format.charAt(iFormat))\r\n\t\t\t\tthrow 'Unexpected literal at position ' + iValue;\r\n\t\t\tiValue++;\r\n\t\t};\r\n\t\tvar iValue = 0;\r\n\t\tfor (var iFormat = 0; iFormat < format.length; iFormat++) {\r\n\t\t\tif (literal)\r\n\t\t\t\tif (format.charAt(iFormat) == \"'\" && !lookAhead(\"'\"))\r\n\t\t\t\t\tliteral = false;\r\n\t\t\t\telse\r\n\t\t\t\t\tcheckLiteral();\r\n\t\t\telse\r\n\t\t\t\tswitch (format.charAt(iFormat)) {\r\n\t\t\t\t\tcase 'd':\r\n\t\t\t\t\t\tday = getNumber('d');\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'D':\r\n\t\t\t\t\t\tgetName('D', dayNamesShort, dayNames);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'o':\r\n\t\t\t\t\t\tdoy = getNumber('o');\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'm':\r\n\t\t\t\t\t\tmonth = getNumber('m');\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'M':\r\n\t\t\t\t\t\tmonth = getName('M', monthNamesShort, monthNames);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'y':\r\n\t\t\t\t\t\tyear = getNumber('y');\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase '@':\r\n\t\t\t\t\t\tvar date = new Date(getNumber('@'));\r\n\t\t\t\t\t\tyear = date.getFullYear();\r\n\t\t\t\t\t\tmonth = date.getMonth() + 1;\r\n\t\t\t\t\t\tday = date.getDate();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase '!':\r\n\t\t\t\t\t\tvar date = new Date((getNumber('!') - this._ticksTo1970) / 10000);\r\n\t\t\t\t\t\tyear = date.getFullYear();\r\n\t\t\t\t\t\tmonth = date.getMonth() + 1;\r\n\t\t\t\t\t\tday = date.getDate();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"'\":\r\n\t\t\t\t\t\tif (lookAhead(\"'\"))\r\n\t\t\t\t\t\t\tcheckLiteral();\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tliteral = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tcheckLiteral();\r\n\t\t\t\t}\r\n\t\t}\r\n\t\tif (iValue < value.length){\r\n\t\t\tthrow \"Extra/unparsed characters found in date: \" + value.substring(iValue);\r\n\t\t}\r\n\t\tif (year == -1)\r\n\t\t\tyear = new Date().getFullYear();\r\n\t\telse if (year < 100)\r\n\t\t\tyear += new Date().getFullYear() - new Date().getFullYear() % 100 +\r\n\t\t\t\t(year <= shortYearCutoff ? 0 : -100);\r\n\t\tif (doy > -1) {\r\n\t\t\tmonth = 1;\r\n\t\t\tday = doy;\r\n\t\t\tdo {\r\n\t\t\t\tvar dim = this._getDaysInMonth(year, month - 1);\r\n\t\t\t\tif (day <= dim)\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tmonth++;\r\n\t\t\t\tday -= dim;\r\n\t\t\t} while (true);\r\n\t\t}\r\n\t\tvar date = this._daylightSavingAdjust(new Date(year, month - 1, day));\r\n\t\tif (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day)\r\n\t\t\tthrow 'Invalid date'; // E.g. 31/02/00\r\n\t\treturn date;\r\n\t},\r\n\r\n\t/* Standard date formats. */\r\n\tATOM: 'yy-mm-dd', // RFC 3339 (ISO 8601)\r\n\tCOOKIE: 'D, dd M yy',\r\n\tISO_8601: 'yy-mm-dd',\r\n\tRFC_822: 'D, d M y',\r\n\tRFC_850: 'DD, dd-M-y',\r\n\tRFC_1036: 'D, d M y',\r\n\tRFC_1123: 'D, d M yy',\r\n\tRFC_2822: 'D, d M yy',\r\n\tRSS: 'D, d M y', // RFC 822\r\n\tTICKS: '!',\r\n\tTIMESTAMP: '@',\r\n\tW3C: 'yy-mm-dd', // ISO 8601\r\n\r\n\t_ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) +\r\n\t\tMath.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),\r\n\r\n\t/* Format a date object into a string value.\r\n\t The format can be combinations of the following:\r\n\t d - day of month (no leading zero)\r\n\t dd - day of month (two digit)\r\n\t o - day of year (no leading zeros)\r\n\t oo - day of year (three digit)\r\n\t D - day name short\r\n\t DD - day name long\r\n\t m - month of year (no leading zero)\r\n\t mm - month of year (two digit)\r\n\t M - month name short\r\n\t MM - month name long\r\n\t y - year (two digit)\r\n\t yy - year (four digit)\r\n\t @ - Unix timestamp (ms since 01/01/1970)\r\n\t ! - Windows ticks (100ns since 01/01/0001)\r\n\t '...' - literal text\r\n\t '' - single quote\r\n\r\n\t @param format string - the desired format of the date\r\n\t @param date Date - the date value to format\r\n\t @param settings Object - attributes include:\r\n\t dayNamesShort string[7] - abbreviated names of the days from Sunday (optional)\r\n\t dayNames string[7] - names of the days from Sunday (optional)\r\n\t monthNamesShort string[12] - abbreviated names of the months (optional)\r\n\t monthNames string[12] - names of the months (optional)\r\n\t @return string - the date in the above format */\r\n\tformatDate: function (format, date, settings) {\r\n\t\tif (!date)\r\n\t\t\treturn '';\r\n\t\tvar dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;\r\n\t\tvar dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;\r\n\t\tvar monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;\r\n\t\tvar monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;\r\n\t\t// Check whether a format character is doubled\r\n\t\tvar lookAhead = function(match) {\r\n\t\t\tvar matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);\r\n\t\t\tif (matches)\r\n\t\t\t\tiFormat++;\r\n\t\t\treturn matches;\r\n\t\t};\r\n\t\t// Format a number, with leading zero if necessary\r\n\t\tvar formatNumber = function(match, value, len) {\r\n\t\t\tvar num = '' + value;\r\n\t\t\tif (lookAhead(match))\r\n\t\t\t\twhile (num.length < len)\r\n\t\t\t\t\tnum = '0' + num;\r\n\t\t\treturn num;\r\n\t\t};\r\n\t\t// Format a name, short or long as requested\r\n\t\tvar formatName = function(match, value, shortNames, longNames) {\r\n\t\t\treturn (lookAhead(match) ? longNames[value] : shortNames[value]);\r\n\t\t};\r\n\t\tvar output = '';\r\n\t\tvar literal = false;\r\n\t\tif (date)\r\n\t\t\tfor (var iFormat = 0; iFormat < format.length; iFormat++) {\r\n\t\t\t\tif (literal)\r\n\t\t\t\t\tif (format.charAt(iFormat) == \"'\" && !lookAhead(\"'\"))\r\n\t\t\t\t\t\tliteral = false;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\toutput += format.charAt(iFormat);\r\n\t\t\t\telse\r\n\t\t\t\t\tswitch (format.charAt(iFormat)) {\r\n\t\t\t\t\t\tcase 'd':\r\n\t\t\t\t\t\t\toutput += formatNumber('d', date.getDate(), 2);\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'D':\r\n\t\t\t\t\t\t\toutput += formatName('D', date.getDay(), dayNamesShort, dayNames);\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'o':\r\n\t\t\t\t\t\t\toutput += formatNumber('o',\r\n\t\t\t\t\t\t\t\tMath.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'm':\r\n\t\t\t\t\t\t\toutput += formatNumber('m', date.getMonth() + 1, 2);\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'M':\r\n\t\t\t\t\t\t\toutput += formatName('M', date.getMonth(), monthNamesShort, monthNames);\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'y':\r\n\t\t\t\t\t\t\toutput += (lookAhead('y') ? date.getFullYear() :\r\n\t\t\t\t\t\t\t\t(date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100);\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase '@':\r\n\t\t\t\t\t\t\toutput += date.getTime();\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase '!':\r\n\t\t\t\t\t\t\toutput += date.getTime() * 10000 + this._ticksTo1970;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase \"'\":\r\n\t\t\t\t\t\t\tif (lookAhead(\"'\"))\r\n\t\t\t\t\t\t\t\toutput += \"'\";\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\tliteral = true;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\toutput += format.charAt(iFormat);\r\n\t\t\t\t\t}\r\n\t\t\t}\r\n\t\treturn output;\r\n\t},\r\n\r\n\t/* Extract all possible characters from the date format. */\r\n\t_possibleChars: function (format) {\r\n\t\tvar chars = '';\r\n\t\tvar literal = false;\r\n\t\t// Check whether a format character is doubled\r\n\t\tvar lookAhead = function(match) {\r\n\t\t\tvar matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);\r\n\t\t\tif (matches)\r\n\t\t\t\tiFormat++;\r\n\t\t\treturn matches;\r\n\t\t};\r\n\t\tfor (var iFormat = 0; iFormat < format.length; iFormat++)\r\n\t\t\tif (literal)\r\n\t\t\t\tif (format.charAt(iFormat) == \"'\" && !lookAhead(\"'\"))\r\n\t\t\t\t\tliteral = false;\r\n\t\t\t\telse\r\n\t\t\t\t\tchars += format.charAt(iFormat);\r\n\t\t\telse\r\n\t\t\t\tswitch (format.charAt(iFormat)) {\r\n\t\t\t\t\tcase 'd': case 'm': case 'y': case '@':\r\n\t\t\t\t\t\tchars += '0123456789';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'D': case 'M':\r\n\t\t\t\t\t\treturn null; // Accept anything\r\n\t\t\t\t\tcase \"'\":\r\n\t\t\t\t\t\tif (lookAhead(\"'\"))\r\n\t\t\t\t\t\t\tchars += \"'\";\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tliteral = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tchars += format.charAt(iFormat);\r\n\t\t\t\t}\r\n\t\treturn chars;\r\n\t},\r\n\r\n\t/* Get a setting value, defaulting if necessary. */\r\n\t_get: function(inst, name) {\r\n\t\treturn inst.settings[name] !== undefined ?\r\n\t\t\tinst.settings[name] : this._defaults[name];\r\n\t},\r\n\r\n\t/* Parse existing date and initialise date picker. */\r\n\t_setDateFromField: function(inst, noDefault) {\r\n\t\tif (inst.input.val() == inst.lastVal) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar dateFormat = this._get(inst, 'dateFormat');\r\n\t\tvar dates = inst.lastVal = inst.input ? inst.input.val() : null;\r\n\t\tvar date, defaultDate;\r\n\t\tdate = defaultDate = this._getDefaultDate(inst);\r\n\t\tvar settings = this._getFormatConfig(inst);\r\n\t\ttry {\r\n\t\t\tdate = this.parseDate(dateFormat, dates, settings) || defaultDate;\r\n\t\t} catch (event) {\r\n\t\t\tthis.log(event);\r\n\t\t\tdates = (noDefault ? '' : dates);\r\n\t\t}\r\n\t\tinst.selectedDay = date.getDate();\r\n\t\tinst.drawMonth = inst.selectedMonth = date.getMonth();\r\n\t\tinst.drawYear = inst.selectedYear = date.getFullYear();\r\n\t\tinst.currentDay = (dates ? date.getDate() : 0);\r\n\t\tinst.currentMonth = (dates ? date.getMonth() : 0);\r\n\t\tinst.currentYear = (dates ? date.getFullYear() : 0);\r\n\t\tthis._adjustInstDate(inst);\r\n\t},\r\n\r\n\t/* Retrieve the default date shown on opening. */\r\n\t_getDefaultDate: function(inst) {\r\n\t\treturn this._restrictMinMax(inst,\r\n\t\t\tthis._determineDate(inst, this._get(inst, 'defaultDate'), new Date()));\r\n\t},\r\n\r\n\t/* A date may be specified as an exact value or a relative one. */\r\n\t_determineDate: function(inst, date, defaultDate) {\r\n\t\tvar offsetNumeric = function(offset) {\r\n\t\t\tvar date = new Date();\r\n\t\t\tdate.setDate(date.getDate() + offset);\r\n\t\t\treturn date;\r\n\t\t};\r\n\t\tvar offsetString = function(offset) {\r\n\t\t\ttry {\r\n\t\t\t\treturn $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),\r\n\t\t\t\t\toffset, $.datepicker._getFormatConfig(inst));\r\n\t\t\t}\r\n\t\t\tcatch (e) {\r\n\t\t\t\t// Ignore\r\n\t\t\t}\r\n\t\t\tvar date = (offset.toLowerCase().match(/^c/) ?\r\n\t\t\t\t$.datepicker._getDate(inst) : null) || new Date();\r\n\t\t\tvar year = date.getFullYear();\r\n\t\t\tvar month = date.getMonth();\r\n\t\t\tvar day = date.getDate();\r\n\t\t\tvar pattern = /([+-]?[0-9]+)\\s*(d|D|w|W|m|M|y|Y)?/g;\r\n\t\t\tvar matches = pattern.exec(offset);\r\n\t\t\twhile (matches) {\r\n\t\t\t\tswitch (matches[2] || 'd') {\r\n\t\t\t\t\tcase 'd' : case 'D' :\r\n\t\t\t\t\t\tday += parseInt(matches[1],10); break;\r\n\t\t\t\t\tcase 'w' : case 'W' :\r\n\t\t\t\t\t\tday += parseInt(matches[1],10) * 7; break;\r\n\t\t\t\t\tcase 'm' : case 'M' :\r\n\t\t\t\t\t\tmonth += parseInt(matches[1],10);\r\n\t\t\t\t\t\tday = Math.min(day, $.datepicker._getDaysInMonth(year, month));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'y': case 'Y' :\r\n\t\t\t\t\t\tyear += parseInt(matches[1],10);\r\n\t\t\t\t\t\tday = Math.min(day, $.datepicker._getDaysInMonth(year, month));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tmatches = pattern.exec(offset);\r\n\t\t\t}\r\n\t\t\treturn new Date(year, month, day);\r\n\t\t};\r\n\t\tvar newDate = (date == null || date === '' ? defaultDate : (typeof date == 'string' ? offsetString(date) :\r\n\t\t\t(typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime()))));\r\n\t\tnewDate = (newDate && newDate.toString() == 'Invalid Date' ? defaultDate : newDate);\r\n\t\tif (newDate) {\r\n\t\t\tnewDate.setHours(0);\r\n\t\t\tnewDate.setMinutes(0);\r\n\t\t\tnewDate.setSeconds(0);\r\n\t\t\tnewDate.setMilliseconds(0);\r\n\t\t}\r\n\t\treturn this._daylightSavingAdjust(newDate);\r\n\t},\r\n\r\n\t/* Handle switch to/from daylight saving.\r\n\t Hours may be non-zero on daylight saving cut-over:\r\n\t > 12 when midnight changeover, but then cannot generate\r\n\t midnight datetime, so jump to 1AM, otherwise reset.\r\n\t @param date (Date) the date to check\r\n\t @return (Date) the corrected date */\r\n\t_daylightSavingAdjust: function(date) {\r\n\t\tif (!date) return null;\r\n\t\tdate.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);\r\n\t\treturn date;\r\n\t},\r\n\r\n\t/* Set the date(s) directly. */\r\n\t_setDate: function(inst, date, noChange) {\r\n\t\tvar clear = !date;\r\n\t\tvar origMonth = inst.selectedMonth;\r\n\t\tvar origYear = inst.selectedYear;\r\n\t\tvar newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));\r\n\t\tinst.selectedDay = inst.currentDay = newDate.getDate();\r\n\t\tinst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();\r\n\t\tinst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();\r\n\t\tif ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange)\r\n\t\t\tthis._notifyChange(inst);\r\n\t\tthis._adjustInstDate(inst);\r\n\t\tif (inst.input) {\r\n\t\t\tinst.input.val(clear ? '' : this._formatDate(inst));\r\n\t\t}\r\n\t},\r\n\r\n\t/* Retrieve the date(s) directly. */\r\n\t_getDate: function(inst) {\r\n\t\tvar startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null :\r\n\t\t\tthis._daylightSavingAdjust(new Date(\r\n\t\t\tinst.currentYear, inst.currentMonth, inst.currentDay)));\r\n\t\t\treturn startDate;\r\n\t},\r\n\r\n\t/* Attach the onxxx handlers. These are declared statically so\r\n\t * they work with static code transformers like Caja.\r\n\t */\r\n\t_attachHandlers: function(inst) {\r\n\t\tvar stepMonths = this._get(inst, 'stepMonths');\r\n\t\tvar id = '#' + inst.id;\r\n\t\tinst.dpDiv.find('[data-handler]').map(function () {\r\n\t\t\tvar handler = {\r\n\t\t\t\tprev: function () {\r\n\t\t\t\t\twindow['DP_jQuery_' + dpuuid].datepicker._adjustDate(id, -stepMonths, 'M');\r\n\t\t\t\t},\r\n\t\t\t\tnext: function () {\r\n\t\t\t\t\twindow['DP_jQuery_' + dpuuid].datepicker._adjustDate(id, +stepMonths, 'M');\r\n\t\t\t\t},\r\n\t\t\t\thide: function () {\r\n\t\t\t\t\twindow['DP_jQuery_' + dpuuid].datepicker._hideDatepicker();\r\n\t\t\t\t},\r\n\t\t\t\ttoday: function () {\r\n\t\t\t\t\twindow['DP_jQuery_' + dpuuid].datepicker._gotoToday(id);\r\n\t\t\t\t},\r\n\t\t\t\tselectDay: function () {\r\n\t\t\t\t\twindow['DP_jQuery_' + dpuuid].datepicker._selectDay(id, +this.getAttribute('data-month'), +this.getAttribute('data-year'), this);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t},\r\n\t\t\t\tselectMonth: function () {\r\n\t\t\t\t\twindow['DP_jQuery_' + dpuuid].datepicker._selectMonthYear(id, this, 'M');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t},\r\n\t\t\t\tselectYear: function () {\r\n\t\t\t\t\twindow['DP_jQuery_' + dpuuid].datepicker._selectMonthYear(id, this, 'Y');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\t$(this).bind(this.getAttribute('data-event'), handler[this.getAttribute('data-handler')]);\r\n\t\t});\r\n\t},\r\n\t\r\n\t/* Generate the HTML for the current state of the date picker. */\r\n\t_generateHTML: function(inst) {\r\n\t\tvar today = new Date();\r\n\t\ttoday = this._daylightSavingAdjust(\r\n\t\t\tnew Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time\r\n\t\tvar isRTL = this._get(inst, 'isRTL');\r\n\t\tvar showButtonPanel = this._get(inst, 'showButtonPanel');\r\n\t\tvar hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext');\r\n\t\tvar navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat');\r\n\t\tvar numMonths = this._getNumberOfMonths(inst);\r\n\t\tvar showCurrentAtPos = this._get(inst, 'showCurrentAtPos');\r\n\t\tvar stepMonths = this._get(inst, 'stepMonths');\r\n\t\tvar isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1);\r\n\t\tvar currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :\r\n\t\t\tnew Date(inst.currentYear, inst.currentMonth, inst.currentDay)));\r\n\t\tvar minDate = this._getMinMaxDate(inst, 'min');\r\n\t\tvar maxDate = this._getMinMaxDate(inst, 'max');\r\n\t\tvar drawMonth = inst.drawMonth - showCurrentAtPos;\r\n\t\tvar drawYear = inst.drawYear;\r\n\t\tif (drawMonth < 0) {\r\n\t\t\tdrawMonth += 12;\r\n\t\t\tdrawYear--;\r\n\t\t}\r\n\t\tif (maxDate) {\r\n\t\t\tvar maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(),\r\n\t\t\t\tmaxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate()));\r\n\t\t\tmaxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);\r\n\t\t\twhile (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {\r\n\t\t\t\tdrawMonth--;\r\n\t\t\t\tif (drawMonth < 0) {\r\n\t\t\t\t\tdrawMonth = 11;\r\n\t\t\t\t\tdrawYear--;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tinst.drawMonth = drawMonth;\r\n\t\tinst.drawYear = drawYear;\r\n\t\tvar prevText = this._get(inst, 'prevText');\r\n\t\tprevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText,\r\n\t\t\tthis._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),\r\n\t\t\tthis._getFormatConfig(inst)));\r\n\t\tvar prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?\r\n\t\t\t'' + prevText + '' :\r\n\t\t\t(hideIfNoPrevNext ? '' : '' + prevText + ''));\r\n\t\tvar nextText = this._get(inst, 'nextText');\r\n\t\tnextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,\r\n\t\t\tthis._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),\r\n\t\t\tthis._getFormatConfig(inst)));\r\n\t\tvar next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?\r\n\t\t\t'' + nextText + '' :\r\n\t\t\t(hideIfNoPrevNext ? '' : '' + nextText + ''));\r\n\t\tvar currentText = this._get(inst, 'currentText');\r\n\t\tvar gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today);\r\n\t\tcurrentText = (!navigationAsDateFormat ? currentText :\r\n\t\t\tthis.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));\r\n\t\tvar controls = (!inst.inline ? '' : '');\r\n\t\tvar buttonPanel = (showButtonPanel) ? '
    ' + (isRTL ? controls : '') +\r\n\t\t\t(this._isInRange(inst, gotoDate) ? '' : '') + (isRTL ? '' : controls) + '
    ' : '';\r\n\t\tvar firstDay = parseInt(this._get(inst, 'firstDay'),10);\r\n\t\tfirstDay = (isNaN(firstDay) ? 0 : firstDay);\r\n\t\tvar showWeek = this._get(inst, 'showWeek');\r\n\t\tvar dayNames = this._get(inst, 'dayNames');\r\n\t\tvar dayNamesShort = this._get(inst, 'dayNamesShort');\r\n\t\tvar dayNamesMin = this._get(inst, 'dayNamesMin');\r\n\t\tvar monthNames = this._get(inst, 'monthNames');\r\n\t\tvar monthNamesShort = this._get(inst, 'monthNamesShort');\r\n\t\tvar beforeShowDay = this._get(inst, 'beforeShowDay');\r\n\t\tvar showOtherMonths = this._get(inst, 'showOtherMonths');\r\n\t\tvar selectOtherMonths = this._get(inst, 'selectOtherMonths');\r\n\t\tvar calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week;\r\n\t\tvar defaultDate = this._getDefaultDate(inst);\r\n\t\tvar html = '';\r\n\t\tfor (var row = 0; row < numMonths[0]; row++) {\r\n\t\t\tvar group = '';\r\n\t\t\tthis.maxRows = 4;\r\n\t\t\tfor (var col = 0; col < numMonths[1]; col++) {\r\n\t\t\t\tvar selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));\r\n\t\t\t\tvar cornerClass = ' ui-corner-all';\r\n\t\t\t\tvar calender = '';\r\n\t\t\t\tif (isMultiMonth) {\r\n\t\t\t\t\tcalender += '
    1)\r\n\t\t\t\t\t\tswitch (col) {\r\n\t\t\t\t\t\t\tcase 0: calender += ' ui-datepicker-group-first';\r\n\t\t\t\t\t\t\t\tcornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left'); break;\r\n\t\t\t\t\t\t\tcase numMonths[1]-1: calender += ' ui-datepicker-group-last';\r\n\t\t\t\t\t\t\t\tcornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right'); break;\r\n\t\t\t\t\t\t\tdefault: calender += ' ui-datepicker-group-middle'; cornerClass = ''; break;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tcalender += '\">';\r\n\t\t\t\t}\r\n\t\t\t\tcalender += '
    ' +\r\n\t\t\t\t\t(/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') +\r\n\t\t\t\t\t(/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') +\r\n\t\t\t\t\tthis._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate,\r\n\t\t\t\t\trow > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers\r\n\t\t\t\t\t'
    ' +\r\n\t\t\t\t\t'';\r\n\t\t\t\tvar thead = (showWeek ? '' : '');\r\n\t\t\t\tfor (var dow = 0; dow < 7; dow++) { // days of the week\r\n\t\t\t\t\tvar day = (dow + firstDay) % 7;\r\n\t\t\t\t\tthead += '= 5 ? ' class=\"ui-datepicker-week-end\"' : '') + '>' +\r\n\t\t\t\t\t\t'' + dayNamesMin[day] + '';\r\n\t\t\t\t}\r\n\t\t\t\tcalender += thead + '';\r\n\t\t\t\tvar daysInMonth = this._getDaysInMonth(drawYear, drawMonth);\r\n\t\t\t\tif (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)\r\n\t\t\t\t\tinst.selectedDay = Math.min(inst.selectedDay, daysInMonth);\r\n\t\t\t\tvar leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;\r\n\t\t\t\tvar curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate\r\n\t\t\t\tvar numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043)\r\n\t\t\t\tthis.maxRows = numRows;\r\n\t\t\t\tvar printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));\r\n\t\t\t\tfor (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows\r\n\t\t\t\t\tcalender += '';\r\n\t\t\t\t\tvar tbody = (!showWeek ? '' : '');\r\n\t\t\t\t\tfor (var dow = 0; dow < 7; dow++) { // create date picker days\r\n\t\t\t\t\t\tvar daySettings = (beforeShowDay ?\r\n\t\t\t\t\t\t\tbeforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']);\r\n\t\t\t\t\t\tvar otherMonth = (printDate.getMonth() != drawMonth);\r\n\t\t\t\t\t\tvar unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] ||\r\n\t\t\t\t\t\t\t(minDate && printDate < minDate) || (maxDate && printDate > maxDate);\r\n\t\t\t\t\t\ttbody += ''; // display selectable date\r\n\t\t\t\t\t\tprintDate.setDate(printDate.getDate() + 1);\r\n\t\t\t\t\t\tprintDate = this._daylightSavingAdjust(printDate);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcalender += tbody + '';\r\n\t\t\t\t}\r\n\t\t\t\tdrawMonth++;\r\n\t\t\t\tif (drawMonth > 11) {\r\n\t\t\t\t\tdrawMonth = 0;\r\n\t\t\t\t\tdrawYear++;\r\n\t\t\t\t}\r\n\t\t\t\tcalender += '
    ' + this._get(inst, 'weekHeader') + '
    ' +\r\n\t\t\t\t\t\tthis._get(inst, 'calculateWeek')(printDate) + '= 5 ? ' ui-datepicker-week-end' : '') + // highlight weekends\r\n\t\t\t\t\t\t\t(otherMonth ? ' ui-datepicker-other-month' : '') + // highlight days from other months\r\n\t\t\t\t\t\t\t((printDate.getTime() == selectedDate.getTime() && drawMonth == inst.selectedMonth && inst._keyEvent) || // user pressed key\r\n\t\t\t\t\t\t\t(defaultDate.getTime() == printDate.getTime() && defaultDate.getTime() == selectedDate.getTime()) ?\r\n\t\t\t\t\t\t\t// or defaultDate is current printedDate and defaultDate is selectedDate\r\n\t\t\t\t\t\t\t' ' + this._dayOverClass : '') + // highlight selected day\r\n\t\t\t\t\t\t\t(unselectable ? ' ' + this._unselectableClass + ' ui-state-disabled': '') + // highlight unselectable days\r\n\t\t\t\t\t\t\t(otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] + // highlight custom dates\r\n\t\t\t\t\t\t\t(printDate.getTime() == currentDate.getTime() ? ' ' + this._currentClass : '') + // highlight selected day\r\n\t\t\t\t\t\t\t(printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '\"' + // highlight today (if different)\r\n\t\t\t\t\t\t\t((!otherMonth || showOtherMonths) && daySettings[2] ? ' title=\"' + daySettings[2] + '\"' : '') + // cell title\r\n\t\t\t\t\t\t\t(unselectable ? '' : ' data-handler=\"selectDay\" data-event=\"click\" data-month=\"' + printDate.getMonth() + '\" data-year=\"' + printDate.getFullYear() + '\"') + '>' + // actions\r\n\t\t\t\t\t\t\t(otherMonth && !showOtherMonths ? ' ' : // display for other months\r\n\t\t\t\t\t\t\t(unselectable ? '' + printDate.getDate() + '' : '' + printDate.getDate() + '')) + '
    ' + (isMultiMonth ? '
    ' + \r\n\t\t\t\t\t\t\t((numMonths[0] > 0 && col == numMonths[1]-1) ? '
    ' : '') : '');\r\n\t\t\t\tgroup += calender;\r\n\t\t\t}\r\n\t\t\thtml += group;\r\n\t\t}\r\n\t\thtml += buttonPanel + ($.browser.msie && parseInt($.browser.version,10) < 7 && !inst.inline ?\r\n\t\t\t'' : '');\r\n\t\tinst._keyEvent = false;\r\n\t\treturn html;\r\n\t},\r\n\r\n\t/* Generate the month and year header. */\r\n\t_generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,\r\n\t\t\tsecondary, monthNames, monthNamesShort) {\r\n\t\tvar changeMonth = this._get(inst, 'changeMonth');\r\n\t\tvar changeYear = this._get(inst, 'changeYear');\r\n\t\tvar showMonthAfterYear = this._get(inst, 'showMonthAfterYear');\r\n\t\tvar html = '
    ';\r\n\t\tvar monthHtml = '';\r\n\t\t// month selection\r\n\t\tif (secondary || !changeMonth)\r\n\t\t\tmonthHtml += '' + monthNames[drawMonth] + '';\r\n\t\telse {\r\n\t\t\tvar inMinYear = (minDate && minDate.getFullYear() == drawYear);\r\n\t\t\tvar inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);\r\n\t\t\tmonthHtml += '';\r\n\t\t}\r\n\t\tif (!showMonthAfterYear)\r\n\t\t\thtml += monthHtml + (secondary || !(changeMonth && changeYear) ? ' ' : '');\r\n\t\t// year selection\r\n\t\tif ( !inst.yearshtml ) {\r\n\t\t\tinst.yearshtml = '';\r\n\t\t\tif (secondary || !changeYear)\r\n\t\t\t\thtml += '' + drawYear + '';\r\n\t\t\telse {\r\n\t\t\t\t// determine range of years to display\r\n\t\t\t\tvar years = this._get(inst, 'yearRange').split(':');\r\n\t\t\t\tvar thisYear = new Date().getFullYear();\r\n\t\t\t\tvar determineYear = function(value) {\r\n\t\t\t\t\tvar year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) :\r\n\t\t\t\t\t\t(value.match(/[+-].*/) ? thisYear + parseInt(value, 10) :\r\n\t\t\t\t\t\tparseInt(value, 10)));\r\n\t\t\t\t\treturn (isNaN(year) ? thisYear : year);\r\n\t\t\t\t};\r\n\t\t\t\tvar year = determineYear(years[0]);\r\n\t\t\t\tvar endYear = Math.max(year, determineYear(years[1] || ''));\r\n\t\t\t\tyear = (minDate ? Math.max(year, minDate.getFullYear()) : year);\r\n\t\t\t\tendYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);\r\n\t\t\t\tinst.yearshtml += '';\r\n\t\t\t\t\r\n\t\t\t\thtml += inst.yearshtml;\r\n\t\t\t\tinst.yearshtml = null;\r\n\t\t\t}\r\n\t\t}\r\n\t\thtml += this._get(inst, 'yearSuffix');\r\n\t\tif (showMonthAfterYear)\r\n\t\t\thtml += (secondary || !(changeMonth && changeYear) ? ' ' : '') + monthHtml;\r\n\t\thtml += '
    '; // Close datepicker_header\r\n\t\treturn html;\r\n\t},\r\n\r\n\t/* Adjust one of the date sub-fields. */\r\n\t_adjustInstDate: function(inst, offset, period) {\r\n\t\tvar year = inst.drawYear + (period == 'Y' ? offset : 0);\r\n\t\tvar month = inst.drawMonth + (period == 'M' ? offset : 0);\r\n\t\tvar day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) +\r\n\t\t\t(period == 'D' ? offset : 0);\r\n\t\tvar date = this._restrictMinMax(inst,\r\n\t\t\tthis._daylightSavingAdjust(new Date(year, month, day)));\r\n\t\tinst.selectedDay = date.getDate();\r\n\t\tinst.drawMonth = inst.selectedMonth = date.getMonth();\r\n\t\tinst.drawYear = inst.selectedYear = date.getFullYear();\r\n\t\tif (period == 'M' || period == 'Y')\r\n\t\t\tthis._notifyChange(inst);\r\n\t},\r\n\r\n\t/* Ensure a date is within any min/max bounds. */\r\n\t_restrictMinMax: function(inst, date) {\r\n\t\tvar minDate = this._getMinMaxDate(inst, 'min');\r\n\t\tvar maxDate = this._getMinMaxDate(inst, 'max');\r\n\t\tvar newDate = (minDate && date < minDate ? minDate : date);\r\n\t\tnewDate = (maxDate && newDate > maxDate ? maxDate : newDate);\r\n\t\treturn newDate;\r\n\t},\r\n\r\n\t/* Notify change of month/year. */\r\n\t_notifyChange: function(inst) {\r\n\t\tvar onChange = this._get(inst, 'onChangeMonthYear');\r\n\t\tif (onChange)\r\n\t\t\tonChange.apply((inst.input ? inst.input[0] : null),\r\n\t\t\t\t[inst.selectedYear, inst.selectedMonth + 1, inst]);\r\n\t},\r\n\r\n\t/* Determine the number of months to show. */\r\n\t_getNumberOfMonths: function(inst) {\r\n\t\tvar numMonths = this._get(inst, 'numberOfMonths');\r\n\t\treturn (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths));\r\n\t},\r\n\r\n\t/* Determine the current maximum date - ensure no time components are set. */\r\n\t_getMinMaxDate: function(inst, minMax) {\r\n\t\treturn this._determineDate(inst, this._get(inst, minMax + 'Date'), null);\r\n\t},\r\n\r\n\t/* Find the number of days in a given month. */\r\n\t_getDaysInMonth: function(year, month) {\r\n\t\treturn 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();\r\n\t},\r\n\r\n\t/* Find the day of the week of the first of a month. */\r\n\t_getFirstDayOfMonth: function(year, month) {\r\n\t\treturn new Date(year, month, 1).getDay();\r\n\t},\r\n\r\n\t/* Determines if we should allow a \"next/prev\" month display change. */\r\n\t_canAdjustMonth: function(inst, offset, curYear, curMonth) {\r\n\t\tvar numMonths = this._getNumberOfMonths(inst);\r\n\t\tvar date = this._daylightSavingAdjust(new Date(curYear,\r\n\t\t\tcurMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));\r\n\t\tif (offset < 0)\r\n\t\t\tdate.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));\r\n\t\treturn this._isInRange(inst, date);\r\n\t},\r\n\r\n\t/* Is the given date in the accepted range? */\r\n\t_isInRange: function(inst, date) {\r\n\t\tvar minDate = this._getMinMaxDate(inst, 'min');\r\n\t\tvar maxDate = this._getMinMaxDate(inst, 'max');\r\n\t\treturn ((!minDate || date.getTime() >= minDate.getTime()) &&\r\n\t\t\t(!maxDate || date.getTime() <= maxDate.getTime()));\r\n\t},\r\n\r\n\t/* Provide the configuration settings for formatting/parsing. */\r\n\t_getFormatConfig: function(inst) {\r\n\t\tvar shortYearCutoff = this._get(inst, 'shortYearCutoff');\r\n\t\tshortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :\r\n\t\t\tnew Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));\r\n\t\treturn {shortYearCutoff: shortYearCutoff,\r\n\t\t\tdayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'),\r\n\t\t\tmonthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')};\r\n\t},\r\n\r\n\t/* Format the given date for display. */\r\n\t_formatDate: function(inst, day, month, year) {\r\n\t\tif (!day) {\r\n\t\t\tinst.currentDay = inst.selectedDay;\r\n\t\t\tinst.currentMonth = inst.selectedMonth;\r\n\t\t\tinst.currentYear = inst.selectedYear;\r\n\t\t}\r\n\t\tvar date = (day ? (typeof day == 'object' ? day :\r\n\t\t\tthis._daylightSavingAdjust(new Date(year, month, day))) :\r\n\t\t\tthis._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));\r\n\t\treturn this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst));\r\n\t}\r\n});\r\n\r\n/*\r\n * Bind hover events for datepicker elements.\r\n * Done via delegate so the binding only occurs once in the lifetime of the parent div.\r\n * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.\r\n */ \r\nfunction bindHover(dpDiv) {\r\n\tvar selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';\r\n\treturn dpDiv.bind('mouseout', function(event) {\r\n\t\t\tvar elem = $( event.target ).closest( selector );\r\n\t\t\tif ( !elem.length ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\telem.removeClass( \"ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover\" );\r\n\t\t})\r\n\t\t.bind('mouseover', function(event) {\r\n\t\t\tvar elem = $( event.target ).closest( selector );\r\n\t\t\tif ($.datepicker._isDisabledDatepicker( instActive.inline ? dpDiv.parent()[0] : instActive.input[0]) ||\r\n\t\t\t\t\t!elem.length ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\telem.parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');\r\n\t\t\telem.addClass('ui-state-hover');\r\n\t\t\tif (elem.hasClass('ui-datepicker-prev')) elem.addClass('ui-datepicker-prev-hover');\r\n\t\t\tif (elem.hasClass('ui-datepicker-next')) elem.addClass('ui-datepicker-next-hover');\r\n\t\t});\r\n}\r\n\r\n/* jQuery extend now ignores nulls! */\r\nfunction extendRemove(target, props) {\r\n\t$.extend(target, props);\r\n\tfor (var name in props)\r\n\t\tif (props[name] == null || props[name] == undefined)\r\n\t\t\ttarget[name] = props[name];\r\n\treturn target;\r\n};\r\n\r\n/* Determine whether an object is an array. */\r\nfunction isArray(a) {\r\n\treturn (a && (($.browser.safari && typeof a == 'object' && a.length) ||\r\n\t\t(a.constructor && a.constructor.toString().match(/\\Array\\(\\)/))));\r\n};\r\n\r\n/* Invoke the datepicker functionality.\r\n @param options string - a command, optionally followed by additional parameters or\r\n Object - settings for attaching new datepicker functionality\r\n @return jQuery object */\r\n$.fn.datepicker = function(options){\r\n\t\r\n\t/* Verify an empty collection wasn't passed - Fixes #6976 */\r\n\tif ( !this.length ) {\r\n\t\treturn this;\r\n\t}\r\n\t\r\n\t/* Initialise the date picker. */\r\n\tif (!$.datepicker.initialized) {\r\n\t\t$(document).mousedown($.datepicker._checkExternalClick).\r\n\t\t\tfind('body').append($.datepicker.dpDiv);\r\n\t\t$.datepicker.initialized = true;\r\n\t}\r\n\r\n\tvar otherArgs = Array.prototype.slice.call(arguments, 1);\r\n\tif (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget'))\r\n\t\treturn $.datepicker['_' + options + 'Datepicker'].\r\n\t\t\tapply($.datepicker, [this[0]].concat(otherArgs));\r\n\tif (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')\r\n\t\treturn $.datepicker['_' + options + 'Datepicker'].\r\n\t\t\tapply($.datepicker, [this[0]].concat(otherArgs));\r\n\treturn this.each(function() {\r\n\t\ttypeof options == 'string' ?\r\n\t\t\t$.datepicker['_' + options + 'Datepicker'].\r\n\t\t\t\tapply($.datepicker, [this].concat(otherArgs)) :\r\n\t\t\t$.datepicker._attachDatepicker(this, options);\r\n\t});\r\n};\r\n\r\n$.datepicker = new Datepicker(); // singleton instance\r\n$.datepicker.initialized = false;\r\n$.datepicker.uuid = new Date().getTime();\r\n$.datepicker.version = \"1.8.22\";\r\n\r\n// Workaround for #4055\r\n// Add another global to avoid noConflict issues with inline event handlers\r\nwindow['DP_jQuery_' + dpuuid] = $;\r\n\r\n})(jQuery);\r\n\r\n(function( $, undefined ) {\r\n\r\nvar uiDialogClasses =\r\n\t\t'ui-dialog ' +\r\n\t\t'ui-widget ' +\r\n\t\t'ui-widget-content ' +\r\n\t\t'ui-corner-all ',\r\n\tsizeRelatedOptions = {\r\n\t\tbuttons: true,\r\n\t\theight: true,\r\n\t\tmaxHeight: true,\r\n\t\tmaxWidth: true,\r\n\t\tminHeight: true,\r\n\t\tminWidth: true,\r\n\t\twidth: true\r\n\t},\r\n\tresizableRelatedOptions = {\r\n\t\tmaxHeight: true,\r\n\t\tmaxWidth: true,\r\n\t\tminHeight: true,\r\n\t\tminWidth: true\r\n\t},\r\n\t// support for jQuery 1.3.2 - handle common attrFn methods for dialog\r\n\tattrFn = $.attrFn || {\r\n\t\tval: true,\r\n\t\tcss: true,\r\n\t\thtml: true,\r\n\t\ttext: true,\r\n\t\tdata: true,\r\n\t\twidth: true,\r\n\t\theight: true,\r\n\t\toffset: true,\r\n\t\tclick: true\r\n\t};\r\n\r\n$.widget(\"ui.dialog\", {\r\n\toptions: {\r\n\t\tautoOpen: true,\r\n\t\tbuttons: {},\r\n\t\tcloseOnEscape: true,\r\n\t\tcloseText: 'close',\r\n\t\tdialogClass: '',\r\n\t\tdraggable: true,\r\n\t\thide: null,\r\n\t\theight: 'auto',\r\n\t\tmaxHeight: false,\r\n\t\tmaxWidth: false,\r\n\t\tminHeight: 150,\r\n\t\tminWidth: 150,\r\n\t\tmodal: false,\r\n\t\tposition: {\r\n\t\t\tmy: 'center',\r\n\t\t\tat: 'center',\r\n\t\t\tcollision: 'fit',\r\n\t\t\t// ensure that the titlebar is never outside the document\r\n\t\t\tusing: function(pos) {\r\n\t\t\t\tvar topOffset = $(this).css(pos).offset().top;\r\n\t\t\t\tif (topOffset < 0) {\r\n\t\t\t\t\t$(this).css('top', pos.top - topOffset);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tresizable: true,\r\n\t\tshow: null,\r\n\t\tstack: true,\r\n\t\ttitle: '',\r\n\t\twidth: 300,\r\n\t\tzIndex: 1000\r\n\t},\r\n\r\n\t_create: function() {\r\n\t\tthis.originalTitle = this.element.attr('title');\r\n\t\t// #5742 - .attr() might return a DOMElement\r\n\t\tif ( typeof this.originalTitle !== \"string\" ) {\r\n\t\t\tthis.originalTitle = \"\";\r\n\t\t}\r\n\r\n\t\tthis.options.title = this.options.title || this.originalTitle;\r\n\t\tvar self = this,\r\n\t\t\toptions = self.options,\r\n\r\n\t\t\ttitle = options.title || ' ',\r\n\t\t\ttitleId = $.ui.dialog.getTitleId(self.element),\r\n\r\n\t\t\tuiDialog = (self.uiDialog = $('
    '))\r\n\t\t\t\t.appendTo(document.body)\r\n\t\t\t\t.hide()\r\n\t\t\t\t.addClass(uiDialogClasses + options.dialogClass)\r\n\t\t\t\t.css({\r\n\t\t\t\t\tzIndex: options.zIndex\r\n\t\t\t\t})\r\n\t\t\t\t// setting tabIndex makes the div focusable\r\n\t\t\t\t// setting outline to 0 prevents a border on focus in Mozilla\r\n\t\t\t\t.attr('tabIndex', -1).css('outline', 0).keydown(function(event) {\r\n\t\t\t\t\tif (options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&\r\n\t\t\t\t\t\tevent.keyCode === $.ui.keyCode.ESCAPE) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tself.close(event);\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.attr({\r\n\t\t\t\t\trole: 'dialog',\r\n\t\t\t\t\t'aria-labelledby': titleId\r\n\t\t\t\t})\r\n\t\t\t\t.mousedown(function(event) {\r\n\t\t\t\t\tself.moveToTop(false, event);\r\n\t\t\t\t}),\r\n\r\n\t\t\tuiDialogContent = self.element\r\n\t\t\t\t.show()\r\n\t\t\t\t.removeAttr('title')\r\n\t\t\t\t.addClass(\r\n\t\t\t\t\t'ui-dialog-content ' +\r\n\t\t\t\t\t'ui-widget-content')\r\n\t\t\t\t.appendTo(uiDialog),\r\n\r\n\t\t\tuiDialogTitlebar = (self.uiDialogTitlebar = $('
    '))\r\n\t\t\t\t.addClass(\r\n\t\t\t\t\t'ui-dialog-titlebar ' +\r\n\t\t\t\t\t'ui-widget-header ' +\r\n\t\t\t\t\t'ui-corner-all ' +\r\n\t\t\t\t\t'ui-helper-clearfix'\r\n\t\t\t\t)\r\n\t\t\t\t.prependTo(uiDialog),\r\n\r\n\t\t\tuiDialogTitlebarClose = $('')\r\n\t\t\t\t.addClass(\r\n\t\t\t\t\t'ui-dialog-titlebar-close ' +\r\n\t\t\t\t\t'ui-corner-all'\r\n\t\t\t\t)\r\n\t\t\t\t.attr('role', 'button')\r\n\t\t\t\t.hover(\r\n\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\tuiDialogTitlebarClose.addClass('ui-state-hover');\r\n\t\t\t\t\t},\r\n\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\tuiDialogTitlebarClose.removeClass('ui-state-hover');\r\n\t\t\t\t\t}\r\n\t\t\t\t)\r\n\t\t\t\t.focus(function() {\r\n\t\t\t\t\tuiDialogTitlebarClose.addClass('ui-state-focus');\r\n\t\t\t\t})\r\n\t\t\t\t.blur(function() {\r\n\t\t\t\t\tuiDialogTitlebarClose.removeClass('ui-state-focus');\r\n\t\t\t\t})\r\n\t\t\t\t.click(function(event) {\r\n\t\t\t\t\tself.close(event);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t})\r\n\t\t\t\t.appendTo(uiDialogTitlebar),\r\n\r\n\t\t\tuiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $(''))\r\n\t\t\t\t.addClass(\r\n\t\t\t\t\t'ui-icon ' +\r\n\t\t\t\t\t'ui-icon-closethick'\r\n\t\t\t\t)\r\n\t\t\t\t.text(options.closeText)\r\n\t\t\t\t.appendTo(uiDialogTitlebarClose),\r\n\r\n\t\t\tuiDialogTitle = $('')\r\n\t\t\t\t.addClass('ui-dialog-title')\r\n\t\t\t\t.attr('id', titleId)\r\n\t\t\t\t.html(title)\r\n\t\t\t\t.prependTo(uiDialogTitlebar);\r\n\r\n\t\t//handling of deprecated beforeclose (vs beforeClose) option\r\n\t\t//Ticket #4669 http://dev.jqueryui.com/ticket/4669\r\n\t\t//TODO: remove in 1.9pre\r\n\t\tif ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) {\r\n\t\t\toptions.beforeClose = options.beforeclose;\r\n\t\t}\r\n\r\n\t\tuiDialogTitlebar.find(\"*\").add(uiDialogTitlebar).disableSelection();\r\n\r\n\t\tif (options.draggable && $.fn.draggable) {\r\n\t\t\tself._makeDraggable();\r\n\t\t}\r\n\t\tif (options.resizable && $.fn.resizable) {\r\n\t\t\tself._makeResizable();\r\n\t\t}\r\n\r\n\t\tself._createButtons(options.buttons);\r\n\t\tself._isOpen = false;\r\n\r\n\t\tif ($.fn.bgiframe) {\r\n\t\t\tuiDialog.bgiframe();\r\n\t\t}\r\n\t},\r\n\r\n\t_init: function() {\r\n\t\tif ( this.options.autoOpen ) {\r\n\t\t\tthis.open();\r\n\t\t}\r\n\t},\r\n\r\n\tdestroy: function() {\r\n\t\tvar self = this;\r\n\t\t\r\n\t\tif (self.overlay) {\r\n\t\t\tself.overlay.destroy();\r\n\t\t}\r\n\t\tself.uiDialog.hide();\r\n\t\tself.element\r\n\t\t\t.unbind('.dialog')\r\n\t\t\t.removeData('dialog')\r\n\t\t\t.removeClass('ui-dialog-content ui-widget-content')\r\n\t\t\t.hide().appendTo('body');\r\n\t\tself.uiDialog.remove();\r\n\r\n\t\tif (self.originalTitle) {\r\n\t\t\tself.element.attr('title', self.originalTitle);\r\n\t\t}\r\n\r\n\t\treturn self;\r\n\t},\r\n\r\n\twidget: function() {\r\n\t\treturn this.uiDialog;\r\n\t},\r\n\r\n\tclose: function(event) {\r\n\t\tvar self = this,\r\n\t\t\tmaxZ, thisZ;\r\n\t\t\r\n\t\tif (false === self._trigger('beforeClose', event)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (self.overlay) {\r\n\t\t\tself.overlay.destroy();\r\n\t\t}\r\n\t\tself.uiDialog.unbind('keypress.ui-dialog');\r\n\r\n\t\tself._isOpen = false;\r\n\r\n\t\tif (self.options.hide) {\r\n\t\t\tself.uiDialog.hide(self.options.hide, function() {\r\n\t\t\t\tself._trigger('close', event);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tself.uiDialog.hide();\r\n\t\t\tself._trigger('close', event);\r\n\t\t}\r\n\r\n\t\t$.ui.dialog.overlay.resize();\r\n\r\n\t\t// adjust the maxZ to allow other modal dialogs to continue to work (see #4309)\r\n\t\tif (self.options.modal) {\r\n\t\t\tmaxZ = 0;\r\n\t\t\t$('.ui-dialog').each(function() {\r\n\t\t\t\tif (this !== self.uiDialog[0]) {\r\n\t\t\t\t\tthisZ = $(this).css('z-index');\r\n\t\t\t\t\tif(!isNaN(thisZ)) {\r\n\t\t\t\t\t\tmaxZ = Math.max(maxZ, thisZ);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t$.ui.dialog.maxZ = maxZ;\r\n\t\t}\r\n\r\n\t\treturn self;\r\n\t},\r\n\r\n\tisOpen: function() {\r\n\t\treturn this._isOpen;\r\n\t},\r\n\r\n\t// the force parameter allows us to move modal dialogs to their correct\r\n\t// position on open\r\n\tmoveToTop: function(force, event) {\r\n\t\tvar self = this,\r\n\t\t\toptions = self.options,\r\n\t\t\tsaveScroll;\r\n\r\n\t\tif ((options.modal && !force) ||\r\n\t\t\t(!options.stack && !options.modal)) {\r\n\t\t\treturn self._trigger('focus', event);\r\n\t\t}\r\n\r\n\t\tif (options.zIndex > $.ui.dialog.maxZ) {\r\n\t\t\t$.ui.dialog.maxZ = options.zIndex;\r\n\t\t}\r\n\t\tif (self.overlay) {\r\n\t\t\t$.ui.dialog.maxZ += 1;\r\n\t\t\tself.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ);\r\n\t\t}\r\n\r\n\t\t//Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed.\r\n\t\t// http://ui.jquery.com/bugs/ticket/3193\r\n\t\tsaveScroll = { scrollTop: self.element.scrollTop(), scrollLeft: self.element.scrollLeft() };\r\n\t\t$.ui.dialog.maxZ += 1;\r\n\t\tself.uiDialog.css('z-index', $.ui.dialog.maxZ);\r\n\t\tself.element.attr(saveScroll);\r\n\t\tself._trigger('focus', event);\r\n\r\n\t\treturn self;\r\n\t},\r\n\r\n\topen: function() {\r\n\t\tif (this._isOpen) { return; }\r\n\r\n\t\tvar self = this,\r\n\t\t\toptions = self.options,\r\n\t\t\tuiDialog = self.uiDialog;\r\n\r\n\t\tself.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;\r\n\t\tself._size();\r\n\t\tself._position(options.position);\r\n\t\tuiDialog.show(options.show);\r\n\t\tself.moveToTop(true);\r\n\r\n\t\t// prevent tabbing out of modal dialogs\r\n\t\tif ( options.modal ) {\r\n\t\t\tuiDialog.bind( \"keydown.ui-dialog\", function( event ) {\r\n\t\t\t\tif ( event.keyCode !== $.ui.keyCode.TAB ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar tabbables = $(':tabbable', this),\r\n\t\t\t\t\tfirst = tabbables.filter(':first'),\r\n\t\t\t\t\tlast = tabbables.filter(':last');\r\n\r\n\t\t\t\tif (event.target === last[0] && !event.shiftKey) {\r\n\t\t\t\t\tfirst.focus(1);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t} else if (event.target === first[0] && event.shiftKey) {\r\n\t\t\t\t\tlast.focus(1);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// set focus to the first tabbable element in the content area or the first button\r\n\t\t// if there are no tabbable elements, set focus on the dialog itself\r\n\t\t$(self.element.find(':tabbable').get().concat(\r\n\t\t\tuiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(\r\n\t\t\t\tuiDialog.get()))).eq(0).focus();\r\n\r\n\t\tself._isOpen = true;\r\n\t\tself._trigger('open');\r\n\r\n\t\treturn self;\r\n\t},\r\n\r\n\t_createButtons: function(buttons) {\r\n\t\tvar self = this,\r\n\t\t\thasButtons = false,\r\n\t\t\tuiDialogButtonPane = $('
    ')\r\n\t\t\t\t.addClass(\r\n\t\t\t\t\t'ui-dialog-buttonpane ' +\r\n\t\t\t\t\t'ui-widget-content ' +\r\n\t\t\t\t\t'ui-helper-clearfix'\r\n\t\t\t\t),\r\n\t\t\tuiButtonSet = $( \"
    \" )\r\n\t\t\t\t.addClass( \"ui-dialog-buttonset\" )\r\n\t\t\t\t.appendTo( uiDialogButtonPane );\r\n\r\n\t\t// if we already have a button pane, remove it\r\n\t\tself.uiDialog.find('.ui-dialog-buttonpane').remove();\r\n\r\n\t\tif (typeof buttons === 'object' && buttons !== null) {\r\n\t\t\t$.each(buttons, function() {\r\n\t\t\t\treturn !(hasButtons = true);\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (hasButtons) {\r\n\t\t\t$.each(buttons, function(name, props) {\r\n\t\t\t\tprops = $.isFunction( props ) ?\r\n\t\t\t\t\t{ click: props, text: name } :\r\n\t\t\t\t\tprops;\r\n\t\t\t\tvar button = $('')\r\n\t\t\t\t\t.click(function() {\r\n\t\t\t\t\t\tprops.click.apply(self.element[0], arguments);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.appendTo(uiButtonSet);\r\n\t\t\t\t// can't use .attr( props, true ) with jQuery 1.3.2.\r\n\t\t\t\t$.each( props, function( key, value ) {\r\n\t\t\t\t\tif ( key === \"click\" ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( key in attrFn ) {\r\n\t\t\t\t\t\tbutton[ key ]( value );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tbutton.attr( key, value );\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tif ($.fn.button) {\r\n\t\t\t\t\tbutton.button();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tuiDialogButtonPane.appendTo(self.uiDialog);\r\n\t\t}\r\n\t},\r\n\r\n\t_makeDraggable: function() {\r\n\t\tvar self = this,\r\n\t\t\toptions = self.options,\r\n\t\t\tdoc = $(document),\r\n\t\t\theightBeforeDrag;\r\n\r\n\t\tfunction filteredUi(ui) {\r\n\t\t\treturn {\r\n\t\t\t\tposition: ui.position,\r\n\t\t\t\toffset: ui.offset\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tself.uiDialog.draggable({\r\n\t\t\tcancel: '.ui-dialog-content, .ui-dialog-titlebar-close',\r\n\t\t\thandle: '.ui-dialog-titlebar',\r\n\t\t\tcontainment: 'document',\r\n\t\t\tstart: function(event, ui) {\r\n\t\t\t\theightBeforeDrag = options.height === \"auto\" ? \"auto\" : $(this).height();\r\n\t\t\t\t$(this).height($(this).height()).addClass(\"ui-dialog-dragging\");\r\n\t\t\t\tself._trigger('dragStart', event, filteredUi(ui));\r\n\t\t\t},\r\n\t\t\tdrag: function(event, ui) {\r\n\t\t\t\tself._trigger('drag', event, filteredUi(ui));\r\n\t\t\t},\r\n\t\t\tstop: function(event, ui) {\r\n\t\t\t\toptions.position = [ui.position.left - doc.scrollLeft(),\r\n\t\t\t\t\tui.position.top - doc.scrollTop()];\r\n\t\t\t\t$(this).removeClass(\"ui-dialog-dragging\").height(heightBeforeDrag);\r\n\t\t\t\tself._trigger('dragStop', event, filteredUi(ui));\r\n\t\t\t\t$.ui.dialog.overlay.resize();\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_makeResizable: function(handles) {\r\n\t\thandles = (handles === undefined ? this.options.resizable : handles);\r\n\t\tvar self = this,\r\n\t\t\toptions = self.options,\r\n\t\t\t// .ui-resizable has position: relative defined in the stylesheet\r\n\t\t\t// but dialogs have to use absolute or fixed positioning\r\n\t\t\tposition = self.uiDialog.css('position'),\r\n\t\t\tresizeHandles = (typeof handles === 'string' ?\r\n\t\t\t\thandles\t:\r\n\t\t\t\t'n,e,s,w,se,sw,ne,nw'\r\n\t\t\t);\r\n\r\n\t\tfunction filteredUi(ui) {\r\n\t\t\treturn {\r\n\t\t\t\toriginalPosition: ui.originalPosition,\r\n\t\t\t\toriginalSize: ui.originalSize,\r\n\t\t\t\tposition: ui.position,\r\n\t\t\t\tsize: ui.size\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tself.uiDialog.resizable({\r\n\t\t\tcancel: '.ui-dialog-content',\r\n\t\t\tcontainment: 'document',\r\n\t\t\talsoResize: self.element,\r\n\t\t\tmaxWidth: options.maxWidth,\r\n\t\t\tmaxHeight: options.maxHeight,\r\n\t\t\tminWidth: options.minWidth,\r\n\t\t\tminHeight: self._minHeight(),\r\n\t\t\thandles: resizeHandles,\r\n\t\t\tstart: function(event, ui) {\r\n\t\t\t\t$(this).addClass(\"ui-dialog-resizing\");\r\n\t\t\t\tself._trigger('resizeStart', event, filteredUi(ui));\r\n\t\t\t},\r\n\t\t\tresize: function(event, ui) {\r\n\t\t\t\tself._trigger('resize', event, filteredUi(ui));\r\n\t\t\t},\r\n\t\t\tstop: function(event, ui) {\r\n\t\t\t\t$(this).removeClass(\"ui-dialog-resizing\");\r\n\t\t\t\toptions.height = $(this).height();\r\n\t\t\t\toptions.width = $(this).width();\r\n\t\t\t\tself._trigger('resizeStop', event, filteredUi(ui));\r\n\t\t\t\t$.ui.dialog.overlay.resize();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.css('position', position)\r\n\t\t.find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');\r\n\t},\r\n\r\n\t_minHeight: function() {\r\n\t\tvar options = this.options;\r\n\r\n\t\tif (options.height === 'auto') {\r\n\t\t\treturn options.minHeight;\r\n\t\t} else {\r\n\t\t\treturn Math.min(options.minHeight, options.height);\r\n\t\t}\r\n\t},\r\n\r\n\t_position: function(position) {\r\n\t\tvar myAt = [],\r\n\t\t\toffset = [0, 0],\r\n\t\t\tisVisible;\r\n\r\n\t\tif (position) {\r\n\t\t\t// deep extending converts arrays to objects in jQuery <= 1.3.2 :-(\r\n\t//\t\tif (typeof position == 'string' || $.isArray(position)) {\r\n\t//\t\t\tmyAt = $.isArray(position) ? position : position.split(' ');\r\n\r\n\t\t\tif (typeof position === 'string' || (typeof position === 'object' && '0' in position)) {\r\n\t\t\t\tmyAt = position.split ? position.split(' ') : [position[0], position[1]];\r\n\t\t\t\tif (myAt.length === 1) {\r\n\t\t\t\t\tmyAt[1] = myAt[0];\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$.each(['left', 'top'], function(i, offsetPosition) {\r\n\t\t\t\t\tif (+myAt[i] === myAt[i]) {\r\n\t\t\t\t\t\toffset[i] = myAt[i];\r\n\t\t\t\t\t\tmyAt[i] = offsetPosition;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tposition = {\r\n\t\t\t\t\tmy: myAt.join(\" \"),\r\n\t\t\t\t\tat: myAt.join(\" \"),\r\n\t\t\t\t\toffset: offset.join(\" \")\r\n\t\t\t\t};\r\n\t\t\t} \r\n\r\n\t\t\tposition = $.extend({}, $.ui.dialog.prototype.options.position, position);\r\n\t\t} else {\r\n\t\t\tposition = $.ui.dialog.prototype.options.position;\r\n\t\t}\r\n\r\n\t\t// need to show the dialog to get the actual offset in the position plugin\r\n\t\tisVisible = this.uiDialog.is(':visible');\r\n\t\tif (!isVisible) {\r\n\t\t\tthis.uiDialog.show();\r\n\t\t}\r\n\t\tthis.uiDialog\r\n\t\t\t// workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781\r\n\t\t\t.css({ top: 0, left: 0 })\r\n\t\t\t.position($.extend({ of: window }, position));\r\n\t\tif (!isVisible) {\r\n\t\t\tthis.uiDialog.hide();\r\n\t\t}\r\n\t},\r\n\r\n\t_setOptions: function( options ) {\r\n\t\tvar self = this,\r\n\t\t\tresizableOptions = {},\r\n\t\t\tresize = false;\r\n\r\n\t\t$.each( options, function( key, value ) {\r\n\t\t\tself._setOption( key, value );\r\n\t\t\t\r\n\t\t\tif ( key in sizeRelatedOptions ) {\r\n\t\t\t\tresize = true;\r\n\t\t\t}\r\n\t\t\tif ( key in resizableRelatedOptions ) {\r\n\t\t\t\tresizableOptions[ key ] = value;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif ( resize ) {\r\n\t\t\tthis._size();\r\n\t\t}\r\n\t\tif ( this.uiDialog.is( \":data(resizable)\" ) ) {\r\n\t\t\tthis.uiDialog.resizable( \"option\", resizableOptions );\r\n\t\t}\r\n\t},\r\n\r\n\t_setOption: function(key, value){\r\n\t\tvar self = this,\r\n\t\t\tuiDialog = self.uiDialog;\r\n\r\n\t\tswitch (key) {\r\n\t\t\t//handling of deprecated beforeclose (vs beforeClose) option\r\n\t\t\t//Ticket #4669 http://dev.jqueryui.com/ticket/4669\r\n\t\t\t//TODO: remove in 1.9pre\r\n\t\t\tcase \"beforeclose\":\r\n\t\t\t\tkey = \"beforeClose\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"buttons\":\r\n\t\t\t\tself._createButtons(value);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"closeText\":\r\n\t\t\t\t// ensure that we always pass a string\r\n\t\t\t\tself.uiDialogTitlebarCloseText.text(\"\" + value);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"dialogClass\":\r\n\t\t\t\tuiDialog\r\n\t\t\t\t\t.removeClass(self.options.dialogClass)\r\n\t\t\t\t\t.addClass(uiDialogClasses + value);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"disabled\":\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tuiDialog.addClass('ui-dialog-disabled');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tuiDialog.removeClass('ui-dialog-disabled');\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"draggable\":\r\n\t\t\t\tvar isDraggable = uiDialog.is( \":data(draggable)\" );\r\n\t\t\t\tif ( isDraggable && !value ) {\r\n\t\t\t\t\tuiDialog.draggable( \"destroy\" );\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif ( !isDraggable && value ) {\r\n\t\t\t\t\tself._makeDraggable();\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"position\":\r\n\t\t\t\tself._position(value);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"resizable\":\r\n\t\t\t\t// currently resizable, becoming non-resizable\r\n\t\t\t\tvar isResizable = uiDialog.is( \":data(resizable)\" );\r\n\t\t\t\tif (isResizable && !value) {\r\n\t\t\t\t\tuiDialog.resizable('destroy');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// currently resizable, changing handles\r\n\t\t\t\tif (isResizable && typeof value === 'string') {\r\n\t\t\t\t\tuiDialog.resizable('option', 'handles', value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// currently non-resizable, becoming resizable\r\n\t\t\t\tif (!isResizable && value !== false) {\r\n\t\t\t\t\tself._makeResizable(value);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"title\":\r\n\t\t\t\t// convert whatever was passed in o a string, for html() to not throw up\r\n\t\t\t\t$(\".ui-dialog-title\", self.uiDialogTitlebar).html(\"\" + (value || ' '));\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\t$.Widget.prototype._setOption.apply(self, arguments);\r\n\t},\r\n\r\n\t_size: function() {\r\n\t\t/* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content\r\n\t\t * divs will both have width and height set, so we need to reset them\r\n\t\t */\r\n\t\tvar options = this.options,\r\n\t\t\tnonContentHeight,\r\n\t\t\tminContentHeight,\r\n\t\t\tisVisible = this.uiDialog.is( \":visible\" );\r\n\r\n\t\t// reset content sizing\r\n\t\tthis.element.show().css({\r\n\t\t\twidth: 'auto',\r\n\t\t\tminHeight: 0,\r\n\t\t\theight: 0\r\n\t\t});\r\n\r\n\t\tif (options.minWidth > options.width) {\r\n\t\t\toptions.width = options.minWidth;\r\n\t\t}\r\n\r\n\t\t// reset wrapper sizing\r\n\t\t// determine the height of all the non-content elements\r\n\t\tnonContentHeight = this.uiDialog.css({\r\n\t\t\t\theight: 'auto',\r\n\t\t\t\twidth: options.width\r\n\t\t\t})\r\n\t\t\t.height();\r\n\t\tminContentHeight = Math.max( 0, options.minHeight - nonContentHeight );\r\n\t\t\r\n\t\tif ( options.height === \"auto\" ) {\r\n\t\t\t// only needed for IE6 support\r\n\t\t\tif ( $.support.minHeight ) {\r\n\t\t\t\tthis.element.css({\r\n\t\t\t\t\tminHeight: minContentHeight,\r\n\t\t\t\t\theight: \"auto\"\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tthis.uiDialog.show();\r\n\t\t\t\tvar autoHeight = this.element.css( \"height\", \"auto\" ).height();\r\n\t\t\t\tif ( !isVisible ) {\r\n\t\t\t\t\tthis.uiDialog.hide();\r\n\t\t\t\t}\r\n\t\t\t\tthis.element.height( Math.max( autoHeight, minContentHeight ) );\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.element.height( Math.max( options.height - nonContentHeight, 0 ) );\r\n\t\t}\r\n\r\n\t\tif (this.uiDialog.is(':data(resizable)')) {\r\n\t\t\tthis.uiDialog.resizable('option', 'minHeight', this._minHeight());\r\n\t\t}\r\n\t}\r\n});\r\n\r\n$.extend($.ui.dialog, {\r\n\tversion: \"1.8.22\",\r\n\r\n\tuuid: 0,\r\n\tmaxZ: 0,\r\n\r\n\tgetTitleId: function($el) {\r\n\t\tvar id = $el.attr('id');\r\n\t\tif (!id) {\r\n\t\t\tthis.uuid += 1;\r\n\t\t\tid = this.uuid;\r\n\t\t}\r\n\t\treturn 'ui-dialog-title-' + id;\r\n\t},\r\n\r\n\toverlay: function(dialog) {\r\n\t\tthis.$el = $.ui.dialog.overlay.create(dialog);\r\n\t}\r\n});\r\n\r\n$.extend($.ui.dialog.overlay, {\r\n\tinstances: [],\r\n\t// reuse old instances due to IE memory leak with alpha transparency (see #5185)\r\n\toldInstances: [],\r\n\tmaxZ: 0,\r\n\tevents: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),\r\n\t\tfunction(event) { return event + '.dialog-overlay'; }).join(' '),\r\n\tcreate: function(dialog) {\r\n\t\tif (this.instances.length === 0) {\r\n\t\t\t// prevent use of anchors and inputs\r\n\t\t\t// we use a setTimeout in case the overlay is created from an\r\n\t\t\t// event that we're going to be cancelling (see #2804)\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\t// handle $(el).dialog().dialog('close') (see #4065)\r\n\t\t\t\tif ($.ui.dialog.overlay.instances.length) {\r\n\t\t\t\t\t$(document).bind($.ui.dialog.overlay.events, function(event) {\r\n\t\t\t\t\t\t// stop events if the z-index of the target is < the z-index of the overlay\r\n\t\t\t\t\t\t// we cannot return true when we don't want to cancel the event (#3523)\r\n\t\t\t\t\t\tif ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) {\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}, 1);\r\n\r\n\t\t\t// allow closing by pressing the escape key\r\n\t\t\t$(document).bind('keydown.dialog-overlay', function(event) {\r\n\t\t\t\tif (dialog.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&\r\n\t\t\t\t\tevent.keyCode === $.ui.keyCode.ESCAPE) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tdialog.close(event);\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// handle window resize\r\n\t\t\t$(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);\r\n\t\t}\r\n\r\n\t\tvar $el = (this.oldInstances.pop() || $('
    ').addClass('ui-widget-overlay'))\r\n\t\t\t.appendTo(document.body)\r\n\t\t\t.css({\r\n\t\t\t\twidth: this.width(),\r\n\t\t\t\theight: this.height()\r\n\t\t\t});\r\n\r\n\t\tif ($.fn.bgiframe) {\r\n\t\t\t$el.bgiframe();\r\n\t\t}\r\n\r\n\t\tthis.instances.push($el);\r\n\t\treturn $el;\r\n\t},\r\n\r\n\tdestroy: function($el) {\r\n\t\tvar indexOf = $.inArray($el, this.instances);\r\n\t\tif (indexOf != -1){\r\n\t\t\tthis.oldInstances.push(this.instances.splice(indexOf, 1)[0]);\r\n\t\t}\r\n\r\n\t\tif (this.instances.length === 0) {\r\n\t\t\t$([document, window]).unbind('.dialog-overlay');\r\n\t\t}\r\n\r\n\t\t$el.remove();\r\n\t\t\r\n\t\t// adjust the maxZ to allow other modal dialogs to continue to work (see #4309)\r\n\t\tvar maxZ = 0;\r\n\t\t$.each(this.instances, function() {\r\n\t\t\tmaxZ = Math.max(maxZ, this.css('z-index'));\r\n\t\t});\r\n\t\tthis.maxZ = maxZ;\r\n\t},\r\n\r\n\theight: function() {\r\n\t\tvar scrollHeight,\r\n\t\t\toffsetHeight;\r\n\t\t// handle IE 6\r\n\t\tif ($.browser.msie && $.browser.version < 7) {\r\n\t\t\tscrollHeight = Math.max(\r\n\t\t\t\tdocument.documentElement.scrollHeight,\r\n\t\t\t\tdocument.body.scrollHeight\r\n\t\t\t);\r\n\t\t\toffsetHeight = Math.max(\r\n\t\t\t\tdocument.documentElement.offsetHeight,\r\n\t\t\t\tdocument.body.offsetHeight\r\n\t\t\t);\r\n\r\n\t\t\tif (scrollHeight < offsetHeight) {\r\n\t\t\t\treturn $(window).height() + 'px';\r\n\t\t\t} else {\r\n\t\t\t\treturn scrollHeight + 'px';\r\n\t\t\t}\r\n\t\t// handle \"good\" browsers\r\n\t\t} else {\r\n\t\t\treturn $(document).height() + 'px';\r\n\t\t}\r\n\t},\r\n\r\n\twidth: function() {\r\n\t\tvar scrollWidth,\r\n\t\t\toffsetWidth;\r\n\t\t// handle IE\r\n\t\tif ( $.browser.msie ) {\r\n\t\t\tscrollWidth = Math.max(\r\n\t\t\t\tdocument.documentElement.scrollWidth,\r\n\t\t\t\tdocument.body.scrollWidth\r\n\t\t\t);\r\n\t\t\toffsetWidth = Math.max(\r\n\t\t\t\tdocument.documentElement.offsetWidth,\r\n\t\t\t\tdocument.body.offsetWidth\r\n\t\t\t);\r\n\r\n\t\t\tif (scrollWidth < offsetWidth) {\r\n\t\t\t\treturn $(window).width() + 'px';\r\n\t\t\t} else {\r\n\t\t\t\treturn scrollWidth + 'px';\r\n\t\t\t}\r\n\t\t// handle \"good\" browsers\r\n\t\t} else {\r\n\t\t\treturn $(document).width() + 'px';\r\n\t\t}\r\n\t},\r\n\r\n\tresize: function() {\r\n\t\t/* If the dialog is draggable and the user drags it past the\r\n\t\t * right edge of the window, the document becomes wider so we\r\n\t\t * need to stretch the overlay. If the user then drags the\r\n\t\t * dialog back to the left, the document will become narrower,\r\n\t\t * so we need to shrink the overlay to the appropriate size.\r\n\t\t * This is handled by shrinking the overlay before setting it\r\n\t\t * to the full document size.\r\n\t\t */\r\n\t\tvar $overlays = $([]);\r\n\t\t$.each($.ui.dialog.overlay.instances, function() {\r\n\t\t\t$overlays = $overlays.add(this);\r\n\t\t});\r\n\r\n\t\t$overlays.css({\r\n\t\t\twidth: 0,\r\n\t\t\theight: 0\r\n\t\t}).css({\r\n\t\t\twidth: $.ui.dialog.overlay.width(),\r\n\t\t\theight: $.ui.dialog.overlay.height()\r\n\t\t});\r\n\t}\r\n});\r\n\r\n$.extend($.ui.dialog.overlay.prototype, {\r\n\tdestroy: function() {\r\n\t\t$.ui.dialog.overlay.destroy(this.$el);\r\n\t}\r\n});\r\n\r\n}(jQuery));\r\n\r\n(function( $, undefined ) {\r\n\r\n$.ui = $.ui || {};\r\n\r\nvar horizontalPositions = /left|center|right/,\r\n\tverticalPositions = /top|center|bottom/,\r\n\tcenter = \"center\",\r\n\tsupport = {},\r\n\t_position = $.fn.position,\r\n\t_offset = $.fn.offset;\r\n\r\n$.fn.position = function( options ) {\r\n\tif ( !options || !options.of ) {\r\n\t\treturn _position.apply( this, arguments );\r\n\t}\r\n\r\n\t// make a copy, we don't want to modify arguments\r\n\toptions = $.extend( {}, options );\r\n\r\n\tvar target = $( options.of ),\r\n\t\ttargetElem = target[0],\r\n\t\tcollision = ( options.collision || \"flip\" ).split( \" \" ),\r\n\t\toffset = options.offset ? options.offset.split( \" \" ) : [ 0, 0 ],\r\n\t\ttargetWidth,\r\n\t\ttargetHeight,\r\n\t\tbasePosition;\r\n\r\n\tif ( targetElem.nodeType === 9 ) {\r\n\t\ttargetWidth = target.width();\r\n\t\ttargetHeight = target.height();\r\n\t\tbasePosition = { top: 0, left: 0 };\r\n\t// TODO: use $.isWindow() in 1.9\r\n\t} else if ( targetElem.setTimeout ) {\r\n\t\ttargetWidth = target.width();\r\n\t\ttargetHeight = target.height();\r\n\t\tbasePosition = { top: target.scrollTop(), left: target.scrollLeft() };\r\n\t} else if ( targetElem.preventDefault ) {\r\n\t\t// force left top to allow flipping\r\n\t\toptions.at = \"left top\";\r\n\t\ttargetWidth = targetHeight = 0;\r\n\t\tbasePosition = { top: options.of.pageY, left: options.of.pageX };\r\n\t} else {\r\n\t\ttargetWidth = target.outerWidth();\r\n\t\ttargetHeight = target.outerHeight();\r\n\t\tbasePosition = target.offset();\r\n\t}\r\n\r\n\t// force my and at to have valid horizontal and veritcal positions\r\n\t// if a value is missing or invalid, it will be converted to center \r\n\t$.each( [ \"my\", \"at\" ], function() {\r\n\t\tvar pos = ( options[this] || \"\" ).split( \" \" );\r\n\t\tif ( pos.length === 1) {\r\n\t\t\tpos = horizontalPositions.test( pos[0] ) ?\r\n\t\t\t\tpos.concat( [center] ) :\r\n\t\t\t\tverticalPositions.test( pos[0] ) ?\r\n\t\t\t\t\t[ center ].concat( pos ) :\r\n\t\t\t\t\t[ center, center ];\r\n\t\t}\r\n\t\tpos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : center;\r\n\t\tpos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : center;\r\n\t\toptions[ this ] = pos;\r\n\t});\r\n\r\n\t// normalize collision option\r\n\tif ( collision.length === 1 ) {\r\n\t\tcollision[ 1 ] = collision[ 0 ];\r\n\t}\r\n\r\n\t// normalize offset option\r\n\toffset[ 0 ] = parseInt( offset[0], 10 ) || 0;\r\n\tif ( offset.length === 1 ) {\r\n\t\toffset[ 1 ] = offset[ 0 ];\r\n\t}\r\n\toffset[ 1 ] = parseInt( offset[1], 10 ) || 0;\r\n\r\n\tif ( options.at[0] === \"right\" ) {\r\n\t\tbasePosition.left += targetWidth;\r\n\t} else if ( options.at[0] === center ) {\r\n\t\tbasePosition.left += targetWidth / 2;\r\n\t}\r\n\r\n\tif ( options.at[1] === \"bottom\" ) {\r\n\t\tbasePosition.top += targetHeight;\r\n\t} else if ( options.at[1] === center ) {\r\n\t\tbasePosition.top += targetHeight / 2;\r\n\t}\r\n\r\n\tbasePosition.left += offset[ 0 ];\r\n\tbasePosition.top += offset[ 1 ];\r\n\r\n\treturn this.each(function() {\r\n\t\tvar elem = $( this ),\r\n\t\t\telemWidth = elem.outerWidth(),\r\n\t\t\telemHeight = elem.outerHeight(),\r\n\t\t\tmarginLeft = parseInt( $.curCSS( this, \"marginLeft\", true ) ) || 0,\r\n\t\t\tmarginTop = parseInt( $.curCSS( this, \"marginTop\", true ) ) || 0,\r\n\t\t\tcollisionWidth = elemWidth + marginLeft +\r\n\t\t\t\t( parseInt( $.curCSS( this, \"marginRight\", true ) ) || 0 ),\r\n\t\t\tcollisionHeight = elemHeight + marginTop +\r\n\t\t\t\t( parseInt( $.curCSS( this, \"marginBottom\", true ) ) || 0 ),\r\n\t\t\tposition = $.extend( {}, basePosition ),\r\n\t\t\tcollisionPosition;\r\n\r\n\t\tif ( options.my[0] === \"right\" ) {\r\n\t\t\tposition.left -= elemWidth;\r\n\t\t} else if ( options.my[0] === center ) {\r\n\t\t\tposition.left -= elemWidth / 2;\r\n\t\t}\r\n\r\n\t\tif ( options.my[1] === \"bottom\" ) {\r\n\t\t\tposition.top -= elemHeight;\r\n\t\t} else if ( options.my[1] === center ) {\r\n\t\t\tposition.top -= elemHeight / 2;\r\n\t\t}\r\n\r\n\t\t// prevent fractions if jQuery version doesn't support them (see #5280)\r\n\t\tif ( !support.fractions ) {\r\n\t\t\tposition.left = Math.round( position.left );\r\n\t\t\tposition.top = Math.round( position.top );\r\n\t\t}\r\n\r\n\t\tcollisionPosition = {\r\n\t\t\tleft: position.left - marginLeft,\r\n\t\t\ttop: position.top - marginTop\r\n\t\t};\r\n\r\n\t\t$.each( [ \"left\", \"top\" ], function( i, dir ) {\r\n\t\t\tif ( $.ui.position[ collision[i] ] ) {\r\n\t\t\t\t$.ui.position[ collision[i] ][ dir ]( position, {\r\n\t\t\t\t\ttargetWidth: targetWidth,\r\n\t\t\t\t\ttargetHeight: targetHeight,\r\n\t\t\t\t\telemWidth: elemWidth,\r\n\t\t\t\t\telemHeight: elemHeight,\r\n\t\t\t\t\tcollisionPosition: collisionPosition,\r\n\t\t\t\t\tcollisionWidth: collisionWidth,\r\n\t\t\t\t\tcollisionHeight: collisionHeight,\r\n\t\t\t\t\toffset: offset,\r\n\t\t\t\t\tmy: options.my,\r\n\t\t\t\t\tat: options.at\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif ( $.fn.bgiframe ) {\r\n\t\t\telem.bgiframe();\r\n\t\t}\r\n\t\telem.offset( $.extend( position, { using: options.using } ) );\r\n\t});\r\n};\r\n\r\n$.ui.position = {\r\n\tfit: {\r\n\t\tleft: function( position, data ) {\r\n\t\t\tvar win = $( window ),\r\n\t\t\t\tover = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft();\r\n\t\t\tposition.left = over > 0 ? position.left - over : Math.max( position.left - data.collisionPosition.left, position.left );\r\n\t\t},\r\n\t\ttop: function( position, data ) {\r\n\t\t\tvar win = $( window ),\r\n\t\t\t\tover = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop();\r\n\t\t\tposition.top = over > 0 ? position.top - over : Math.max( position.top - data.collisionPosition.top, position.top );\r\n\t\t}\r\n\t},\r\n\r\n\tflip: {\r\n\t\tleft: function( position, data ) {\r\n\t\t\tif ( data.at[0] === center ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar win = $( window ),\r\n\t\t\t\tover = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(),\r\n\t\t\t\tmyOffset = data.my[ 0 ] === \"left\" ?\r\n\t\t\t\t\t-data.elemWidth :\r\n\t\t\t\t\tdata.my[ 0 ] === \"right\" ?\r\n\t\t\t\t\t\tdata.elemWidth :\r\n\t\t\t\t\t\t0,\r\n\t\t\t\tatOffset = data.at[ 0 ] === \"left\" ?\r\n\t\t\t\t\tdata.targetWidth :\r\n\t\t\t\t\t-data.targetWidth,\r\n\t\t\t\toffset = -2 * data.offset[ 0 ];\r\n\t\t\tposition.left += data.collisionPosition.left < 0 ?\r\n\t\t\t\tmyOffset + atOffset + offset :\r\n\t\t\t\tover > 0 ?\r\n\t\t\t\t\tmyOffset + atOffset + offset :\r\n\t\t\t\t\t0;\r\n\t\t},\r\n\t\ttop: function( position, data ) {\r\n\t\t\tif ( data.at[1] === center ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar win = $( window ),\r\n\t\t\t\tover = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(),\r\n\t\t\t\tmyOffset = data.my[ 1 ] === \"top\" ?\r\n\t\t\t\t\t-data.elemHeight :\r\n\t\t\t\t\tdata.my[ 1 ] === \"bottom\" ?\r\n\t\t\t\t\t\tdata.elemHeight :\r\n\t\t\t\t\t\t0,\r\n\t\t\t\tatOffset = data.at[ 1 ] === \"top\" ?\r\n\t\t\t\t\tdata.targetHeight :\r\n\t\t\t\t\t-data.targetHeight,\r\n\t\t\t\toffset = -2 * data.offset[ 1 ];\r\n\t\t\tposition.top += data.collisionPosition.top < 0 ?\r\n\t\t\t\tmyOffset + atOffset + offset :\r\n\t\t\t\tover > 0 ?\r\n\t\t\t\t\tmyOffset + atOffset + offset :\r\n\t\t\t\t\t0;\r\n\t\t}\r\n\t}\r\n};\r\n\r\n// offset setter from jQuery 1.4\r\nif ( !$.offset.setOffset ) {\r\n\t$.offset.setOffset = function( elem, options ) {\r\n\t\t// set position first, in-case top/left are set even on static elem\r\n\t\tif ( /static/.test( $.curCSS( elem, \"position\" ) ) ) {\r\n\t\t\telem.style.position = \"relative\";\r\n\t\t}\r\n\t\tvar curElem = $( elem ),\r\n\t\t\tcurOffset = curElem.offset(),\r\n\t\t\tcurTop = parseInt( $.curCSS( elem, \"top\", true ), 10 ) || 0,\r\n\t\t\tcurLeft = parseInt( $.curCSS( elem, \"left\", true ), 10) || 0,\r\n\t\t\tprops = {\r\n\t\t\t\ttop: (options.top - curOffset.top) + curTop,\r\n\t\t\t\tleft: (options.left - curOffset.left) + curLeft\r\n\t\t\t};\r\n\t\t\r\n\t\tif ( 'using' in options ) {\r\n\t\t\toptions.using.call( elem, props );\r\n\t\t} else {\r\n\t\t\tcurElem.css( props );\r\n\t\t}\r\n\t};\r\n\r\n\t$.fn.offset = function( options ) {\r\n\t\tvar elem = this[ 0 ];\r\n\t\tif ( !elem || !elem.ownerDocument ) { return null; }\r\n\t\tif ( options ) {\r\n\t\t\tif ( $.isFunction( options ) ) {\r\n\t\t\t\treturn this.each(function( i ) {\r\n\t\t\t\t\t$( this ).offset( options.call( this, i, $( this ).offset() ) );\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\treturn this.each(function() {\r\n\t\t\t\t$.offset.setOffset( this, options );\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn _offset.call( this );\r\n\t};\r\n}\r\n\r\n// fraction support test (older versions of jQuery don't support fractions)\r\n(function () {\r\n\tvar body = document.getElementsByTagName( \"body\" )[ 0 ], \r\n\t\tdiv = document.createElement( \"div\" ),\r\n\t\ttestElement, testElementParent, testElementStyle, offset, offsetTotal;\r\n\r\n\t//Create a \"fake body\" for testing based on method used in jQuery.support\r\n\ttestElement = document.createElement( body ? \"div\" : \"body\" );\r\n\ttestElementStyle = {\r\n\t\tvisibility: \"hidden\",\r\n\t\twidth: 0,\r\n\t\theight: 0,\r\n\t\tborder: 0,\r\n\t\tmargin: 0,\r\n\t\tbackground: \"none\"\r\n\t};\r\n\tif ( body ) {\r\n\t\t$.extend( testElementStyle, {\r\n\t\t\tposition: \"absolute\",\r\n\t\t\tleft: \"-1000px\",\r\n\t\t\ttop: \"-1000px\"\r\n\t\t});\r\n\t}\r\n\tfor ( var i in testElementStyle ) {\r\n\t\ttestElement.style[ i ] = testElementStyle[ i ];\r\n\t}\r\n\ttestElement.appendChild( div );\r\n\ttestElementParent = body || document.documentElement;\r\n\ttestElementParent.insertBefore( testElement, testElementParent.firstChild );\r\n\r\n\tdiv.style.cssText = \"position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;\";\r\n\r\n\toffset = $( div ).offset( function( _, offset ) {\r\n\t\treturn offset;\r\n\t}).offset();\r\n\r\n\ttestElement.innerHTML = \"\";\r\n\ttestElementParent.removeChild( testElement );\r\n\r\n\toffsetTotal = offset.top + offset.left + ( body ? 2000 : 0 );\r\n\tsupport.fractions = offsetTotal > 21 && offsetTotal < 22;\r\n})();\r\n\r\n}( jQuery ));\r\n\r\n(function( $, undefined ) {\r\n\r\n$.widget( \"ui.progressbar\", {\r\n\toptions: {\r\n\t\tvalue: 0,\r\n\t\tmax: 100\r\n\t},\r\n\r\n\tmin: 0,\r\n\r\n\t_create: function() {\r\n\t\tthis.element\r\n\t\t\t.addClass( \"ui-progressbar ui-widget ui-widget-content ui-corner-all\" )\r\n\t\t\t.attr({\r\n\t\t\t\trole: \"progressbar\",\r\n\t\t\t\t\"aria-valuemin\": this.min,\r\n\t\t\t\t\"aria-valuemax\": this.options.max,\r\n\t\t\t\t\"aria-valuenow\": this._value()\r\n\t\t\t});\r\n\r\n\t\tthis.valueDiv = $( \"
    \" )\r\n\t\t\t.appendTo( this.element );\r\n\r\n\t\tthis.oldValue = this._value();\r\n\t\tthis._refreshValue();\r\n\t},\r\n\r\n\tdestroy: function() {\r\n\t\tthis.element\r\n\t\t\t.removeClass( \"ui-progressbar ui-widget ui-widget-content ui-corner-all\" )\r\n\t\t\t.removeAttr( \"role\" )\r\n\t\t\t.removeAttr( \"aria-valuemin\" )\r\n\t\t\t.removeAttr( \"aria-valuemax\" )\r\n\t\t\t.removeAttr( \"aria-valuenow\" );\r\n\r\n\t\tthis.valueDiv.remove();\r\n\r\n\t\t$.Widget.prototype.destroy.apply( this, arguments );\r\n\t},\r\n\r\n\tvalue: function( newValue ) {\r\n\t\tif ( newValue === undefined ) {\r\n\t\t\treturn this._value();\r\n\t\t}\r\n\r\n\t\tthis._setOption( \"value\", newValue );\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_setOption: function( key, value ) {\r\n\t\tif ( key === \"value\" ) {\r\n\t\t\tthis.options.value = value;\r\n\t\t\tthis._refreshValue();\r\n\t\t\tif ( this._value() === this.options.max ) {\r\n\t\t\t\tthis._trigger( \"complete\" );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$.Widget.prototype._setOption.apply( this, arguments );\r\n\t},\r\n\r\n\t_value: function() {\r\n\t\tvar val = this.options.value;\r\n\t\t// normalize invalid value\r\n\t\tif ( typeof val !== \"number\" ) {\r\n\t\t\tval = 0;\r\n\t\t}\r\n\t\treturn Math.min( this.options.max, Math.max( this.min, val ) );\r\n\t},\r\n\r\n\t_percentage: function() {\r\n\t\treturn 100 * this._value() / this.options.max;\r\n\t},\r\n\r\n\t_refreshValue: function() {\r\n\t\tvar value = this.value();\r\n\t\tvar percentage = this._percentage();\r\n\r\n\t\tif ( this.oldValue !== value ) {\r\n\t\t\tthis.oldValue = value;\r\n\t\t\tthis._trigger( \"change\" );\r\n\t\t}\r\n\r\n\t\tthis.valueDiv\r\n\t\t\t.toggle( value > this.min )\r\n\t\t\t.toggleClass( \"ui-corner-right\", value === this.options.max )\r\n\t\t\t.width( percentage.toFixed(0) + \"%\" );\r\n\t\tthis.element.attr( \"aria-valuenow\", value );\r\n\t}\r\n});\r\n\r\n$.extend( $.ui.progressbar, {\r\n\tversion: \"1.8.22\"\r\n});\r\n\r\n})( jQuery );\r\n\r\n(function( $, undefined ) {\r\n\r\n// number of pages in a slider\r\n// (how many times can you page up/down to go through the whole range)\r\nvar numPages = 5;\r\n\r\n$.widget( \"ui.slider\", $.ui.mouse, {\r\n\r\n\twidgetEventPrefix: \"slide\",\r\n\r\n\toptions: {\r\n\t\tanimate: false,\r\n\t\tdistance: 0,\r\n\t\tmax: 100,\r\n\t\tmin: 0,\r\n\t\torientation: \"horizontal\",\r\n\t\trange: false,\r\n\t\tstep: 1,\r\n\t\tvalue: 0,\r\n\t\tvalues: null\r\n\t},\r\n\r\n\t_create: function() {\r\n\t\tvar self = this,\r\n\t\t\to = this.options,\r\n\t\t\texistingHandles = this.element.find( \".ui-slider-handle\" ).addClass( \"ui-state-default ui-corner-all\" ),\r\n\t\t\thandle = \"\",\r\n\t\t\thandleCount = ( o.values && o.values.length ) || 1,\r\n\t\t\thandles = [];\r\n\r\n\t\tthis._keySliding = false;\r\n\t\tthis._mouseSliding = false;\r\n\t\tthis._animateOff = true;\r\n\t\tthis._handleIndex = null;\r\n\t\tthis._detectOrientation();\r\n\t\tthis._mouseInit();\r\n\r\n\t\tthis.element\r\n\t\t\t.addClass( \"ui-slider\" +\r\n\t\t\t\t\" ui-slider-\" + this.orientation +\r\n\t\t\t\t\" ui-widget\" +\r\n\t\t\t\t\" ui-widget-content\" +\r\n\t\t\t\t\" ui-corner-all\" +\r\n\t\t\t\t( o.disabled ? \" ui-slider-disabled ui-disabled\" : \"\" ) );\r\n\r\n\t\tthis.range = $([]);\r\n\r\n\t\tif ( o.range ) {\r\n\t\t\tif ( o.range === true ) {\r\n\t\t\t\tif ( !o.values ) {\r\n\t\t\t\t\to.values = [ this._valueMin(), this._valueMin() ];\r\n\t\t\t\t}\r\n\t\t\t\tif ( o.values.length && o.values.length !== 2 ) {\r\n\t\t\t\t\to.values = [ o.values[0], o.values[0] ];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.range = $( \"
    \" )\r\n\t\t\t\t.appendTo( this.element )\r\n\t\t\t\t.addClass( \"ui-slider-range\" +\r\n\t\t\t\t// note: this isn't the most fittingly semantic framework class for this element,\r\n\t\t\t\t// but worked best visually with a variety of themes\r\n\t\t\t\t\" ui-widget-header\" + \r\n\t\t\t\t( ( o.range === \"min\" || o.range === \"max\" ) ? \" ui-slider-range-\" + o.range : \"\" ) );\r\n\t\t}\r\n\r\n\t\tfor ( var i = existingHandles.length; i < handleCount; i += 1 ) {\r\n\t\t\thandles.push( handle );\r\n\t\t}\r\n\r\n\t\tthis.handles = existingHandles.add( $( handles.join( \"\" ) ).appendTo( self.element ) );\r\n\r\n\t\tthis.handle = this.handles.eq( 0 );\r\n\r\n\t\tthis.handles.add( this.range ).filter( \"a\" )\r\n\t\t\t.click(function( event ) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t})\r\n\t\t\t.hover(function() {\r\n\t\t\t\tif ( !o.disabled ) {\r\n\t\t\t\t\t$( this ).addClass( \"ui-state-hover\" );\r\n\t\t\t\t}\r\n\t\t\t}, function() {\r\n\t\t\t\t$( this ).removeClass( \"ui-state-hover\" );\r\n\t\t\t})\r\n\t\t\t.focus(function() {\r\n\t\t\t\tif ( !o.disabled ) {\r\n\t\t\t\t\t$( \".ui-slider .ui-state-focus\" ).removeClass( \"ui-state-focus\" );\r\n\t\t\t\t\t$( this ).addClass( \"ui-state-focus\" );\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$( this ).blur();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.blur(function() {\r\n\t\t\t\t$( this ).removeClass( \"ui-state-focus\" );\r\n\t\t\t});\r\n\r\n\t\tthis.handles.each(function( i ) {\r\n\t\t\t$( this ).data( \"index.ui-slider-handle\", i );\r\n\t\t});\r\n\r\n\t\tthis.handles\r\n\t\t\t.keydown(function( event ) {\r\n\t\t\t\tvar index = $( this ).data( \"index.ui-slider-handle\" ),\r\n\t\t\t\t\tallowed,\r\n\t\t\t\t\tcurVal,\r\n\t\t\t\t\tnewVal,\r\n\t\t\t\t\tstep;\r\n\t\r\n\t\t\t\tif ( self.options.disabled ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tswitch ( event.keyCode ) {\r\n\t\t\t\t\tcase $.ui.keyCode.HOME:\r\n\t\t\t\t\tcase $.ui.keyCode.END:\r\n\t\t\t\t\tcase $.ui.keyCode.PAGE_UP:\r\n\t\t\t\t\tcase $.ui.keyCode.PAGE_DOWN:\r\n\t\t\t\t\tcase $.ui.keyCode.UP:\r\n\t\t\t\t\tcase $.ui.keyCode.RIGHT:\r\n\t\t\t\t\tcase $.ui.keyCode.DOWN:\r\n\t\t\t\t\tcase $.ui.keyCode.LEFT:\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\tif ( !self._keySliding ) {\r\n\t\t\t\t\t\t\tself._keySliding = true;\r\n\t\t\t\t\t\t\t$( this ).addClass( \"ui-state-active\" );\r\n\t\t\t\t\t\t\tallowed = self._start( event, index );\r\n\t\t\t\t\t\t\tif ( allowed === false ) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tstep = self.options.step;\r\n\t\t\t\tif ( self.options.values && self.options.values.length ) {\r\n\t\t\t\t\tcurVal = newVal = self.values( index );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcurVal = newVal = self.value();\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tswitch ( event.keyCode ) {\r\n\t\t\t\t\tcase $.ui.keyCode.HOME:\r\n\t\t\t\t\t\tnewVal = self._valueMin();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase $.ui.keyCode.END:\r\n\t\t\t\t\t\tnewVal = self._valueMax();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase $.ui.keyCode.PAGE_UP:\r\n\t\t\t\t\t\tnewVal = self._trimAlignValue( curVal + ( (self._valueMax() - self._valueMin()) / numPages ) );\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase $.ui.keyCode.PAGE_DOWN:\r\n\t\t\t\t\t\tnewVal = self._trimAlignValue( curVal - ( (self._valueMax() - self._valueMin()) / numPages ) );\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase $.ui.keyCode.UP:\r\n\t\t\t\t\tcase $.ui.keyCode.RIGHT:\r\n\t\t\t\t\t\tif ( curVal === self._valueMax() ) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tnewVal = self._trimAlignValue( curVal + step );\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase $.ui.keyCode.DOWN:\r\n\t\t\t\t\tcase $.ui.keyCode.LEFT:\r\n\t\t\t\t\t\tif ( curVal === self._valueMin() ) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tnewVal = self._trimAlignValue( curVal - step );\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\r\n\t\t\t\tself._slide( event, index, newVal );\r\n\t\t\t})\r\n\t\t\t.keyup(function( event ) {\r\n\t\t\t\tvar index = $( this ).data( \"index.ui-slider-handle\" );\r\n\t\r\n\t\t\t\tif ( self._keySliding ) {\r\n\t\t\t\t\tself._keySliding = false;\r\n\t\t\t\t\tself._stop( event, index );\r\n\t\t\t\t\tself._change( event, index );\r\n\t\t\t\t\t$( this ).removeClass( \"ui-state-active\" );\r\n\t\t\t\t}\r\n\t\r\n\t\t\t});\r\n\r\n\t\tthis._refreshValue();\r\n\r\n\t\tthis._animateOff = false;\r\n\t},\r\n\r\n\tdestroy: function() {\r\n\t\tthis.handles.remove();\r\n\t\tthis.range.remove();\r\n\r\n\t\tthis.element\r\n\t\t\t.removeClass( \"ui-slider\" +\r\n\t\t\t\t\" ui-slider-horizontal\" +\r\n\t\t\t\t\" ui-slider-vertical\" +\r\n\t\t\t\t\" ui-slider-disabled\" +\r\n\t\t\t\t\" ui-widget\" +\r\n\t\t\t\t\" ui-widget-content\" +\r\n\t\t\t\t\" ui-corner-all\" )\r\n\t\t\t.removeData( \"slider\" )\r\n\t\t\t.unbind( \".slider\" );\r\n\r\n\t\tthis._mouseDestroy();\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_mouseCapture: function( event ) {\r\n\t\tvar o = this.options,\r\n\t\t\tposition,\r\n\t\t\tnormValue,\r\n\t\t\tdistance,\r\n\t\t\tclosestHandle,\r\n\t\t\tself,\r\n\t\t\tindex,\r\n\t\t\tallowed,\r\n\t\t\toffset,\r\n\t\t\tmouseOverHandle;\r\n\r\n\t\tif ( o.disabled ) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.elementSize = {\r\n\t\t\twidth: this.element.outerWidth(),\r\n\t\t\theight: this.element.outerHeight()\r\n\t\t};\r\n\t\tthis.elementOffset = this.element.offset();\r\n\r\n\t\tposition = { x: event.pageX, y: event.pageY };\r\n\t\tnormValue = this._normValueFromMouse( position );\r\n\t\tdistance = this._valueMax() - this._valueMin() + 1;\r\n\t\tself = this;\r\n\t\tthis.handles.each(function( i ) {\r\n\t\t\tvar thisDistance = Math.abs( normValue - self.values(i) );\r\n\t\t\tif ( distance > thisDistance ) {\r\n\t\t\t\tdistance = thisDistance;\r\n\t\t\t\tclosestHandle = $( this );\r\n\t\t\t\tindex = i;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// workaround for bug #3736 (if both handles of a range are at 0,\r\n\t\t// the first is always used as the one with least distance,\r\n\t\t// and moving it is obviously prevented by preventing negative ranges)\r\n\t\tif( o.range === true && this.values(1) === o.min ) {\r\n\t\t\tindex += 1;\r\n\t\t\tclosestHandle = $( this.handles[index] );\r\n\t\t}\r\n\r\n\t\tallowed = this._start( event, index );\r\n\t\tif ( allowed === false ) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tthis._mouseSliding = true;\r\n\r\n\t\tself._handleIndex = index;\r\n\r\n\t\tclosestHandle\r\n\t\t\t.addClass( \"ui-state-active\" )\r\n\t\t\t.focus();\r\n\t\t\r\n\t\toffset = closestHandle.offset();\r\n\t\tmouseOverHandle = !$( event.target ).parents().andSelf().is( \".ui-slider-handle\" );\r\n\t\tthis._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {\r\n\t\t\tleft: event.pageX - offset.left - ( closestHandle.width() / 2 ),\r\n\t\t\ttop: event.pageY - offset.top -\r\n\t\t\t\t( closestHandle.height() / 2 ) -\r\n\t\t\t\t( parseInt( closestHandle.css(\"borderTopWidth\"), 10 ) || 0 ) -\r\n\t\t\t\t( parseInt( closestHandle.css(\"borderBottomWidth\"), 10 ) || 0) +\r\n\t\t\t\t( parseInt( closestHandle.css(\"marginTop\"), 10 ) || 0)\r\n\t\t};\r\n\r\n\t\tif ( !this.handles.hasClass( \"ui-state-hover\" ) ) {\r\n\t\t\tthis._slide( event, index, normValue );\r\n\t\t}\r\n\t\tthis._animateOff = true;\r\n\t\treturn true;\r\n\t},\r\n\r\n\t_mouseStart: function( event ) {\r\n\t\treturn true;\r\n\t},\r\n\r\n\t_mouseDrag: function( event ) {\r\n\t\tvar position = { x: event.pageX, y: event.pageY },\r\n\t\t\tnormValue = this._normValueFromMouse( position );\r\n\t\t\r\n\t\tthis._slide( event, this._handleIndex, normValue );\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_mouseStop: function( event ) {\r\n\t\tthis.handles.removeClass( \"ui-state-active\" );\r\n\t\tthis._mouseSliding = false;\r\n\r\n\t\tthis._stop( event, this._handleIndex );\r\n\t\tthis._change( event, this._handleIndex );\r\n\r\n\t\tthis._handleIndex = null;\r\n\t\tthis._clickOffset = null;\r\n\t\tthis._animateOff = false;\r\n\r\n\t\treturn false;\r\n\t},\r\n\t\r\n\t_detectOrientation: function() {\r\n\t\tthis.orientation = ( this.options.orientation === \"vertical\" ) ? \"vertical\" : \"horizontal\";\r\n\t},\r\n\r\n\t_normValueFromMouse: function( position ) {\r\n\t\tvar pixelTotal,\r\n\t\t\tpixelMouse,\r\n\t\t\tpercentMouse,\r\n\t\t\tvalueTotal,\r\n\t\t\tvalueMouse;\r\n\r\n\t\tif ( this.orientation === \"horizontal\" ) {\r\n\t\t\tpixelTotal = this.elementSize.width;\r\n\t\t\tpixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 );\r\n\t\t} else {\r\n\t\t\tpixelTotal = this.elementSize.height;\r\n\t\t\tpixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );\r\n\t\t}\r\n\r\n\t\tpercentMouse = ( pixelMouse / pixelTotal );\r\n\t\tif ( percentMouse > 1 ) {\r\n\t\t\tpercentMouse = 1;\r\n\t\t}\r\n\t\tif ( percentMouse < 0 ) {\r\n\t\t\tpercentMouse = 0;\r\n\t\t}\r\n\t\tif ( this.orientation === \"vertical\" ) {\r\n\t\t\tpercentMouse = 1 - percentMouse;\r\n\t\t}\r\n\r\n\t\tvalueTotal = this._valueMax() - this._valueMin();\r\n\t\tvalueMouse = this._valueMin() + percentMouse * valueTotal;\r\n\r\n\t\treturn this._trimAlignValue( valueMouse );\r\n\t},\r\n\r\n\t_start: function( event, index ) {\r\n\t\tvar uiHash = {\r\n\t\t\thandle: this.handles[ index ],\r\n\t\t\tvalue: this.value()\r\n\t\t};\r\n\t\tif ( this.options.values && this.options.values.length ) {\r\n\t\t\tuiHash.value = this.values( index );\r\n\t\t\tuiHash.values = this.values();\r\n\t\t}\r\n\t\treturn this._trigger( \"start\", event, uiHash );\r\n\t},\r\n\r\n\t_slide: function( event, index, newVal ) {\r\n\t\tvar otherVal,\r\n\t\t\tnewValues,\r\n\t\t\tallowed;\r\n\r\n\t\tif ( this.options.values && this.options.values.length ) {\r\n\t\t\totherVal = this.values( index ? 0 : 1 );\r\n\r\n\t\t\tif ( ( this.options.values.length === 2 && this.options.range === true ) && \r\n\t\t\t\t\t( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )\r\n\t\t\t\t) {\r\n\t\t\t\tnewVal = otherVal;\r\n\t\t\t}\r\n\r\n\t\t\tif ( newVal !== this.values( index ) ) {\r\n\t\t\t\tnewValues = this.values();\r\n\t\t\t\tnewValues[ index ] = newVal;\r\n\t\t\t\t// A slide can be canceled by returning false from the slide callback\r\n\t\t\t\tallowed = this._trigger( \"slide\", event, {\r\n\t\t\t\t\thandle: this.handles[ index ],\r\n\t\t\t\t\tvalue: newVal,\r\n\t\t\t\t\tvalues: newValues\r\n\t\t\t\t} );\r\n\t\t\t\totherVal = this.values( index ? 0 : 1 );\r\n\t\t\t\tif ( allowed !== false ) {\r\n\t\t\t\t\tthis.values( index, newVal, true );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif ( newVal !== this.value() ) {\r\n\t\t\t\t// A slide can be canceled by returning false from the slide callback\r\n\t\t\t\tallowed = this._trigger( \"slide\", event, {\r\n\t\t\t\t\thandle: this.handles[ index ],\r\n\t\t\t\t\tvalue: newVal\r\n\t\t\t\t} );\r\n\t\t\t\tif ( allowed !== false ) {\r\n\t\t\t\t\tthis.value( newVal );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_stop: function( event, index ) {\r\n\t\tvar uiHash = {\r\n\t\t\thandle: this.handles[ index ],\r\n\t\t\tvalue: this.value()\r\n\t\t};\r\n\t\tif ( this.options.values && this.options.values.length ) {\r\n\t\t\tuiHash.value = this.values( index );\r\n\t\t\tuiHash.values = this.values();\r\n\t\t}\r\n\r\n\t\tthis._trigger( \"stop\", event, uiHash );\r\n\t},\r\n\r\n\t_change: function( event, index ) {\r\n\t\tif ( !this._keySliding && !this._mouseSliding ) {\r\n\t\t\tvar uiHash = {\r\n\t\t\t\thandle: this.handles[ index ],\r\n\t\t\t\tvalue: this.value()\r\n\t\t\t};\r\n\t\t\tif ( this.options.values && this.options.values.length ) {\r\n\t\t\t\tuiHash.value = this.values( index );\r\n\t\t\t\tuiHash.values = this.values();\r\n\t\t\t}\r\n\r\n\t\t\tthis._trigger( \"change\", event, uiHash );\r\n\t\t}\r\n\t},\r\n\r\n\tvalue: function( newValue ) {\r\n\t\tif ( arguments.length ) {\r\n\t\t\tthis.options.value = this._trimAlignValue( newValue );\r\n\t\t\tthis._refreshValue();\r\n\t\t\tthis._change( null, 0 );\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\treturn this._value();\r\n\t},\r\n\r\n\tvalues: function( index, newValue ) {\r\n\t\tvar vals,\r\n\t\t\tnewValues,\r\n\t\t\ti;\r\n\r\n\t\tif ( arguments.length > 1 ) {\r\n\t\t\tthis.options.values[ index ] = this._trimAlignValue( newValue );\r\n\t\t\tthis._refreshValue();\r\n\t\t\tthis._change( null, index );\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( arguments.length ) {\r\n\t\t\tif ( $.isArray( arguments[ 0 ] ) ) {\r\n\t\t\t\tvals = this.options.values;\r\n\t\t\t\tnewValues = arguments[ 0 ];\r\n\t\t\t\tfor ( i = 0; i < vals.length; i += 1 ) {\r\n\t\t\t\t\tvals[ i ] = this._trimAlignValue( newValues[ i ] );\r\n\t\t\t\t\tthis._change( null, i );\r\n\t\t\t\t}\r\n\t\t\t\tthis._refreshValue();\r\n\t\t\t} else {\r\n\t\t\t\tif ( this.options.values && this.options.values.length ) {\r\n\t\t\t\t\treturn this._values( index );\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn this.value();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn this._values();\r\n\t\t}\r\n\t},\r\n\r\n\t_setOption: function( key, value ) {\r\n\t\tvar i,\r\n\t\t\tvalsLength = 0;\r\n\r\n\t\tif ( $.isArray( this.options.values ) ) {\r\n\t\t\tvalsLength = this.options.values.length;\r\n\t\t}\r\n\r\n\t\t$.Widget.prototype._setOption.apply( this, arguments );\r\n\r\n\t\tswitch ( key ) {\r\n\t\t\tcase \"disabled\":\r\n\t\t\t\tif ( value ) {\r\n\t\t\t\t\tthis.handles.filter( \".ui-state-focus\" ).blur();\r\n\t\t\t\t\tthis.handles.removeClass( \"ui-state-hover\" );\r\n\t\t\t\t\tthis.handles.propAttr( \"disabled\", true );\r\n\t\t\t\t\tthis.element.addClass( \"ui-disabled\" );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.handles.propAttr( \"disabled\", false );\r\n\t\t\t\t\tthis.element.removeClass( \"ui-disabled\" );\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"orientation\":\r\n\t\t\t\tthis._detectOrientation();\r\n\t\t\t\tthis.element\r\n\t\t\t\t\t.removeClass( \"ui-slider-horizontal ui-slider-vertical\" )\r\n\t\t\t\t\t.addClass( \"ui-slider-\" + this.orientation );\r\n\t\t\t\tthis._refreshValue();\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"value\":\r\n\t\t\t\tthis._animateOff = true;\r\n\t\t\t\tthis._refreshValue();\r\n\t\t\t\tthis._change( null, 0 );\r\n\t\t\t\tthis._animateOff = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"values\":\r\n\t\t\t\tthis._animateOff = true;\r\n\t\t\t\tthis._refreshValue();\r\n\t\t\t\tfor ( i = 0; i < valsLength; i += 1 ) {\r\n\t\t\t\t\tthis._change( null, i );\r\n\t\t\t\t}\r\n\t\t\t\tthis._animateOff = false;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t},\r\n\r\n\t//internal value getter\r\n\t// _value() returns value trimmed by min and max, aligned by step\r\n\t_value: function() {\r\n\t\tvar val = this.options.value;\r\n\t\tval = this._trimAlignValue( val );\r\n\r\n\t\treturn val;\r\n\t},\r\n\r\n\t//internal values getter\r\n\t// _values() returns array of values trimmed by min and max, aligned by step\r\n\t// _values( index ) returns single value trimmed by min and max, aligned by step\r\n\t_values: function( index ) {\r\n\t\tvar val,\r\n\t\t\tvals,\r\n\t\t\ti;\r\n\r\n\t\tif ( arguments.length ) {\r\n\t\t\tval = this.options.values[ index ];\r\n\t\t\tval = this._trimAlignValue( val );\r\n\r\n\t\t\treturn val;\r\n\t\t} else {\r\n\t\t\t// .slice() creates a copy of the array\r\n\t\t\t// this copy gets trimmed by min and max and then returned\r\n\t\t\tvals = this.options.values.slice();\r\n\t\t\tfor ( i = 0; i < vals.length; i+= 1) {\r\n\t\t\t\tvals[ i ] = this._trimAlignValue( vals[ i ] );\r\n\t\t\t}\r\n\r\n\t\t\treturn vals;\r\n\t\t}\r\n\t},\r\n\t\r\n\t// returns the step-aligned value that val is closest to, between (inclusive) min and max\r\n\t_trimAlignValue: function( val ) {\r\n\t\tif ( val <= this._valueMin() ) {\r\n\t\t\treturn this._valueMin();\r\n\t\t}\r\n\t\tif ( val >= this._valueMax() ) {\r\n\t\t\treturn this._valueMax();\r\n\t\t}\r\n\t\tvar step = ( this.options.step > 0 ) ? this.options.step : 1,\r\n\t\t\tvalModStep = (val - this._valueMin()) % step,\r\n\t\t\talignValue = val - valModStep;\r\n\r\n\t\tif ( Math.abs(valModStep) * 2 >= step ) {\r\n\t\t\talignValue += ( valModStep > 0 ) ? step : ( -step );\r\n\t\t}\r\n\r\n\t\t// Since JavaScript has problems with large floats, round\r\n\t\t// the final value to 5 digits after the decimal point (see #4124)\r\n\t\treturn parseFloat( alignValue.toFixed(5) );\r\n\t},\r\n\r\n\t_valueMin: function() {\r\n\t\treturn this.options.min;\r\n\t},\r\n\r\n\t_valueMax: function() {\r\n\t\treturn this.options.max;\r\n\t},\r\n\t\r\n\t_refreshValue: function() {\r\n\t\tvar oRange = this.options.range,\r\n\t\t\to = this.options,\r\n\t\t\tself = this,\r\n\t\t\tanimate = ( !this._animateOff ) ? o.animate : false,\r\n\t\t\tvalPercent,\r\n\t\t\t_set = {},\r\n\t\t\tlastValPercent,\r\n\t\t\tvalue,\r\n\t\t\tvalueMin,\r\n\t\t\tvalueMax;\r\n\r\n\t\tif ( this.options.values && this.options.values.length ) {\r\n\t\t\tthis.handles.each(function( i, j ) {\r\n\t\t\t\tvalPercent = ( self.values(i) - self._valueMin() ) / ( self._valueMax() - self._valueMin() ) * 100;\r\n\t\t\t\t_set[ self.orientation === \"horizontal\" ? \"left\" : \"bottom\" ] = valPercent + \"%\";\r\n\t\t\t\t$( this ).stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( _set, o.animate );\r\n\t\t\t\tif ( self.options.range === true ) {\r\n\t\t\t\t\tif ( self.orientation === \"horizontal\" ) {\r\n\t\t\t\t\t\tif ( i === 0 ) {\r\n\t\t\t\t\t\t\tself.range.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( { left: valPercent + \"%\" }, o.animate );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ( i === 1 ) {\r\n\t\t\t\t\t\t\tself.range[ animate ? \"animate\" : \"css\" ]( { width: ( valPercent - lastValPercent ) + \"%\" }, { queue: false, duration: o.animate } );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif ( i === 0 ) {\r\n\t\t\t\t\t\t\tself.range.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( { bottom: ( valPercent ) + \"%\" }, o.animate );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ( i === 1 ) {\r\n\t\t\t\t\t\t\tself.range[ animate ? \"animate\" : \"css\" ]( { height: ( valPercent - lastValPercent ) + \"%\" }, { queue: false, duration: o.animate } );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tlastValPercent = valPercent;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tvalue = this.value();\r\n\t\t\tvalueMin = this._valueMin();\r\n\t\t\tvalueMax = this._valueMax();\r\n\t\t\tvalPercent = ( valueMax !== valueMin ) ?\r\n\t\t\t\t\t( value - valueMin ) / ( valueMax - valueMin ) * 100 :\r\n\t\t\t\t\t0;\r\n\t\t\t_set[ self.orientation === \"horizontal\" ? \"left\" : \"bottom\" ] = valPercent + \"%\";\r\n\t\t\tthis.handle.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( _set, o.animate );\r\n\r\n\t\t\tif ( oRange === \"min\" && this.orientation === \"horizontal\" ) {\r\n\t\t\t\tthis.range.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( { width: valPercent + \"%\" }, o.animate );\r\n\t\t\t}\r\n\t\t\tif ( oRange === \"max\" && this.orientation === \"horizontal\" ) {\r\n\t\t\t\tthis.range[ animate ? \"animate\" : \"css\" ]( { width: ( 100 - valPercent ) + \"%\" }, { queue: false, duration: o.animate } );\r\n\t\t\t}\r\n\t\t\tif ( oRange === \"min\" && this.orientation === \"vertical\" ) {\r\n\t\t\t\tthis.range.stop( 1, 1 )[ animate ? \"animate\" : \"css\" ]( { height: valPercent + \"%\" }, o.animate );\r\n\t\t\t}\r\n\t\t\tif ( oRange === \"max\" && this.orientation === \"vertical\" ) {\r\n\t\t\t\tthis.range[ animate ? \"animate\" : \"css\" ]( { height: ( 100 - valPercent ) + \"%\" }, { queue: false, duration: o.animate } );\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n});\r\n\r\n$.extend( $.ui.slider, {\r\n\tversion: \"1.8.22\"\r\n});\r\n\r\n}(jQuery));\r\n\r\n(function( $, undefined ) {\r\n\r\nvar tabId = 0,\r\n\tlistId = 0;\r\n\r\nfunction getNextTabId() {\r\n\treturn ++tabId;\r\n}\r\n\r\nfunction getNextListId() {\r\n\treturn ++listId;\r\n}\r\n\r\n$.widget( \"ui.tabs\", {\r\n\toptions: {\r\n\t\tadd: null,\r\n\t\tajaxOptions: null,\r\n\t\tcache: false,\r\n\t\tcookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true }\r\n\t\tcollapsible: false,\r\n\t\tdisable: null,\r\n\t\tdisabled: [],\r\n\t\tenable: null,\r\n\t\tevent: \"click\",\r\n\t\tfx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }\r\n\t\tidPrefix: \"ui-tabs-\",\r\n\t\tload: null,\r\n\t\tpanelTemplate: \"
    \",\r\n\t\tremove: null,\r\n\t\tselect: null,\r\n\t\tshow: null,\r\n\t\tspinner: \"Loading…\",\r\n\t\ttabTemplate: \"
  • #{label}
  • \"\r\n\t},\r\n\r\n\t_create: function() {\r\n\t\tthis._tabify( true );\r\n\t},\r\n\r\n\t_setOption: function( key, value ) {\r\n\t\tif ( key == \"selected\" ) {\r\n\t\t\tif (this.options.collapsible && value == this.options.selected ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.select( value );\r\n\t\t} else {\r\n\t\t\tthis.options[ key ] = value;\r\n\t\t\tthis._tabify();\r\n\t\t}\r\n\t},\r\n\r\n\t_tabId: function( a ) {\r\n\t\treturn a.title && a.title.replace( /\\s/g, \"_\" ).replace( /[^\\w\\u00c0-\\uFFFF-]/g, \"\" ) ||\r\n\t\t\tthis.options.idPrefix + getNextTabId();\r\n\t},\r\n\r\n\t_sanitizeSelector: function( hash ) {\r\n\t\t// we need this because an id may contain a \":\"\r\n\t\treturn hash.replace( /:/g, \"\\\\:\" );\r\n\t},\r\n\r\n\t_cookie: function() {\r\n\t\tvar cookie = this.cookie ||\r\n\t\t\t( this.cookie = this.options.cookie.name || \"ui-tabs-\" + getNextListId() );\r\n\t\treturn $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) );\r\n\t},\r\n\r\n\t_ui: function( tab, panel ) {\r\n\t\treturn {\r\n\t\t\ttab: tab,\r\n\t\t\tpanel: panel,\r\n\t\t\tindex: this.anchors.index( tab )\r\n\t\t};\r\n\t},\r\n\r\n\t_cleanup: function() {\r\n\t\t// restore all former loading tabs labels\r\n\t\tthis.lis.filter( \".ui-state-processing\" )\r\n\t\t\t.removeClass( \"ui-state-processing\" )\r\n\t\t\t.find( \"span:data(label.tabs)\" )\r\n\t\t\t\t.each(function() {\r\n\t\t\t\t\tvar el = $( this );\r\n\t\t\t\t\tel.html( el.data( \"label.tabs\" ) ).removeData( \"label.tabs\" );\r\n\t\t\t\t});\r\n\t},\r\n\r\n\t_tabify: function( init ) {\r\n\t\tvar self = this,\r\n\t\t\to = this.options,\r\n\t\t\tfragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash\r\n\r\n\t\tthis.list = this.element.find( \"ol,ul\" ).eq( 0 );\r\n\t\tthis.lis = $( \" > li:has(a[href])\", this.list );\r\n\t\tthis.anchors = this.lis.map(function() {\r\n\t\t\treturn $( \"a\", this )[ 0 ];\r\n\t\t});\r\n\t\tthis.panels = $( [] );\r\n\r\n\t\tthis.anchors.each(function( i, a ) {\r\n\t\t\tvar href = $( a ).attr( \"href\" );\r\n\t\t\t// For dynamically created HTML that contains a hash as href IE < 8 expands\r\n\t\t\t// such href to the full page url with hash and then misinterprets tab as ajax.\r\n\t\t\t// Same consideration applies for an added tab with a fragment identifier\r\n\t\t\t// since a[href=#fragment-identifier] does unexpectedly not match.\r\n\t\t\t// Thus normalize href attribute...\r\n\t\t\tvar hrefBase = href.split( \"#\" )[ 0 ],\r\n\t\t\t\tbaseEl;\r\n\t\t\tif ( hrefBase && ( hrefBase === location.toString().split( \"#\" )[ 0 ] ||\r\n\t\t\t\t\t( baseEl = $( \"base\" )[ 0 ]) && hrefBase === baseEl.href ) ) {\r\n\t\t\t\thref = a.hash;\r\n\t\t\t\ta.href = href;\r\n\t\t\t}\r\n\r\n\t\t\t// inline tab\r\n\t\t\tif ( fragmentId.test( href ) ) {\r\n\t\t\t\tself.panels = self.panels.add( self.element.find( self._sanitizeSelector( href ) ) );\r\n\t\t\t// remote tab\r\n\t\t\t// prevent loading the page itself if href is just \"#\"\r\n\t\t\t} else if ( href && href !== \"#\" ) {\r\n\t\t\t\t// required for restore on destroy\r\n\t\t\t\t$.data( a, \"href.tabs\", href );\r\n\r\n\t\t\t\t// TODO until #3808 is fixed strip fragment identifier from url\r\n\t\t\t\t// (IE fails to load from such url)\r\n\t\t\t\t$.data( a, \"load.tabs\", href.replace( /#.*$/, \"\" ) );\r\n\r\n\t\t\t\tvar id = self._tabId( a );\r\n\t\t\t\ta.href = \"#\" + id;\r\n\t\t\t\tvar $panel = self.element.find( \"#\" + id );\r\n\t\t\t\tif ( !$panel.length ) {\r\n\t\t\t\t\t$panel = $( o.panelTemplate )\r\n\t\t\t\t\t\t.attr( \"id\", id )\r\n\t\t\t\t\t\t.addClass( \"ui-tabs-panel ui-widget-content ui-corner-bottom\" )\r\n\t\t\t\t\t\t.insertAfter( self.panels[ i - 1 ] || self.list );\r\n\t\t\t\t\t$panel.data( \"destroy.tabs\", true );\r\n\t\t\t\t}\r\n\t\t\t\tself.panels = self.panels.add( $panel );\r\n\t\t\t// invalid tab href\r\n\t\t\t} else {\r\n\t\t\t\to.disabled.push( i );\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// initialization from scratch\r\n\t\tif ( init ) {\r\n\t\t\t// attach necessary classes for styling\r\n\t\t\tthis.element.addClass( \"ui-tabs ui-widget ui-widget-content ui-corner-all\" );\r\n\t\t\tthis.list.addClass( \"ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all\" );\r\n\t\t\tthis.lis.addClass( \"ui-state-default ui-corner-top\" );\r\n\t\t\tthis.panels.addClass( \"ui-tabs-panel ui-widget-content ui-corner-bottom\" );\r\n\r\n\t\t\t// Selected tab\r\n\t\t\t// use \"selected\" option or try to retrieve:\r\n\t\t\t// 1. from fragment identifier in url\r\n\t\t\t// 2. from cookie\r\n\t\t\t// 3. from selected class attribute on
  • \r\n\t\t\tif ( o.selected === undefined ) {\r\n\t\t\t\tif ( location.hash ) {\r\n\t\t\t\t\tthis.anchors.each(function( i, a ) {\r\n\t\t\t\t\t\tif ( a.hash == location.hash ) {\r\n\t\t\t\t\t\t\to.selected = i;\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tif ( typeof o.selected !== \"number\" && o.cookie ) {\r\n\t\t\t\t\to.selected = parseInt( self._cookie(), 10 );\r\n\t\t\t\t}\r\n\t\t\t\tif ( typeof o.selected !== \"number\" && this.lis.filter( \".ui-tabs-selected\" ).length ) {\r\n\t\t\t\t\to.selected = this.lis.index( this.lis.filter( \".ui-tabs-selected\" ) );\r\n\t\t\t\t}\r\n\t\t\t\to.selected = o.selected || ( this.lis.length ? 0 : -1 );\r\n\t\t\t} else if ( o.selected === null ) { // usage of null is deprecated, TODO remove in next release\r\n\t\t\t\to.selected = -1;\r\n\t\t\t}\r\n\r\n\t\t\t// sanity check - default to first tab...\r\n\t\t\to.selected = ( ( o.selected >= 0 && this.anchors[ o.selected ] ) || o.selected < 0 )\r\n\t\t\t\t? o.selected\r\n\t\t\t\t: 0;\r\n\r\n\t\t\t// Take disabling tabs via class attribute from HTML\r\n\t\t\t// into account and update option properly.\r\n\t\t\t// A selected tab cannot become disabled.\r\n\t\t\to.disabled = $.unique( o.disabled.concat(\r\n\t\t\t\t$.map( this.lis.filter( \".ui-state-disabled\" ), function( n, i ) {\r\n\t\t\t\t\treturn self.lis.index( n );\r\n\t\t\t\t})\r\n\t\t\t) ).sort();\r\n\r\n\t\t\tif ( $.inArray( o.selected, o.disabled ) != -1 ) {\r\n\t\t\t\to.disabled.splice( $.inArray( o.selected, o.disabled ), 1 );\r\n\t\t\t}\r\n\r\n\t\t\t// highlight selected tab\r\n\t\t\tthis.panels.addClass( \"ui-tabs-hide\" );\r\n\t\t\tthis.lis.removeClass( \"ui-tabs-selected ui-state-active\" );\r\n\t\t\t// check for length avoids error when initializing empty list\r\n\t\t\tif ( o.selected >= 0 && this.anchors.length ) {\r\n\t\t\t\tself.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) ).removeClass( \"ui-tabs-hide\" );\r\n\t\t\t\tthis.lis.eq( o.selected ).addClass( \"ui-tabs-selected ui-state-active\" );\r\n\r\n\t\t\t\t// seems to be expected behavior that the show callback is fired\r\n\t\t\t\tself.element.queue( \"tabs\", function() {\r\n\t\t\t\t\tself._trigger( \"show\", null,\r\n\t\t\t\t\t\tself._ui( self.anchors[ o.selected ], self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) )[ 0 ] ) );\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.load( o.selected );\r\n\t\t\t}\r\n\r\n\t\t\t// clean up to avoid memory leaks in certain versions of IE 6\r\n\t\t\t// TODO: namespace this event\r\n\t\t\t$( window ).bind( \"unload\", function() {\r\n\t\t\t\tself.lis.add( self.anchors ).unbind( \".tabs\" );\r\n\t\t\t\tself.lis = self.anchors = self.panels = null;\r\n\t\t\t});\r\n\t\t// update selected after add/remove\r\n\t\t} else {\r\n\t\t\to.selected = this.lis.index( this.lis.filter( \".ui-tabs-selected\" ) );\r\n\t\t}\r\n\r\n\t\t// update collapsible\r\n\t\t// TODO: use .toggleClass()\r\n\t\tthis.element[ o.collapsible ? \"addClass\" : \"removeClass\" ]( \"ui-tabs-collapsible\" );\r\n\r\n\t\t// set or update cookie after init and add/remove respectively\r\n\t\tif ( o.cookie ) {\r\n\t\t\tthis._cookie( o.selected, o.cookie );\r\n\t\t}\r\n\r\n\t\t// disable tabs\r\n\t\tfor ( var i = 0, li; ( li = this.lis[ i ] ); i++ ) {\r\n\t\t\t$( li )[ $.inArray( i, o.disabled ) != -1 &&\r\n\t\t\t\t// TODO: use .toggleClass()\r\n\t\t\t\t!$( li ).hasClass( \"ui-tabs-selected\" ) ? \"addClass\" : \"removeClass\" ]( \"ui-state-disabled\" );\r\n\t\t}\r\n\r\n\t\t// reset cache if switching from cached to not cached\r\n\t\tif ( o.cache === false ) {\r\n\t\t\tthis.anchors.removeData( \"cache.tabs\" );\r\n\t\t}\r\n\r\n\t\t// remove all handlers before, tabify may run on existing tabs after add or option change\r\n\t\tthis.lis.add( this.anchors ).unbind( \".tabs\" );\r\n\r\n\t\tif ( o.event !== \"mouseover\" ) {\r\n\t\t\tvar addState = function( state, el ) {\r\n\t\t\t\tif ( el.is( \":not(.ui-state-disabled)\" ) ) {\r\n\t\t\t\t\tel.addClass( \"ui-state-\" + state );\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tvar removeState = function( state, el ) {\r\n\t\t\t\tel.removeClass( \"ui-state-\" + state );\r\n\t\t\t};\r\n\t\t\tthis.lis.bind( \"mouseover.tabs\" , function() {\r\n\t\t\t\taddState( \"hover\", $( this ) );\r\n\t\t\t});\r\n\t\t\tthis.lis.bind( \"mouseout.tabs\", function() {\r\n\t\t\t\tremoveState( \"hover\", $( this ) );\r\n\t\t\t});\r\n\t\t\tthis.anchors.bind( \"focus.tabs\", function() {\r\n\t\t\t\taddState( \"focus\", $( this ).closest( \"li\" ) );\r\n\t\t\t});\r\n\t\t\tthis.anchors.bind( \"blur.tabs\", function() {\r\n\t\t\t\tremoveState( \"focus\", $( this ).closest( \"li\" ) );\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// set up animations\r\n\t\tvar hideFx, showFx;\r\n\t\tif ( o.fx ) {\r\n\t\t\tif ( $.isArray( o.fx ) ) {\r\n\t\t\t\thideFx = o.fx[ 0 ];\r\n\t\t\t\tshowFx = o.fx[ 1 ];\r\n\t\t\t} else {\r\n\t\t\t\thideFx = showFx = o.fx;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Reset certain styles left over from animation\r\n\t\t// and prevent IE's ClearType bug...\r\n\t\tfunction resetStyle( $el, fx ) {\r\n\t\t\t$el.css( \"display\", \"\" );\r\n\t\t\tif ( !$.support.opacity && fx.opacity ) {\r\n\t\t\t\t$el[ 0 ].style.removeAttribute( \"filter\" );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Show a tab...\r\n\t\tvar showTab = showFx\r\n\t\t\t? function( clicked, $show ) {\r\n\t\t\t\t$( clicked ).closest( \"li\" ).addClass( \"ui-tabs-selected ui-state-active\" );\r\n\t\t\t\t$show.hide().removeClass( \"ui-tabs-hide\" ) // avoid flicker that way\r\n\t\t\t\t\t.animate( showFx, showFx.duration || \"normal\", function() {\r\n\t\t\t\t\t\tresetStyle( $show, showFx );\r\n\t\t\t\t\t\tself._trigger( \"show\", null, self._ui( clicked, $show[ 0 ] ) );\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t: function( clicked, $show ) {\r\n\t\t\t\t$( clicked ).closest( \"li\" ).addClass( \"ui-tabs-selected ui-state-active\" );\r\n\t\t\t\t$show.removeClass( \"ui-tabs-hide\" );\r\n\t\t\t\tself._trigger( \"show\", null, self._ui( clicked, $show[ 0 ] ) );\r\n\t\t\t};\r\n\r\n\t\t// Hide a tab, $show is optional...\r\n\t\tvar hideTab = hideFx\r\n\t\t\t? function( clicked, $hide ) {\r\n\t\t\t\t$hide.animate( hideFx, hideFx.duration || \"normal\", function() {\r\n\t\t\t\t\tself.lis.removeClass( \"ui-tabs-selected ui-state-active\" );\r\n\t\t\t\t\t$hide.addClass( \"ui-tabs-hide\" );\r\n\t\t\t\t\tresetStyle( $hide, hideFx );\r\n\t\t\t\t\tself.element.dequeue( \"tabs\" );\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t: function( clicked, $hide, $show ) {\r\n\t\t\t\tself.lis.removeClass( \"ui-tabs-selected ui-state-active\" );\r\n\t\t\t\t$hide.addClass( \"ui-tabs-hide\" );\r\n\t\t\t\tself.element.dequeue( \"tabs\" );\r\n\t\t\t};\r\n\r\n\t\t// attach tab event handler, unbind to avoid duplicates from former tabifying...\r\n\t\tthis.anchors.bind( o.event + \".tabs\", function() {\r\n\t\t\tvar el = this,\r\n\t\t\t\t$li = $(el).closest( \"li\" ),\r\n\t\t\t\t$hide = self.panels.filter( \":not(.ui-tabs-hide)\" ),\r\n\t\t\t\t$show = self.element.find( self._sanitizeSelector( el.hash ) );\r\n\r\n\t\t\t// If tab is already selected and not collapsible or tab disabled or\r\n\t\t\t// or is already loading or click callback returns false stop here.\r\n\t\t\t// Check if click handler returns false last so that it is not executed\r\n\t\t\t// for a disabled or loading tab!\r\n\t\t\tif ( ( $li.hasClass( \"ui-tabs-selected\" ) && !o.collapsible) ||\r\n\t\t\t\t$li.hasClass( \"ui-state-disabled\" ) ||\r\n\t\t\t\t$li.hasClass( \"ui-state-processing\" ) ||\r\n\t\t\t\tself.panels.filter( \":animated\" ).length ||\r\n\t\t\t\tself._trigger( \"select\", null, self._ui( this, $show[ 0 ] ) ) === false ) {\r\n\t\t\t\tthis.blur();\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\to.selected = self.anchors.index( this );\r\n\r\n\t\t\tself.abort();\r\n\r\n\t\t\t// if tab may be closed\r\n\t\t\tif ( o.collapsible ) {\r\n\t\t\t\tif ( $li.hasClass( \"ui-tabs-selected\" ) ) {\r\n\t\t\t\t\to.selected = -1;\r\n\r\n\t\t\t\t\tif ( o.cookie ) {\r\n\t\t\t\t\t\tself._cookie( o.selected, o.cookie );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tself.element.queue( \"tabs\", function() {\r\n\t\t\t\t\t\thideTab( el, $hide );\r\n\t\t\t\t\t}).dequeue( \"tabs\" );\r\n\r\n\t\t\t\t\tthis.blur();\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t} else if ( !$hide.length ) {\r\n\t\t\t\t\tif ( o.cookie ) {\r\n\t\t\t\t\t\tself._cookie( o.selected, o.cookie );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tself.element.queue( \"tabs\", function() {\r\n\t\t\t\t\t\tshowTab( el, $show );\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171\r\n\t\t\t\t\tself.load( self.anchors.index( this ) );\r\n\r\n\t\t\t\t\tthis.blur();\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ( o.cookie ) {\r\n\t\t\t\tself._cookie( o.selected, o.cookie );\r\n\t\t\t}\r\n\r\n\t\t\t// show new tab\r\n\t\t\tif ( $show.length ) {\r\n\t\t\t\tif ( $hide.length ) {\r\n\t\t\t\t\tself.element.queue( \"tabs\", function() {\r\n\t\t\t\t\t\thideTab( el, $hide );\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tself.element.queue( \"tabs\", function() {\r\n\t\t\t\t\tshowTab( el, $show );\r\n\t\t\t\t});\r\n\r\n\t\t\t\tself.load( self.anchors.index( this ) );\r\n\t\t\t} else {\r\n\t\t\t\tthrow \"jQuery UI Tabs: Mismatching fragment identifier.\";\r\n\t\t\t}\r\n\r\n\t\t\t// Prevent IE from keeping other link focussed when using the back button\r\n\t\t\t// and remove dotted border from clicked link. This is controlled via CSS\r\n\t\t\t// in modern browsers; blur() removes focus from address bar in Firefox\r\n\t\t\t// which can become a usability and annoying problem with tabs('rotate').\r\n\t\t\tif ( $.browser.msie ) {\r\n\t\t\t\tthis.blur();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// disable click in any case\r\n\t\tthis.anchors.bind( \"click.tabs\", function(){\r\n\t\t\treturn false;\r\n\t\t});\r\n\t},\r\n\r\n _getIndex: function( index ) {\r\n\t\t// meta-function to give users option to provide a href string instead of a numerical index.\r\n\t\t// also sanitizes numerical indexes to valid values.\r\n\t\tif ( typeof index == \"string\" ) {\r\n\t\t\tindex = this.anchors.index( this.anchors.filter( \"[href$='\" + index + \"']\" ) );\r\n\t\t}\r\n\r\n\t\treturn index;\r\n\t},\r\n\r\n\tdestroy: function() {\r\n\t\tvar o = this.options;\r\n\r\n\t\tthis.abort();\r\n\r\n\t\tthis.element\r\n\t\t\t.unbind( \".tabs\" )\r\n\t\t\t.removeClass( \"ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible\" )\r\n\t\t\t.removeData( \"tabs\" );\r\n\r\n\t\tthis.list.removeClass( \"ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all\" );\r\n\r\n\t\tthis.anchors.each(function() {\r\n\t\t\tvar href = $.data( this, \"href.tabs\" );\r\n\t\t\tif ( href ) {\r\n\t\t\t\tthis.href = href;\r\n\t\t\t}\r\n\t\t\tvar $this = $( this ).unbind( \".tabs\" );\r\n\t\t\t$.each( [ \"href\", \"load\", \"cache\" ], function( i, prefix ) {\r\n\t\t\t\t$this.removeData( prefix + \".tabs\" );\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.lis.unbind( \".tabs\" ).add( this.panels ).each(function() {\r\n\t\t\tif ( $.data( this, \"destroy.tabs\" ) ) {\r\n\t\t\t\t$( this ).remove();\r\n\t\t\t} else {\r\n\t\t\t\t$( this ).removeClass([\r\n\t\t\t\t\t\"ui-state-default\",\r\n\t\t\t\t\t\"ui-corner-top\",\r\n\t\t\t\t\t\"ui-tabs-selected\",\r\n\t\t\t\t\t\"ui-state-active\",\r\n\t\t\t\t\t\"ui-state-hover\",\r\n\t\t\t\t\t\"ui-state-focus\",\r\n\t\t\t\t\t\"ui-state-disabled\",\r\n\t\t\t\t\t\"ui-tabs-panel\",\r\n\t\t\t\t\t\"ui-widget-content\",\r\n\t\t\t\t\t\"ui-corner-bottom\",\r\n\t\t\t\t\t\"ui-tabs-hide\"\r\n\t\t\t\t].join( \" \" ) );\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif ( o.cookie ) {\r\n\t\t\tthis._cookie( null, o.cookie );\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tadd: function( url, label, index ) {\r\n\t\tif ( index === undefined ) {\r\n\t\t\tindex = this.anchors.length;\r\n\t\t}\r\n\r\n\t\tvar self = this,\r\n\t\t\to = this.options,\r\n\t\t\t$li = $( o.tabTemplate.replace( /#\\{href\\}/g, url ).replace( /#\\{label\\}/g, label ) ),\r\n\t\t\tid = !url.indexOf( \"#\" ) ? url.replace( \"#\", \"\" ) : this._tabId( $( \"a\", $li )[ 0 ] );\r\n\r\n\t\t$li.addClass( \"ui-state-default ui-corner-top\" ).data( \"destroy.tabs\", true );\r\n\r\n\t\t// try to find an existing element before creating a new one\r\n\t\tvar $panel = self.element.find( \"#\" + id );\r\n\t\tif ( !$panel.length ) {\r\n\t\t\t$panel = $( o.panelTemplate )\r\n\t\t\t\t.attr( \"id\", id )\r\n\t\t\t\t.data( \"destroy.tabs\", true );\r\n\t\t}\r\n\t\t$panel.addClass( \"ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide\" );\r\n\r\n\t\tif ( index >= this.lis.length ) {\r\n\t\t\t$li.appendTo( this.list );\r\n\t\t\t$panel.appendTo( this.list[ 0 ].parentNode );\r\n\t\t} else {\r\n\t\t\t$li.insertBefore( this.lis[ index ] );\r\n\t\t\t$panel.insertBefore( this.panels[ index ] );\r\n\t\t}\r\n\r\n\t\to.disabled = $.map( o.disabled, function( n, i ) {\r\n\t\t\treturn n >= index ? ++n : n;\r\n\t\t});\r\n\r\n\t\tthis._tabify();\r\n\r\n\t\tif ( this.anchors.length == 1 ) {\r\n\t\t\to.selected = 0;\r\n\t\t\t$li.addClass( \"ui-tabs-selected ui-state-active\" );\r\n\t\t\t$panel.removeClass( \"ui-tabs-hide\" );\r\n\t\t\tthis.element.queue( \"tabs\", function() {\r\n\t\t\t\tself._trigger( \"show\", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) );\r\n\t\t\t});\r\n\r\n\t\t\tthis.load( 0 );\r\n\t\t}\r\n\r\n\t\tthis._trigger( \"add\", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );\r\n\t\treturn this;\r\n\t},\r\n\r\n\tremove: function( index ) {\r\n\t\tindex = this._getIndex( index );\r\n\t\tvar o = this.options,\r\n\t\t\t$li = this.lis.eq( index ).remove(),\r\n\t\t\t$panel = this.panels.eq( index ).remove();\r\n\r\n\t\t// If selected tab was removed focus tab to the right or\r\n\t\t// in case the last tab was removed the tab to the left.\r\n\t\tif ( $li.hasClass( \"ui-tabs-selected\" ) && this.anchors.length > 1) {\r\n\t\t\tthis.select( index + ( index + 1 < this.anchors.length ? 1 : -1 ) );\r\n\t\t}\r\n\r\n\t\to.disabled = $.map(\r\n\t\t\t$.grep( o.disabled, function(n, i) {\r\n\t\t\t\treturn n != index;\r\n\t\t\t}),\r\n\t\t\tfunction( n, i ) {\r\n\t\t\t\treturn n >= index ? --n : n;\r\n\t\t\t});\r\n\r\n\t\tthis._tabify();\r\n\r\n\t\tthis._trigger( \"remove\", null, this._ui( $li.find( \"a\" )[ 0 ], $panel[ 0 ] ) );\r\n\t\treturn this;\r\n\t},\r\n\r\n\tenable: function( index ) {\r\n\t\tindex = this._getIndex( index );\r\n\t\tvar o = this.options;\r\n\t\tif ( $.inArray( index, o.disabled ) == -1 ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.lis.eq( index ).removeClass( \"ui-state-disabled\" );\r\n\t\to.disabled = $.grep( o.disabled, function( n, i ) {\r\n\t\t\treturn n != index;\r\n\t\t});\r\n\r\n\t\tthis._trigger( \"enable\", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );\r\n\t\treturn this;\r\n\t},\r\n\r\n\tdisable: function( index ) {\r\n\t\tindex = this._getIndex( index );\r\n\t\tvar self = this, o = this.options;\r\n\t\t// cannot disable already selected tab\r\n\t\tif ( index != o.selected ) {\r\n\t\t\tthis.lis.eq( index ).addClass( \"ui-state-disabled\" );\r\n\r\n\t\t\to.disabled.push( index );\r\n\t\t\to.disabled.sort();\r\n\r\n\t\t\tthis._trigger( \"disable\", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tselect: function( index ) {\r\n\t\tindex = this._getIndex( index );\r\n\t\tif ( index == -1 ) {\r\n\t\t\tif ( this.options.collapsible && this.options.selected != -1 ) {\r\n\t\t\t\tindex = this.options.selected;\r\n\t\t\t} else {\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.anchors.eq( index ).trigger( this.options.event + \".tabs\" );\r\n\t\treturn this;\r\n\t},\r\n\r\n\tload: function( index ) {\r\n\t\tindex = this._getIndex( index );\r\n\t\tvar self = this,\r\n\t\t\to = this.options,\r\n\t\t\ta = this.anchors.eq( index )[ 0 ],\r\n\t\t\turl = $.data( a, \"load.tabs\" );\r\n\r\n\t\tthis.abort();\r\n\r\n\t\t// not remote or from cache\r\n\t\tif ( !url || this.element.queue( \"tabs\" ).length !== 0 && $.data( a, \"cache.tabs\" ) ) {\r\n\t\t\tthis.element.dequeue( \"tabs\" );\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// load remote from here on\r\n\t\tthis.lis.eq( index ).addClass( \"ui-state-processing\" );\r\n\r\n\t\tif ( o.spinner ) {\r\n\t\t\tvar span = $( \"span\", a );\r\n\t\t\tspan.data( \"label.tabs\", span.html() ).html( o.spinner );\r\n\t\t}\r\n\r\n\t\tthis.xhr = $.ajax( $.extend( {}, o.ajaxOptions, {\r\n\t\t\turl: url,\r\n\t\t\tsuccess: function( r, s ) {\r\n\t\t\t\tself.element.find( self._sanitizeSelector( a.hash ) ).html( r );\r\n\r\n\t\t\t\t// take care of tab labels\r\n\t\t\t\tself._cleanup();\r\n\r\n\t\t\t\tif ( o.cache ) {\r\n\t\t\t\t\t$.data( a, \"cache.tabs\", true );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself._trigger( \"load\", null, self._ui( self.anchors[ index ], self.panels[ index ] ) );\r\n\t\t\t\ttry {\r\n\t\t\t\t\to.ajaxOptions.success( r, s );\r\n\t\t\t\t}\r\n\t\t\t\tcatch ( e ) {}\r\n\t\t\t},\r\n\t\t\terror: function( xhr, s, e ) {\r\n\t\t\t\t// take care of tab labels\r\n\t\t\t\tself._cleanup();\r\n\r\n\t\t\t\tself._trigger( \"load\", null, self._ui( self.anchors[ index ], self.panels[ index ] ) );\r\n\t\t\t\ttry {\r\n\t\t\t\t\t// Passing index avoid a race condition when this method is\r\n\t\t\t\t\t// called after the user has selected another tab.\r\n\t\t\t\t\t// Pass the anchor that initiated this request allows\r\n\t\t\t\t\t// loadError to manipulate the tab content panel via $(a.hash)\r\n\t\t\t\t\to.ajaxOptions.error( xhr, s, index, a );\r\n\t\t\t\t}\r\n\t\t\t\tcatch ( e ) {}\r\n\t\t\t}\r\n\t\t} ) );\r\n\r\n\t\t// last, so that load event is fired before show...\r\n\t\tself.element.dequeue( \"tabs\" );\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tabort: function() {\r\n\t\t// stop possibly running animations\r\n\t\tthis.element.queue( [] );\r\n\t\tthis.panels.stop( false, true );\r\n\r\n\t\t// \"tabs\" queue must not contain more than two elements,\r\n\t\t// which are the callbacks for the latest clicked tab...\r\n\t\tthis.element.queue( \"tabs\", this.element.queue( \"tabs\" ).splice( -2, 2 ) );\r\n\r\n\t\t// terminate pending requests from other tabs\r\n\t\tif ( this.xhr ) {\r\n\t\t\tthis.xhr.abort();\r\n\t\t\tdelete this.xhr;\r\n\t\t}\r\n\r\n\t\t// take care of tab labels\r\n\t\tthis._cleanup();\r\n\t\treturn this;\r\n\t},\r\n\r\n\turl: function( index, url ) {\r\n\t\tthis.anchors.eq( index ).removeData( \"cache.tabs\" ).data( \"load.tabs\", url );\r\n\t\treturn this;\r\n\t},\r\n\r\n\tlength: function() {\r\n\t\treturn this.anchors.length;\r\n\t}\r\n});\r\n\r\n$.extend( $.ui.tabs, {\r\n\tversion: \"1.8.22\"\r\n});\r\n\r\n/*\r\n * Tabs Extensions\r\n */\r\n\r\n/*\r\n * Rotate\r\n */\r\n$.extend( $.ui.tabs.prototype, {\r\n\trotation: null,\r\n\trotate: function( ms, continuing ) {\r\n\t\tvar self = this,\r\n\t\t\to = this.options;\r\n\r\n\t\tvar rotate = self._rotate || ( self._rotate = function( e ) {\r\n\t\t\tclearTimeout( self.rotation );\r\n\t\t\tself.rotation = setTimeout(function() {\r\n\t\t\t\tvar t = o.selected;\r\n\t\t\t\tself.select( ++t < self.anchors.length ? t : 0 );\r\n\t\t\t}, ms );\r\n\t\t\t\r\n\t\t\tif ( e ) {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar stop = self._unrotate || ( self._unrotate = !continuing\r\n\t\t\t? function(e) {\r\n\t\t\t\tif (e.clientX) { // in case of a true click\r\n\t\t\t\t\tself.rotate(null);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t: function( e ) {\r\n\t\t\t\trotate();\r\n\t\t\t});\r\n\r\n\t\t// start rotation\r\n\t\tif ( ms ) {\r\n\t\t\tthis.element.bind( \"tabsshow\", rotate );\r\n\t\t\tthis.anchors.bind( o.event + \".tabs\", stop );\r\n\t\t\trotate();\r\n\t\t// stop rotation\r\n\t\t} else {\r\n\t\t\tclearTimeout( self.rotation );\r\n\t\t\tthis.element.unbind( \"tabsshow\", rotate );\r\n\t\t\tthis.anchors.unbind( o.event + \".tabs\", stop );\r\n\t\t\tdelete this._rotate;\r\n\t\t\tdelete this._unrotate;\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\n})( jQuery );\r\n"]}