{"version":3,"sources":["jquery.datepick-ru.js","jquery.ui.datepicker-ru.js","jquery.tooltip.js","jquery.cookie-1.4.1.js","jquery.ui.widget.js","jquery.iframe-transport.js","jquery.fileupload.js","jquery.treeview.js","jquery.timers.js","jquery.tooltip_changed.js","jquery.ui.tooltip_changed.js","jquery-ui-timepicker-addon.js","jquery-ui-timepicker-ru.js","jquery-ui-sliderAccess.js","regenerator-runtime/runtime.js","babel-runtime/node_modules/regenerator-runtime/runtime.js"],"names":["$","datepick","regional","clearText","clearStatus","closeText","closeStatus","prevText","prevStatus","prevBigText","prevBigStatus","nextText","nextStatus","nextBigText","nextBigStatus","currentText","currentStatus","monthNames","monthNamesShort","monthStatus","yearStatus","weekHeader","weekStatus","dayNames","dayNamesShort","dayNamesMin","dayStatus","dateStatus","dateFormat","firstDay","initStatus","isRTL","showMonthAfterYear","yearSuffix","setDefaults","jQuery","datepicker","current","title","tID","helper","IE","browser","msie","test","navigator","userAgent","track","settings","element","data","save","tooltip","blocked","this","tooltipText","bodyHandler","hide","bodyContent","call","nodeType","jquery","body","empty","append","html","show","showBody","parts","split","shift","part","i","hideWhenEmpty","showURL","url","replace","parent","addClass","extraClass","fixPNG","handle","event","delay","setTimeout","document","bind","update","apply","arguments","fn","bgiframe","fade","is","stop","fadeTo","tOpacity","fadeIn","left","top","h","target","tagName","unbind","removeClass","offsetLeft","offsetTop","pageX","pageY","right","positionLeft","window","width","css","v","x","scrollLeft","y","scrollTop","cx","cy","height","offsetWidth","offsetHeight","tsettings","complete","clearTimeout","fadeOut","unfixPNG","defaults","id","block","extend","appendTo","each","removeAttr","alt","mouseover","mouseout","click","image","match","RegExp","$1","backgroundImage","filter","position","attr","factory","define","amd","exports","require","pluses","encode","s","config","raw","encodeURIComponent","read","converter","value","indexOf","slice","decodeURIComponent","json","JSON","parse","e","isFunction","cookie","key","options","days","undefined","expires","t","Date","setTime","stringify","String","toUTCString","path","domain","secure","join","result","cookies","l","length","name","removeCookie","uuid","Array","prototype","_cleanData","cleanData","elems","elem","triggerHandler","widget","base","fullName","existingConstructor","constructor","basePrototype","proxiedPrototype","namespace","Widget","expr","toLowerCase","_createWidget","version","_proto","_childConstructors","prop","_super","_superApply","args","returnValue","__super","__superApply","widgetEventPrefix","widgetName","widgetFullName","child","childPrototype","push","bridge","input","inputIndex","inputLength","hasOwnProperty","isPlainObject","object","isMethodCall","concat","methodValue","instance","charAt","pushStack","get","error","option","_init","defaultElement","disabled","create","eventNamespace","_getCreateOptions","bindings","hoverable","focusable","_on","remove","destroy","style","ownerDocument","defaultView","parentWindow","_create","_trigger","_getCreateEventData","noop","_destroy","removeData","camelCase","curOption","pop","_setOptions","_setOption","toggleClass","enable","disable","suppressDisabledCheck","handlers","delegateElement","add","handler","handlerProxy","hasClass","guid","eventName","selector","delegate","_off","undelegate","_delay","_hoverable","mouseenter","currentTarget","mouseleave","_focusable","focusin","focusout","type","orig","callback","Event","originalEvent","trigger","isDefaultPrevented","method","defaultEffect","effectName","effect","hasOptions","isEmptyObject","duration","effects","easing","queue","next","counter","ajaxTransport","form","iframe","addParamChar","async","send","_","completeCallback","formAcceptCharset","fileInputClones","paramNames","isArray","paramName","response","contents","firstChild","Error","formData","index","field","val","fileInput","clone","after","submit","replaceWith","abort","ajaxSetup","converters","iframe text","text","iframe json","parseJSON","iframe html","iframe xml","xmlDoc","isXMLDoc","parseXML","XMLDocument","xml","iframe script","globalEval","support","xhrFileUpload","XMLHttpRequestUpload","FileReader","xhrFormDataFileUpload","FormData","blobSlice","Blob","webkitSlice","mozSlice","dropZone","pasteZone","replaceFileInput","singleFileUploads","limitMultiFileUploads","sequentialUploads","limitConcurrentUploads","forceIframeTransport","redirect","redirectParamName","postMessage","multipart","maxChunkSize","uploadedBytes","recalculateProgress","progressInterval","bitrateInterval","autoUpload","messages","i18n","message","context","toString","serializeArray","fileupload","process","done","processData","contentType","cache","_specialOptions","_blobSlice","_BitrateTimer","timestamp","now","getTime","loaded","bitrate","getBitrate","interval","timeDiff","_isXHRUpload","_getFormData","_getTotal","files","total","file","size","_initProgressObject","obj","progress","_progress","_initResponseObject","_response","_onProgress","lengthComputable","_time","Math","floor","chunkSize","_bitrateTimer","_initProgressListener","that","xhr","ajaxSettings","upload","oe","_isInstanceOf","Object","_initXHRData","headers","contentRange","blob","encodeURI","_initIframeSettings","targetHost","dataType","location","host","_initDataSettings","_chunkedUpload","_getParamName","_initFormSettings","href","toUpperCase","_getAJAXSettings","_getDeferredState","deferred","state","isResolved","isRejected","_enhancePromise","promise","success","fail","always","_getXHRPromise","resolveOrReject","dfd","Deferred","resolveWith","rejectWith","_addConvenienceMethods","getPromise","resolveFunc","rejectFunc","_processQueue","pipe","jqXHR","_onSend","_getUploadedBytes","range","getResponseHeader","upperBytesPos","parseInt","testOnly","fs","ub","mcs","o","currentLoaded","ajax","textStatus","errorThrown","_beforeSend","_active","_onDone","_onFail","_onAlways","jqXHRorResult","jqXHRorError","_sending","aborted","nextSlot","_slots","resolve","slot","_sequence","_onAdd","paramNameSet","paramNameSlice","fileSet","limit","originalFiles","newData","_replaceFileInput","inputClone","reset","detach","map","el","_handleFileTreeEntry","entry","errorHandler","isFile","_file","relativePath","isDirectory","createReader","readEntries","entries","_handleFileTreeEntries","when","_getDroppedFiles","dataTransfer","items","webkitGetAsEntry","getAsEntry","item","getAsFile","makeArray","_getSingleFileInputFiles","fileName","fileSize","_getFileInputFiles","_onChange","_onPaste","clipboardData","_onDrop","preventDefault","_onDragOver","inArray","types","dropEffect","_initEventHandlers","dragover","drop","paste","change","_destroyEventHandlers","reinit","_initSpecialOptions","find","_getRegExp","str","modifiers","_isRegExpOption","_initDataAttributes","cloneNode","active","reject","then","swapClass","c1","c2","c1Elements","replaceClass","end","hoverClass","className","hover","heightToggle","animated","animate","heightHide","prepareBranches","prerendered","CLASSES","last","collapsed","closed","open","applyClasses","toggler","expandable","lastExpandable","not","collapsable","lastCollapsable","prepend","hitarea","classes","treeview","cookieId","collapsableHitarea","expandableHitarea","lastCollapsableHitarea","lastExpandableHitarea","toggle","unique","siblings","tree","control","branches","persist","toggleCallback","stored","parents","prev","andSelf","Treeview","everyTime","label","times","belay","timer","oneTime","stopTime","global","regex","powers","ms","cs","ds","das","hs","ks","timeParse","exec","trim","isNaN","Number","$timers","$timerID","inProgress","setInterval","ret","timers","clearInterval","one","els","topPos","outerHeight","increments","content","my","at","collision","tooltipClass","close","__on","__off","tooltips","_disable","_updateContent","addBack","_enable","closest","blurEvent","uniqueId","contentOption","eventType","_open","delayedShow","describedby","positionOption","of","_find","_tooltip","mousemove","_show","fx","events","keyup","keyCode","ui","ESCAPE","fakeEvent","_removeTooltip","closing","splice","_hide","role","Timepicker","splitDateTime","parseDateTimeInternal","selectLocalTimeZone","timeZoneString","extendRemove","props","timepicker","ampm","amNames","pmNames","timeFormat","timeSuffix","timeOnlyTitle","timeText","hourText","minuteText","secondText","millisecText","timezoneText","_defaults","showButtonPanel","timeOnly","showHour","showMinute","showSecond","showMillisec","showTimezone","showTime","stepHour","stepMinute","stepSecond","stepMillisec","hour","minute","second","millisec","timezone","useLocalTimezone","defaultTimezone","hourMin","minuteMin","secondMin","millisecMin","hourMax","minuteMax","secondMax","millisecMax","minDateTime","maxDateTime","onSelect","hourGrid","minuteGrid","secondGrid","millisecGrid","alwaysSetTime","separator","altFieldTimeOnly","showTimepicker","timezoneIso8601","timezoneList","addSliderAccess","sliderAccessArgs","$input","$altInput","$timeObj","inst","hour_slider","minute_slider","second_slider","millisec_slider","timezone_select","hourMinOriginal","minuteMinOriginal","secondMinOriginal","millisecMinOriginal","hourMaxOriginal","minuteMaxOriginal","secondMaxOriginal","millisecMaxOriginal","formattedDate","formattedTime","formattedDateTime","_newInst","tp_inst","inlineSettings","attrName","attrValue","eval","err","beforeShow","dp_inst","onChangeMonthYear","year","month","_updateDateTime","onClose","dateText","timeDefined","abs","substring","altField","cursor","focus","minDate","maxDate","_addTimePicker","currDT","_parseTime","_limitMinMaxDateTime","_injectTimePicker","timeString","withDate","_getInst","timeObj","parseTime","dp_dateFormat","_get","parseRes","_getFormatConfig","$dp","dpDiv","minMax","secMax","dp_id","noDisplay","hourGridSize","minuteGridSize","secondGridSize","millisecGridSize","tmph","m","$tp","$buttonPanel","slider","orientation","min","max","step","slide","hourAvailableValues","_onTimeChange","idx","local_date","selectedYear","selectedMonth","selectedDay","marginLeft","borderCollapse","ap","aph","_onSelectHandler","textAlign","overflow","onSelectDelegate","before","sliderAccessWidth","sliderAccess","outerWidth","$g","oldWidth","oldMarginLeft","newWidth","adjustSliders","dp_date","minDateTimeDate","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","maxDateTimeDate","hasChanged","formatTime","inputEl","_formatTime","time","format","tmptime","dt","_daylightSavingAdjust","dateFmt","formatCfg","timeAvailable","formatDate","tmp_args","datetimepicker","$t","parseDateTime","dateTimeString","dateSettings","timeSettings","date","setHours","regstr","markers","merge","order","finds","orders","z","treg","resTime","tz","ampmName","_base_selectDate","_selectDate","dateStr","inline","stay_open","_notifyChange","_updateDatepicker","_base_updateDatepicker","_curInst","_datepickerShowing","_lastInput","_base_doKeyPress","_doKeyPress","datetimeChars","dateChars","_possibleChars","chr","fromCharCode","charCode","ctrlKey","_base_doKeyUp","_doKeyUp","lastVal","log","_base_gotoToday","_gotoToday","_setTime","_disableTimepickerDatepicker","_enableTimepickerDatepicker","hourEq","minuteEq","_setTimeDatepicker","tp_date","_setDateFromField","_base_setDateDatepicker","_setDateDatepicker","_base_getDateDatepicker","_getDateDatepicker","noDefault","_getDate","_base_parseDate","parseDate","splitRes","_base_formatDate","_formatDate","day","_base_optionDatepicker","_optionDatepicker","onselect","dateStringLength","parsedTime","tzoffset","off","getTimezoneOffset","substr","touchonly","where","upIcon","downIcon","upText","downText","buttonset","buttonsetTag","$buttons","bOuterWidth","children","j","jobj","$jt","button","icons","primary","curr","newval","minval","maxval","eq","marginRight","tOuterWidth","runtime","Op","hasOwn","defineProperty","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","enumerable","configurable","writable","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","Context","GenStateSuspendedStart","arg","GenStateExecuting","GenStateCompleted","delegateResult","maybeInvokeDelegate","methodName","TypeError","ContinueSentinel","record","tryCatch","info","resultName","nextLoc","sent","_sent","dispatchException","abrupt","GenStateSuspendedYield","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","Gp","NativeIteratorPrototype","values","defineIteratorMethods","forEach","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","Promise","iter","keys","reverse","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","finish","catch","thrown","delegateYield","module","regeneratorRuntime","accidentalStrictMode","globalThis","Function","inModule","doneResult","return"],"mappings":"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","file":"../jquery.extended-026d0a8b.js","sourcesContent":["/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */\r\n/* Written by Andrew Stromnov (stromnov@gmail.com). */\r\n(function($) {\r\n\t$.datepick.regional['ru'] = {\r\n\t\tclearText: 'Очистить', clearStatus: '',\r\n\t\tcloseText: 'Закрыть', closeStatus: '',\r\n\t\tprevText: '<Пред', prevStatus: '',\r\n\t\tprevBigText: '<<', prevBigStatus: '',\r\n\t\tnextText: 'След>', nextStatus: '',\r\n\t\tnextBigText: '>>', nextBigStatus: '',\r\n\t\tcurrentText: 'Сегодня', currentStatus: '',\r\n\t\tmonthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',\r\n\t\t'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],\r\n\t\tmonthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',\r\n\t\t'Июл','Авг','Сен','Окт','Ноя','Дек'],\r\n\t\tmonthStatus: '', yearStatus: '',\r\n\t\tweekHeader: 'Не', weekStatus: '',\r\n\t\tdayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],\r\n\t\tdayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],\r\n\t\tdayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],\r\n\t\tdayStatus: 'DD', dateStatus: 'D, M d',\r\n\t\tdateFormat: 'dd.mm.yy', firstDay: 1,\r\n\t\tinitStatus: '', isRTL: false,\r\n\t\tshowMonthAfterYear: false, yearSuffix: ''};\r\n\t$.datepick.setDefaults($.datepick.regional['ru']);\r\n})(jQuery);\r\n","/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */\r\n/* Written by Andrew Stromnov (stromnov@gmail.com). */\r\njQuery(function($){\r\n\t$.datepicker.regional['ru'] = {\r\n\t\tcloseText: 'Закрыть',\r\n\t\tprevText: '<Пред',\r\n\t\tnextText: 'След>',\r\n\t\tcurrentText: 'Сегодня',\r\n\t\tmonthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',\r\n\t\t'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],\r\n\t\tmonthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',\r\n\t\t'Июл','Авг','Сен','Окт','Ноя','Дек'],\r\n\t\tdayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],\r\n\t\tdayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],\r\n\t\tdayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],\r\n\t\tweekHeader: 'Не',\r\n\t\tdateFormat: 'dd.mm.yy',\r\n\t\tfirstDay: 1,\r\n\t\tisRTL: false,\r\n\t\tshowMonthAfterYear: false,\r\n\t\tyearSuffix: ''};\r\n\t$.datepicker.setDefaults($.datepicker.regional['ru']);\r\n});","/*\r\n * jQuery Tooltip plugin 1.3\r\n *\r\n * http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/\r\n * http://docs.jquery.com/Plugins/Tooltip\r\n *\r\n * Copyright (c) 2006 - 2008 Jörn Zaefferer\r\n *\r\n * $Id: jquery.tooltip.js 5741 2008-06-21 15:22:16Z joern.zaefferer $\r\n * \r\n * Dual licensed under the MIT and GPL licenses:\r\n * http://www.opensource.org/licenses/mit-license.php\r\n * http://www.gnu.org/licenses/gpl.html\r\n */\r\n \r\n;(function($) {\r\n\t\r\n\t\t// the tooltip element\r\n\tvar helper = {},\r\n\t\t// the current tooltipped element\r\n\t\tcurrent,\r\n\t\t// the title of the current element, used for restoring\r\n\t\ttitle,\r\n\t\t// timeout id for delayed tooltips\r\n\t\ttID,\r\n\t\t// IE 5.5 or 6\r\n\t\tIE = $.browser.msie && /MSIE\\s(5\\.5|6\\.)/.test(navigator.userAgent),\r\n\t\t// flag for mouse tracking\r\n\t\ttrack = false;\r\n\t\r\n\t$.tooltip = {\r\n\t\tblocked: false,\r\n\t\tdefaults: {\r\n\t\t\tdelay: 200,\r\n\t\t\tfade: false,\r\n\t\t\tshowURL: true,\r\n\t\t\textraClass: \"\",\r\n\t\t\ttop: 15,\r\n\t\t\tleft: 15,\r\n\t\t\tid: \"tooltip\"\r\n\t\t},\r\n\t\tblock: function() {\r\n\t\t\t$.tooltip.blocked = !$.tooltip.blocked;\r\n\t\t}\r\n\t};\r\n\t\r\n\t$.fn.extend({\r\n\t\ttooltip: function(settings) {\r\n\t\t\tsettings = $.extend({}, $.tooltip.defaults, settings);\r\n\t\t\tcreateHelper(settings);\r\n\t\t\treturn this.each(function() {\r\n\t\t\t\t\t$.data(this, \"tooltip\", settings);\r\n\t\t\t\t\tthis.tOpacity = helper.parent.css(\"opacity\");\r\n\t\t\t\t\t// copy tooltip into its own expando and remove the title\r\n\t\t\t\t\tthis.tooltipText = this.title;\r\n\t\t\t\t\t$(this).removeAttr(\"title\");\r\n\t\t\t\t\t// also remove alt attribute to prevent default tooltip in IE\r\n\t\t\t\t\tthis.alt = \"\";\r\n\t\t\t\t})\r\n\t\t\t\t.mouseover(save)\r\n\t\t\t\t.mouseout(hide)\r\n\t\t\t\t.click(hide);\r\n\t\t},\r\n\t\tfixPNG: IE ? function() {\r\n\t\t\treturn this.each(function () {\r\n\t\t\t\tvar image = $(this).css('backgroundImage');\r\n\t\t\t\tif (image.match(/^url\\([\"']?(.*\\.png)[\"']?\\)$/i)) {\r\n\t\t\t\t\timage = RegExp.$1;\r\n\t\t\t\t\t$(this).css({\r\n\t\t\t\t\t\t'backgroundImage': 'none',\r\n\t\t\t\t\t\t'filter': \"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='\" + image + \"')\"\r\n\t\t\t\t\t}).each(function () {\r\n\t\t\t\t\t\tvar position = $(this).css('position');\r\n\t\t\t\t\t\tif (position != 'absolute' && position != 'relative')\r\n\t\t\t\t\t\t\t$(this).css('position', 'relative');\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} : function() { return this; },\r\n\t\tunfixPNG: IE ? function() {\r\n\t\t\treturn this.each(function () {\r\n\t\t\t\t$(this).css({'filter': '', backgroundImage: ''});\r\n\t\t\t});\r\n\t\t} : function() { return this; },\r\n\t\thideWhenEmpty: function() {\r\n\t\t\treturn this.each(function() {\r\n\t\t\t\t$(this)[ $(this).html() ? \"show\" : \"hide\" ]();\r\n\t\t\t});\r\n\t\t},\r\n\t\turl: function() {\r\n\t\t\treturn this.attr('href') || this.attr('src');\r\n\t\t}\r\n\t});\r\n\t\r\n\tfunction createHelper(settings) {\r\n\t\t// there can be only one tooltip helper\r\n\t\tif( helper.parent )\r\n\t\t\treturn;\r\n\t\t// create the helper, h3 for title, div for url\r\n\t\thelper.parent = $('

')\r\n\t\t\t// add to document\r\n\t\t\t.appendTo(document.body)\r\n\t\t\t// hide it at first\r\n\t\t\t.hide();\r\n\t\t\t\r\n\t\t// apply bgiframe if available\r\n\t\tif ( $.fn.bgiframe )\r\n\t\t\thelper.parent.bgiframe();\r\n\t\t\r\n\t\t// save references to title and url elements\r\n\t\thelper.title = $('h3', helper.parent);\r\n\t\thelper.body = $('div.body', helper.parent);\r\n\t\thelper.url = $('div.url', helper.parent);\r\n\t}\r\n\t\r\n\tfunction settings(element) {\r\n\t\treturn $.data(element, \"tooltip\");\r\n\t}\r\n\t\r\n\t// main event handler to start showing tooltips\r\n\tfunction handle(event) {\r\n\t\t// show helper, either with timeout or on instant\r\n\t\tif( settings(this).delay )\r\n\t\t\ttID = setTimeout(show, settings(this).delay);\r\n\t\telse\r\n\t\t\tshow();\r\n\t\t\r\n\t\t// if selected, update the helper position when the mouse moves\r\n\t\ttrack = !!settings(this).track;\r\n\t\t$(document.body).bind('mousemove', update);\r\n\t\t\t\r\n\t\t// update at least once\r\n\t\tupdate(event);\r\n\t}\r\n\t\r\n\t// save elements title before the tooltip is displayed\r\n\tfunction save() {\r\n\t\t// if this is the current source, or it has no title (occurs with click event), stop\r\n\t\tif ( $.tooltip.blocked || this == current || (!this.tooltipText && !settings(this).bodyHandler) )\r\n\t\t\treturn;\r\n\r\n\t\t// save current\r\n\t\tcurrent = this;\r\n\t\ttitle = this.tooltipText;\r\n\t\t\r\n\t\tif ( settings(this).bodyHandler ) {\r\n\t\t\thelper.title.hide();\r\n\t\t\tvar bodyContent = settings(this).bodyHandler.call(this);\r\n\t\t\tif (bodyContent.nodeType || bodyContent.jquery) {\r\n\t\t\t\thelper.body.empty().append(bodyContent)\r\n\t\t\t} else {\r\n\t\t\t\thelper.body.html( bodyContent );\r\n\t\t\t}\r\n\t\t\thelper.body.show();\r\n\t\t} else if ( settings(this).showBody ) {\r\n\t\t\tvar parts = title.split(settings(this).showBody);\r\n\t\t\thelper.title.html(parts.shift()).show();\r\n\t\t\thelper.body.empty();\r\n\t\t\tfor(var i = 0, part; (part = parts[i]); i++) {\r\n\t\t\t\tif(i > 0)\r\n\t\t\t\t\thelper.body.append(\"
\");\r\n\t\t\t\thelper.body.append(part);\r\n\t\t\t}\r\n\t\t\thelper.body.hideWhenEmpty();\r\n\t\t} else {\r\n\t\t\thelper.title.html(title).show();\r\n\t\t\thelper.body.hide();\r\n\t\t}\r\n\t\t\r\n\t\t// if element has href or src, add and show it, otherwise hide it\r\n\t\tif( settings(this).showURL && $(this).url() )\r\n\t\t\thelper.url.html( $(this).url().replace('http://', '') ).show();\r\n\t\telse \r\n\t\t\thelper.url.hide();\r\n\t\t\r\n\t\t// add an optional class for this tip\r\n\t\thelper.parent.addClass(settings(this).extraClass);\r\n\r\n\t\t// fix PNG background for IE\r\n\t\tif (settings(this).fixPNG )\r\n\t\t\thelper.parent.fixPNG();\r\n\t\t\t\r\n\t\thandle.apply(this, arguments);\r\n\t}\r\n\t\r\n\t// delete timeout and show helper\r\n\tfunction show() {\r\n\t\ttID = null;\r\n\t\tif ((!IE || !$.fn.bgiframe) && settings(current).fade) {\r\n\t\t\tif (helper.parent.is(\":animated\"))\r\n\t\t\t\thelper.parent.stop().show().fadeTo(settings(current).fade, current.tOpacity);\r\n\t\t\telse\r\n\t\t\t\thelper.parent.is(':visible') ? helper.parent.fadeTo(settings(current).fade, current.tOpacity) : helper.parent.fadeIn(settings(current).fade);\r\n\t\t} else {\r\n\t\t\thelper.parent.show();\r\n\t\t}\r\n\t\tupdate();\r\n\t}\r\n\t\r\n\t/**\r\n\t * callback for mousemove\r\n\t * updates the helper position\r\n\t * removes itself when no current element\r\n\t */\r\n\tfunction update(event)\t{\r\n\t\tif($.tooltip.blocked)\r\n\t\t\treturn;\r\n\t\t\r\n\t\tif (event && event.target.tagName == \"OPTION\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\t// stop updating when tracking is disabled and the tooltip is visible\r\n\t\tif ( !track && helper.parent.is(\":visible\")) {\r\n\t\t\t$(document.body).unbind('mousemove', update)\r\n\t\t}\r\n\t\t\r\n\t\t// if no current element is available, remove this listener\r\n\t\tif( current == null ) {\r\n\t\t\t$(document.body).unbind('mousemove', update);\r\n\t\t\treturn;\t\r\n\t\t}\r\n\t\t\r\n\t\t// remove position helper classes\r\n\t\thelper.parent.removeClass(\"viewport-right\").removeClass(\"viewport-bottom\");\r\n\t\t\r\n\t\tvar left = helper.parent[0].offsetLeft;\r\n\t\tvar top = helper.parent[0].offsetTop;\r\n\t\tif (event) {\r\n\t\t\t// position the helper 15 pixel to bottom right, starting from mouse position\r\n\t\t\tleft = event.pageX + settings(current).left;\r\n\t\t\ttop = event.pageY + settings(current).top;\r\n\t\t\tvar right='auto';\r\n\t\t\tif (settings(current).positionLeft) {\r\n\t\t\t\tright = $(window).width() - left;\r\n\t\t\t\tleft = 'auto';\r\n\t\t\t}\r\n\t\t\thelper.parent.css({\r\n\t\t\t\tleft: left,\r\n\t\t\t\tright: right,\r\n\t\t\t\ttop: top\r\n\t\t\t});\r\n\t\t}\r\n\t\t\r\n\t\tvar v = viewport(),\r\n\t\t\th = helper.parent[0];\r\n\t\t// check horizontal position\r\n\t\tif (v.x + v.cx < h.offsetLeft + h.offsetWidth) {\r\n\t\t\tleft -= h.offsetWidth + 20 + settings(current).left;\r\n\t\t\thelper.parent.css({left: left + 'px'}).addClass(\"viewport-right\");\r\n\t\t}\r\n\t\t// check vertical position\r\n\t\tif (v.y + v.cy < h.offsetTop + h.offsetHeight) {\r\n\t\t\ttop -= h.offsetHeight + 20 + settings(current).top;\r\n\t\t\thelper.parent.css({top: top + 'px'}).addClass(\"viewport-bottom\");\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction viewport() {\r\n\t\treturn {\r\n\t\t\tx: $(window).scrollLeft(),\r\n\t\t\ty: $(window).scrollTop(),\r\n\t\t\tcx: $(window).width(),\r\n\t\t\tcy: $(window).height()\r\n\t\t};\r\n\t}\r\n\t\r\n\t// hide helper and restore added classes and the title\r\n\tfunction hide(event) {\r\n\t\tif($.tooltip.blocked)\r\n\t\t\treturn;\r\n\t\t// clear timeout if possible\r\n\t\tif(tID)\r\n\t\t\tclearTimeout(tID);\r\n\t\t// no more current element\r\n\t\tcurrent = null;\r\n\t\t\r\n\t\tvar tsettings = settings(this);\r\n\t\tfunction complete() {\r\n\t\t\thelper.parent.removeClass( tsettings.extraClass ).hide().css(\"opacity\", \"\");\r\n\t\t}\r\n\t\tif ((!IE || !$.fn.bgiframe) && tsettings.fade) {\r\n\t\t\tif (helper.parent.is(':animated'))\r\n\t\t\t\thelper.parent.stop().fadeTo(tsettings.fade, 0, complete);\r\n\t\t\telse\r\n\t\t\t\thelper.parent.stop().fadeOut(tsettings.fade, complete);\r\n\t\t} else\r\n\t\t\tcomplete();\r\n\t\t\r\n\t\tif( settings(this).fixPNG )\r\n\t\t\thelper.parent.unfixPNG();\r\n\t}\r\n\t\r\n})(jQuery);\r\n","/*!\r\n * jQuery Cookie Plugin v1.4.1\r\n * https://github.com/carhartl/jquery-cookie\r\n *\r\n * Copyright 2013 Klaus Hartl\r\n * Released under the MIT license\r\n */\r\n(function (factory) {\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine(['jquery'], factory);\r\n\t} else if (typeof exports === 'object') {\r\n\t\t// CommonJS\r\n\t\tfactory(require('jquery'));\r\n\t} else {\r\n\t\t// Browser globals\r\n\t\tfactory(jQuery);\r\n\t}\r\n}(function ($) {\r\n\r\n\tvar pluses = /\\+/g;\r\n\r\n\tfunction encode(s) {\r\n\t\treturn config.raw ? s : encodeURIComponent(s);\r\n\t}\r\n\r\n\tfunction decode(s) {\r\n\t\treturn config.raw ? s : decodeURIComponent(s);\r\n\t}\r\n\r\n\tfunction stringifyCookieValue(value) {\r\n\t\treturn encode(config.json ? JSON.stringify(value) : String(value));\r\n\t}\r\n\r\n\tfunction parseCookieValue(s) {\r\n\t\tif (s.indexOf('\"') === 0) {\r\n\t\t\t// This is a quoted cookie as according to RFC2068, unescape...\r\n\t\t\ts = s.slice(1, -1).replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, '\\\\');\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\t// Replace server-side written pluses with spaces.\r\n\t\t\t// If we can't decode the cookie, ignore it, it's unusable.\r\n\t\t\t// If we can't parse the cookie, ignore it, it's unusable.\r\n\t\t\ts = decodeURIComponent(s.replace(pluses, ' '));\r\n\t\t\treturn config.json ? JSON.parse(s) : s;\r\n\t\t} catch(e) {}\r\n\t}\r\n\r\n\tfunction read(s, converter) {\r\n\t\tvar value = config.raw ? s : parseCookieValue(s);\r\n\t\treturn $.isFunction(converter) ? converter(value) : value;\r\n\t}\r\n\r\n\tvar config = $.cookie = function (key, value, options) {\r\n\r\n\t\t// Write\r\n\r\n\t\tif (value !== undefined && !$.isFunction(value)) {\r\n\t\t\toptions = $.extend({}, config.defaults, options);\r\n\r\n\t\t\tif (typeof options.expires === 'number') {\r\n\t\t\t\tvar days = options.expires, t = options.expires = new Date();\r\n\t\t\t\tt.setTime(+t + days * 864e+5);\r\n\t\t\t}\r\n\r\n\t\t\treturn (document.cookie = [\r\n\t\t\t\tencode(key), '=', stringifyCookieValue(value),\r\n\t\t\t\toptions.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE\r\n\t\t\t\toptions.path ? '; path=' + options.path : '',\r\n\t\t\t\toptions.domain ? '; domain=' + options.domain : '',\r\n\t\t\t\toptions.secure ? '; secure' : ''\r\n\t\t\t].join(''));\r\n\t\t}\r\n\r\n\t\t// Read\r\n\r\n\t\tvar result = key ? undefined : {};\r\n\r\n\t\t// To prevent the for loop in the first place assign an empty array\r\n\t\t// in case there are no cookies at all. Also prevents odd result when\r\n\t\t// calling $.cookie().\r\n\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\r\n\r\n\t\tfor (var i = 0, l = cookies.length; i < l; i++) {\r\n\t\t\tvar parts = cookies[i].split('=');\r\n\t\t\tvar name = decode(parts.shift());\r\n\t\t\tvar cookie = parts.join('=');\r\n\r\n\t\t\tif (key && key === name) {\r\n\t\t\t\t// If second argument (value) is a function it's a converter...\r\n\t\t\t\tresult = read(cookie, value);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\t// Prevent storing a cookie that we couldn't decode.\r\n\t\t\tif (!key && (cookie = read(cookie)) !== undefined) {\r\n\t\t\t\tresult[name] = cookie;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t};\r\n\r\n\tconfig.defaults = {};\r\n\r\n\t$.removeCookie = function (key, options) {\r\n\t\tif ($.cookie(key) === undefined) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// Must not alter options, thus extending a fresh object...\r\n\t\t$.cookie(key, '', $.extend({}, options, { expires: -1 }));\r\n\t\treturn !$.cookie(key);\r\n\t};\r\n\r\n}));\r\n","/*\r\n * jQuery UI Widget 1.10.3+amd\r\n * https://github.com/blueimp/jQuery-File-Upload\r\n *\r\n * Copyright 2013 jQuery Foundation and other contributors\r\n * Released under the MIT license.\r\n * http://jquery.org/license\r\n *\r\n * http://api.jqueryui.com/jQuery.widget/\r\n */\r\n\r\n(function (factory) {\r\n if (typeof define === \"function\" && define.amd) {\r\n // Register as an anonymous AMD module:\r\n define([\"jquery\"], factory);\r\n } else {\r\n // Browser globals:\r\n factory(jQuery);\r\n }\r\n}(function( $, undefined ) {\r\n\r\nvar uuid = 0,\r\n\tslice = Array.prototype.slice,\r\n\t_cleanData = $.cleanData;\r\n$.cleanData = function( elems ) {\r\n\tfor ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {\r\n\t\ttry {\r\n\t\t\t$( elem ).triggerHandler( \"remove\" );\r\n\t\t// http://bugs.jquery.com/ticket/8235\r\n\t\t} catch( e ) {}\r\n\t}\r\n\t_cleanData( elems );\r\n};\r\n\r\n$.widget = function( name, base, prototype ) {\r\n\tvar fullName, existingConstructor, constructor, basePrototype,\r\n\t\t// proxiedPrototype allows the provided prototype to remain unmodified\r\n\t\t// so that it can be used as a mixin for multiple widgets (#8876)\r\n\t\tproxiedPrototype = {},\r\n\t\tnamespace = name.split( \".\" )[ 0 ];\r\n\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.toLowerCase() ] = function( elem ) {\r\n\t\treturn !!$.data( elem, fullName );\r\n\t};\r\n\r\n\t$[ namespace ] = $[ namespace ] || {};\r\n\texistingConstructor = $[ namespace ][ name ];\r\n\tconstructor = $[ namespace ][ name ] = function( options, element ) {\r\n\t\t// allow instantiation without \"new\" keyword\r\n\t\tif ( !this._createWidget ) {\r\n\t\t\treturn new constructor( options, element );\r\n\t\t}\r\n\r\n\t\t// allow instantiation without initializing for simple inheritance\r\n\t\t// must use \"new\" keyword (the code above always passes args)\r\n\t\tif ( arguments.length ) {\r\n\t\t\tthis._createWidget( options, element );\r\n\t\t}\r\n\t};\r\n\t// extend with the existing constructor to carry over any static properties\r\n\t$.extend( constructor, existingConstructor, {\r\n\t\tversion: prototype.version,\r\n\t\t// copy the object used to create the prototype in case we need to\r\n\t\t// redefine the widget later\r\n\t\t_proto: $.extend( {}, prototype ),\r\n\t\t// track widgets that inherit from this widget in case this widget is\r\n\t\t// redefined after a widget inherits from it\r\n\t\t_childConstructors: []\r\n\t});\r\n\r\n\tbasePrototype = 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\tbasePrototype.options = $.widget.extend( {}, basePrototype.options );\r\n\t$.each( prototype, function( prop, value ) {\r\n\t\tif ( !$.isFunction( value ) ) {\r\n\t\t\tproxiedPrototype[ prop ] = value;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tproxiedPrototype[ prop ] = (function() {\r\n\t\t\tvar _super = function() {\r\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, arguments );\r\n\t\t\t\t},\r\n\t\t\t\t_superApply = function( args ) {\r\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, args );\r\n\t\t\t\t};\r\n\t\t\treturn function() {\r\n\t\t\t\tvar __super = this._super,\r\n\t\t\t\t\t__superApply = this._superApply,\r\n\t\t\t\t\treturnValue;\r\n\r\n\t\t\t\tthis._super = _super;\r\n\t\t\t\tthis._superApply = _superApply;\r\n\r\n\t\t\t\treturnValue = value.apply( this, arguments );\r\n\r\n\t\t\t\tthis._super = __super;\r\n\t\t\t\tthis._superApply = __superApply;\r\n\r\n\t\t\t\treturn returnValue;\r\n\t\t\t};\r\n\t\t})();\r\n\t});\r\n\tconstructor.prototype = $.widget.extend( basePrototype, {\r\n\t\t// TODO: remove support for widgetEventPrefix\r\n\t\t// always use the name + a colon as the prefix, e.g., draggable:start\r\n\t\t// don't prefix for widgets that aren't DOM-based\r\n\t\twidgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix : name\r\n\t}, proxiedPrototype, {\r\n\t\tconstructor: constructor,\r\n\t\tnamespace: namespace,\r\n\t\twidgetName: name,\r\n\t\twidgetFullName: fullName\r\n\t});\r\n\r\n\t// If this widget is being redefined then we need to find all widgets that\r\n\t// are inheriting from it and redefine all of them so that they inherit from\r\n\t// the new version of this widget. We're essentially trying to replace one\r\n\t// level in the prototype chain.\r\n\tif ( existingConstructor ) {\r\n\t\t$.each( existingConstructor._childConstructors, function( i, child ) {\r\n\t\t\tvar childPrototype = child.prototype;\r\n\r\n\t\t\t// redefine the child widget using the same prototype that was\r\n\t\t\t// originally used, but inherit from the new version of the base\r\n\t\t\t$.widget( childPrototype.namespace + \".\" + childPrototype.widgetName, constructor, child._proto );\r\n\t\t});\r\n\t\t// remove the list of existing child constructors from the old constructor\r\n\t\t// so the old child constructors can be garbage collected\r\n\t\tdelete existingConstructor._childConstructors;\r\n\t} else {\r\n\t\tbase._childConstructors.push( constructor );\r\n\t}\r\n\r\n\t$.widget.bridge( name, constructor );\r\n};\r\n\r\n$.widget.extend = function( target ) {\r\n\tvar input = slice.call( arguments, 1 ),\r\n\t\tinputIndex = 0,\r\n\t\tinputLength = input.length,\r\n\t\tkey,\r\n\t\tvalue;\r\n\tfor ( ; inputIndex < inputLength; inputIndex++ ) {\r\n\t\tfor ( key in input[ inputIndex ] ) {\r\n\t\t\tvalue = input[ inputIndex ][ key ];\r\n\t\t\tif ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {\r\n\t\t\t\t// Clone objects\r\n\t\t\t\tif ( $.isPlainObject( value ) ) {\r\n\t\t\t\t\ttarget[ key ] = $.isPlainObject( target[ key ] ) ?\r\n\t\t\t\t\t\t$.widget.extend( {}, target[ key ], value ) :\r\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\r\n\t\t\t\t\t\t$.widget.extend( {}, value );\r\n\t\t\t\t// Copy everything else by reference\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttarget[ key ] = value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn target;\r\n};\r\n\r\n$.widget.bridge = function( name, object ) {\r\n\tvar fullName = object.prototype.widgetFullName || name;\r\n\t$.fn[ name ] = function( options ) {\r\n\t\tvar isMethodCall = typeof options === \"string\",\r\n\t\t\targs = 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$.widget.extend.apply( null, [ options ].concat(args) ) :\r\n\t\t\toptions;\r\n\r\n\t\tif ( isMethodCall ) {\r\n\t\t\tthis.each(function() {\r\n\t\t\t\tvar methodValue,\r\n\t\t\t\t\tinstance = $.data( this, fullName );\r\n\t\t\t\tif ( !instance ) {\r\n\t\t\t\t\treturn $.error( \"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] ) || options.charAt( 0 ) === \"_\" ) {\r\n\t\t\t\t\treturn $.error( \"no such method '\" + options + \"' for \" + name + \" widget instance\" );\r\n\t\t\t\t}\r\n\t\t\t\tmethodValue = instance[ options ].apply( instance, args );\r\n\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\r\n\t\t\t\t\treturnValue = methodValue && methodValue.jquery ?\r\n\t\t\t\t\t\treturnValue.pushStack( methodValue.get() ) :\r\n\t\t\t\t\t\tmethodValue;\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, fullName );\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, fullName, 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$.Widget._childConstructors = [];\r\n\r\n$.Widget.prototype = {\r\n\twidgetName: \"widget\",\r\n\twidgetEventPrefix: \"\",\r\n\tdefaultElement: \"
\",\r\n\toptions: {\r\n\t\tdisabled: false,\r\n\r\n\t\t// callbacks\r\n\t\tcreate: null\r\n\t},\r\n\t_createWidget: function( options, element ) {\r\n\t\telement = $( element || this.defaultElement || this )[ 0 ];\r\n\t\tthis.element = $( element );\r\n\t\tthis.uuid = uuid++;\r\n\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\r\n\t\tthis.options = $.widget.extend( {},\r\n\t\t\tthis.options,\r\n\t\t\tthis._getCreateOptions(),\r\n\t\t\toptions );\r\n\r\n\t\tthis.bindings = $();\r\n\t\tthis.hoverable = $();\r\n\t\tthis.focusable = $();\r\n\r\n\t\tif ( element !== this ) {\r\n\t\t\t$.data( element, this.widgetFullName, this );\r\n\t\t\tthis._on( true, this.element, {\r\n\t\t\t\tremove: function( event ) {\r\n\t\t\t\t\tif ( event.target === element ) {\r\n\t\t\t\t\t\tthis.destroy();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.document = $( element.style ?\r\n\t\t\t\t// element within the document\r\n\t\t\t\telement.ownerDocument :\r\n\t\t\t\t// element is window or document\r\n\t\t\t\telement.document || element );\r\n\t\t\tthis.window = $( this.document[0].defaultView || this.document[0].parentWindow );\r\n\t\t}\r\n\r\n\t\tthis._create();\r\n\t\tthis._trigger( \"create\", null, this._getCreateEventData() );\r\n\t\tthis._init();\r\n\t},\r\n\t_getCreateOptions: $.noop,\r\n\t_getCreateEventData: $.noop,\r\n\t_create: $.noop,\r\n\t_init: $.noop,\r\n\r\n\tdestroy: function() {\r\n\t\tthis._destroy();\r\n\t\t// we can probably remove the unbind calls in 2.0\r\n\t\t// all event bindings should go through this._on()\r\n\t\tthis.element\r\n\t\t\t.unbind( this.eventNamespace )\r\n\t\t\t// 1.9 BC for #7810\r\n\t\t\t// TODO remove dual storage\r\n\t\t\t.removeData( this.widgetName )\r\n\t\t\t.removeData( this.widgetFullName )\r\n\t\t\t// support: jquery <1.6.3\r\n\t\t\t// http://bugs.jquery.com/ticket/9413\r\n\t\t\t.removeData( $.camelCase( this.widgetFullName ) );\r\n\t\tthis.widget()\r\n\t\t\t.unbind( this.eventNamespace )\r\n\t\t\t.removeAttr( \"aria-disabled\" )\r\n\t\t\t.removeClass(\r\n\t\t\t\tthis.widgetFullName + \"-disabled \" +\r\n\t\t\t\t\"ui-state-disabled\" );\r\n\r\n\t\t// clean up events and states\r\n\t\tthis.bindings.unbind( this.eventNamespace );\r\n\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\r\n\t\tthis.focusable.removeClass( \"ui-state-focus\" );\r\n\t},\r\n\t_destroy: $.noop,\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\t\t\tparts,\r\n\t\t\tcurOption,\r\n\t\t\ti;\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 $.widget.extend( {}, this.options );\r\n\t\t}\r\n\r\n\t\tif ( typeof key === \"string\" ) {\r\n\t\t\t// handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\r\n\t\t\toptions = {};\r\n\t\t\tparts = key.split( \".\" );\r\n\t\t\tkey = parts.shift();\r\n\t\t\tif ( parts.length ) {\r\n\t\t\t\tcurOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );\r\n\t\t\t\tfor ( i = 0; i < parts.length - 1; i++ ) {\r\n\t\t\t\t\tcurOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};\r\n\t\t\t\t\tcurOption = curOption[ parts[ i ] ];\r\n\t\t\t\t}\r\n\t\t\t\tkey = parts.pop();\r\n\t\t\t\tif ( value === undefined ) {\r\n\t\t\t\t\treturn curOption[ key ] === undefined ? null : curOption[ key ];\r\n\t\t\t\t}\r\n\t\t\t\tcurOption[ key ] = value;\r\n\t\t\t} else {\r\n\t\t\t\tif ( value === undefined ) {\r\n\t\t\t\t\treturn this.options[ key ] === undefined ? null : this.options[ key ];\r\n\t\t\t\t}\r\n\t\t\t\toptions[ key ] = value;\r\n\t\t\t}\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 key;\r\n\r\n\t\tfor ( key in options ) {\r\n\t\t\tthis._setOption( key, options[ key ] );\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.toggleClass( this.widgetFullName + \"-disabled ui-state-disabled\", !!value )\r\n\t\t\t\t.attr( \"aria-disabled\", value );\r\n\t\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\r\n\t\t\tthis.focusable.removeClass( \"ui-state-focus\" );\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_on: function( suppressDisabledCheck, element, handlers ) {\r\n\t\tvar delegateElement,\r\n\t\t\tinstance = this;\r\n\r\n\t\t// no suppressDisabledCheck flag, shuffle arguments\r\n\t\tif ( typeof suppressDisabledCheck !== \"boolean\" ) {\r\n\t\t\thandlers = element;\r\n\t\t\telement = suppressDisabledCheck;\r\n\t\t\tsuppressDisabledCheck = false;\r\n\t\t}\r\n\r\n\t\t// no element argument, shuffle and use this.element\r\n\t\tif ( !handlers ) {\r\n\t\t\thandlers = element;\r\n\t\t\telement = this.element;\r\n\t\t\tdelegateElement = this.widget();\r\n\t\t} else {\r\n\t\t\t// accept selectors, DOM elements\r\n\t\t\telement = delegateElement = $( element );\r\n\t\t\tthis.bindings = this.bindings.add( element );\r\n\t\t}\r\n\r\n\t\t$.each( handlers, function( event, handler ) {\r\n\t\t\tfunction handlerProxy() {\r\n\t\t\t\t// allow widgets to customize the disabled handling\r\n\t\t\t\t// - disabled as an array instead of boolean\r\n\t\t\t\t// - disabled class as method for disabling individual parts\r\n\t\t\t\tif ( !suppressDisabledCheck &&\r\n\t\t\t\t\t\t( instance.options.disabled === true ||\r\n\t\t\t\t\t\t\t$( this ).hasClass( \"ui-state-disabled\" ) ) ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\r\n\t\t\t\t\t.apply( instance, arguments );\r\n\t\t\t}\r\n\r\n\t\t\t// copy the guid so direct unbinding works\r\n\t\t\tif ( typeof handler !== \"string\" ) {\r\n\t\t\t\thandlerProxy.guid = handler.guid =\r\n\t\t\t\t\thandler.guid || handlerProxy.guid || $.guid++;\r\n\t\t\t}\r\n\r\n\t\t\tvar match = event.match( /^(\\w+)\\s*(.*)$/ ),\r\n\t\t\t\teventName = match[1] + instance.eventNamespace,\r\n\t\t\t\tselector = match[2];\r\n\t\t\tif ( selector ) {\r\n\t\t\t\tdelegateElement.delegate( selector, eventName, handlerProxy );\r\n\t\t\t} else {\r\n\t\t\t\telement.bind( eventName, handlerProxy );\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_off: function( element, eventName ) {\r\n\t\teventName = (eventName || \"\").split( \" \" ).join( this.eventNamespace + \" \" ) + this.eventNamespace;\r\n\t\telement.unbind( eventName ).undelegate( eventName );\r\n\t},\r\n\r\n\t_delay: function( handler, delay ) {\r\n\t\tfunction handlerProxy() {\r\n\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\r\n\t\t\t\t.apply( instance, arguments );\r\n\t\t}\r\n\t\tvar instance = this;\r\n\t\treturn setTimeout( handlerProxy, delay || 0 );\r\n\t},\r\n\r\n\t_hoverable: function( element ) {\r\n\t\tthis.hoverable = this.hoverable.add( element );\r\n\t\tthis._on( element, {\r\n\t\t\tmouseenter: function( event ) {\r\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-hover\" );\r\n\t\t\t},\r\n\t\t\tmouseleave: function( event ) {\r\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-hover\" );\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_focusable: function( element ) {\r\n\t\tthis.focusable = this.focusable.add( element );\r\n\t\tthis._on( element, {\r\n\t\t\tfocusin: function( event ) {\r\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-focus\" );\r\n\t\t\t},\r\n\t\t\tfocusout: function( event ) {\r\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-focus\" );\r\n\t\t\t}\r\n\t\t});\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\t\treturn !( $.isFunction( callback ) &&\r\n\t\t\tcallback.apply( this.element[0], [ event ].concat( data ) ) === false ||\r\n\t\t\tevent.isDefaultPrevented() );\r\n\t}\r\n};\r\n\r\n$.each( { show: \"fadeIn\", hide: \"fadeOut\" }, function( method, defaultEffect ) {\r\n\t$.Widget.prototype[ \"_\" + method ] = function( element, options, callback ) {\r\n\t\tif ( typeof options === \"string\" ) {\r\n\t\t\toptions = { effect: options };\r\n\t\t}\r\n\t\tvar hasOptions,\r\n\t\t\teffectName = !options ?\r\n\t\t\t\tmethod :\r\n\t\t\t\toptions === true || typeof options === \"number\" ?\r\n\t\t\t\t\tdefaultEffect :\r\n\t\t\t\t\toptions.effect || defaultEffect;\r\n\t\toptions = options || {};\r\n\t\tif ( typeof options === \"number\" ) {\r\n\t\t\toptions = { duration: options };\r\n\t\t}\r\n\t\thasOptions = !$.isEmptyObject( options );\r\n\t\toptions.complete = callback;\r\n\t\tif ( options.delay ) {\r\n\t\t\telement.delay( options.delay );\r\n\t\t}\r\n\t\tif ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {\r\n\t\t\telement[ method ]( options );\r\n\t\t} else if ( effectName !== method && element[ effectName ] ) {\r\n\t\t\telement[ effectName ]( options.duration, options.easing, callback );\r\n\t\t} else {\r\n\t\t\telement.queue(function( next ) {\r\n\t\t\t\t$( this )[ method ]();\r\n\t\t\t\tif ( callback ) {\r\n\t\t\t\t\tcallback.call( element[ 0 ] );\r\n\t\t\t\t}\r\n\t\t\t\tnext();\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n});\r\n\r\n}));\r\n","/*\r\n * jQuery Iframe Transport Plugin 1.7\r\n * https://github.com/blueimp/jQuery-File-Upload\r\n *\r\n * Copyright 2011, Sebastian Tschan\r\n * https://blueimp.net\r\n *\r\n * Licensed under the MIT license:\r\n * http://www.opensource.org/licenses/MIT\r\n */\r\n\r\n/*jslint unparam: true, nomen: true */\r\n/*global define, window, document */\r\n\r\n(function (factory) {\r\n 'use strict';\r\n if (typeof define === 'function' && define.amd) {\r\n // Register as an anonymous AMD module:\r\n define(['jquery'], factory);\r\n } else {\r\n // Browser globals:\r\n factory(window.jQuery);\r\n }\r\n}(function ($) {\r\n 'use strict';\r\n\r\n // Helper variable to create unique names for the transport iframes:\r\n var counter = 0;\r\n\r\n // The iframe transport accepts three additional options:\r\n // options.fileInput: a jQuery collection of file input fields\r\n // options.paramName: the parameter name for the file form data,\r\n // overrides the name property of the file input field(s),\r\n // can be a string or an array of strings.\r\n // options.formData: an array of objects with name and value properties,\r\n // equivalent to the return data of .serializeArray(), e.g.:\r\n // [{name: 'a', value: 1}, {name: 'b', value: 2}]\r\n $.ajaxTransport('iframe', function (options) {\r\n if (options.async) {\r\n var form,\r\n iframe,\r\n addParamChar;\r\n return {\r\n send: function (_, completeCallback) {\r\n form = $('
');\r\n form.attr('accept-charset', options.formAcceptCharset);\r\n addParamChar = /\\?/.test(options.url) ? '&' : '?';\r\n // XDomainRequest only supports GET and POST:\r\n if (options.type === 'DELETE') {\r\n options.url = options.url + addParamChar + '_method=DELETE';\r\n options.type = 'POST';\r\n } else if (options.type === 'PUT') {\r\n options.url = options.url + addParamChar + '_method=PUT';\r\n options.type = 'POST';\r\n } else if (options.type === 'PATCH') {\r\n options.url = options.url + addParamChar + '_method=PATCH';\r\n options.type = 'POST';\r\n }\r\n // javascript:false as initial iframe src\r\n // prevents warning popups on HTTPS in IE6.\r\n // IE versions below IE8 cannot set the name property of\r\n // elements that have already been added to the DOM,\r\n // so we set the name along with the iframe HTML markup:\r\n counter += 1;\r\n iframe = $(\r\n ''\r\n ).bind('load', function () {\r\n var fileInputClones,\r\n paramNames = $.isArray(options.paramName) ?\r\n options.paramName : [options.paramName];\r\n iframe\r\n .unbind('load')\r\n .bind('load', function () {\r\n var response;\r\n // Wrap in a try/catch block to catch exceptions thrown\r\n // when trying to access cross-domain iframe contents:\r\n try {\r\n response = iframe.contents();\r\n // Google Chrome and Firefox do not throw an\r\n // exception when calling iframe.contents() on\r\n // cross-domain requests, so we unify the response:\r\n if (!response.length || !response[0].firstChild) {\r\n throw new Error();\r\n }\r\n } catch (e) {\r\n response = undefined;\r\n }\r\n // The complete callback returns the\r\n // iframe content document as response object:\r\n completeCallback(\r\n 200,\r\n 'success',\r\n {'iframe': response}\r\n );\r\n // Fix for IE endless progress bar activity bug\r\n // (happens on form submits to iframe targets):\r\n $('')\r\n .appendTo(form);\r\n window.setTimeout(function () {\r\n // Removing the form in a setTimeout call\r\n // allows Chrome's developer tools to display\r\n // the response result\r\n form.remove();\r\n }, 0);\r\n });\r\n form\r\n .prop('target', iframe.prop('name'))\r\n .prop('action', options.url)\r\n .prop('method', options.type);\r\n if (options.formData) {\r\n $.each(options.formData, function (index, field) {\r\n $('')\r\n .prop('name', field.name)\r\n .val(field.value)\r\n .appendTo(form);\r\n });\r\n }\r\n if (options.fileInput && options.fileInput.length &&\r\n options.type === 'POST') {\r\n fileInputClones = options.fileInput.clone();\r\n // Insert a clone for each file input field:\r\n options.fileInput.after(function (index) {\r\n return fileInputClones[index];\r\n });\r\n if (options.paramName) {\r\n options.fileInput.each(function (index) {\r\n $(this).prop(\r\n 'name',\r\n paramNames[index] || options.paramName\r\n );\r\n });\r\n }\r\n // Appending the file input fields to the hidden form\r\n // removes them from their original location:\r\n form\r\n .append(options.fileInput)\r\n .prop('enctype', 'multipart/form-data')\r\n // enctype must be set as encoding for IE:\r\n .prop('encoding', 'multipart/form-data');\r\n }\r\n form.submit();\r\n // Insert the file input fields at their original location\r\n // by replacing the clones with the originals:\r\n if (fileInputClones && fileInputClones.length) {\r\n options.fileInput.each(function (index, input) {\r\n var clone = $(fileInputClones[index]);\r\n $(input).prop('name', clone.prop('name'));\r\n clone.replaceWith(input);\r\n });\r\n }\r\n });\r\n form.append(iframe).appendTo(document.body);\r\n },\r\n abort: function () {\r\n if (iframe) {\r\n // javascript:false as iframe src aborts the request\r\n // and prevents warning popups on HTTPS in IE6.\r\n // concat is used to avoid the \"Script URL\" JSLint error:\r\n iframe\r\n .unbind('load')\r\n .prop('src', 'javascript'.concat(':false;'));\r\n }\r\n if (form) {\r\n form.remove();\r\n }\r\n }\r\n };\r\n }\r\n });\r\n\r\n // The iframe transport returns the iframe content document as response.\r\n // The following adds converters from iframe to text, json, html, xml\r\n // and script.\r\n // Please note that the Content-Type for JSON responses has to be text/plain\r\n // or text/html, if the browser doesn't include application/json in the\r\n // Accept header, else IE will show a download dialog.\r\n // The Content-Type for XML responses on the other hand has to be always\r\n // application/xml or text/xml, so IE properly parses the XML response.\r\n // See also\r\n // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation\r\n $.ajaxSetup({\r\n converters: {\r\n 'iframe text': function (iframe) {\r\n return iframe && $(iframe[0].body).text();\r\n },\r\n 'iframe json': function (iframe) {\r\n return iframe && $.parseJSON($(iframe[0].body).text());\r\n },\r\n 'iframe html': function (iframe) {\r\n return iframe && $(iframe[0].body).html();\r\n },\r\n 'iframe xml': function (iframe) {\r\n var xmlDoc = iframe && iframe[0];\r\n return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc :\r\n $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||\r\n $(xmlDoc.body).html());\r\n },\r\n 'iframe script': function (iframe) {\r\n return iframe && $.globalEval($(iframe[0].body).text());\r\n }\r\n }\r\n });\r\n\r\n}));\r\n","/*\r\n * jQuery File Upload Plugin 5.32.1\r\n * https://github.com/blueimp/jQuery-File-Upload\r\n *\r\n * Copyright 2010, Sebastian Tschan\r\n * https://blueimp.net\r\n *\r\n * Licensed under the MIT license:\r\n * http://www.opensource.org/licenses/MIT\r\n */\r\n\r\n/*jslint nomen: true, unparam: true, regexp: true */\r\n/*global define, window, document, location, File, Blob, FormData */\r\n\r\n(function (factory) {\r\n 'use strict';\r\n if (typeof define === 'function' && define.amd) {\r\n // Register as an anonymous AMD module:\r\n define([\r\n 'jquery',\r\n 'jquery.ui.widget'\r\n ], factory);\r\n } else {\r\n // Browser globals:\r\n factory(window.jQuery);\r\n }\r\n}(function ($) {\r\n 'use strict';\r\n\r\n // Detect file input support, based on\r\n // http://viljamis.com/blog/2012/file-upload-support-on-mobile/\r\n $.support.fileInput = !(new RegExp(\r\n // Handle devices which give false positives for the feature detection:\r\n '(Android (1\\\\.[0156]|2\\\\.[01]))' +\r\n '|(Windows Phone (OS 7|8\\\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' +\r\n '|(w(eb)?OSBrowser)|(webOS)' +\r\n '|(Kindle/(1\\\\.0|2\\\\.[05]|3\\\\.0))'\r\n ).test(window.navigator.userAgent) ||\r\n // Feature detection for all other devices:\r\n $('').prop('disabled'));\r\n\r\n // The FileReader API is not actually used, but works as feature detection,\r\n // as e.g. Safari supports XHR file uploads via the FormData API,\r\n // but not non-multipart XHR file uploads:\r\n $.support.xhrFileUpload = !!(window.XMLHttpRequestUpload && window.FileReader);\r\n $.support.xhrFormDataFileUpload = !!window.FormData;\r\n\r\n // Detect support for Blob slicing (required for chunked uploads):\r\n $.support.blobSlice = window.Blob && (Blob.prototype.slice ||\r\n Blob.prototype.webkitSlice || Blob.prototype.mozSlice);\r\n\r\n // The fileupload widget listens for change events on file input fields defined\r\n // via fileInput setting and paste or drop events of the given dropZone.\r\n // In addition to the default jQuery Widget methods, the fileupload widget\r\n // exposes the \"add\" and \"send\" methods, to add or directly send files using\r\n // the fileupload API.\r\n // By default, files added via file input selection, paste, drag & drop or\r\n // \"add\" method are uploaded immediately, but it is possible to override\r\n // the \"add\" callback option to queue file uploads.\r\n $.widget('blueimp.fileupload', {\r\n\r\n options: {\r\n // The drop target element(s), by the default the complete document.\r\n // Set to null to disable drag & drop support:\r\n dropZone: $(document),\r\n // The paste target element(s), by the default the complete document.\r\n // Set to null to disable paste support:\r\n pasteZone: $(document),\r\n // The file input field(s), that are listened to for change events.\r\n // If undefined, it is set to the file input fields inside\r\n // of the widget element on plugin initialization.\r\n // Set to null to disable the change listener.\r\n fileInput: undefined,\r\n // By default, the file input field is replaced with a clone after\r\n // each input field change event. This is required for iframe transport\r\n // queues and allows change events to be fired for the same file\r\n // selection, but can be disabled by setting the following option to false:\r\n replaceFileInput: true,\r\n // The parameter name for the file form data (the request argument name).\r\n // If undefined or empty, the name property of the file input field is\r\n // used, or \"files[]\" if the file input name property is also empty,\r\n // can be a string or an array of strings:\r\n paramName: undefined,\r\n // By default, each file of a selection is uploaded using an individual\r\n // request for XHR type uploads. Set to false to upload file\r\n // selections in one request each:\r\n singleFileUploads: true,\r\n // To limit the number of files uploaded with one XHR request,\r\n // set the following option to an integer greater than 0:\r\n limitMultiFileUploads: undefined,\r\n // Set the following option to true to issue all file upload requests\r\n // in a sequential order:\r\n sequentialUploads: false,\r\n // To limit the number of concurrent uploads,\r\n // set the following option to an integer greater than 0:\r\n limitConcurrentUploads: undefined,\r\n // Set the following option to true to force iframe transport uploads:\r\n forceIframeTransport: false,\r\n // Set the following option to the location of a redirect url on the\r\n // origin server, for cross-domain iframe transport uploads:\r\n redirect: undefined,\r\n // The parameter name for the redirect url, sent as part of the form\r\n // data and set to 'redirect' if this option is empty:\r\n redirectParamName: undefined,\r\n // Set the following option to the location of a postMessage window,\r\n // to enable postMessage transport uploads:\r\n postMessage: undefined,\r\n // By default, XHR file uploads are sent as multipart/form-data.\r\n // The iframe transport is always using multipart/form-data.\r\n // Set to false to enable non-multipart XHR uploads:\r\n multipart: true,\r\n // To upload large files in smaller chunks, set the following option\r\n // to a preferred maximum chunk size. If set to 0, null or undefined,\r\n // or the browser does not support the required Blob API, files will\r\n // be uploaded as a whole.\r\n maxChunkSize: undefined,\r\n // When a non-multipart upload or a chunked multipart upload has been\r\n // aborted, this option can be used to resume the upload by setting\r\n // it to the size of the already uploaded bytes. This option is most\r\n // useful when modifying the options object inside of the \"add\" or\r\n // \"send\" callbacks, as the options are cloned for each file upload.\r\n uploadedBytes: undefined,\r\n // By default, failed (abort or error) file uploads are removed from the\r\n // global progress calculation. Set the following option to false to\r\n // prevent recalculating the global progress data:\r\n recalculateProgress: true,\r\n // Interval in milliseconds to calculate and trigger progress events:\r\n progressInterval: 100,\r\n // Interval in milliseconds to calculate progress bitrate:\r\n bitrateInterval: 500,\r\n // By default, uploads are started automatically when adding files:\r\n autoUpload: true,\r\n\r\n // Error and info messages:\r\n messages: {\r\n uploadedBytes: 'Uploaded bytes exceed file size'\r\n },\r\n\r\n // Translation function, gets the message key to be translated\r\n // and an object with context specific data as arguments:\r\n i18n: function (message, context) {\r\n message = this.messages[message] || message.toString();\r\n if (context) {\r\n $.each(context, function (key, value) {\r\n message = message.replace('{' + key + '}', value);\r\n });\r\n }\r\n return message;\r\n },\r\n\r\n // Additional form data to be sent along with the file uploads can be set\r\n // using this option, which accepts an array of objects with name and\r\n // value properties, a function returning such an array, a FormData\r\n // object (for XHR file uploads), or a simple object.\r\n // The form of the first fileInput is given as parameter to the function:\r\n formData: function (form) {\r\n return form.serializeArray();\r\n },\r\n\r\n // The add callback is invoked as soon as files are added to the fileupload\r\n // widget (via file input selection, drag & drop, paste or add API call).\r\n // If the singleFileUploads option is enabled, this callback will be\r\n // called once for each file in the selection for XHR file uploads, else\r\n // once for each file selection.\r\n //\r\n // The upload starts when the submit method is invoked on the data parameter.\r\n // The data object contains a files property holding the added files\r\n // and allows you to override plugin options as well as define ajax settings.\r\n //\r\n // Listeners for this callback can also be bound the following way:\r\n // .bind('fileuploadadd', func);\r\n //\r\n // data.submit() returns a Promise object and allows to attach additional\r\n // handlers using jQuery's Deferred callbacks:\r\n // data.submit().done(func).fail(func).always(func);\r\n add: function (e, data) {\r\n if (data.autoUpload || (data.autoUpload !== false &&\r\n $(this).fileupload('option', 'autoUpload'))) {\r\n data.process().done(function () {\r\n data.submit();\r\n });\r\n }\r\n },\r\n\r\n // Other callbacks:\r\n\r\n // Callback for the submit event of each file upload:\r\n // submit: function (e, data) {}, // .bind('fileuploadsubmit', func);\r\n\r\n // Callback for the start of each file upload request:\r\n // send: function (e, data) {}, // .bind('fileuploadsend', func);\r\n\r\n // Callback for successful uploads:\r\n // done: function (e, data) {}, // .bind('fileuploaddone', func);\r\n\r\n // Callback for failed (abort or error) uploads:\r\n // fail: function (e, data) {}, // .bind('fileuploadfail', func);\r\n\r\n // Callback for completed (success, abort or error) requests:\r\n // always: function (e, data) {}, // .bind('fileuploadalways', func);\r\n\r\n // Callback for upload progress events:\r\n // progress: function (e, data) {}, // .bind('fileuploadprogress', func);\r\n\r\n // Callback for global upload progress events:\r\n // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);\r\n\r\n // Callback for uploads start, equivalent to the global ajaxStart event:\r\n // start: function (e) {}, // .bind('fileuploadstart', func);\r\n\r\n // Callback for uploads stop, equivalent to the global ajaxStop event:\r\n // stop: function (e) {}, // .bind('fileuploadstop', func);\r\n\r\n // Callback for change events of the fileInput(s):\r\n // change: function (e, data) {}, // .bind('fileuploadchange', func);\r\n\r\n // Callback for paste events to the pasteZone(s):\r\n // paste: function (e, data) {}, // .bind('fileuploadpaste', func);\r\n\r\n // Callback for drop events of the dropZone(s):\r\n // drop: function (e, data) {}, // .bind('fileuploaddrop', func);\r\n\r\n // Callback for dragover events of the dropZone(s):\r\n // dragover: function (e) {}, // .bind('fileuploaddragover', func);\r\n\r\n // Callback for the start of each chunk upload request:\r\n // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func);\r\n\r\n // Callback for successful chunk uploads:\r\n // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func);\r\n\r\n // Callback for failed (abort or error) chunk uploads:\r\n // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func);\r\n\r\n // Callback for completed (success, abort or error) chunk upload requests:\r\n // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func);\r\n\r\n // The plugin options are used as settings object for the ajax calls.\r\n // The following are jQuery ajax settings required for the file uploads:\r\n processData: false,\r\n contentType: false,\r\n cache: false\r\n },\r\n\r\n // A list of options that require reinitializing event listeners and/or\r\n // special initialization code:\r\n _specialOptions: [\r\n 'fileInput',\r\n 'dropZone',\r\n 'pasteZone',\r\n 'multipart',\r\n 'forceIframeTransport'\r\n ],\r\n\r\n _blobSlice: $.support.blobSlice && function () {\r\n var slice = this.slice || this.webkitSlice || this.mozSlice;\r\n return slice.apply(this, arguments);\r\n },\r\n\r\n _BitrateTimer: function () {\r\n this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime());\r\n this.loaded = 0;\r\n this.bitrate = 0;\r\n this.getBitrate = function (now, loaded, interval) {\r\n var timeDiff = now - this.timestamp;\r\n if (!this.bitrate || !interval || timeDiff > interval) {\r\n this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;\r\n this.loaded = loaded;\r\n this.timestamp = now;\r\n }\r\n return this.bitrate;\r\n };\r\n },\r\n\r\n _isXHRUpload: function (options) {\r\n return !options.forceIframeTransport &&\r\n ((!options.multipart && $.support.xhrFileUpload) ||\r\n $.support.xhrFormDataFileUpload);\r\n },\r\n\r\n _getFormData: function (options) {\r\n var formData;\r\n if (typeof options.formData === 'function') {\r\n return options.formData(options.form);\r\n }\r\n if ($.isArray(options.formData)) {\r\n return options.formData;\r\n }\r\n if ($.type(options.formData) === 'object') {\r\n formData = [];\r\n $.each(options.formData, function (name, value) {\r\n formData.push({name: name, value: value});\r\n });\r\n return formData;\r\n }\r\n return [];\r\n },\r\n\r\n _getTotal: function (files) {\r\n var total = 0;\r\n $.each(files, function (index, file) {\r\n total += file.size || 1;\r\n });\r\n return total;\r\n },\r\n\r\n _initProgressObject: function (obj) {\r\n var progress = {\r\n loaded: 0,\r\n total: 0,\r\n bitrate: 0\r\n };\r\n if (obj._progress) {\r\n $.extend(obj._progress, progress);\r\n } else {\r\n obj._progress = progress;\r\n }\r\n },\r\n\r\n _initResponseObject: function (obj) {\r\n var prop;\r\n if (obj._response) {\r\n for (prop in obj._response) {\r\n if (obj._response.hasOwnProperty(prop)) {\r\n delete obj._response[prop];\r\n }\r\n }\r\n } else {\r\n obj._response = {};\r\n }\r\n },\r\n\r\n _onProgress: function (e, data) {\r\n if (e.lengthComputable) {\r\n var now = ((Date.now) ? Date.now() : (new Date()).getTime()),\r\n loaded;\r\n if (data._time && data.progressInterval &&\r\n (now - data._time < data.progressInterval) &&\r\n e.loaded !== e.total) {\r\n return;\r\n }\r\n data._time = now;\r\n loaded = Math.floor(\r\n e.loaded / e.total * (data.chunkSize || data._progress.total)\r\n ) + (data.uploadedBytes || 0);\r\n // Add the difference from the previously loaded state\r\n // to the global loaded counter:\r\n this._progress.loaded += (loaded - data._progress.loaded);\r\n this._progress.bitrate = this._bitrateTimer.getBitrate(\r\n now,\r\n this._progress.loaded,\r\n data.bitrateInterval\r\n );\r\n data._progress.loaded = data.loaded = loaded;\r\n data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(\r\n now,\r\n loaded,\r\n data.bitrateInterval\r\n );\r\n // Trigger a custom progress event with a total data property set\r\n // to the file size(s) of the current upload and a loaded data\r\n // property calculated accordingly:\r\n this._trigger('progress', e, data);\r\n // Trigger a global progress event for all current file uploads,\r\n // including ajax calls queued for sequential file uploads:\r\n this._trigger('progressall', e, this._progress);\r\n }\r\n },\r\n\r\n _initProgressListener: function (options) {\r\n var that = this,\r\n xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();\r\n // Accesss to the native XHR object is required to add event listeners\r\n // for the upload progress event:\r\n if (xhr.upload) {\r\n $(xhr.upload).bind('progress', function (e) {\r\n var oe = e.originalEvent;\r\n // Make sure the progress event properties get copied over:\r\n e.lengthComputable = oe.lengthComputable;\r\n e.loaded = oe.loaded;\r\n e.total = oe.total;\r\n that._onProgress(e, options);\r\n });\r\n options.xhr = function () {\r\n return xhr;\r\n };\r\n }\r\n },\r\n\r\n _isInstanceOf: function (type, obj) {\r\n // Cross-frame instanceof check\r\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\r\n },\r\n\r\n _initXHRData: function (options) {\r\n var that = this,\r\n formData,\r\n file = options.files[0],\r\n // Ignore non-multipart setting if not supported:\r\n multipart = options.multipart || !$.support.xhrFileUpload,\r\n paramName = options.paramName[0];\r\n options.headers = options.headers || {};\r\n if (options.contentRange) {\r\n options.headers['Content-Range'] = options.contentRange;\r\n }\r\n if (!multipart || options.blob || !this._isInstanceOf('File', file)) {\r\n options.headers['Content-Disposition'] = 'attachment; filename=\"' +\r\n encodeURI(file.name) + '\"';\r\n }\r\n if (!multipart) {\r\n options.contentType = file.type;\r\n options.data = options.blob || file;\r\n } else if ($.support.xhrFormDataFileUpload) {\r\n if (options.postMessage) {\r\n // window.postMessage does not allow sending FormData\r\n // objects, so we just add the File/Blob objects to\r\n // the formData array and let the postMessage window\r\n // create the FormData object out of this array:\r\n formData = this._getFormData(options);\r\n if (options.blob) {\r\n formData.push({\r\n name: paramName,\r\n value: options.blob\r\n });\r\n } else {\r\n $.each(options.files, function (index, file) {\r\n formData.push({\r\n name: options.paramName[index] || paramName,\r\n value: file\r\n });\r\n });\r\n }\r\n } else {\r\n if (that._isInstanceOf('FormData', options.formData)) {\r\n formData = options.formData;\r\n } else {\r\n formData = new FormData();\r\n $.each(this._getFormData(options), function (index, field) {\r\n formData.append(field.name, field.value);\r\n });\r\n }\r\n if (options.blob) {\r\n formData.append(paramName, options.blob, file.name);\r\n } else {\r\n $.each(options.files, function (index, file) {\r\n // This check allows the tests to run with\r\n // dummy objects:\r\n if (that._isInstanceOf('File', file) ||\r\n that._isInstanceOf('Blob', file)) {\r\n formData.append(\r\n options.paramName[index] || paramName,\r\n file,\r\n file.name\r\n );\r\n }\r\n });\r\n }\r\n }\r\n options.data = formData;\r\n }\r\n // Blob reference is not needed anymore, free memory:\r\n options.blob = null;\r\n },\r\n\r\n _initIframeSettings: function (options) {\r\n var targetHost = $('').prop('href', options.url).prop('host');\r\n // Setting the dataType to iframe enables the iframe transport:\r\n options.dataType = 'iframe ' + (options.dataType || '');\r\n // The iframe transport accepts a serialized array as form data:\r\n options.formData = this._getFormData(options);\r\n // Add redirect url to form data on cross-domain uploads:\r\n if (options.redirect && targetHost && targetHost !== location.host) {\r\n options.formData.push({\r\n name: options.redirectParamName || 'redirect',\r\n value: options.redirect\r\n });\r\n }\r\n },\r\n\r\n _initDataSettings: function (options) {\r\n if (this._isXHRUpload(options)) {\r\n if (!this._chunkedUpload(options, true)) {\r\n if (!options.data) {\r\n this._initXHRData(options);\r\n }\r\n this._initProgressListener(options);\r\n }\r\n if (options.postMessage) {\r\n // Setting the dataType to postmessage enables the\r\n // postMessage transport:\r\n options.dataType = 'postmessage ' + (options.dataType || '');\r\n }\r\n } else {\r\n this._initIframeSettings(options);\r\n }\r\n },\r\n\r\n _getParamName: function (options) {\r\n var fileInput = $(options.fileInput),\r\n paramName = options.paramName;\r\n if (!paramName) {\r\n paramName = [];\r\n fileInput.each(function () {\r\n var input = $(this),\r\n name = input.prop('name') || 'files[]',\r\n i = (input.prop('files') || [1]).length;\r\n while (i) {\r\n paramName.push(name);\r\n i -= 1;\r\n }\r\n });\r\n if (!paramName.length) {\r\n paramName = [fileInput.prop('name') || 'files[]'];\r\n }\r\n } else if (!$.isArray(paramName)) {\r\n paramName = [paramName];\r\n }\r\n return paramName;\r\n },\r\n\r\n _initFormSettings: function (options) {\r\n // Retrieve missing options from the input field and the\r\n // associated form, if available:\r\n if (!options.form || !options.form.length) {\r\n options.form = $(options.fileInput.prop('form'));\r\n // If the given file input doesn't have an associated form,\r\n // use the default widget file input's form:\r\n if (!options.form.length) {\r\n options.form = $(this.options.fileInput.prop('form'));\r\n }\r\n }\r\n options.paramName = this._getParamName(options);\r\n if (!options.url) {\r\n options.url = options.form.prop('action') || location.href;\r\n }\r\n // The HTTP request method must be \"POST\" or \"PUT\":\r\n options.type = (options.type || options.form.prop('method') || '')\r\n .toUpperCase();\r\n if (options.type !== 'POST' && options.type !== 'PUT' &&\r\n options.type !== 'PATCH') {\r\n options.type = 'POST';\r\n }\r\n if (!options.formAcceptCharset) {\r\n options.formAcceptCharset = options.form.attr('accept-charset');\r\n }\r\n },\r\n\r\n _getAJAXSettings: function (data) {\r\n var options = $.extend({}, this.options, data);\r\n this._initFormSettings(options);\r\n this._initDataSettings(options);\r\n return options;\r\n },\r\n\r\n // jQuery 1.6 doesn't provide .state(),\r\n // while jQuery 1.8+ removed .isRejected() and .isResolved():\r\n _getDeferredState: function (deferred) {\r\n if (deferred.state) {\r\n return deferred.state();\r\n }\r\n if (deferred.isResolved()) {\r\n return 'resolved';\r\n }\r\n if (deferred.isRejected()) {\r\n return 'rejected';\r\n }\r\n return 'pending';\r\n },\r\n\r\n // Maps jqXHR callbacks to the equivalent\r\n // methods of the given Promise object:\r\n _enhancePromise: function (promise) {\r\n promise.success = promise.done;\r\n promise.error = promise.fail;\r\n promise.complete = promise.always;\r\n return promise;\r\n },\r\n\r\n // Creates and returns a Promise object enhanced with\r\n // the jqXHR methods abort, success, error and complete:\r\n _getXHRPromise: function (resolveOrReject, context, args) {\r\n var dfd = $.Deferred(),\r\n promise = dfd.promise();\r\n context = context || this.options.context || promise;\r\n if (resolveOrReject === true) {\r\n dfd.resolveWith(context, args);\r\n } else if (resolveOrReject === false) {\r\n dfd.rejectWith(context, args);\r\n }\r\n promise.abort = dfd.promise;\r\n return this._enhancePromise(promise);\r\n },\r\n\r\n // Adds convenience methods to the data callback argument:\r\n _addConvenienceMethods: function (e, data) {\r\n var that = this,\r\n getPromise = function (data) {\r\n return $.Deferred().resolveWith(that, [data]).promise();\r\n };\r\n data.process = function (resolveFunc, rejectFunc) {\r\n if (resolveFunc || rejectFunc) {\r\n data._processQueue = this._processQueue =\r\n (this._processQueue || getPromise(this))\r\n .pipe(resolveFunc, rejectFunc);\r\n }\r\n return this._processQueue || getPromise(this);\r\n };\r\n data.submit = function () {\r\n if (this.state() !== 'pending') {\r\n data.jqXHR = this.jqXHR =\r\n (that._trigger('submit', e, this) !== false) &&\r\n that._onSend(e, this);\r\n }\r\n return this.jqXHR || that._getXHRPromise();\r\n };\r\n data.abort = function () {\r\n if (this.jqXHR) {\r\n return this.jqXHR.abort();\r\n }\r\n return that._getXHRPromise();\r\n };\r\n data.state = function () {\r\n if (this.jqXHR) {\r\n return that._getDeferredState(this.jqXHR);\r\n }\r\n if (this._processQueue) {\r\n return that._getDeferredState(this._processQueue);\r\n }\r\n };\r\n data.progress = function () {\r\n return this._progress;\r\n };\r\n data.response = function () {\r\n return this._response;\r\n };\r\n },\r\n\r\n // Parses the Range header from the server response\r\n // and returns the uploaded bytes:\r\n _getUploadedBytes: function (jqXHR) {\r\n var range = jqXHR.getResponseHeader('Range'),\r\n parts = range && range.split('-'),\r\n upperBytesPos = parts && parts.length > 1 &&\r\n parseInt(parts[1], 10);\r\n return upperBytesPos && upperBytesPos + 1;\r\n },\r\n\r\n // Uploads a file in multiple, sequential requests\r\n // by splitting the file up in multiple blob chunks.\r\n // If the second parameter is true, only tests if the file\r\n // should be uploaded in chunks, but does not invoke any\r\n // upload requests:\r\n _chunkedUpload: function (options, testOnly) {\r\n options.uploadedBytes = options.uploadedBytes || 0;\r\n var that = this,\r\n file = options.files[0],\r\n fs = file.size,\r\n ub = options.uploadedBytes,\r\n mcs = options.maxChunkSize || fs,\r\n slice = this._blobSlice,\r\n dfd = $.Deferred(),\r\n promise = dfd.promise(),\r\n jqXHR,\r\n upload;\r\n if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) ||\r\n options.data) {\r\n return false;\r\n }\r\n if (testOnly) {\r\n return true;\r\n }\r\n if (ub >= fs) {\r\n file.error = options.i18n('uploadedBytes');\r\n return this._getXHRPromise(\r\n false,\r\n options.context,\r\n [null, 'error', file.error]\r\n );\r\n }\r\n // The chunk upload method:\r\n upload = function () {\r\n // Clone the options object for each chunk upload:\r\n var o = $.extend({}, options),\r\n currentLoaded = o._progress.loaded;\r\n o.blob = slice.call(\r\n file,\r\n ub,\r\n ub + mcs,\r\n file.type\r\n );\r\n // Store the current chunk size, as the blob itself\r\n // will be dereferenced after data processing:\r\n o.chunkSize = o.blob.size;\r\n // Expose the chunk bytes position range:\r\n o.contentRange = 'bytes ' + ub + '-' +\r\n (ub + o.chunkSize - 1) + '/' + fs;\r\n // Process the upload data (the blob and potential form data):\r\n that._initXHRData(o);\r\n // Add progress listeners for this chunk upload:\r\n that._initProgressListener(o);\r\n jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) ||\r\n that._getXHRPromise(false, o.context))\r\n .done(function (result, textStatus, jqXHR) {\r\n ub = that._getUploadedBytes(jqXHR) ||\r\n (ub + o.chunkSize);\r\n // Create a progress event if no final progress event\r\n // with loaded equaling total has been triggered\r\n // for this chunk:\r\n if (currentLoaded + o.chunkSize - o._progress.loaded) {\r\n that._onProgress($.Event('progress', {\r\n lengthComputable: true,\r\n loaded: ub - o.uploadedBytes,\r\n total: ub - o.uploadedBytes\r\n }), o);\r\n }\r\n options.uploadedBytes = o.uploadedBytes = ub;\r\n o.result = result;\r\n o.textStatus = textStatus;\r\n o.jqXHR = jqXHR;\r\n that._trigger('chunkdone', null, o);\r\n that._trigger('chunkalways', null, o);\r\n if (ub < fs) {\r\n // File upload not yet complete,\r\n // continue with the next chunk:\r\n upload();\r\n } else {\r\n dfd.resolveWith(\r\n o.context,\r\n [result, textStatus, jqXHR]\r\n );\r\n }\r\n })\r\n .fail(function (jqXHR, textStatus, errorThrown) {\r\n o.jqXHR = jqXHR;\r\n o.textStatus = textStatus;\r\n o.errorThrown = errorThrown;\r\n that._trigger('chunkfail', null, o);\r\n that._trigger('chunkalways', null, o);\r\n dfd.rejectWith(\r\n o.context,\r\n [jqXHR, textStatus, errorThrown]\r\n );\r\n });\r\n };\r\n this._enhancePromise(promise);\r\n promise.abort = function () {\r\n return jqXHR.abort();\r\n };\r\n upload();\r\n return promise;\r\n },\r\n\r\n _beforeSend: function (e, data) {\r\n if (this._active === 0) {\r\n // the start callback is triggered when an upload starts\r\n // and no other uploads are currently running,\r\n // equivalent to the global ajaxStart event:\r\n this._trigger('start');\r\n // Set timer for global bitrate progress calculation:\r\n this._bitrateTimer = new this._BitrateTimer();\r\n // Reset the global progress values:\r\n this._progress.loaded = this._progress.total = 0;\r\n this._progress.bitrate = 0;\r\n }\r\n // Make sure the container objects for the .response() and\r\n // .progress() methods on the data object are available\r\n // and reset to their initial state:\r\n this._initResponseObject(data);\r\n this._initProgressObject(data);\r\n data._progress.loaded = data.loaded = data.uploadedBytes || 0;\r\n data._progress.total = data.total = this._getTotal(data.files) || 1;\r\n data._progress.bitrate = data.bitrate = 0;\r\n this._active += 1;\r\n // Initialize the global progress values:\r\n this._progress.loaded += data.loaded;\r\n this._progress.total += data.total;\r\n },\r\n\r\n _onDone: function (result, textStatus, jqXHR, options) {\r\n var total = options._progress.total,\r\n response = options._response;\r\n if (options._progress.loaded < total) {\r\n // Create a progress event if no final progress event\r\n // with loaded equaling total has been triggered:\r\n this._onProgress($.Event('progress', {\r\n lengthComputable: true,\r\n loaded: total,\r\n total: total\r\n }), options);\r\n }\r\n response.result = options.result = result;\r\n response.textStatus = options.textStatus = textStatus;\r\n response.jqXHR = options.jqXHR = jqXHR;\r\n this._trigger('done', null, options);\r\n },\r\n\r\n _onFail: function (jqXHR, textStatus, errorThrown, options) {\r\n var response = options._response;\r\n if (options.recalculateProgress) {\r\n // Remove the failed (error or abort) file upload from\r\n // the global progress calculation:\r\n this._progress.loaded -= options._progress.loaded;\r\n this._progress.total -= options._progress.total;\r\n }\r\n response.jqXHR = options.jqXHR = jqXHR;\r\n response.textStatus = options.textStatus = textStatus;\r\n response.errorThrown = options.errorThrown = errorThrown;\r\n this._trigger('fail', null, options);\r\n },\r\n\r\n _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) {\r\n // jqXHRorResult, textStatus and jqXHRorError are added to the\r\n // options object via done and fail callbacks\r\n this._trigger('always', null, options);\r\n },\r\n\r\n _onSend: function (e, data) {\r\n if (!data.submit) {\r\n this._addConvenienceMethods(e, data);\r\n }\r\n var that = this,\r\n jqXHR,\r\n aborted,\r\n slot,\r\n pipe,\r\n options = that._getAJAXSettings(data),\r\n send = function () {\r\n that._sending += 1;\r\n // Set timer for bitrate progress calculation:\r\n options._bitrateTimer = new that._BitrateTimer();\r\n jqXHR = jqXHR || (\r\n ((aborted || that._trigger('send', e, options) === false) &&\r\n that._getXHRPromise(false, options.context, aborted)) ||\r\n that._chunkedUpload(options) || $.ajax(options)\r\n ).done(function (result, textStatus, jqXHR) {\r\n that._onDone(result, textStatus, jqXHR, options);\r\n }).fail(function (jqXHR, textStatus, errorThrown) {\r\n that._onFail(jqXHR, textStatus, errorThrown, options);\r\n }).always(function (jqXHRorResult, textStatus, jqXHRorError) {\r\n that._onAlways(\r\n jqXHRorResult,\r\n textStatus,\r\n jqXHRorError,\r\n options\r\n );\r\n that._sending -= 1;\r\n that._active -= 1;\r\n if (options.limitConcurrentUploads &&\r\n options.limitConcurrentUploads > that._sending) {\r\n // Start the next queued upload,\r\n // that has not been aborted:\r\n var nextSlot = that._slots.shift();\r\n while (nextSlot) {\r\n if (that._getDeferredState(nextSlot) === 'pending') {\r\n nextSlot.resolve();\r\n break;\r\n }\r\n nextSlot = that._slots.shift();\r\n }\r\n }\r\n if (that._active === 0) {\r\n // The stop callback is triggered when all uploads have\r\n // been completed, equivalent to the global ajaxStop event:\r\n that._trigger('stop');\r\n }\r\n });\r\n return jqXHR;\r\n };\r\n this._beforeSend(e, options);\r\n if (this.options.sequentialUploads ||\r\n (this.options.limitConcurrentUploads &&\r\n this.options.limitConcurrentUploads <= this._sending)) {\r\n if (this.options.limitConcurrentUploads > 1) {\r\n slot = $.Deferred();\r\n this._slots.push(slot);\r\n pipe = slot.pipe(send);\r\n } else {\r\n this._sequence = this._sequence.pipe(send, send);\r\n pipe = this._sequence;\r\n }\r\n // Return the piped Promise object, enhanced with an abort method,\r\n // which is delegated to the jqXHR object of the current upload,\r\n // and jqXHR callbacks mapped to the equivalent Promise methods:\r\n pipe.abort = function () {\r\n aborted = [undefined, 'abort', 'abort'];\r\n if (!jqXHR) {\r\n if (slot) {\r\n slot.rejectWith(options.context, aborted);\r\n }\r\n return send();\r\n }\r\n return jqXHR.abort();\r\n };\r\n return this._enhancePromise(pipe);\r\n }\r\n return send();\r\n },\r\n\r\n _onAdd: function (e, data) {\r\n var that = this,\r\n result = true,\r\n options = $.extend({}, this.options, data),\r\n limit = options.limitMultiFileUploads,\r\n paramName = this._getParamName(options),\r\n paramNameSet,\r\n paramNameSlice,\r\n fileSet,\r\n i;\r\n if (!(options.singleFileUploads || limit) ||\r\n !this._isXHRUpload(options)) {\r\n fileSet = [data.files];\r\n paramNameSet = [paramName];\r\n } else if (!options.singleFileUploads && limit) {\r\n fileSet = [];\r\n paramNameSet = [];\r\n for (i = 0; i < data.files.length; i += limit) {\r\n fileSet.push(data.files.slice(i, i + limit));\r\n paramNameSlice = paramName.slice(i, i + limit);\r\n if (!paramNameSlice.length) {\r\n paramNameSlice = paramName;\r\n }\r\n paramNameSet.push(paramNameSlice);\r\n }\r\n } else {\r\n paramNameSet = paramName;\r\n }\r\n data.originalFiles = data.files;\r\n $.each(fileSet || data.files, function (index, element) {\r\n var newData = $.extend({}, data);\r\n newData.files = fileSet ? element : [element];\r\n newData.paramName = paramNameSet[index];\r\n that._initResponseObject(newData);\r\n that._initProgressObject(newData);\r\n that._addConvenienceMethods(e, newData);\r\n result = that._trigger('add', e, newData);\r\n return result;\r\n });\r\n return result;\r\n },\r\n\r\n _replaceFileInput: function (input) {\r\n var inputClone = input.clone(true);\r\n $('
').append(inputClone)[0].reset();\r\n // Detaching allows to insert the fileInput on another form\r\n // without loosing the file input value:\r\n input.after(inputClone).detach();\r\n // Avoid memory leaks with the detached file input:\r\n $.cleanData(input.unbind('remove'));\r\n // Replace the original file input element in the fileInput\r\n // elements set with the clone, which has been copied including\r\n // event handlers:\r\n this.options.fileInput = this.options.fileInput.map(function (i, el) {\r\n if (el === input[0]) {\r\n return inputClone[0];\r\n }\r\n return el;\r\n });\r\n // If the widget has been initialized on the file input itself,\r\n // override this.element with the file input clone:\r\n if (input[0] === this.element[0]) {\r\n this.element = inputClone;\r\n }\r\n },\r\n\r\n _handleFileTreeEntry: function (entry, path) {\r\n var that = this,\r\n dfd = $.Deferred(),\r\n errorHandler = function (e) {\r\n if (e && !e.entry) {\r\n e.entry = entry;\r\n }\r\n // Since $.when returns immediately if one\r\n // Deferred is rejected, we use resolve instead.\r\n // This allows valid files and invalid items\r\n // to be returned together in one set:\r\n dfd.resolve([e]);\r\n },\r\n dirReader;\r\n path = path || '';\r\n if (entry.isFile) {\r\n if (entry._file) {\r\n // Workaround for Chrome bug #149735\r\n entry._file.relativePath = path;\r\n dfd.resolve(entry._file);\r\n } else {\r\n entry.file(function (file) {\r\n file.relativePath = path;\r\n dfd.resolve(file);\r\n }, errorHandler);\r\n }\r\n } else if (entry.isDirectory) {\r\n dirReader = entry.createReader();\r\n dirReader.readEntries(function (entries) {\r\n that._handleFileTreeEntries(\r\n entries,\r\n path + entry.name + '/'\r\n ).done(function (files) {\r\n dfd.resolve(files);\r\n }).fail(errorHandler);\r\n }, errorHandler);\r\n } else {\r\n // Return an empy list for file system items\r\n // other than files or directories:\r\n dfd.resolve([]);\r\n }\r\n return dfd.promise();\r\n },\r\n\r\n _handleFileTreeEntries: function (entries, path) {\r\n var that = this;\r\n return $.when.apply(\r\n $,\r\n $.map(entries, function (entry) {\r\n return that._handleFileTreeEntry(entry, path);\r\n })\r\n ).pipe(function () {\r\n return Array.prototype.concat.apply(\r\n [],\r\n arguments\r\n );\r\n });\r\n },\r\n\r\n _getDroppedFiles: function (dataTransfer) {\r\n dataTransfer = dataTransfer || {};\r\n var items = dataTransfer.items;\r\n if (items && items.length && (items[0].webkitGetAsEntry ||\r\n items[0].getAsEntry)) {\r\n return this._handleFileTreeEntries(\r\n $.map(items, function (item) {\r\n var entry;\r\n if (item.webkitGetAsEntry) {\r\n entry = item.webkitGetAsEntry();\r\n if (entry) {\r\n // Workaround for Chrome bug #149735:\r\n entry._file = item.getAsFile();\r\n }\r\n return entry;\r\n }\r\n return item.getAsEntry();\r\n })\r\n );\r\n }\r\n return $.Deferred().resolve(\r\n $.makeArray(dataTransfer.files)\r\n ).promise();\r\n },\r\n\r\n _getSingleFileInputFiles: function (fileInput) {\r\n fileInput = $(fileInput);\r\n var entries = fileInput.prop('webkitEntries') ||\r\n fileInput.prop('entries'),\r\n files,\r\n value;\r\n if (entries && entries.length) {\r\n return this._handleFileTreeEntries(entries);\r\n }\r\n files = $.makeArray(fileInput.prop('files'));\r\n if (!files.length) {\r\n value = fileInput.prop('value');\r\n if (!value) {\r\n return $.Deferred().resolve([]).promise();\r\n }\r\n // If the files property is not available, the browser does not\r\n // support the File API and we add a pseudo File object with\r\n // the input value as name with path information removed:\r\n files = [{name: value.replace(/^.*\\\\/, '')}];\r\n } else if (files[0].name === undefined && files[0].fileName) {\r\n // File normalization for Safari 4 and Firefox 3:\r\n $.each(files, function (index, file) {\r\n file.name = file.fileName;\r\n file.size = file.fileSize;\r\n });\r\n }\r\n return $.Deferred().resolve(files).promise();\r\n },\r\n\r\n _getFileInputFiles: function (fileInput) {\r\n if (!(fileInput instanceof $) || fileInput.length === 1) {\r\n return this._getSingleFileInputFiles(fileInput);\r\n }\r\n return $.when.apply(\r\n $,\r\n $.map(fileInput, this._getSingleFileInputFiles)\r\n ).pipe(function () {\r\n return Array.prototype.concat.apply(\r\n [],\r\n arguments\r\n );\r\n });\r\n },\r\n\r\n _onChange: function (e) {\r\n var that = this,\r\n data = {\r\n fileInput: $(e.target),\r\n form: $(e.target.form)\r\n };\r\n this._getFileInputFiles(data.fileInput).always(function (files) {\r\n data.files = files;\r\n if (that.options.replaceFileInput) {\r\n that._replaceFileInput(data.fileInput);\r\n }\r\n if (that._trigger('change', e, data) !== false) {\r\n that._onAdd(e, data);\r\n }\r\n });\r\n },\r\n\r\n _onPaste: function (e) {\r\n var items = e.originalEvent && e.originalEvent.clipboardData &&\r\n e.originalEvent.clipboardData.items,\r\n data = {files: []};\r\n if (items && items.length) {\r\n $.each(items, function (index, item) {\r\n var file = item.getAsFile && item.getAsFile();\r\n if (file) {\r\n data.files.push(file);\r\n }\r\n });\r\n if (this._trigger('paste', e, data) === false ||\r\n this._onAdd(e, data) === false) {\r\n return false;\r\n }\r\n }\r\n },\r\n\r\n _onDrop: function (e) {\r\n e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\r\n var that = this,\r\n dataTransfer = e.dataTransfer,\r\n data = {};\r\n if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\r\n e.preventDefault();\r\n this._getDroppedFiles(dataTransfer).always(function (files) {\r\n data.files = files;\r\n if (that._trigger('drop', e, data) !== false) {\r\n that._onAdd(e, data);\r\n }\r\n });\r\n }\r\n },\r\n\r\n _onDragOver: function (e) {\r\n e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\r\n var dataTransfer = e.dataTransfer;\r\n if (dataTransfer) {\r\n if (this._trigger('dragover', e) === false) {\r\n return false;\r\n }\r\n if ($.inArray('Files', dataTransfer.types) !== -1) {\r\n dataTransfer.dropEffect = 'copy';\r\n e.preventDefault();\r\n }\r\n }\r\n },\r\n\r\n _initEventHandlers: function () {\r\n if (this._isXHRUpload(this.options)) {\r\n this._on(this.options.dropZone, {\r\n dragover: this._onDragOver,\r\n drop: this._onDrop\r\n });\r\n this._on(this.options.pasteZone, {\r\n paste: this._onPaste\r\n });\r\n }\r\n if ($.support.fileInput) {\r\n this._on(this.options.fileInput, {\r\n change: this._onChange\r\n });\r\n }\r\n },\r\n\r\n _destroyEventHandlers: function () {\r\n this._off(this.options.dropZone, 'dragover drop');\r\n this._off(this.options.pasteZone, 'paste');\r\n this._off(this.options.fileInput, 'change');\r\n },\r\n\r\n _setOption: function (key, value) {\r\n var reinit = $.inArray(key, this._specialOptions) !== -1;\r\n if (reinit) {\r\n this._destroyEventHandlers();\r\n }\r\n this._super(key, value);\r\n if (reinit) {\r\n this._initSpecialOptions();\r\n this._initEventHandlers();\r\n }\r\n },\r\n\r\n _initSpecialOptions: function () {\r\n var options = this.options;\r\n if (options.fileInput === undefined) {\r\n options.fileInput = this.element.is('input[type=\"file\"]') ?\r\n this.element : this.element.find('input[type=\"file\"]');\r\n } else if (!(options.fileInput instanceof $)) {\r\n options.fileInput = $(options.fileInput);\r\n }\r\n if (!(options.dropZone instanceof $)) {\r\n options.dropZone = $(options.dropZone);\r\n }\r\n if (!(options.pasteZone instanceof $)) {\r\n options.pasteZone = $(options.pasteZone);\r\n }\r\n },\r\n\r\n _getRegExp: function (str) {\r\n var parts = str.split('/'),\r\n modifiers = parts.pop();\r\n parts.shift();\r\n return new RegExp(parts.join('/'), modifiers);\r\n },\r\n\r\n _isRegExpOption: function (key, value) {\r\n return key !== 'url' && $.type(value) === 'string' &&\r\n /^\\/.*\\/[igm]{0,3}$/.test(value);\r\n },\r\n\r\n _initDataAttributes: function () {\r\n var that = this,\r\n options = this.options;\r\n // Initialize options set via HTML5 data-attributes:\r\n $.each(\r\n $(this.element[0].cloneNode(false)).data(),\r\n function (key, value) {\r\n if (that._isRegExpOption(key, value)) {\r\n value = that._getRegExp(value);\r\n }\r\n options[key] = value;\r\n }\r\n );\r\n },\r\n\r\n _create: function () {\r\n this._initDataAttributes();\r\n this._initSpecialOptions();\r\n this._slots = [];\r\n this._sequence = this._getXHRPromise(true);\r\n this._sending = this._active = 0;\r\n this._initProgressObject(this);\r\n this._initEventHandlers();\r\n },\r\n\r\n // This method is exposed to the widget API and allows to query\r\n // the number of active uploads:\r\n active: function () {\r\n return this._active;\r\n },\r\n\r\n // This method is exposed to the widget API and allows to query\r\n // the widget upload progress.\r\n // It returns an object with loaded, total and bitrate properties\r\n // for the running uploads:\r\n progress: function () {\r\n return this._progress;\r\n },\r\n\r\n // This method is exposed to the widget API and allows adding files\r\n // using the fileupload API. The data parameter accepts an object which\r\n // must have a files property and can contain additional options:\r\n // .fileupload('add', {files: filesList});\r\n add: function (data) {\r\n var that = this;\r\n if (!data || this.options.disabled) {\r\n return;\r\n }\r\n if (data.fileInput && !data.files) {\r\n this._getFileInputFiles(data.fileInput).always(function (files) {\r\n data.files = files;\r\n that._onAdd(null, data);\r\n });\r\n } else {\r\n data.files = $.makeArray(data.files);\r\n this._onAdd(null, data);\r\n }\r\n },\r\n\r\n // This method is exposed to the widget API and allows sending files\r\n // using the fileupload API. The data parameter accepts an object which\r\n // must have a files or fileInput property and can contain additional options:\r\n // .fileupload('send', {files: filesList});\r\n // The method returns a Promise object for the file upload call.\r\n send: function (data) {\r\n if (data && !this.options.disabled) {\r\n if (data.fileInput && !data.files) {\r\n var that = this,\r\n dfd = $.Deferred(),\r\n promise = dfd.promise(),\r\n jqXHR,\r\n aborted;\r\n promise.abort = function () {\r\n aborted = true;\r\n if (jqXHR) {\r\n return jqXHR.abort();\r\n }\r\n dfd.reject(null, 'abort', 'abort');\r\n return promise;\r\n };\r\n this._getFileInputFiles(data.fileInput).always(\r\n function (files) {\r\n if (aborted) {\r\n return;\r\n }\r\n data.files = files;\r\n jqXHR = that._onSend(null, data).then(\r\n function (result, textStatus, jqXHR) {\r\n dfd.resolve(result, textStatus, jqXHR);\r\n },\r\n function (jqXHR, textStatus, errorThrown) {\r\n dfd.reject(jqXHR, textStatus, errorThrown);\r\n }\r\n );\r\n }\r\n );\r\n return this._enhancePromise(promise);\r\n }\r\n data.files = $.makeArray(data.files);\r\n if (data.files.length) {\r\n return this._onSend(null, data);\r\n }\r\n }\r\n return this._getXHRPromise(false, data && data.context);\r\n }\r\n\r\n });\r\n\r\n}));\r\n","/*\r\n * Treeview 1.4 - jQuery plugin to hide and show branches of a tree\r\n * \r\n * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/\r\n * http://docs.jquery.com/Plugins/Treeview\r\n *\r\n * Copyright (c) 2007 Jörn Zaefferer\r\n *\r\n * Dual licensed under the MIT and GPL licenses:\r\n * http://www.opensource.org/licenses/mit-license.php\r\n * http://www.gnu.org/licenses/gpl.html\r\n *\r\n * Revision: $Id: jquery.treeview.js 4684 2008-02-07 19:08:06Z joern.zaefferer $\r\n *\r\n */\r\n\r\n;(function($) {\r\n\r\n\t$.extend($.fn, {\r\n\t\tswapClass: function(c1, c2) {\r\n\t\t\tvar c1Elements = this.filter('.' + c1);\r\n\t\t\tthis.filter('.' + c2).removeClass(c2).addClass(c1);\r\n\t\t\tc1Elements.removeClass(c1).addClass(c2);\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\treplaceClass: function(c1, c2) {\r\n\t\t\treturn this.filter('.' + c1).removeClass(c1).addClass(c2).end();\r\n\t\t},\r\n\t\thoverClass: function(className) {\r\n\t\t\tclassName = className || \"hover\";\r\n\t\t\treturn this.hover(function() {\r\n\t\t\t\t$(this).addClass(className);\r\n\t\t\t}, function() {\r\n\t\t\t\t$(this).removeClass(className);\r\n\t\t\t});\r\n\t\t},\r\n\t\theightToggle: function(animated, callback) {\r\n\t\t\tanimated ?\r\n\t\t\t\tthis.animate({ height: \"toggle\" }, animated, callback) :\r\n\t\t\t\tthis.each(function(){\r\n\t\t\t\t\tjQuery(this)[ jQuery(this).is(\":hidden\") ? \"show\" : \"hide\" ]();\r\n\t\t\t\t\tif(callback)\r\n\t\t\t\t\t\tcallback.apply(this, arguments);\r\n\t\t\t\t});\r\n\t\t},\r\n\t\theightHide: function(animated, callback) {\r\n\t\t\tif (animated) {\r\n\t\t\t\tthis.animate({ height: \"hide\" }, animated, callback);\r\n\t\t\t} else {\r\n\t\t\t\tthis.hide();\r\n\t\t\t\tif (callback)\r\n\t\t\t\t\tthis.each(callback);\t\t\t\t\r\n\t\t\t}\r\n\t\t},\r\n\t\tprepareBranches: function(settings) {\r\n\t\t\tif (!settings.prerendered) {\r\n\t\t\t\t// mark last tree items\r\n\t\t\t\tthis.filter(\":last-child:not(ul)\").addClass(CLASSES.last);\r\n\t\t\t\t// collapse whole tree, or only those marked as closed, anyway except those marked as open\r\n\t\t\t\tthis.filter((settings.collapsed ? \"\" : \".\" + CLASSES.closed) + \":not(.\" + CLASSES.open + \")\").find(\">ul\").hide();\r\n\t\t\t}\r\n\t\t\t// return all items with sublists\r\n\t\t\treturn this.filter(\":has(>ul)\");\r\n\t\t},\r\n\t\tapplyClasses: function(settings, toggler) {\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tif (!settings.prerendered) {\r\n\t\t\t\t// handle closed ones first\r\n\t\t\t\tthis.filter(\":has(>ul:hidden)\")\r\n\t\t\t\t\t\t.addClass(CLASSES.expandable)\r\n\t\t\t\t\t\t.replaceClass(CLASSES.last, CLASSES.lastExpandable);\r\n\t\t\t\t\t\t\r\n\t\t\t\t// handle open ones\r\n\t\t\t\tthis.not(\":has(>ul:hidden)\")\r\n\t\t\t\t\t\t.addClass(CLASSES.collapsable)\r\n\t\t\t\t\t\t.replaceClass(CLASSES.last, CLASSES.lastCollapsable);\r\n\t\t\t\t\t\t\r\n\t // create hitarea\r\n\t\t\t\tthis.prepend(\"
\").find(\"div.\" + CLASSES.hitarea).each(function() {\r\n\t\t\t\t\tvar classes = \"\";\r\n\t\t\t\t\t$.each($(this).parent().attr(\"class\").split(\" \"), function() {\r\n\t\t\t\t\t\tclasses += this + \"-hitarea \";\r\n\t\t\t\t\t});\r\n\t\t\t\t\t$(this).addClass( classes );\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t// apply event to hitarea\r\n\t\t\tthis.find(\"div.\" + CLASSES.hitarea).click( toggler );\r\n\t\t},\r\n\t\ttreeview: function(settings) {\r\n\t\t\t\r\n\t\t\tsettings = $.extend({\r\n\t\t\t\tcookieId: \"treeview\"\r\n\t\t\t}, settings);\r\n\t\t\t\r\n\t\t\tif (settings.add) {\r\n\t\t\t\treturn this.trigger(\"add\", [settings.add]);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif ( settings.toggle ) {\r\n\t\t\t\tvar callback = settings.toggle;\r\n\t\t\t\tsettings.toggle = function() {\r\n\t\t\t\t\treturn callback.apply($(this).parent()[0], arguments);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\r\n\t\t\t// factory for treecontroller\r\n\t\t\tfunction treeController(tree, control) {\r\n\t\t\t\t// factory for click handlers\r\n\t\t\t\tfunction handler(filter) {\r\n\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\t// reuse toggle event handler, applying the elements to toggle\r\n\t\t\t\t\t\t// start searching for all hitareas\r\n\t\t\t\t\t\ttoggler.apply( $(\"div.\" + CLASSES.hitarea, tree).filter(function() {\r\n\t\t\t\t\t\t\t// for plain toggle, no filter is provided, otherwise we need to check the parent element\r\n\t\t\t\t\t\t\treturn filter ? $(this).parent(\".\" + filter).length : true;\r\n\t\t\t\t\t\t}) );\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\t// click on first element to collapse tree\r\n\t\t\t\t$(\"a:eq(0)\", control).click( handler(CLASSES.collapsable) );\r\n\t\t\t\t// click on second to expand tree\r\n\t\t\t\t$(\"a:eq(1)\", control).click( handler(CLASSES.expandable) );\r\n\t\t\t\t// click on third to toggle tree\r\n\t\t\t\t$(\"a:eq(2)\", control).click( handler() ); \r\n\t\t\t}\r\n\t\t\r\n\t\t\t// handle toggle event\r\n\t\t\tfunction toggler() {\r\n\t\t\t\t$(this)\r\n\t\t\t\t\t.parent()\r\n\t\t\t\t\t// swap classes for hitarea\r\n\t\t\t\t\t.find(\">.hitarea\")\r\n\t\t\t\t\t\t.swapClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )\r\n\t\t\t\t\t\t.swapClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea )\r\n\t\t\t\t\t.end()\r\n\t\t\t\t\t// swap classes for parent li\r\n\t\t\t\t\t.swapClass( CLASSES.collapsable, CLASSES.expandable )\r\n\t\t\t\t\t.swapClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )\r\n\t\t\t\t\t// find child lists\r\n\t\t\t\t\t.find( \">ul\" )\r\n\t\t\t\t\t// toggle them\r\n\t\t\t\t\t.heightToggle( settings.animated, settings.toggle );\r\n\t\t\t\tif ( settings.unique ) {\r\n\t\t\t\t\t$(this).parent()\r\n\t\t\t\t\t\t.siblings()\r\n\t\t\t\t\t\t// swap classes for hitarea\r\n\t\t\t\t\t\t.find(\">.hitarea\")\r\n\t\t\t\t\t\t\t.replaceClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )\r\n\t\t\t\t\t\t\t.replaceClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea )\r\n\t\t\t\t\t\t.end()\r\n\t\t\t\t\t\t.replaceClass( CLASSES.collapsable, CLASSES.expandable )\r\n\t\t\t\t\t\t.replaceClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )\r\n\t\t\t\t\t\t.find( \">ul\" )\r\n\t\t\t\t\t\t.heightHide( settings.animated, settings.toggle );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tfunction serialize() {\r\n\t\t\t\tfunction binary(arg) {\r\n\t\t\t\t\treturn arg ? 1 : 0;\r\n\t\t\t\t}\r\n\t\t\t\tvar data = [];\r\n\t\t\t\tbranches.each(function(i, e) {\r\n\t\t\t\t\tdata[i] = $(e).is(\":has(>ul:visible)\") ? 1 : 0;\r\n\t\t\t\t});\r\n\t\t\t\t$.cookie(settings.cookieId, data.join(\"\") );\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tfunction deserialize() {\r\n\t\t\t\tvar stored = $.cookie(settings.cookieId);\r\n\t\t\t\tif ( stored ) {\r\n\t\t\t\t\tvar data = stored.split(\"\");\r\n\t\t\t\t\tbranches.each(function(i, e) {\r\n\t\t\t\t\t\t$(e).find(\">ul\")[ parseInt(data[i]) ? \"show\" : \"hide\" ]();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t// add treeview class to activate styles\r\n\t\t\tthis.addClass(\"treeview\");\r\n\t\t\t\r\n\t\t\t// prepare branches and find all tree items with child lists\r\n\t\t\tvar branches = this.find(\"li\").prepareBranches(settings);\r\n\t\t\t\r\n\t\t\tswitch(settings.persist) {\r\n\t\t\tcase \"cookie\":\r\n\t\t\t\tvar toggleCallback = settings.toggle;\r\n\t\t\t\tsettings.toggle = function() {\r\n\t\t\t\t\tserialize();\r\n\t\t\t\t\tif (toggleCallback) {\r\n\t\t\t\t\t\ttoggleCallback.apply(this, arguments);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\tdeserialize();\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"location\":\r\n\t\t\t\tvar current = this.find(\"a\").filter(function() { return this.href.toLowerCase() == location.href.toLowerCase(); });\r\n\t\t\t\tif ( current.length ) {\r\n\t\t\t\t\tcurrent.addClass(\"selected\").parents(\"ul, li\").add( current.next() ).show();\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tbranches.applyClasses(settings, toggler);\r\n\t\t\t\t\r\n\t\t\t// if control option is set, create the treecontroller and show it\r\n\t\t\tif ( settings.control ) {\r\n\t\t\t\ttreeController(this, settings.control);\r\n\t\t\t\t$(settings.control).show();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\treturn this.bind(\"add\", function(event, branches) {\r\n\t\t\t\t$(branches).prev()\r\n\t\t\t\t\t.removeClass(CLASSES.last)\r\n\t\t\t\t\t.removeClass(CLASSES.lastCollapsable)\r\n\t\t\t\t\t.removeClass(CLASSES.lastExpandable)\r\n\t\t\t\t.find(\">.hitarea\")\r\n\t\t\t\t\t.removeClass(CLASSES.lastCollapsableHitarea)\r\n\t\t\t\t\t.removeClass(CLASSES.lastExpandableHitarea);\r\n\t\t\t\t$(branches).find(\"li\").andSelf().prepareBranches(settings).applyClasses(settings, toggler);\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\t\r\n\t// classes used by the plugin\r\n\t// need to be styled via external stylesheet, see first example\r\n\tvar CLASSES = $.fn.treeview.classes = {\r\n\t\topen: \"open\",\r\n\t\tclosed: \"closed\",\r\n\t\texpandable: \"expandable\",\r\n\t\texpandableHitarea: \"expandable-hitarea\",\r\n\t\tlastExpandableHitarea: \"lastExpandable-hitarea\",\r\n\t\tcollapsable: \"collapsable\",\r\n\t\tcollapsableHitarea: \"collapsable-hitarea\",\r\n\t\tlastCollapsableHitarea: \"lastCollapsable-hitarea\",\r\n\t\tlastCollapsable: \"lastCollapsable\",\r\n\t\tlastExpandable: \"lastExpandable\",\r\n\t\tlast: \"last\",\r\n\t\thitarea: \"hitarea\"\r\n\t};\r\n\t\r\n\t// provide backwards compability\r\n\t$.fn.Treeview = $.fn.treeview;\r\n\t\r\n})(jQuery);","jQuery.fn.extend({\r\n\teveryTime: function(interval, label, fn, times, belay) {\r\n\t\treturn this.each(function() {\r\n\t\t\tjQuery.timer.add(this, interval, label, fn, times, belay);\r\n\t\t});\r\n\t},\r\n\toneTime: function(interval, label, fn) {\r\n\t\treturn this.each(function() {\r\n\t\t\tjQuery.timer.add(this, interval, label, fn, 1);\r\n\t\t});\r\n\t},\r\n\tstopTime: function(label, fn) {\r\n\t\treturn this.each(function() {\r\n\t\t\tjQuery.timer.remove(this, label, fn);\r\n\t\t});\r\n\t}\r\n});\r\n\r\njQuery.extend({\r\n\ttimer: {\r\n\t\tguid: 1,\r\n\t\tglobal: {},\r\n\t\tregex: /^([0-9]+)\\s*(.*s)?$/,\r\n\t\tpowers: {\r\n\t\t\t// Yeah this is major overkill...\r\n\t\t\t'ms': 1,\r\n\t\t\t'cs': 10,\r\n\t\t\t'ds': 100,\r\n\t\t\t's': 1000,\r\n\t\t\t'das': 10000,\r\n\t\t\t'hs': 100000,\r\n\t\t\t'ks': 1000000\r\n\t\t},\r\n\t\ttimeParse: function(value) {\r\n\t\t\tif (value == undefined || value == null)\r\n\t\t\t\treturn null;\r\n\t\t\tvar result = this.regex.exec(jQuery.trim(value.toString()));\r\n\t\t\tif (result[2]) {\r\n\t\t\t\tvar num = parseInt(result[1], 10);\r\n\t\t\t\tvar mult = this.powers[result[2]] || 1;\r\n\t\t\t\treturn num * mult;\r\n\t\t\t} else {\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t},\r\n\t\tadd: function(element, interval, label, fn, times, belay) {\r\n\t\t\tvar counter = 0;\r\n\t\t\t\r\n\t\t\tif (jQuery.isFunction(label)) {\r\n\t\t\t\tif (!times) \r\n\t\t\t\t\ttimes = fn;\r\n\t\t\t\tfn = label;\r\n\t\t\t\tlabel = interval;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tinterval = jQuery.timer.timeParse(interval);\r\n\r\n\t\t\tif (typeof interval != 'number' || isNaN(interval) || interval <= 0)\r\n\t\t\t\treturn;\r\n\r\n\t\t\tif (times && times.constructor != Number) {\r\n\t\t\t\tbelay = !!times;\r\n\t\t\t\ttimes = 0;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\ttimes = times || 0;\r\n\t\t\tbelay = belay || false;\r\n\t\t\t\r\n\t\t\tif (!element.$timers) \r\n\t\t\t\telement.$timers = {};\r\n\t\t\t\r\n\t\t\tif (!element.$timers[label])\r\n\t\t\t\telement.$timers[label] = {};\r\n\t\t\t\r\n\t\t\tfn.$timerID = fn.$timerID || this.guid++;\r\n\t\t\t\r\n\t\t\tvar handler = function() {\r\n\t\t\t\tif (belay && this.inProgress) \r\n\t\t\t\t\treturn;\r\n\t\t\t\tthis.inProgress = true;\r\n\t\t\t\tif ((++counter > times && times !== 0) || fn.call(element, counter) === false)\r\n\t\t\t\t\tjQuery.timer.remove(element, label, fn);\r\n\t\t\t\tthis.inProgress = false;\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\thandler.$timerID = fn.$timerID;\r\n\t\t\t\r\n\t\t\tif (!element.$timers[label][fn.$timerID]) \r\n\t\t\t\telement.$timers[label][fn.$timerID] = window.setInterval(handler,interval);\r\n\t\t\t\r\n\t\t\tif ( !this.global[label] )\r\n\t\t\t\tthis.global[label] = [];\r\n\t\t\tthis.global[label].push( element );\r\n\t\t\t\r\n\t\t},\r\n\t\tremove: function(element, label, fn) {\r\n\t\t\tvar timers = element.$timers, ret;\r\n\t\t\t\r\n\t\t\tif ( timers ) {\r\n\t\t\t\t\r\n\t\t\t\tif (!label) {\r\n\t\t\t\t\tfor ( label in timers )\r\n\t\t\t\t\t\tthis.remove(element, label, fn);\r\n\t\t\t\t} else if ( timers[label] ) {\r\n\t\t\t\t\tif ( fn ) {\r\n\t\t\t\t\t\tif ( fn.$timerID ) {\r\n\t\t\t\t\t\t\twindow.clearInterval(timers[label][fn.$timerID]);\r\n\t\t\t\t\t\t\tdelete timers[label][fn.$timerID];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfor ( var fn in timers[label] ) {\r\n\t\t\t\t\t\t\twindow.clearInterval(timers[label][fn]);\r\n\t\t\t\t\t\t\tdelete timers[label][fn];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tfor ( ret in timers[label] ) break;\r\n\t\t\t\t\tif ( !ret ) {\r\n\t\t\t\t\t\tret = null;\r\n\t\t\t\t\t\tdelete timers[label];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tfor ( ret in timers ) break;\r\n\t\t\t\tif ( !ret ) \r\n\t\t\t\t\telement.$timers = null;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nif (jQuery.browser.msie)\r\n\tjQuery(window).one(\"unload\", function() {\r\n\t\tvar global = jQuery.timer.global;\r\n\t\tfor ( var label in global ) {\r\n\t\t\tvar els = global[label], i = els.length;\r\n\t\t\twhile ( --i )\r\n\t\t\t\tjQuery.timer.remove(els[i], label);\r\n\t\t}\r\n\t});\r\n\t","/*\r\n * jQuery Tooltip plugin 1.3\r\n *\r\n * http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/\r\n * http://docs.jquery.com/Plugins/Tooltip\r\n *\r\n * Copyright (c) 2006 - 2008 Jörn Zaefferer\r\n *\r\n * $Id: jquery.tooltip.js 5741 2008-06-21 15:22:16Z joern.zaefferer $\r\n * \r\n * Dual licensed under the MIT and GPL licenses:\r\n * http://www.opensource.org/licenses/mit-license.php\r\n * http://www.gnu.org/licenses/gpl.html\r\n */\r\n \r\n;(function($) {\r\n\t\r\n\t\t// the tooltip element\r\n\tvar helper = {},\r\n\t\t// the current tooltipped element\r\n\t\tcurrent,\r\n\t\t// the title of the current element, used for restoring\r\n\t\ttitle,\r\n\t\t// timeout id for delayed tooltips\r\n\t\ttID,\r\n\t\t// IE 5.5 or 6\r\n\t\tIE = $.browser.msie && /MSIE\\s(5\\.5|6\\.)/.test(navigator.userAgent),\r\n\t\t// flag for mouse tracking\r\n\t\ttrack = false;\r\n\t\r\n\t$.tooltip = {\r\n\t\tblocked: false,\r\n\t\tdefaults: {\r\n\t\t\tdelay: 200,\r\n\t\t\tfade: false,\r\n\t\t\tshowURL: true,\r\n\t\t\textraClass: \"\",\r\n\t\t\ttop: -20,\r\n\t\t\tleft: -20,\r\n\t\t\tid: \"tooltip\"\r\n\t\t},\r\n\t\tblock: function() {\r\n\t\t\t$.tooltip.blocked = !$.tooltip.blocked;\r\n\t\t}\r\n\t};\r\n\t\r\n\t$.fn.extend({\r\n\t\ttooltip: function(settings) {\r\n\t\t\tsettings = $.extend({}, $.tooltip.defaults, settings);\r\n\t\t\tcreateHelper(settings);\r\n\t\t\treturn this.each(function() {\r\n\t\t\t\t\t$.data(this, \"tooltip\", settings);\r\n\t\t\t\t\tthis.tOpacity = helper.parent.css(\"opacity\");\r\n\t\t\t\t\t// copy tooltip into its own expando and remove the title\r\n\t\t\t\t\tthis.tooltipText = this.title;\r\n\t\t\t\t\t$(this).removeAttr(\"title\");\r\n\t\t\t\t\t// also remove alt attribute to prevent default tooltip in IE\r\n\t\t\t\t\tthis.alt = \"\";\r\n\t\t\t\t})\r\n\t\t\t\t.mouseover(save)\r\n\t\t\t\t.mouseout(hide)\r\n\t\t\t\t.click(hide);\r\n\t\t},\r\n\t\tfixPNG: IE ? function() {\r\n\t\t\treturn this.each(function () {\r\n\t\t\t\tvar image = $(this).css('backgroundImage');\r\n\t\t\t\tif (image.match(/^url\\([\"']?(.*\\.png)[\"']?\\)$/i)) {\r\n\t\t\t\t\timage = RegExp.$1;\r\n\t\t\t\t\t$(this).css({\r\n\t\t\t\t\t\t'backgroundImage': 'none',\r\n\t\t\t\t\t\t'filter': \"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='\" + image + \"')\"\r\n\t\t\t\t\t}).each(function () {\r\n\t\t\t\t\t\tvar position = $(this).css('position');\r\n\t\t\t\t\t\tif (position != 'absolute' && position != 'relative')\r\n\t\t\t\t\t\t\t$(this).css('position', 'relative');\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} : function() { return this; },\r\n\t\tunfixPNG: IE ? function() {\r\n\t\t\treturn this.each(function () {\r\n\t\t\t\t$(this).css({'filter': '', backgroundImage: ''});\r\n\t\t\t});\r\n\t\t} : function() { return this; },\r\n\t\thideWhenEmpty: function() {\r\n\t\t\treturn this.each(function() {\r\n\t\t\t\t$(this)[ $(this).html() ? \"show\" : \"hide\" ]();\r\n\t\t\t});\r\n\t\t},\r\n\t\turl: function() {\r\n\t\t\treturn this.attr('href') || this.attr('src');\r\n\t\t}\r\n\t});\r\n\t\r\n\tfunction createHelper(settings) {\r\n\t\t// there can be only one tooltip helper\r\n\t\tif( helper.parent )\r\n\t\t\treturn;\r\n\t\t// create the helper, h3 for title, div for url\r\n\t\thelper.parent = $('

')\r\n\t\t\t// add to document\r\n\t\t\t.appendTo(document.body)\r\n\t\t\t// hide it at first\r\n\t\t\t.hide();\r\n\t\t\t\r\n\t\t// apply bgiframe if available\r\n\t\tif ( $.fn.bgiframe )\r\n\t\t\thelper.parent.bgiframe();\r\n\t\t\r\n\t\t// save references to title and url elements\r\n\t\thelper.title = $('h3', helper.parent);\r\n\t\thelper.body = $('div.body', helper.parent);\r\n\t\thelper.url = $('div.url', helper.parent);\r\n\t}\r\n\t\r\n\tfunction settings(element) {\r\n\t\treturn $.data(element, \"tooltip\");\r\n\t}\r\n\t\r\n\t// main event handler to start showing tooltips\r\n\tfunction handle(event) {\r\n\t\t// show helper, either with timeout or on instant\r\n\t\tif( settings(this).delay )\r\n\t\t\ttID = setTimeout(show, settings(this).delay);\r\n\t\telse\r\n\t\t\tshow();\r\n\t\t\r\n\t\t// if selected, update the helper position when the mouse moves\r\n\t\ttrack = !!settings(this).track;\r\n\t\t$(document.body).bind('mousemove', update);\r\n\t\t\t\r\n\t\t// update at least once\r\n\t\tupdate(event);\r\n\t}\r\n\t\r\n\t// save elements title before the tooltip is displayed\r\n\tfunction save() {\r\n\t\t// if this is the current source, or it has no title (occurs with click event), stop\r\n\t\tif ( $.tooltip.blocked || this == current || (!this.tooltipText && !settings(this).bodyHandler) )\r\n\t\t\treturn;\r\n\r\n\t\t// save current\r\n\t\tcurrent = this;\r\n\t\ttitle = this.tooltipText;\r\n\t\t\r\n\t\tif ( settings(this).bodyHandler ) {\r\n\t\t\thelper.title.hide();\r\n\t\t\tvar bodyContent = settings(this).bodyHandler.call(this);\r\n\t\t\tif (bodyContent.nodeType || bodyContent.jquery) {\r\n\t\t\t\thelper.body.empty().append(bodyContent)\r\n\t\t\t} else {\r\n\t\t\t\thelper.body.html( bodyContent );\r\n\t\t\t}\r\n\t\t\thelper.body.show();\r\n\t\t} else if ( settings(this).showBody ) {\r\n\t\t\tvar parts = title.split(settings(this).showBody);\r\n\t\t\thelper.title.html(parts.shift()).show();\r\n\t\t\thelper.body.empty();\r\n\t\t\tfor(var i = 0, part; (part = parts[i]); i++) {\r\n\t\t\t\tif(i > 0)\r\n\t\t\t\t\thelper.body.append(\"
\");\r\n\t\t\t\thelper.body.append(part);\r\n\t\t\t}\r\n\t\t\thelper.body.hideWhenEmpty();\r\n\t\t} else {\r\n\t\t\thelper.title.html(title).show();\r\n\t\t\thelper.body.hide();\r\n\t\t}\r\n\t\t\r\n\t\t// if element has href or src, add and show it, otherwise hide it\r\n\t\tif( settings(this).showURL && $(this).url() )\r\n\t\t\thelper.url.html( $(this).url().replace('http://', '') ).show();\r\n\t\telse \r\n\t\t\thelper.url.hide();\r\n\t\t\r\n\t\t// add an optional class for this tip\r\n\t\thelper.parent.addClass(settings(this).extraClass);\r\n\r\n\t\t// fix PNG background for IE\r\n\t\tif (settings(this).fixPNG )\r\n\t\t\thelper.parent.fixPNG();\r\n\t\t\t\r\n\t\thandle.apply(this, arguments);\r\n\t}\r\n\t\r\n\t// delete timeout and show helper\r\n\tfunction show() {\r\n\t\ttID = null;\r\n\t\tif ((!IE || !$.fn.bgiframe) && settings(current).fade) {\r\n\t\t\tif (helper.parent.is(\":animated\"))\r\n\t\t\t\thelper.parent.stop().show().fadeTo(settings(current).fade, current.tOpacity);\r\n\t\t\telse\r\n\t\t\t\thelper.parent.is(':visible') ? helper.parent.fadeTo(settings(current).fade, current.tOpacity) : helper.parent.fadeIn(settings(current).fade);\r\n\t\t} else {\r\n\t\t\thelper.parent.show();\r\n\t\t}\r\n\t\tupdate();\r\n\t}\r\n\t\r\n\t/**\r\n\t * callback for mousemove\r\n\t * updates the helper position\r\n\t * removes itself when no current element\r\n\t */\r\n\tfunction update(event)\t{\r\n\t\tif($.tooltip.blocked)\r\n\t\t\treturn;\r\n\t\t\r\n\t\tif (event && event.target.tagName == \"OPTION\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\t// stop updating when tracking is disabled and the tooltip is visible\r\n\t\tif ( !track && helper.parent.is(\":visible\")) {\r\n\t\t\t$(document.body).unbind('mousemove', update)\r\n\t\t}\r\n\t\t\r\n\t\t// if no current element is available, remove this listener\r\n\t\tif( current == null ) {\r\n\t\t\t$(document.body).unbind('mousemove', update);\r\n\t\t\treturn;\t\r\n\t\t}\r\n\t\tvar topPos = $(\"#tooltip\").outerHeight(true);\r\n\t\t// remove position helper classes\r\n\t\thelper.parent.removeClass(\"viewport-right\").removeClass(\"viewport-bottom\");\r\n\t\t\r\n\t\tvar left = helper.parent[0].offsetLeft;\r\n\t\tvar top = helper.parent[0].offsetTop;\r\n\t\tif (event) {\r\n\t\t\t// position the helper 15 pixel to bottom right, starting from mouse position\r\n\t\t\tleft = event.pageX + settings(current).left;\r\n\t\t\ttop = event.pageY + settings(current).top-topPos;\r\n\t\t\tvar right='auto';\r\n\t\t\tif (settings(current).positionLeft) {\r\n\t\t\t\tright = $(window).width() - left;\r\n\t\t\t\tleft = 'auto';\r\n\t\t\t}\r\n\t\t\thelper.parent.css({\r\n\t\t\t\tleft: left,\r\n\t\t\t\tright: right,\r\n\t\t\t\ttop: top\r\n\t\t\t});\r\n\t\t}\r\n\t\t\r\n\t\tvar v = viewport(),\r\n\t\t\th = helper.parent[0];\r\n\t\t// check horizontal position\r\n\t\tif (v.x + v.cx < h.offsetLeft + h.offsetWidth) {\r\n\t\t\tleft -= h.offsetWidth - 25 + settings(current).left;\r\n\t\t\thelper.parent.css({left: left + 'px'}).addClass(\"viewport-right\");\r\n\t\t}\r\n\t\t// check vertical position\r\n\t\tif (v.y + v.cy < h.offsetTop + h.offsetHeight) {\r\n\t\t\ttop -= h.offsetHeight + 20 + settings(current).top;\r\n\t\t\thelper.parent.css({top: topPos + 'px'}).addClass(\"viewport-bottom\");\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction viewport() {\r\n\t\treturn {\r\n\t\t\tx: $(window).scrollLeft(),\r\n\t\t\ty: $(window).scrollTop(),\r\n\t\t\tcx: $(window).width(),\r\n\t\t\tcy: $(window).height()\r\n\t\t};\r\n\t}\r\n\t\r\n\t// hide helper and restore added classes and the title\r\n\tfunction hide(event) {\r\n\t\tif($.tooltip.blocked)\r\n\t\t\treturn;\r\n\t\t// clear timeout if possible\r\n\t\tif(tID)\r\n\t\t\tclearTimeout(tID);\r\n\t\t// no more current element\r\n\t\tcurrent = null;\r\n\t\t\r\n\t\tvar tsettings = settings(this);\r\n\t\tfunction complete() {\r\n\t\t\thelper.parent.removeClass( tsettings.extraClass ).hide().css(\"opacity\", \"\");\r\n\t\t}\r\n\t\tif ((!IE || !$.fn.bgiframe) && tsettings.fade) {\r\n\t\t\tif (helper.parent.is(':animated'))\r\n\t\t\t\thelper.parent.stop().fadeTo(tsettings.fade, 0, complete);\r\n\t\t\telse\r\n\t\t\t\thelper.parent.stop().fadeOut(tsettings.fade, complete);\r\n\t\t} else\r\n\t\t\tcomplete();\r\n\t\t\r\n\t\tif( settings(this).fixPNG )\r\n\t\t\thelper.parent.unfixPNG();\r\n\t}\r\n\t\r\n})(jQuery);\r\n","\n\n\n/*!\n * jQuery UI Tooltip 1.10.3\n * http://jqueryui.com\n *\n * Copyright 2013 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/tooltip/\n *\n * Depends:\n *\tjquery.ui.core.js\n *\tjquery.ui.widget.js\n *\tjquery.ui.position.js\n */\n(function( $ ) {\n\nvar increments = 0;\r\nvar uuid = 0;\n\nfunction addDescribedBy( elem, id ) {\n\tvar describedby = (elem.attr( \"aria-describedby\" ) || \"\").split( /\\s+/ );\n\tdescribedby.push( id );\n\telem\n\t\t.data( \"ui-tooltip-id\", id )\n\t\t.attr( \"aria-describedby\", $.trim( describedby.join( \" \" ) ) );\n}\n\nfunction removeDescribedBy( elem ) {\n\tvar id = elem.data( \"ui-tooltip-id\" ),\n\t\tdescribedby = (elem.attr( \"aria-describedby\" ) || \"\").split( /\\s+/ ),\n\t\tindex = $.inArray( id, describedby );\n\tif ( index !== -1 ) {\n\t\tdescribedby.splice( index, 1 );\n\t}\n\n\telem.removeData( \"ui-tooltip-id\" );\n\tdescribedby = $.trim( describedby.join( \" \" ) );\n\tif ( describedby ) {\n\t\telem.attr( \"aria-describedby\", describedby );\n\t} else {\n\t\telem.removeAttr( \"aria-describedby\" );\n\t}\n}\n \n$.each({ show: \"fadeIn\", hide: \"fadeOut\" }, function (method, defaultEffect) {\r\n $.Widget.prototype[\"_\" + method] = function (element, options, callback) {\r\n if (typeof options === \"string\") {\r\n options = { effect: options };\r\n }\r\n var hasOptions,\r\n effectName = !options ?\r\n method :\r\n options === true || typeof options === \"number\" ?\r\n defaultEffect :\r\n options.effect || defaultEffect;\r\n options = options || {};\r\n if (typeof options === \"number\") {\r\n options = { duration: options };\r\n }\r\n hasOptions = !$.isEmptyObject(options);\r\n options.complete = callback;\r\n if (options.delay) {\r\n element.delay(options.delay);\r\n }\r\n if (hasOptions && $.effects && $.effects.effect[effectName]) {\r\n element[method](options);\r\n } else if (effectName !== method && element[effectName]) {\r\n element[effectName](options.duration, options.easing, callback);\r\n } else {\r\n element.queue(function (next) {\r\n $(this)[method]();\r\n if (callback) {\r\n callback.call(element[0]);\r\n }\r\n next();\r\n });\r\n }\r\n };\r\n});\n\n$.widget( \"ui.tooltip\", {\n\tversion: \"1.10.3\",\n\toptions: {\n\t\tcontent: function() {\n\t\t\t// support: IE<9, Opera in jQuery <1.7\n\t\t\t// .text() can't accept undefined, so coerce to a string\n\t\t\tvar title = $( this ).attr( \"title\" ) || \"\";\n\t\t\t// Escape title, since we're going from an attribute to raw HTML\n\t\t\treturn $( \"\" ).text( title ).html();\n\t\t},\n\t\thide: true,\n\t\t// Disabled elements have inconsistent behavior across browsers (#8661)\n\t\titems: \"[title]:not([disabled])\",\n\t\tposition: {\n\t\t\tmy: \"left top+15\",\n\t\t\tat: \"left bottom\",\n\t\t\tcollision: \"flipfit flip\"\n\t\t},\n\t\tshow: true,\n\t\ttooltipClass: null,\n\t\ttrack: false,\n\n\t\t// callbacks\n\t\tclose: null,\n\t\topen: null\n\t},\n\n\t__on: function (suppressDisabledCheck, element, handlers) {\r\n\t var delegateElement,\r\n instance = this;\r\n\r\n\t // no suppressDisabledCheck flag, shuffle arguments\r\n\t if (typeof suppressDisabledCheck !== \"boolean\") {\r\n\t handlers = element;\r\n\t element = suppressDisabledCheck;\r\n\t suppressDisabledCheck = false;\r\n\t }\r\n\r\n\t // no element argument, shuffle and use this.element\r\n\t if (!handlers) {\r\n\t handlers = element;\r\n\t element = this.element;\r\n\t delegateElement = this.widget();\r\n\t } else {\r\n\t // accept selectors, DOM elements\r\n\t element = delegateElement = $(element);\r\n\t this.bindings = this.bindings.add(element);\r\n\t }\r\n\r\n\t $.each(handlers, function (event, handler) {\r\n\t function handlerProxy() {\r\n\t // allow widgets to customize the disabled handling\r\n\t // - disabled as an array instead of boolean\r\n\t // - disabled class as method for disabling individual parts\r\n\t if (!suppressDisabledCheck &&\r\n (instance.options.disabled === true ||\r\n $(this).hasClass(\"ui-state-disabled\"))) {\r\n\t return;\r\n\t }\r\n\t return (typeof handler === \"string\" ? instance[handler] : handler)\r\n .apply(instance, arguments);\r\n\t }\r\n\r\n\t // copy the guid so direct unbinding works\r\n\t if (typeof handler !== \"string\") {\r\n\t handlerProxy.guid = handler.guid =\r\n handler.guid || handlerProxy.guid || $.guid++;\r\n\t }\r\n\r\n\t var match = event.match(/^(\\w+)\\s*(.*)$/),\r\n eventName = match[1] + instance.eventNamespace,\r\n selector = match[2];\r\n\t if (selector) {\r\n\t delegateElement.delegate(selector, eventName, handlerProxy);\r\n\t } else {\r\n\t element.bind(eventName, handlerProxy);\r\n\t }\r\n\t });\r\n\t},\r\n\r\n\t__off: function (element, eventName) {\r\n\t eventName = (eventName || \"\").split(\" \").join(this.eventNamespace + \" \") + this.eventNamespace;\r\n\t element.unbind(eventName).undelegate(eventName);\r\n\t},\n\n\t_create: function() {\n\t\t\n\t if (!this.uuid) {\r\n\t this.uuid = uuid++;\r\n\t }\r\n\r\n\t if (!this.eventNamespace) {\r\n\t this.eventNamespace = \".\" + this.widgetName + this.uuid;\r\n\t }\n\t \n if (!this.document) {\r\n this.document = $(this.element.style ?\r\n // element within the document\r\n this.element.ownerDocument :\r\n // element is window or document\r\n this.element.document || this.element);\r\n }\n\t \n this.bindings = $();\r\n this.hoverable = $();\r\n this.focusable = $();\n\n this.__on({\n\t\t\tmouseover: \"open\",\n\t\t\tfocusin: \"open\"\n\t\t});\n\n\t\t// IDs of generated tooltips, needed for destroy\n\t\tthis.tooltips = {};\n\t\t// IDs of parent tooltips where we removed the title attribute\n\t\tthis.parents = {};\n\n\t\tif ( this.options.disabled ) {\n\t\t\tthis._disable();\n\t\t}\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tvar that = this;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis[ value ? \"_disable\" : \"_enable\" ]();\n\t\t\tthis.options[ key ] = value;\n\t\t\t// disable element style changes\n\t\t\treturn;\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"content\" ) {\n\t\t\t$.each( this.tooltips, function( id, element ) {\n\t\t\t\tthat._updateContent( element );\n\t\t\t});\n\t\t}\n\t},\n\n\t_disable: function() {\n\t\tvar that = this;\n\n\t\t// close open tooltips\n\t\t$.each( this.tooltips, function( id, element ) {\n\t\t\tvar event = $.Event( \"blur\" );\n\t\t\tevent.target = event.currentTarget = element[0];\n\t\t\tthat.close( event, true );\n\t\t});\n\n\t\t// remove title attributes to prevent native tooltips\n\t\tthis.element.find( this.options.items ).addBack().each(function() {\n\t\t\tvar element = $( this );\n\t\t\tif ( element.is( \"[title]\" ) ) {\n\t\t\t\telement\n\t\t\t\t\t.data( \"ui-tooltip-title\", element.attr( \"title\" ) )\n\t\t\t\t\t.attr( \"title\", \"\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_enable: function() {\n\t\t// restore title attributes\n\t\tthis.element.find( this.options.items ).addBack().each(function() {\n\t\t\tvar element = $( this );\n\t\t\tif ( element.data( \"ui-tooltip-title\" ) ) {\n\t\t\t\telement.attr( \"title\", element.data( \"ui-tooltip-title\" ) );\n\t\t\t}\n\t\t});\n\t},\n\n\topen: function( event ) {\n\t\tvar that = this,\n\t\t\ttarget = $( event ? event.target : this.element )\n\t\t\t\t// we need closest here due to mouseover bubbling,\n\t\t\t\t// but always pointing at the same event target\n\t\t\t\t.closest( this.options.items );\n\n\t\t// No element to show a tooltip for or the tooltip is already open\n\t\tif ( !target.length || target.data( \"ui-tooltip-id\" ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( target.attr( \"title\" ) ) {\n\t\t\ttarget.data( \"ui-tooltip-title\", target.attr( \"title\" ) );\n\t\t}\n\n\t\ttarget.data( \"ui-tooltip-open\", true );\n\n\t\t// kill parent tooltips, custom or native, for hover\n\t\tif ( event && event.type === \"mouseover\" ) {\n\t\t\ttarget.parents().each(function() {\n\t\t\t\tvar parent = $( this ),\n\t\t\t\t\tblurEvent;\n\t\t\t\tif ( parent.data( \"ui-tooltip-open\" ) ) {\n\t\t\t\t\tblurEvent = $.Event( \"blur\" );\n\t\t\t\t\tblurEvent.target = blurEvent.currentTarget = this;\n\t\t\t\t\tthat.close( blurEvent, true );\n\t\t\t\t}\n\t\t\t\tif ( parent.attr( \"title\" ) ) {\n\t\t\t\t\tparent.uniqueId();\n\t\t\t\t\tthat.parents[ this.id ] = {\n\t\t\t\t\t\telement: this,\n\t\t\t\t\t\ttitle: parent.attr( \"title\" )\n\t\t\t\t\t};\n\t\t\t\t\tparent.attr( \"title\", \"\" );\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis._updateContent( target, event );\n\t},\n\n\t_updateContent: function( target, event ) {\n\t\tvar content,\n\t\t\tcontentOption = this.options.content,\n\t\t\tthat = this,\n\t\t\teventType = event ? event.type : null;\n\n\t\tif ( typeof contentOption === \"string\" ) {\n\t\t\treturn this._open( event, target, contentOption );\n\t\t}\n\n\t\tcontent = contentOption.call( target[0], function( response ) {\n\t\t\t// ignore async response if tooltip was closed already\n\t\t\tif ( !target.data( \"ui-tooltip-open\" ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// IE may instantly serve a cached response for ajax requests\n\t\t\t// delay this call to _open so the other call to _open runs first\n\t\t\tthat._delay(function() {\n\t\t\t\t// jQuery creates a special event for focusin when it doesn't\n\t\t\t\t// exist natively. To improve performance, the native event\n\t\t\t\t// object is reused and the type is changed. Therefore, we can't\n\t\t\t\t// rely on the type being correct after the event finished\n\t\t\t\t// bubbling, so we set it back to the previous value. (#8740)\n\t\t\t\tif ( event ) {\n\t\t\t\t\tevent.type = eventType;\n\t\t\t\t}\n\t\t\t\tthis._open( event, target, response );\n\t\t\t});\n\t\t});\n\t\tif ( content ) {\n\t\t\tthis._open( event, target, content );\n\t\t}\n\t},\n\n\t_open: function( event, target, content ) {\n\t\tvar tooltip, events, delayedShow,\n\t\t\tpositionOption = $.extend( {}, this.options.position );\n\n\t\tif ( !content ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Content can be updated multiple times. If the tooltip already\n\t\t// exists, then just update the content and bail.\n\t\ttooltip = this._find( target );\n\t\tif ( tooltip.length ) {\n\t\t\ttooltip.find( \".ui-tooltip-content\" ).html( content );\n\t\t\treturn;\n\t\t}\n\n\t\t// if we have a title, clear it to prevent the native tooltip\n\t\t// we have to check first to avoid defining a title if none exists\n\t\t// (we don't want to cause an element to start matching [title])\n\t\t//\n\t\t// We use removeAttr only for key events, to allow IE to export the correct\n\t\t// accessible attributes. For mouse events, set to empty string to avoid\n\t\t// native tooltip showing up (happens only when removing inside mouseover).\n\t\tif ( target.is( \"[title]\" ) ) {\n\t\t\tif ( event && event.type === \"mouseover\" ) {\n\t\t\t\ttarget.attr( \"title\", \"\" );\n\t\t\t} else {\n\t\t\t\ttarget.removeAttr( \"title\" );\n\t\t\t}\n\t\t}\n\n\t\ttooltip = this._tooltip( target );\n\t\taddDescribedBy( target, tooltip.attr( \"id\" ) );\n\t\ttooltip.find( \".ui-tooltip-content\" ).html( content );\n\n\t\tfunction position( event ) {\n\t\t\tpositionOption.of = event;\n\t\t\tif ( tooltip.is( \":hidden\" ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttooltip.position( positionOption );\n\t\t}\n\t\tif ( this.options.track && event && /^mouse/.test( event.type ) ) {\n\t\t\tthis.__on( this.document, {\n\t\t\t\tmousemove: position\n\t\t\t});\n\t\t\t// trigger once to override element-relative positioning\n\t\t\tposition( event );\n\t\t} else {\n\t\t\ttooltip.position( $.extend({\n\t\t\t\tof: target\n\t\t\t}, this.options.position ) );\n\t\t}\n\n\t\ttooltip.hide();\n\n\t\tthis._show( tooltip, this.options.show );\n\t\t// Handle tracking tooltips that are shown with a delay (#8644). As soon\n\t\t// as the tooltip is visible, position the tooltip using the most recent\n\t\t// event.\n\t\tif ( this.options.show && this.options.show.delay ) {\n\t\t\tdelayedShow = this.delayedShow = setInterval(function() {\n\t\t\t\tif ( tooltip.is( \":visible\" ) ) {\n\t\t\t\t\tposition( positionOption.of );\n\t\t\t\t\tclearInterval( delayedShow );\n\t\t\t\t}\n\t\t\t}, $.fx.interval );\n\t\t}\n\n\t\tthis._trigger( \"open\", event, { tooltip: tooltip } );\n\n\t\tevents = {\n\t\t\tkeyup: function( event ) {\n\t\t\t\tif ( event.keyCode === $.ui.keyCode.ESCAPE ) {\n\t\t\t\t\tvar fakeEvent = $.Event(event);\n\t\t\t\t\tfakeEvent.currentTarget = target[0];\n\t\t\t\t\tthis.close( fakeEvent, true );\n\t\t\t\t}\n\t\t\t},\n\t\t\tremove: function() {\n\t\t\t\tthis._removeTooltip( tooltip );\n\t\t\t}\n\t\t};\n\t\tif ( !event || event.type === \"mouseover\" ) {\n\t\t\tevents.mouseleave = \"close\";\n\t\t}\n\t\tif ( !event || event.type === \"focusin\" ) {\n\t\t\tevents.focusout = \"close\";\n\t\t}\n\t\tthis.__on( true, target, events );\n\t},\n\n\tclose: function( event ) {\n\t\tvar that = this,\n\t\t\ttarget = $( event ? event.currentTarget : this.element ),\n\t\t\ttooltip = this._find( target );\n\n\t\t// disabling closes the tooltip, so we need to track when we're closing\n\t\t// to avoid an infinite loop in case the tooltip becomes disabled on close\n\t\tif ( this.closing ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Clear the interval for delayed tracking tooltips\n\t\tclearInterval( this.delayedShow );\n\n\t\t// only set title if we had one before (see comment in _open())\n\t\tif ( target.data( \"ui-tooltip-title\" ) ) {\n\t\t\ttarget.attr( \"title\", target.data( \"ui-tooltip-title\" ) );\n\t\t}\n\n\t\tremoveDescribedBy( target );\n\n\t\ttooltip.stop( true );\n\t\tthis._hide( tooltip, this.options.hide, function() {\n\t\t\tthat._removeTooltip( $( this ) );\n\t\t});\n\n\t\ttarget.removeData( \"ui-tooltip-open\" );\n\t\tthis._off( target, \"mouseleave focusout keyup\" );\n\t\t// Remove 'remove' binding only on delegated targets\n\t\tif ( target[0] !== this.element[0] ) {\n\t\t\tthis._off( target, \"remove\" );\n\t\t}\n\t\tthis._off( this.document, \"mousemove\" );\n\n\t\tif ( event && event.type === \"mouseleave\" ) {\n\t\t\t$.each( this.parents, function( id, parent ) {\n\t\t\t\t$( parent.element ).attr( \"title\", parent.title );\n\t\t\t\tdelete that.parents[ id ];\n\t\t\t});\n\t\t}\n\n\t\tthis.closing = true;\n\t\tthis._trigger( \"close\", event, { tooltip: tooltip } );\n\t\tthis.closing = false;\n\t},\n\n\t_tooltip: function( element ) {\n\t\tvar id = \"ui-tooltip-\" + increments++,\n\t\t\ttooltip = $( \"
\" )\n\t\t\t\t.attr({\n\t\t\t\t\tid: id,\n\t\t\t\t\trole: \"tooltip\"\n\t\t\t\t})\n\t\t\t\t.addClass( \"ui-tooltip ui-widget ui-corner-all ui-widget-content \" +\n\t\t\t\t\t( this.options.tooltipClass || \"\" ) );\n\t\t$( \"
\" )\n\t\t\t.addClass( \"ui-tooltip-content\" )\n\t\t\t.appendTo( tooltip );\n\t\ttooltip.appendTo( this.document[0].body );\n\t\tthis.tooltips[ id ] = element;\n\t\treturn tooltip;\n\t},\n\n\t_find: function( target ) {\n\t\tvar id = target.data( \"ui-tooltip-id\" );\n\t\treturn id ? $( \"#\" + id ) : $();\n\t},\n\n\t_removeTooltip: function( tooltip ) {\n\t\ttooltip.remove();\n\t\tdelete this.tooltips[ tooltip.attr( \"id\" ) ];\n\t},\n\n\t_destroy: function() {\n\t\tvar that = this;\n\n\t\t// close open tooltips\n\t\t$.each( this.tooltips, function( id, element ) {\n\t\t\t// Delegate to close method to handle common cleanup\n\t\t\tvar event = $.Event( \"blur\" );\n\t\t\tevent.target = event.currentTarget = element[0];\n\t\t\tthat.close( event, true );\n\n\t\t\t// Remove immediately; destroying an open tooltip doesn't use the\n\t\t\t// hide animation\n\t\t\t$( \"#\" + id ).remove();\n\n\t\t\t// Restore the title\n\t\t\tif ( element.data( \"ui-tooltip-title\" ) ) {\n\t\t\t\telement.attr( \"title\", element.data( \"ui-tooltip-title\" ) );\n\t\t\t\telement.removeData( \"ui-tooltip-title\" );\n\t\t\t}\n\t\t});\n\t}\n});\n\n}( jQuery ) );\n","/*\r\n* jQuery timepicker addon\r\n* By: Trent Richardson [http://trentrichardson.com]\r\n* Version 1.0.1\r\n* Last Modified: 07/01/2012\r\n*\r\n* Copyright 2012 Trent Richardson\r\n* You may use this project under MIT or GPL licenses.\r\n* http://trentrichardson.com/Impromptu/GPL-LICENSE.txt\r\n* http://trentrichardson.com/Impromptu/MIT-LICENSE.txt\r\n*\r\n* HERES THE CSS:\r\n* .ui-timepicker-div .ui-widget-header { margin-bottom: 8px; }\r\n* .ui-timepicker-div dl { text-align: left; }\r\n* .ui-timepicker-div dl dt { height: 25px; margin-bottom: -25px; }\r\n* .ui-timepicker-div dl dd { margin: 0 10px 10px 65px; }\r\n* .ui-timepicker-div td { font-size: 90%; }\r\n* .ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; }\r\n*/\r\n\r\n/*jslint evil: true, maxlen: 300, white: false, undef: false, nomen: false, onevar: false */\r\n\r\n(function($) {\r\n\r\n// Prevent \"Uncaught RangeError: Maximum call stack size exceeded\"\r\n$.ui.timepicker = $.ui.timepicker || {};\r\nif ($.ui.timepicker.version) {\r\n\treturn;\r\n}\r\n\r\n$.extend($.ui, { timepicker: { version: \"1.0.1\" } });\r\n\r\n/* Time picker manager.\r\n Use the singleton instance of this class, $.timepicker, to interact with the time picker.\r\n Settings for (groups of) time pickers are maintained in an instance object,\r\n allowing multiple different settings on the same page. */\r\n\r\nvar Timepicker = function () {\r\n\tthis.regional = []; // Available regional settings, indexed by language code\r\n\tthis.regional[''] = { // Default regional settings\r\n\t\tcurrentText: 'Now',\r\n\t\tcloseText: 'Done',\r\n\t\tampm: false,\r\n\t\tamNames: ['AM', 'A'],\r\n\t\tpmNames: ['PM', 'P'],\r\n\t\ttimeFormat: 'hh:mm tt',\r\n\t\ttimeSuffix: '',\r\n\t\ttimeOnlyTitle: 'Choose Time',\r\n\t\ttimeText: 'Time',\r\n\t\thourText: 'Hour',\r\n\t\tminuteText: 'Minute',\r\n\t\tsecondText: 'Second',\r\n\t\tmillisecText: 'Millisecond',\r\n\t\ttimezoneText: 'Time Zone'\r\n\t};\r\n\tthis._defaults = { // Global defaults for all the datetime picker instances\r\n\t\tshowButtonPanel: true,\r\n\t\ttimeOnly: false,\r\n\t\tshowHour: true,\r\n\t\tshowMinute: true,\r\n\t\tshowSecond: false,\r\n\t\tshowMillisec: false,\r\n\t\tshowTimezone: false,\r\n\t\tshowTime: true,\r\n\t\tstepHour: 1,\r\n\t\tstepMinute: 1,\r\n\t\tstepSecond: 1,\r\n\t\tstepMillisec: 1,\r\n\t\thour: 0,\r\n\t\tminute: 0,\r\n\t\tsecond: 0,\r\n\t\tmillisec: 0,\r\n\t\ttimezone: null,\r\n\t\tuseLocalTimezone: false,\r\n\t\tdefaultTimezone: \"+0000\",\r\n\t\thourMin: 0,\r\n\t\tminuteMin: 0,\r\n\t\tsecondMin: 0,\r\n\t\tmillisecMin: 0,\r\n\t\thourMax: 23,\r\n\t\tminuteMax: 59,\r\n\t\tsecondMax: 59,\r\n\t\tmillisecMax: 999,\r\n\t\tminDateTime: null,\r\n\t\tmaxDateTime: null,\r\n\t\tonSelect: null,\r\n\t\thourGrid: 0,\r\n\t\tminuteGrid: 0,\r\n\t\tsecondGrid: 0,\r\n\t\tmillisecGrid: 0,\r\n\t\talwaysSetTime: true,\r\n\t\tseparator: ' ',\r\n\t\taltFieldTimeOnly: true,\r\n\t\tshowTimepicker: true,\r\n\t\ttimezoneIso8601: false,\r\n\t\ttimezoneList: null,\r\n\t\taddSliderAccess: false,\r\n\t\tsliderAccessArgs: null\r\n\t};\r\n\t$.extend(this._defaults, this.regional['']);\r\n}\r\n\r\n$.extend(Timepicker.prototype, {\r\n\t$input: null,\r\n\t$altInput: null,\r\n\t$timeObj: null,\r\n\tinst: null,\r\n\thour_slider: null,\r\n\tminute_slider: null,\r\n\tsecond_slider: null,\r\n\tmillisec_slider: null,\r\n\ttimezone_select: null,\r\n\thour: 0,\r\n\tminute: 0,\r\n\tsecond: 0,\r\n\tmillisec: 0,\r\n\ttimezone: null,\r\n\tdefaultTimezone: \"+0000\",\r\n\thourMinOriginal: null,\r\n\tminuteMinOriginal: null,\r\n\tsecondMinOriginal: null,\r\n\tmillisecMinOriginal: null,\r\n\thourMaxOriginal: null,\r\n\tminuteMaxOriginal: null,\r\n\tsecondMaxOriginal: null,\r\n\tmillisecMaxOriginal: null,\r\n\tampm: '',\r\n\tformattedDate: '',\r\n\tformattedTime: '',\r\n\tformattedDateTime: '',\r\n\ttimezoneList: null,\r\n\r\n\t/* Override the default settings for all instances of the time 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//########################################################################\r\n\t// Create a new Timepicker instance\r\n\t//########################################################################\r\n\t_newInst: function($input, o) {\r\n\t\tvar tp_inst = new Timepicker(),\r\n\t\t\tinlineSettings = {};\r\n\r\n\t\tfor (var attrName in this._defaults) {\r\n\t\t\tvar attrValue = $input.attr('time:' + attrName);\r\n\t\t\tif (attrValue) {\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\ttp_inst._defaults = $.extend({}, this._defaults, inlineSettings, o, {\r\n\t\t\tbeforeShow: function(input, dp_inst) {\r\n\t\t\t\tif ($.isFunction(o.beforeShow)) {\r\n\t\t\t\t\treturn o.beforeShow(input, dp_inst, tp_inst);\r\n }\r\n\t\t\t},\r\n\t\t\tonChangeMonthYear: function(year, month, dp_inst) {\r\n\t\t\t\t// Update the time as well : this prevents the time from disappearing from the $input field.\r\n\t\t\t\ttp_inst._updateDateTime(dp_inst);\r\n\t\t\t\tif ($.isFunction(o.onChangeMonthYear)) {\r\n\t\t\t\t\to.onChangeMonthYear.call($input[0], year, month, dp_inst, tp_inst);\r\n }\r\n\t\t\t},\r\n\t\t\tonClose: function(dateText, dp_inst) {\r\n\t\t\t\tif (tp_inst.timeDefined === true && $input.val() !== '') {\r\n\t\t\t\t\ttp_inst._updateDateTime(dp_inst);\r\n }\r\n\t\t\t\tif ($.isFunction(o.onClose)) {\r\n\t\t\t\t\to.onClose.call($input[0], dateText, dp_inst, tp_inst);\r\n }\r\n\t\t\t},\r\n\t\t\ttimepicker: tp_inst // add timepicker as a property of datepicker: $.datepicker._get(dp_inst, 'timepicker');\r\n\t\t});\r\n\t\ttp_inst.amNames = $.map(tp_inst._defaults.amNames, function(val) { return val.toUpperCase(); });\r\n\t\ttp_inst.pmNames = $.map(tp_inst._defaults.pmNames, function(val) { return val.toUpperCase(); });\r\n\r\n\t\tif (tp_inst._defaults.timezoneList === null) {\r\n\t\t\tvar timezoneList = [];\r\n\t\t\tfor (var i = -11; i <= 12; i++) {\r\n\t\t\t\ttimezoneList.push((i >= 0 ? '+' : '-') + ('0' + Math.abs(i).toString()).slice(-2) + '00');\r\n }\r\n\t\t\tif (tp_inst._defaults.timezoneIso8601) {\r\n\t\t\t\ttimezoneList = $.map(timezoneList, function(val) {\r\n\t\t\t\t\treturn val == '+0000' ? 'Z' : (val.substring(0, 3) + ':' + val.substring(3));\r\n\t\t\t\t});\r\n }\r\n\t\t\ttp_inst._defaults.timezoneList = timezoneList;\r\n\t\t}\r\n\r\n\t\ttp_inst.timezone = tp_inst._defaults.timezone;\r\n\t\ttp_inst.hour = tp_inst._defaults.hour;\r\n\t\ttp_inst.minute = tp_inst._defaults.minute;\r\n\t\ttp_inst.second = tp_inst._defaults.second;\r\n\t\ttp_inst.millisec = tp_inst._defaults.millisec;\r\n\t\ttp_inst.ampm = '';\r\n\t\ttp_inst.$input = $input;\r\n\r\n\t\tif (o.altField) {\r\n\t\t\ttp_inst.$altInput = $(o.altField)\r\n\t\t\t\t.css({ cursor: 'pointer' })\r\n\t\t\t\t.focus(function(){ $input.trigger(\"focus\"); });\r\n }\r\n\r\n\t\tif(tp_inst._defaults.minDate===0 || tp_inst._defaults.minDateTime===0)\r\n\t\t{\r\n\t\t\ttp_inst._defaults.minDate=new Date();\r\n\t\t}\r\n\t\tif(tp_inst._defaults.maxDate===0 || tp_inst._defaults.maxDateTime===0)\r\n\t\t{\r\n\t\t\ttp_inst._defaults.maxDate=new Date();\r\n\t\t}\r\n\r\n\t\t// datepicker needs minDate/maxDate, timepicker needs minDateTime/maxDateTime..\r\n\t\tif(tp_inst._defaults.minDate !== undefined && tp_inst._defaults.minDate instanceof Date) {\r\n\t\t\ttp_inst._defaults.minDateTime = new Date(tp_inst._defaults.minDate.getTime());\r\n }\r\n\t\tif(tp_inst._defaults.minDateTime !== undefined && tp_inst._defaults.minDateTime instanceof Date) {\r\n\t\t\ttp_inst._defaults.minDate = new Date(tp_inst._defaults.minDateTime.getTime());\r\n }\r\n\t\tif(tp_inst._defaults.maxDate !== undefined && tp_inst._defaults.maxDate instanceof Date) {\r\n\t\t\ttp_inst._defaults.maxDateTime = new Date(tp_inst._defaults.maxDate.getTime());\r\n }\r\n\t\tif(tp_inst._defaults.maxDateTime !== undefined && tp_inst._defaults.maxDateTime instanceof Date) {\r\n\t\t\ttp_inst._defaults.maxDate = new Date(tp_inst._defaults.maxDateTime.getTime());\r\n }\r\n\t\treturn tp_inst;\r\n\t},\r\n\r\n\t//########################################################################\r\n\t// add our sliders to the calendar\r\n\t//########################################################################\r\n\t_addTimePicker: function(dp_inst) {\r\n\t\tvar currDT = (this.$altInput && this._defaults.altFieldTimeOnly) ?\r\n\t\t\t\tthis.$input.val() + ' ' + this.$altInput.val() :\r\n\t\t\t\tthis.$input.val();\r\n\r\n\t\tthis.timeDefined = this._parseTime(currDT);\r\n\t\tthis._limitMinMaxDateTime(dp_inst, false);\r\n\t\tthis._injectTimePicker();\r\n\t},\r\n\r\n\t//########################################################################\r\n\t// parse the time string from input value or _setTime\r\n\t//########################################################################\r\n\t_parseTime: function(timeString, withDate) {\r\n\t\tif (!this.inst) {\r\n\t\t\tthis.inst = $.datepicker._getInst(this.$input[0]);\r\n\t\t}\r\n\t\t\r\n\t\tif (withDate || !this._defaults.timeOnly) \r\n\t\t{\r\n\t\t\tvar dp_dateFormat = $.datepicker._get(this.inst, 'dateFormat');\r\n\t\t\ttry {\r\n\t\t\t\tvar parseRes = parseDateTimeInternal(dp_dateFormat, this._defaults.timeFormat, timeString, $.datepicker._getFormatConfig(this.inst), this._defaults);\r\n\t\t\t\tif (!parseRes.timeObj) { return false; }\r\n\t\t\t\t$.extend(this, parseRes.timeObj);\r\n\t\t\t} catch (err)\r\n\t\t\t{\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tvar timeObj = $.datepicker.parseTime(this._defaults.timeFormat, timeString, this._defaults);\r\n\t\t\tif(!timeObj) { return false; }\r\n\t\t\t$.extend(this, timeObj);\r\n\t\t\treturn true;\r\n\t\t}\r\n\t},\r\n\t\r\n\t//########################################################################\r\n\t// generate and inject html for timepicker into ui datepicker\r\n\t//########################################################################\r\n\t_injectTimePicker: function() {\r\n\t\tvar $dp = this.inst.dpDiv,\r\n\t\t\to = this._defaults,\r\n\t\t\ttp_inst = this,\r\n\t\t\t// Added by Peter Medeiros:\r\n\t\t\t// - Figure out what the hour/minute/second max should be based on the step values.\r\n\t\t\t// - Example: if stepMinute is 15, then minMax is 45.\r\n\t\t\thourMax = parseInt((o.hourMax - ((o.hourMax - o.hourMin) % o.stepHour)) ,10),\r\n\t\t\tminMax = parseInt((o.minuteMax - ((o.minuteMax - o.minuteMin) % o.stepMinute)) ,10),\r\n\t\t\tsecMax = parseInt((o.secondMax - ((o.secondMax - o.secondMin) % o.stepSecond)) ,10),\r\n\t\t\tmillisecMax = parseInt((o.millisecMax - ((o.millisecMax - o.millisecMin) % o.stepMillisec)) ,10),\r\n\t\t\tdp_id = this.inst.id.toString().replace(/([^A-Za-z0-9_])/g, '');\r\n\r\n\t\t// Prevent displaying twice\r\n\t\t//if ($dp.find(\"div#ui-timepicker-div-\"+ dp_id).length === 0) {\r\n\t\tif ($dp.find(\"div#ui-timepicker-div-\"+ dp_id).length === 0 && o.showTimepicker) {\r\n\t\t\tvar noDisplay = ' style=\"display:none;\"',\r\n\t\t\t\thtml =\t'
' +\r\n\t\t\t\t\t\t'
' + o.timeText + '
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'
' + o.hourText + '
',\r\n\t\t\t\thourGridSize = 0,\r\n\t\t\t\tminuteGridSize = 0,\r\n\t\t\t\tsecondGridSize = 0,\r\n\t\t\t\tmillisecGridSize = 0,\r\n\t\t\t\tsize = null;\r\n\r\n // Hours\r\n\t\t\thtml += '
';\r\n\t\t\tif (o.showHour && o.hourGrid > 0) {\r\n\t\t\t\thtml += '
';\r\n\r\n\t\t\t\tfor (var h = o.hourMin; h <= hourMax; h += parseInt(o.hourGrid,10)) {\r\n\t\t\t\t\thourGridSize++;\r\n\t\t\t\t\tvar tmph = (o.ampm && h > 12) ? h-12 : h;\r\n\t\t\t\t\tif (tmph < 10) { tmph = '0' + tmph; }\r\n\t\t\t\t\tif (o.ampm) {\r\n\t\t\t\t\t\tif (h === 0) {\r\n tmph = 12 +'a';\r\n } else {\r\n if (h < 12) { tmph += 'a'; }\r\n\t\t\t\t\t\t else { tmph += 'p'; }\r\n }\r\n\t\t\t\t\t}\r\n\t\t\t\t\thtml += '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\thtml += '
' + tmph + '
';\r\n\t\t\t}\r\n\t\t\thtml += '
';\r\n\r\n\t\t\t// Minutes\r\n\t\t\thtml += '
' + o.minuteText + '
'+\r\n\t\t\t\t\t'
';\r\n\r\n\t\t\tif (o.showMinute && o.minuteGrid > 0) {\r\n\t\t\t\thtml += '
';\r\n\r\n\t\t\t\tfor (var m = o.minuteMin; m <= minMax; m += parseInt(o.minuteGrid,10)) {\r\n\t\t\t\t\tminuteGridSize++;\r\n\t\t\t\t\thtml += '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\thtml += '
' + ((m < 10) ? '0' : '') + m + '
';\r\n\t\t\t}\r\n\t\t\thtml += '
';\r\n\r\n\t\t\t// Seconds\r\n\t\t\thtml += '
' + o.secondText + '
'+\r\n\t\t\t\t\t'
';\r\n\r\n\t\t\tif (o.showSecond && o.secondGrid > 0) {\r\n\t\t\t\thtml += '
';\r\n\r\n\t\t\t\tfor (var s = o.secondMin; s <= secMax; s += parseInt(o.secondGrid,10)) {\r\n\t\t\t\t\tsecondGridSize++;\r\n\t\t\t\t\thtml += '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\thtml += '
' + ((s < 10) ? '0' : '') + s + '
';\r\n\t\t\t}\r\n\t\t\thtml += '
';\r\n\r\n\t\t\t// Milliseconds\r\n\t\t\thtml += '
' + o.millisecText + '
'+\r\n\t\t\t\t\t'
';\r\n\r\n\t\t\tif (o.showMillisec && o.millisecGrid > 0) {\r\n\t\t\t\thtml += '
';\r\n\r\n\t\t\t\tfor (var l = o.millisecMin; l <= millisecMax; l += parseInt(o.millisecGrid,10)) {\r\n\t\t\t\t\tmillisecGridSize++;\r\n\t\t\t\t\thtml += '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\thtml += '
' + ((l < 10) ? '0' : '') + l + '
';\r\n\t\t\t}\r\n\t\t\thtml += '
';\r\n\r\n\t\t\t// Timezone\r\n\t\t\thtml += '
' + o.timezoneText + '
';\r\n\t\t\thtml += '
';\r\n\r\n\t\t\thtml += '
';\r\n\t\t\tvar $tp = $(html);\r\n\r\n\t\t\t\t// if we only want time picker...\r\n\t\t\tif (o.timeOnly === true) {\r\n\t\t\t\t$tp.prepend(\r\n\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'
' + o.timeOnlyTitle + '
' +\r\n\t\t\t\t\t'
');\r\n\t\t\t\t$dp.find('.ui-datepicker-header, .ui-datepicker-calendar').hide();\r\n\t\t\t}\r\n\r\n\t\t\tthis.hour_slider = $tp.find('#ui_tpicker_hour_'+ dp_id).slider({\r\n\t\t\t\torientation: \"horizontal\",\r\n\t\t\t\tvalue: this.hour,\r\n\t\t\t\tmin: o.hourMin,\r\n\t\t\t\tmax: hourMax,\r\n\t\t\t\tstep: o.stepHour,\r\n slide: function (event, ui) {\r\n //�������� �� ��������� ����\r\n if (o.hourAvailableValues &&\r\n $.isArray(o.hourAvailableValues) &&\r\n o.hourAvailableValues.indexOf(ui.value) === -1) return false;\r\n\r\n\t\t\t\t\ttp_inst.hour_slider.slider( \"option\", \"value\", ui.value);\r\n\t\t\t\t\ttp_inst._onTimeChange();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\t// Updated by Peter Medeiros:\r\n\t\t\t// - Pass in Event and UI instance into slide function\r\n\t\t\tthis.minute_slider = $tp.find('#ui_tpicker_minute_'+ dp_id).slider({\r\n\t\t\t\torientation: \"horizontal\",\r\n\t\t\t\tvalue: this.minute,\r\n\t\t\t\tmin: o.minuteMin,\r\n\t\t\t\tmax: minMax,\r\n\t\t\t\tstep: o.stepMinute,\r\n\t\t\t\tslide: function(event, ui) {\r\n\t\t\t\t\ttp_inst.minute_slider.slider( \"option\", \"value\", ui.value);\r\n\t\t\t\t\ttp_inst._onTimeChange();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.second_slider = $tp.find('#ui_tpicker_second_'+ dp_id).slider({\r\n\t\t\t\torientation: \"horizontal\",\r\n\t\t\t\tvalue: this.second,\r\n\t\t\t\tmin: o.secondMin,\r\n\t\t\t\tmax: secMax,\r\n\t\t\t\tstep: o.stepSecond,\r\n\t\t\t\tslide: function(event, ui) {\r\n\t\t\t\t\ttp_inst.second_slider.slider( \"option\", \"value\", ui.value);\r\n\t\t\t\t\ttp_inst._onTimeChange();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.millisec_slider = $tp.find('#ui_tpicker_millisec_'+ dp_id).slider({\r\n\t\t\t\torientation: \"horizontal\",\r\n\t\t\t\tvalue: this.millisec,\r\n\t\t\t\tmin: o.millisecMin,\r\n\t\t\t\tmax: millisecMax,\r\n\t\t\t\tstep: o.stepMillisec,\r\n\t\t\t\tslide: function(event, ui) {\r\n\t\t\t\t\ttp_inst.millisec_slider.slider( \"option\", \"value\", ui.value);\r\n\t\t\t\t\ttp_inst._onTimeChange();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.timezone_select = $tp.find('#ui_tpicker_timezone_'+ dp_id).append('').find(\"select\");\r\n\t\t\t$.fn.append.apply(this.timezone_select,\r\n\t\t\t\t$.map(o.timezoneList, function(val, idx) {\r\n\t\t\t\t\treturn $(\"