{"version":3,"sources":["Scripts/ThirdParty/stackframe.js","Scripts/ThirdParty/error-stack-parser.js","Scripts/ThirdParty/jquery.js","Scripts/ThirdParty/jquery-migrate.js","Scripts/ThirdParty/jquery-ui-1.8.14.js","Scripts/ThirdParty/jquery-ui-i18n-1.8.14.js","Scripts/ThirdParty/jquery.ui.touch-punch.js","Scripts/ThirdParty/jquery.validate.js","Scripts/ThirdParty/jquery.validate.unobtrusive.js","Scripts/ThirdParty/jquery-hashchange.js","Scripts/ThirdParty/jquery.autoNumeric.js","Scripts/ThirdParty/jquery-ui-timepicker-addon.js","Scripts/ThirdParty/jquery.tmpl.js","Scripts/ThirdParty/jquery.mousewheel.js","Scripts/ThirdParty/jquery.blockUI.js","Scripts/ThirdParty/jquery.cookie.js","Scripts/ThirdParty/jquery.jqGrid.locale-en.js","Scripts/ThirdParty/jquery.jqGrid.js","Scripts/ThirdParty/jquery.qtip.js","Scripts/ThirdParty/jquery.dd.js","Scripts/ThirdParty/underscore.js","Scripts/ThirdParty/packery.pkgd.min.js","Scripts/ThirdParty/FileAPI.html5.js","Scripts/ThirdParty/knockout.js","Scripts/ThirdParty/knockout-mapping.js","Scripts/ThirdParty/knockout-mapping-merge.js","Scripts/ThirdParty/knockout-delegatedEvents.js","Scripts/ThirdParty/knockout.validation.js","Scripts/ThirdParty/knockout-sortable.js","Scripts/ThirdParty/accounting.js","node_modules/moment/min/moment.min.js","Scripts/ThirdParty/splitter.js","Scripts/ThirdParty/jquery.dynatree.js","Scripts/ThirdParty/AmCharts/amcharts.js","Scripts/ThirdParty/AmCharts/blob.js/blob.js","Scripts/ThirdParty/AmCharts/xy.js","Scripts/ThirdParty/AmCharts/serial.js","Scripts/ThirdParty/AmCharts/pie.js","Scripts/ThirdParty/AmCharts/plugins/export/export.js","Scripts/ThirdParty/AmCharts/themes/light.js","Scripts/ThirdParty/fullcalendar.js","Scripts/ThirdParty/jsUri.js","Scripts/ThirdParty/uuid.js","Scripts/ThirdParty/codemirror.js","Scripts/ThirdParty/javascript.js","Scripts/ThirdParty/date.format.js","Scripts/ThirdParty/Sortable.js","Scripts/ThirdParty/mixpanel.js"],"names":["root","factory","define","amd","exports","module","StackFrame","this","_isNumber","n","isNaN","parseFloat","isFinite","_capitalize","str","toUpperCase","substring","_getter","p","booleanProps","numericProps","stringProps","arrayProps","obj","Object","props","concat","i","length","hasOwnProperty","undefined","prototype","getArgs","args","setArgs","v","toString","call","TypeError","getEvalOrigin","evalOrigin","setEvalOrigin","functionName","getFunctionName","join","fileName","getFileName","lineNumber","getLineNumber","columnNumber","getColumnNumber","Boolean","j","Number","k","String","require","ErrorStackParser","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","parse","ErrorStackParser$$parse","error","stacktrace","parseOpera","stack","match","parseV8OrIE","parseFFOrSafari","Error","extractLocation","ErrorStackParser$$extractLocation","urlLike","indexOf","regExp","parts","exec","replace","ErrorStackParser$$parseV8OrIE","filtered","split","filter","line","map","tokens","slice","locationParts","pop","source","ErrorStackParser$$parseFFOrSafari","ErrorStackParser$$parseOpera","e","message","parseOpera9","parseOpera10","parseOpera11","ErrorStackParser$$parseOpera9","lineRE","lines","result","len","push","ErrorStackParser$$parseOpera10","ErrorStackParser$$parseOpera11","functionCall","shift","argsRaw","global","document","w","window","noGlobal","arr","class2type","hasOwn","support","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","jquery","constructor","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","elem","apply","arguments","first","eq","last","end","sort","splice","extend","options","name","src","copy","copyIsArray","clone","target","deep","isFunction","isPlainObject","isArray","expando","Math","random","isReady","msg","noop","type","Array","isWindow","isNumeric","nodeType","isEmptyObject","globalEval","code","script","indirect","eval","trim","createElement","text","head","appendChild","parentNode","removeChild","camelCase","string","nodeName","toLowerCase","value","isArraylike","makeArray","results","inArray","second","grep","invert","callbackInverse","matches","callbackExpect","arg","guid","proxy","tmp","now","Date","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","strundefined","MAX_NEGATIVE","push_native","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","fromCharCode","childNodes","els","seed","m","groups","old","nid","newContext","newSelector","ownerDocument","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","toSelector","testContext","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","markFunction","assert","div","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","doc","parent","defaultView","top","addEventListener","attachEvent","className","createComment","innerHTML","firstChild","getById","getElementsByName","find","attrId","getAttributeNode","tag","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo","relative",">","dir"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","xml","outerCache","nodeIndex","start","useCache","lastChild","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","div1","defaultValue","unique","isXMLDoc","rneedsContext","rsingleTag","risSimple","winnow","qualifier","self","is","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","next","prev","until","truncate","sibling","targets","l","closest","pos","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","reverse","rnotwhite","optionsCache","createOptions","object","flag","Callbacks","memory","fired","firing","firingStart","firingLength","firingIndex","list","once","fire","data","stopOnFalse","disable","remove","lock","locked","fireWith","Deferred","func","tuples","state","promise","always","deferred","fail","then","fns","newDefer","tuple","returned","resolve","reject","progress","notify","pipe","stateString","when","subordinate","resolveValues","remaining","updateFunc","values","progressValues","notifyWith","resolveWith","progressContexts","resolveContexts","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","completed","removeEventListener","readyState","setTimeout","access","chainable","emptyGet","raw","bulk","acceptData","owner","Data","defineProperty","uid","accepts","descriptor","unlock","defineProperties","set","prop","stored","camel","hasData","discard","data_priv","data_user","rbrace","rmultiDash","dataAttr","parseJSON","removeData","_data","_removeData","camelKey","queue","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","cssExpand","isHidden","el","css","rcheckableType","fragment","createDocumentFragment","checkClone","cloneNode","noCloneChecked","focusinBubbles","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","event","types","handleObjIn","eventHandle","events","t","handleObj","special","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","trigger","onlyHandlers","bubbleType","ontype","eventPath","Event","isTrigger","namespace_re","noBubble","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","fixHooks","keyHooks","original","which","charCode","keyCode","mouseHooks","eventDoc","body","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","originalEvent","fixHook","load","blur","click","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","relatedTarget","attaches","on","one","origFn","rxhtmlTag","rtagName","rhtml","rnoInnerhtml","rchecked","rscriptType","rscriptTypeMasked","rcleanScript","wrapMap","option","thead","col","tr","td","optgroup","tbody","tfoot","colgroup","caption","th","manipulationTarget","content","disableScript","restoreScript","setGlobalEval","refElements","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","getAll","fixInput","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","buildFragment","scripts","selection","wrap","nodes","createTextNode","cleanData","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","detach","hasScripts","iNoClone","_evalUrl","appendTo","prependTo","insertAfter","replaceAll","insert","iframe","elemdisplay","actualDisplay","style","display","getDefaultComputedStyle","defaultDisplay","write","close","rmargin","rnumnonpx","getStyles","getComputedStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","pixelPositionVal","boxSizingReliableVal","container","backgroundClip","clearCloneStyle","cssText","computePixelPositionAndBoxSizingReliable","divStyle","pixelPosition","boxSizingReliable","reliableMarginRight","marginDiv","marginRight","swap","rdisplayswap","rnumsplit","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","vendorPropName","capName","origName","setPositiveNumber","subtract","max","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","showHide","show","hidden","cssHooks","opacity","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","cssProps","float","margin","padding","border","prefix","suffix","expand","expanded","hide","toggle","Tween","easing","unit","propHooks","run","percent","eased","duration","step","tween","fx","linear","swing","cos","PI","fxNow","timerId","rfxtypes","rfxnum","rrun","animationPrefilters","defaultPrefilter","tweeners","*","createTween","scale","maxIterations","createFxNow","genFx","includeWidth","height","animation","collection","opts","oldfire","checkDisplay","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","Animation","properties","stopped","tick","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","rejectWith","timer","complete","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","optDisabled","radioValue","nodeHook","boolHook","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","rfocusable","removeProp","for","class","notxml","hasAttribute","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","JSON","parseXML","DOMParser","parseFromString","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","transports","allTypes","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","responseFields","dataFilter","active","lastModified","etag","url","isLocal","processData","async","contentType","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","fireGlobals","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","status","abort","statusText","finalText","success","method","crossDomain","param","traditional","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","modified","getJSON","getScript","throws","wrapAll","firstElementChild","wrapInner","unwrap","visible","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","encodeURIComponent","serialize","serializeArray","xhr","XMLHttpRequest","xhrId","xhrCallbacks","xhrSuccessStatus","0","1223","xhrSupported","ActiveXObject","cors","open","username","xhrFields","onload","onerror","responseText","text script","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","getWindow","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","left","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","size","andSelf","_jQuery","_$","$","noConflict","warnedAbout","migrateWarnings","migrateMute","console","log","migrateTrace","migrateReset","migrateWarn","warn","trace","migrateWarnProp","configurable","enumerable","newValue","_definePropertyBroken","compatMode","attrFn","oldAttr","valueAttrGet","valueAttrSet","rnoType","rnoAttrNodeType","rboolean","ruseDefault","pass","lowerName","attrNode","property","browser","oldInit","oldParseJSON","charAt","uaMatch","ua","navigator","userAgent","chrome","webkit","safari","sub","jQuerySub","superclass","rootjQuerySub","oldFnData","oldSelf","clean","handleScript","jsTags","eventAdd","eventRemove","eventTrigger","oldToggle","oldLive","live","oldDie","die","ajaxEvents","rajaxEvent","rhoverHack","hoverHack","fn2","toggler","lastToggle","ui","ALT","BACKSPACE","CAPS_LOCK","COMMA","COMMAND","COMMAND_LEFT","COMMAND_RIGHT","CONTROL","DELETE","DOWN","END","ENTER","ESCAPE","HOME","INSERT","LEFT","MENU","NUMPAD_ADD","NUMPAD_DECIMAL","NUMPAD_DIVIDE","NUMPAD_ENTER","NUMPAD_MULTIPLY","NUMPAD_SUBTRACT","PAGE_DOWN","PAGE_UP","PERIOD","RIGHT","SHIFT","SPACE","TAB","UP","WINDOWS","_focus","scrollParent","includeHidden","excludeStaticParent","overflowRegex","parseInt","disableSelection","selectstart","enableSelection","focusable","element","isTabIndexNotNaN","mapName","img","tabbable","isTabIndexNaN","minHeight","borderWidth","plugin","proto","plugins","instance","hasScroll","scroll","isOverAxis","x","reference","isOver","y","_cleanData","_remove","widget","fullName","Widget","_createWidget","basePrototype","widgetName","widgetEventPrefix","widgetBaseClass","bridge","isMethodCall","methodValue","_init","_getCreateOptions","destroy","_create","_trigger","metadata","_setOptions","_setOption","enable","mouseHandled","mousedown","cancel","distance","_mouseInit","_mouseDown","started","_mouseDestroy","_mouseStarted","_mouseUp","_mouseDownEvent","btnIsLeft","elIsCancel","_mouseCapture","mouseDelayMet","_mouseDelayTimer","_mouseDistanceMet","_mouseDelayMet","_mouseStart","_mouseMoveDelegate","_mouseMove","_mouseUpDelegate","msie","documentMode","_mouseDrag","_mouseStop","abs","mouse","addClasses","axis","connectToSortable","containment","cursor","cursorAt","grid","helper","iframeFix","refreshPositions","revert","revertDuration","scope","scrollSensitivity","scrollSpeed","snap","snapMode","snapTolerance","o","_getHandle","_createHelper","_cacheHelperProportions","ddmanager","_cacheMargins","cssPosition","positionAbs","margins","_getParentOffset","_getRelativeOffset","originalPosition","_generatePosition","originalPageX","originalPageY","_adjustOffsetFromHelper","_setContainment","_clear","dropBehaviour","prepareOffsets","dragStart","noPropagation","_convertPositionTo","_uiHash","drag","dropped","drop","dragStop","helperProportions","right","bottom","po","tagName","outerWidth","outerHeight","scrollHeight","c","ce","co","over","scrollWidth","relative_container","d","mod","scrollIsRootNode","round","cancelHelperRemoval","draggable","inst","uiSortable","item","sortables","sortable","shouldRevert","_helper","currentItem","checkPos","dyClick","dxClick","helperTop","helperLeft","itemHeight","itemWidth","itemTop","itemLeft","_intersectsWith","containerCache","fromOutside","placeholder","_cursor","_opacity","overflowOffset","scrolled","snapElements","items","$t","$o","x1","x2","y1","y2","r","snapping","release","snapItem","ts","bs","ls","rs","group","min","_zIndex","accept","activeClass","greedy","hoverClass","tolerance","isover","isout","proportions","droppables","_activate","_deactivate","_over","_out","_drop","custom","childrenIntersection","intersect","droppable","toleranceMode","absolute","draggableLeft","clickOffset","draggableTop","default","droppablesLoop","greedyChild","intersects","parentInstance","alsoResize","animateDuration","animateEasing","aspectRatio","autoHide","ghost","handles","maxHeight","resize","_num","_hasScroll","hname","that","_aspectRatio","originalElement","_proportionallyResizeElements","resizable","elementIsWrapper","marginLeft","marginTop","marginBottom","originalResizeStyle","_proportionallyResize","se","sw","ne","nw","_renderAxis","padPos","padWrapper","_handles","mouseover","resizing","_destroy","wrapper","exp","capture","curleft","curtop","_renderProxy","originalSize","sizeDiff","originalMousePosition","_propagate","smp","dx","dy","_change","prevPosition","prevSize","_updateVirtualBoundaries","shiftKey","_updateRatio","_respectSize","_updateCache","pr","ista","soffseth","soffsetw","forceAspectRatio","pMinWidth","pMaxWidth","pMinHeight","pMaxHeight","Infinity","_vBoundaries","cpos","csize","ismaxw","ismaxh","isminw","isminh","dw","dh","cw","ch","borders","paddings","prel","borderDif","elementOffset","cs","sp","oc","containerElement","containerOffset","containerPosition","parentData","containerSize","innerHeight","innerWidth","woset","hoset","isParent","isOffsetRelative","cp","pRatio","cop","continueResize","ho","h","_store","os","op","delta","_alsoResize","sum","gridX","gridY","ox","oy","newWidth","newHeight","isMaxWidth","isMaxHeight","isMinWidth","isMinHeight","autoRefresh","dragged","selectees","refresh","$this","$element","startselected","selecting","unselecting","opos","selectee","metaKey","doSelect","hit","unselected","selectable","connectWith","dropOnEmpty","forcePlaceholderSize","forceHelperSize","floating","overrideHandle","reverting","_refreshItems","validHandle","_removeCurrentsFromItems","noActivation","currentContainer","domPosition","_createPlaceholder","_storedCursor","_storedOpacity","_storedZIndex","_preserveHelperProportions","containers","dragging","lastPositionAbs","itemElement","intersection","_intersectsWithPointer","direction","_intersectsWithSides","_rearrange","_contactContainers","_storedCSS","_noFinalSort","_getItemsAsjQuery","connected","res","attribute","expression","isOverElement","forcePointerForContainers","isOverElementHeight","isOverElementWidth","verticalDirection","_getDragVerticalDirection","horizontalDirection","_getDragHorizontalDirection","isOverBottomHalf","isOverRightHalf","_connectWith","queries","targetData","_queries","queriesLength","toleranceElement","refreshContainers","update","innermostContainer","innermostIndex","dist","itemWithLeastDistance","helperHeight","hardRefresh","counter","delayedTriggers","sender","effects","colorInit","getColor","getRGB","color","colors","aqua","azure","beige","black","blue","brown","cyan","darkblue","darkcyan","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkviolet","fuchsia","gold","green","indigo","khaki","lightblue","lightcyan","lightgreen","lightgrey","lightpink","lightyellow","lime","magenta","maroon","navy","olive","orange","pink","purple","violet","red","silver","white","yellow","transparent","classAnimationActions","shorthandStyles","borderBottom","borderColor","borderLeft","borderRight","borderTop","getElementStyles","currentStyle","newStyle","filterStyles","styleDifference","oldStyle","animateClass","originalStyleAttr","originalStyle","action","_addClass","_removeClass","_toggleClass","force","switchClass","save","restore","setMode","mode","getBaseline","origin","createWrapper","fontSize","background","removeWrapper","setTransition","factor","cssUnit","_normalizeArguments","effect","standardSpeed","args2","effectMethod","_show","_hide","__toggle","jswing","def","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","sin","easeInOutSine","easeInExpo","pow","easeOutExpo","easeInOutExpo","easeInCirc","sqrt","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","blind","ref","bounce","times","motion","animation1","animation2","clip","explode","rows","pieces","cells","floor","fade","fold","horizFirst","widthFirst","highlight","backgroundColor","backgroundImage","pulsate","isVisible","animateTo","puff","from","props1","props2","cProps","vProps","hProps","baseline","child","c_original","shake","slide","transfer","endPosition","startPosition","autoHeight","clearStyle","collapsible","fillSpace","icons","headerSelected","navigation","navigationFilter","running","_findActive","_createIcons","_keydown","aria-expanded","aria-selected","_clickHandler","_destroyIcons","fillHeight","activate","altKey","ctrlKey","currentIndex","toFocus","defOverflow","toHide","newHeader","oldHeader","newContent","oldContent","toShow","_toggle","clicked","clickedIsActive","down","_completed","animOptions","proxied","proxiedDuration","animations","accordion","additions","paddingTop","paddingBottom","percentDone","showProps","hideProps","fxAttrs","originalWidth","bounceslide","requestIndex","autoFocus","minLength","my","at","collision","pending","suppressKeyPress","role","aria-autocomplete","aria-haspopup","_move","menu","term","searching","selectedItem","search","previous","closing","_initSource","_response","menuElement","bgiframe","array","request","autocomplete","autocompleteRequest","_search","_normalize","_suggest","deactivate","label","ul","_renderMenu","_resizeMenu","of","_renderItem","escapeRegex","aria-activedescendant","elementHeight","move","edge","nextPage","previousPage","lastActive","startXPos","startYPos","clickDragged","baseClasses","stateClasses","typeClasses","formResetHandler","buttons","radioGroup","form","radios","primary","secondary","_determineButtonType","hasTitle","buttonElement","toggleButton","focusClass","keyup","_resetButton","ancestor","labelSelector","isDisabled","buttonText","multipleIcons","buttonClasses","ltr","datepicker","PROP_NAME","dpuuid","getTime","instActive","Datepicker","debug","_curInst","_keyEvent","_disabledInputs","_datepickerShowing","_inDialog","_mainDivId","_inlineClass","_appendClass","_triggerClass","_dialogClass","_disableClass","_unselectableClass","_currentClass","_dayOverClass","regional","closeText","prevText","nextText","currentText","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","weekHeader","dateFormat","firstDay","isRTL","showMonthAfterYear","yearSuffix","_defaults","showOn","showAnim","showOptions","defaultDate","appendText","buttonImage","buttonImageOnly","hideIfNoPrevNext","navigationAsDateFormat","gotoCurrent","changeMonth","changeYear","yearRange","showOtherMonths","selectOtherMonths","showWeek","calculateWeek","iso8601Week","shortYearCutoff","minDate","maxDate","beforeShowDay","beforeShow","onSelect","onChangeMonthYear","onClose","numberOfMonths","showCurrentAtPos","stepMonths","stepBigMonths","altField","altFormat","constrainInput","showButtonPanel","autoSize","calendarButtonID","monthDropDownID","yearDropDownID","closeWhenScrolling","dpDiv","bindHover","markerClassName","maxRows","_widgetDatepicker","setDefaults","extendRemove","_attachDatepicker","inlineSettings","attrName","attrValue","inline","uuid","_newInst","_connectDatepicker","_inlineDatepicker","selectedDay","selectedMonth","selectedYear","drawMonth","drawYear","_attachments","keydown","_doKeyDown","keypress","_doKeyPress","_doKeyUp","_get","_autoSize","_showDatepicker","dateField","_hideDatepicker","timepicker","date","findMax","names","maxI","setMonth","setDate","getDay","_formatDate","divSpan","_setDate","_getDefaultDate","_updateDatepicker","_updateAlternate","_dialogDatepicker","_dialogInst","_dialogInput","_pos","browserWidth","clientWidth","browserHeight","clientHeight","scrollX","scrollY","blockUI","_destroyDatepicker","$target","_enableDatepicker","_disableDatepicker","_isDisabledDatepicker","_getInst","_optionDatepicker","_getDateDatepicker","_getMinMaxDate","_changeDatepicker","_refreshDatepicker","_setDateDatepicker","noDefault","_setDateFromField","_getDate","handled","_selectDay","_adjustDate","_clearDate","_gotoToday","chars","_possibleChars","chr","lastVal","parseDate","_getFormatConfig","tp_inst","updateTimePicker","addDatePickerClasses","mozilla","removeDatePickerClasses","_lastInput","_triggerOnClose","_findPos","isFixed","opera","_checkOffset","flipTail","calendarButtonSelector","tailSelector","verticalOverlap","rightOffset","leftOffset","topOffset","postProcess","cover","_getBorders","_generateHTML","yearSpriteAdjustment","monthSpriteAdjustment","rowCount","topOfDropDown","bottomOfCalendar","inputTop","inputHeight","hideTailID","msDropDown","msdrpddID","visibleRows","useSprite","readOnly","dropEditBoxClass","dropWidth","dropMarginLeft","dropPaddingLeft","spriteScrollAdjustment","hideTail","numMonths","_getNumberOfMonths","cols","yearshtml","origyearshtml","convert","thin","medium","thick","dpWidth","dpHeight","inputWidth","viewWidth","viewHeight","_tidyDialog","unblockUI","elementSelector","_checkExternalClick","period","_adjustInstDate","currentDay","currentMonth","currentYear","getDate","getMonth","getFullYear","_notifyChange","_selectMonthYear","_selectingMonthYear","_clickMonthYear","month","year","_selectDate","dateStr","formatDate","noWeekends","day","checkDate","format","doy","literal","lookAhead","iFormat","getNumber","isDoubled","digits","iValue","getName","shortNames","longNames","pair","substr","checkLiteral","_ticksTo1970","dim","_getDaysInMonth","_daylightSavingAdjust","ATOM","COOKIE","ISO_8601","RFC_822","RFC_850","RFC_1036","RFC_1123","RFC_2822","RSS","TICKS","TIMESTAMP","W3C","formatNumber","formatName","output","getYear","dates","_restrictMinMax","_determineDate","offsetNumeric","offsetString","newDate","setHours","setMinutes","setSeconds","setMilliseconds","getHours","noChange","clear","origMonth","origYear","startDate","today","isMultiMonth","currentDate","maxDraw","_canAdjustMonth","gotoDate","controls","buttonPanel","_isInRange","row","selectedDate","cornerClass","calender","_generateMonthYearHeader","dow","daysInMonth","leadDays","_getFirstDayOfMonth","curRows","ceil","numRows","printDate","dRow","daySettings","otherMonth","unselectable","monthHtml","inMinYear","inMaxYear","years","thisYear","determineYear","endYear","onChange","minMax","curYear","curMonth","callCheckExternalClick","initialized","otherArgs","uiDialogClasses","sizeRelatedOptions","resizableRelatedOptions","autoOpen","closeOnEscape","dialogClass","modal","title","originalTitle","titleId","dialog","getTitleId","uiDialog","aria-labelledby","moveToTop","uiDialogContent","uiDialogTitlebar","uiDialogTitlebarClose","uiDialogTitlebarCloseText","uiDialogTitle","beforeclose","beforeClose","_makeDraggable","_makeResizable","_createButtons","_isOpen","overlay","maxZ","thisZ","isOpen","saveScroll","$el","_size","_position","tabbables","hasButtons","uiDialogButtonPane","uiButtonSet","heightBeforeDrag","filteredUi","resizeHandles","_minHeight","myAt","offsetPosition","resizableOptions","isDraggable","isResizable","nonContentHeight","minContentHeight","create","instances","oldInstances","Cartegraph","Browser","isFirefox","$overlays","horizontalPositions","verticalPositions","center","_offset","targetElem","targetWidth","targetHeight","basePosition","elemWidth","elemHeight","collisionWidth","collisionHeight","collisionPosition","fit","flip","myOffset","atOffset","aria-valuemin","aria-valuemax","aria-valuenow","_value","valueDiv","oldValue","_refreshValue","_percentage","percentage","toFixed","progressbar","numPages","orientation","range","existingHandles","handleCount","_keySliding","_mouseSliding","_animateOff","_handleIndex","_detectOrientation","_valueMin","allowed","curVal","newVal","_start","_valueMax","_trimAlignValue","_slide","_stop","normValue","closestHandle","mouseOverHandle","elementSize","_normValueFromMouse","thisDistance","_clickOffset","pixelTotal","pixelMouse","percentMouse","valueTotal","valueMouse","uiHash","otherVal","newValues","vals","_values","valsLength","valModStep","alignValue","oRange","valPercent","_set","lastValPercent","valueMin","valueMax","slider","tabId","listId","getNextTabId","getNextListId","ajaxOptions","cookie","idPrefix","panelTemplate","spinner","tabTemplate","_tabify","_tabId","_sanitizeSelector","_cookie","_ui","tab","panel","anchors","_cleanup","lis","fragmentId","panels","hrefBase","baseEl","$panel","li","addState","removeState","hideFx","showFx","resetStyle","showTab","$show","hideTab","$hide","$li","_getIndex","span","tabs","rotation","rotate","ms","continuing","_rotate","_unrotate","nextBigText","nl","touch","mouseProto","touchHandled","simulateMouseEvent","simulatedType","touches","changedTouches","simulatedEvent","createEvent","initMouseEvent","screenX","screenY","dispatchEvent","_touchStart","_touchMoved","_touchMove","_touchEnd","validate","validator","onsubmit","cancelSubmit","submitHandler","submitButton","currentForm","pendingRequest","formSubmitted","focusInvalid","valid","removeAttrs","rules","command","staticRules","existingRules","normalizeRule","messages","normalizeRules","metadataRules","classRules","attributeRules","required","blank","filled","unchecked","defaults","errorClass","validClass","errorElement","errorContainer","errorLabelContainer","ignore","ignoreTitle","onfocusin","focusCleanup","blockFocusCleanup","unhighlight","addWrapper","errorsFor","onfocusout","checkable","submitted","optional","onkeyup","lastElement","onclick","remote","email","dateISO","number","creditcard","equalTo","maxlength","minlength","rangelength","autoCreateRanges","labelContainer","errorContext","valueCache","invalid","eventType","validateDelegate","invalidHandler","checkForm","errorMap","showErrors","prepareForm","currentElements","prepareElement","numberOfInvalids","errors","errorList","findByName","successList","defaultShowErrors","resetForm","hideErrors","objectLength","findLastActive","rulesCache","dependencyMismatch","rule","parameters","methods","formatAndAdd","customMetaMessage","meta","customMessage","findDefined","defaultMessage","theregex","toToggle","showLabel","validElements","invalidElements","idOrName","generated","errorPlacement","getLength","depend","dependTypes","boolean","function","startRequest","stopRequest","previousValue","classRuleSettings","dateDE","numberDE","addClassRules","depends","keepRule","parameter","transformed","addMethod","originalMessage","port","nCheck","nDigit","bEven","cDigit","pendingRequests","focusin","focusout","$jQval","adapters","data_validation","setValidationValues","ruleName","splitAndTrim","getModelPrefix","fieldName","lastIndexOf","appendModelPrefix","onError","inputElement","onErrors","onSuccess","validationInfo","$form","attachValidation","unobtrusive","parseElement","skipAttach","valInfo","paramValues","adapt","__dummy__","info","adapterName","addBool","addMinMax","minRuleName","maxRuleName","minMaxRuleName","minAttribute","maxAttribute","addSingleVal","other","fullOtherName","additionalfields","paramName","autocompletegrid","str_hashchange","fake_onhashchange","doc_mode","supports_onhashchange","get_fragment","timeout_id","last_hash","fn_retval","history_set","history_get","poll","history_hash","iframe_src","contentWindow","onpropertychange","propertyName","iframe_doc","domain","getElementSelection","selectionStart","createRange","moveStart","selectionEnd","setElementSelection","createTextRange","collapse","moveEnd","runCallbacks","io","kind","fun","autoNumeric","convertKeyToNumber","autoCode","vmax","vMax","vmin","vMin","aNeg","mDec","altDec","aDec","aSep","aNegReg","_aNegReg","_skipFirst","_skipLast","aNum","_allowed","_numReg","autoStrip","strip_zero","aSign","strip_reg","truncateDecimal","fixNumber","presentNumber","autoCheck","checkEmpty","iv","signOnEmpty","wEmpty","autoGroup","digitalGroup","dGroup","ivSplit","has_aNeg","pSign","autoRound","mRound","aPad","ivRounded","nSign","rDec","truncateZeros","regex","dPos","vdPos","cDec","zeros","rLength","tRound","ivArray","autoNumericHolder","$that","formatted","cmdKey","kdCode","processed","setSelection","setReal","setPosition","getBeforeAfter","getBeforeAfterStriped","normalizeParts","strip","new_value","setValueParts","signPosition","aSignLen","hasNeg","valueLen","expandSelectionOnSign","sign_position","checkPaste","valuePartsBeforePaste","oldParts","change","skipAllways","processAllways","processKeypress","cCode","formatQuick","left_ar","leftReg","newLeft","getData","getHolder","holder","getOptions","onInit","aForm","autoNumericSet","autoNumericGet","onKeyDown","onKeyPress","onKeyUp","skip","inVal","alwaysNotify","ValidationHelpers","islegacyValidationSetup","onFocusIn","onempty","onFocusOut","origValue","emptyStringIsNumeric","groupedValue","keydown.autoNumeric","keypress.autoNumeric","keyup.autoNumeric","focusin.autoNumeric","focusout.autoNumeric","autoGet","Strip","ii","Format","Timepicker","ampm","timeFormat","timeSuffix","timeOnlyTitle","timeText","hourText","minuteText","secondText","timezoneText","timeOnly","showHour","showMinute","showSecond","showTimezone","showTime","stepHour","stepMinute","stepSecond","hour","minute","timezone","hourMin","minuteMin","secondMin","hourMax","minuteMax","secondMax","minDateTime","maxDateTime","hourGrid","minuteGrid","secondGrid","alwaysSetTime","separator","altFieldTimeOnly","showTimepicker","timezoneList","$input","$altInput","$timeObj","hour_slider","minute_slider","second_slider","timezone_select","hourMinOriginal","minuteMinOriginal","secondMinOriginal","hourMaxOriginal","minuteMaxOriginal","secondMaxOriginal","formattedDate","formattedTime","formattedDateTime","dp_inst","_updateDateTime","dateText","timeDefined","_addTimePicker","currDT","_parseTime","_limitMinMaxDateTime","_injectTimePicker","timeString","withDate","regstr","_getFormatPositions","treg","dp_dateFormat","specials","z","finds","orders","$dp","dp_id","colModelArray","colNames","baseUrl","Utilities","getBaseURL","colModel","colName","rowNum","timeControl","maxVisibleRows","dateTime","DateTimeUtilities","upperDateTime","upperTime","adjustSliders","dp_date","minDateTimeDate","getMinutes","getSeconds","maxDateTimeDate","secMax","_onTimeChange","hasChanged","_formatTime","_onSelectHandler","inputEl","tmptime","hour12","dt","dateFmt","formatCfg","timeAvailable","tmp_args","datetimepicker","_base_selectDate","stay_open","_base_updateDatepicker","_base_doKeyPress","dateChars","datetimeChars","_base_doKeyUp","_base_gotoToday","_setTime","_disableTimepickerDatepicker","_enableTimepickerDatepicker","_setTimeDatepicker","tp_date","_base_setDateDatepicker","_base_getDateDatepicker","_base_parseDate","parseCarteDate","_base_optionDatepicker","oldManip","tmplItmAtt","htmlExpr","newTmplItems","wrappedItems","appendToTmplItems","topTmplItem","itemKey","cloneIndex","newTmplItem","parentItem","newItem","_wrap","tmpl","calls","tiCalls","nest","tiNest","tiWrap","tiHtml","tiUpdate","_ctnt","tmplItems","tmplItem","template","table","dmArgs","argsLength","fragClone","afterManip","topLevel","wrapped","updateWrapped","build","dataItem","buildTmplFn","encode","$2","if","else","$1","=","!","storeTmplItems","nested","frag","middle","unencode","markup","Function","slash","fnargs","parens","exprAutoFnDetect","unescape","outerHtml","keySuffix","newClonedItems","processItemKey","pntKey","pntNode","pntItem","cloneTmplItem","textOnly","outerHTML","coll","mousewheel","onmousewheel","unmousewheel","orgEvent","deltaX","deltaY","wheelDelta","detail","HORIZONTAL_AXIS","wheelDeltaY","wheelDeltaX","_fadeIn","noOp","setExpr","ie6","install","growlUI","$m","centerY","showOverlay","onUnblock","growlCSS","block","unblock","theme","textAlign","themedCSS","overlayCSS","-webkit-border-radius","-moz-border-radius","border-radius","iframeSrc","forceIframe","baseZ","centerX","allowBodyStretch","bindEvents","constrainTabKey","focusInput","applyPlatformOpacityRules","onBlock","quirksmodeOffsetHack","blockMsgClass","pageBlock","pageBlockEls","full","lyr1","lyr2","lyr3","platform","layers","$par","boxModel","sz","fixT","fixL","setExpression","cb","cb1","cb2","fwd","back","expires","days","toUTCString","path","secure","decode","decodeURIComponent","jgrid","recordtext","emptyrecords","loadtext","pgtext","Find","Reset","odata","groupOps","matchText","rulesText","edit","addCaption","editCaption","bSubmit","bCancel","bClose","saveData","bYes","bNo","bExit","minValue","maxValue","integer","nodefined","novalue","customarray","customfcheck","view","del","nav","edittext","edittitle","addtext","addtitle","deltext","deltitle","searchtext","searchtitle","refreshtext","refreshtitle","alertcap","alerttext","viewtext","viewtitle","errcap","nourl","norecords","model","formatter","thousandsSeparator","decimalSeparator","decimalPlaces","currency","AmPm","S","srcformat","newformat","masks","ISO8601Long","ISO8601Short","ShortDate","LongDate","FullDateTime","MonthDay","ShortTime","LongTime","SortableDateTime","UniversalSortableDateTime","YearMonth","reformatAfterEdit","baseLinkUrl","showAction","idName","keydownScrollLatency","mouseScrollLatency","scrollStopLatency","fireClick","activeAjaxRequest","htmlDecode","charCodeAt","htmlEncode","getCellIndex","cell","cellIndex","stripHtml","regexp","stripPref","pref","stringToDoc","xmlString","xmlDoc","parser","loadXML","jsonString","js","useJSON","tsp","u","hl","dM","regdate","dfmt","afmt","h12to24","ty","jqID","sid","uidPref","randId","getAccessor","prm","getXmlData","returnObj","initalQuery","queryObject","q","_usecase","_trim","_query","_stripNum","_lastCommand","_lastField","_orDepth","_negate","_queuedOperator","_sorting","_useProperties","_hasData","_getStr","phrase","_strComp","_group","f","field","_toStr","_funcLoop","_append","_setCommand","_resetNegate","_repeatCommand","_equals","_compare","_performSort","_doSort","by","datefmt","_getOrder","_getGroup","sorted","sortData","_sortData","newDir","ab","findSortKey","$cell","vSort","nrec","ignoreCase","useCase","noTrim","execute","hasMatch","andNot","and","orNot","or","orBegin","orEnd","isNot","_compareValues","how","fld","swst","stype","newfmt","srcfmt","equals","notEquals","isNull","greater","less","greaterOrEquals","lessOrEquals","startsWith","endsWith","groupBy","orderBy","jqGrid","no_legacy_api","pin","getScrollBarWidth","inner","outer","w1","w2","pageClassName","isChild","page","rowTotal","records","pager","pgbuttons","pginput","rowList","sortorder","sortname","sortinfo","datatype","mtype","altRows","selarrrow","savedRow","shrinkToFit","xmlReader","jsonReader","subGrid","subGridModel","reccount","lastpage","lastsort","selFound","selrow","beforeSelectRow","onSelectRow","onSortCol","ondblClickRow","onRightClickRow","onPaging","onSelectAll","loadComplete","gridComplete","loadError","loadBeforeSend","afterInsertRow","beforeRequest","beforeProcessing","onHeaderClick","viewrecords","loadonce","multiselect","multikey","editurl","hidegrid","hiddengrid","postData","userData","treeGrid","treeGridModel","treeReader","treeANode","ExpandColumn","tree_root_level","prmNames","nd","oper","editoper","addoper","deloper","subgridid","npage","totalrows","forceFit","gridstate","cellEdit","cellsubmit","nv","loadui","toolbar","multiboxonly","deselectAfterSort","scrollrows","autowidth","restoreScroll","carte_stretchLastColumn","carte_stretchLastColumnIndex","scrollOffset","carte_frozenLeftLastIndex","carte_frozenRightFirstIndex","onHorizontalScrollbarVisibilityChange","carte_showFieldChooser","carte_className","carte_qtipAPI","cellLayout","subGridWidth","multiselectWidth","gridview","rownumWidth","rownumbers","pagerpos","recordpos","footerrow","userDataOnFooter","hoverrows","altclass","viewsortcols","resizeclass","autoencode","remapColumns","ajaxGridOptions","toppager","headertitles","scrollTimeout","_index","grouping","groupingView","groupField","groupOrder","groupText","groupColumnShow","groupSummary","showSummaryOnHide","sortitems","sortnames","groupDataSorted","summary","summaryval","plusicon","minusicon","cmTemplate","_sortedColumns","isLookup","isTimeControl","carte_RowSelection","carte_SelectedRows","carte_DisabledSelectedRowsInView","carte_DisabledSelectedRows","carte_IsInDesignMode","stopAjaxCalls","footers","startX","sOL","hDiv","curGbox","resizeStart","onselectstart","dragMove","hn","nWn","tblwidth","dragEnd","bDiv","horizontalScrollContainer","sDiv","resizeStretchColumn","resizeStop","FlexUI","persistGridSettings","newStretchColumnWidth","stretchColumn","widthOrg","populateVisible","rh","needToPopulate","prevRowHeight","pv","rn","ttop","tbot","loading","selectionPreserver","emptyRows","populate","scrollGrid","sr","sra","alert","useProp","hasExistingStretchLastColumn","frozen","gv","isMSIE","isSafari","eg","cellspacing","cellpadding","aria-multiselectable","sortkeys","intNum","defval","formatCol","rowInd","tv","rawObject","rowId","rdata","cm","ral","align","clas","nm","celp","acp","cellattr","cellVal","cellval","colpos","rwdat","_act","gid","fmatter","addCell","irow","srvr","prp","addMulti","rowid","addRowNum","pG","rN","reader","xmlmap","jsonmap","orderedCols","locdata","deepempty","trf","refreshIndex","datalen","idname","ni","gi","si","keyIndex","localReader","addXmlData","rcnt","more","adjust","startReq","xmlid","xmlRd","frd","fpos","ir","idn","getId","F","rd","xmlr","rid","rowData","cn","cn1","repeatitems","trow","total","userdata","gxml","gl","grpdata","br","altr","afterInsRow","hiderow","groupCollapse","grlen","grpitem","totaltime","updatepager","cells2","addJSONData","dReader","locid","drows","idr","lp","rowData_frozenLeft","rowData_frozenRight","ccur","classNameOidAttr","ccur2","addLocalData","st","fndsort","cmtypes","grtypes","grindexes","sorttype","grpview","formatoptions","grindex","compareFnMap","queryObj","le","ge","nc","bw","bn","en","ew","in","nu","nn","query","tojLinq","gor","ror","opr","groupOp","g","srules","searchOper","searchField","searchString","queryResults","recordsperpage","totalpages","retresult","dnd","tot","fmt","pgboxes","sppg","tspg","tspg_t","isIE","isIE11","util","NumberFormat","jqgdnd","_complete","beginReq","endReq","pvis","dstr","pN","altSortField","lc","lcf","req","bfr","serializeGridData","removeWaitScreen","gotoreq","Routing","datastr","setHeadCheckBox","fid","frozenColumns","frozenHeaderLeftDiv","setPager","pgid","tp","sep","pginp","pgl","pgcnt","lft","cent","rgt","twd","tdw","clearVals","onpaging","_nvtd","selclick","fp","pp","np","idxcol","reload","sor","newColumnSort","newSelectedTh","columnSort","SortInfo","sscroll","setColWidth","initwidth","brd","vc","lvc","scw","hs","aw","gw","cl","cr","fixed","stretchColumnWidth","nextVisible","iCol","getOffset","brd1","$headers","cDiv","uDiv","topDiv","getColumnHeaderIndex","ci","hidedlg","subgrid","tdc","ptr","imgs","iac","idc","initialSort","splitArray","splitArrayOnValue","sortItem","tooltip","toolTip","supressCheckAll","Resources","SortSelectedRecords","sortsvg","emp","chk","froz","frozenLeftTable","pw","thr","firstr","disableClick","frozenColumnsIDs","hdcol","limit","Limits","ItemSelectMax","limitString","accounting","errorDialog","CannotSelectAll","ToManyRecordsInListFilterToLess","hTable","hg","hb","ri","scb","cSel","rowIndex","frz","ind","namedItem","onCellSelect","treedatatype","forcePopulate","dblclick","horizontalScrollbar","overflow-x","overflow-y","verticalContainer","tablesContainer","jq_grid_throttle","arf","ubDiv","tdt","onHdCl","mousemove","handleMouseUp","act","rest","getGridParam","pName","setGridParam","newParams","getDataIDs","ids","selectAllItems","Insights","showWaitScreen","ProcessingSelectAll","strBounds","Map","mapViewWithFilterBoundsAsString","timeSheetDate","Timesheet","entryDate","IsoDateFormat","selectAllRowsEvent","SelectAllRowsInsightsEvent","AppInsightsService","startTrackingEvent","measurement","RecordCount","Uri","addQueryParam","stopTrackingEvent","clearAllItems","ProcessingClearAll","selectedRows","pendingRemoves","difference","CGCrossAssetGrid","cgTimesheetsClassGrid","cgConditionGroupsClassGrid","drill_DownGrid","enableMenus","toggleSelection","oid","getOid","getClassname","setSelectedItemsCountInfo","AjaxURL","bounds","sortBySelectedItems","setDisabledSelectedItemsInView","disabledSelectedItemsInView","getDisabledSelectedItems","setDisabledSelectedItems","disabledSelectedItems","allSelectedRows","union","getSelectedItems","setSelectedItems","removed","disabledRows","enabledSelectedRows","rowsToDisable","rowsToSelect","clearSelectedItems","enabledSelectedRowsInView","isRowSelected","rowID","selectedItems","onsr","classnameoid","stat","pt","ner","ia","tpsr","selectionUpperCase","scrGrid","iR","rpos","offsetTop","highlightClass","scrollCarteGrid","selRow","rowHeight","tableTop","selRowTop","selRowBottom","buffer","tabindex","getTotalRecordCount","scrollToOidAndHighlight","oldUrl","abortActiveAjaxRequest","isReloading","restoreScrollTopAndHighlight","restoreHighlight","resetSelection","iRow","getRowData","resall","getall","unformat","delRowData","setRowData","cssp","vl","lcdata","addRowData","sind","aradd","cnm","cna","air","footerData","isEmpty","showHideCol","colname","fndh","gh","groupHeader","hideCol","showCol","carte_showHideCol","carte_hideCol","carte_showCol","carte_getColumns","$ts","permutation","updateCells","keepHeader","resortArray","ac","resortRows","clobj","expColInd","setGridWidth","nwidth","shrink","cle","setGridHeight","nh","$bDiv","recalculateHorizontalScrollbar","verticalScroll","horizontalScroll","$horizontalScrollbar","isHorizontalVisible","frozenRightDiv","setCaption","newcap","setLabel","nData","attrp","thecol","ico","setCell","forceupd","tcell","getCell","getCol","mathopr","ln","newSortInfo","clearGridData","clearfooter","getInd","rc","rw","bindKeys","onEscape","onTab","onAltUp","onBackspace","onEnter","onSpace","onLeftKey","onRightKey","scrollingRows","mind","expanded_field","previousSibling","unbindKeys","getLocalRow","getColProp","cM","setColProp","sortGrid","GridDestroy","GridUnload","defgrid","newtable","setGridState","filterToolbar","autosearch","searchOnEnter","beforeSearch","afterSearch","beforeClear","afterClear","searchurl","stringResult","defaultSearch","ftoolbar","triggerToolbar","sdata","sopt","so","searchoptions","sd","ruleGroup","saveurl","bsr","clearToolbar","v1","bcv","toggleToolbar","trow2","jElem","timeoutHnd","thd","soptions","surl","dataUrl","buildSelect","dataInit","dataEvents","ajaxSelectOptions","oSv","editoptions","sv","ov","df","destroyGroupHeader","nullHeader","$tr","$th","$resizing","hc","setGroupHeaders","useColSpanStyle","groupHeaders","cmi","$colHeader","thStyle","cghi","numberOfColumns","titleText","cVisibleColumns","cml","ths","$htable","$trLabels","$thead","$theadInTable","originalResizeStop","$firstHeaderRow","aria-hidden","$firstRow","inColumnHeader","columnHeaders","startColumnName","border-top","$parent","setFrozenColumns","hth","orgEvents","frozenLeftHeaderDiv","totalOuterWidth","frozenLeftDiv","frozenRightHeaderDiv","frozenRightTable","addGridButtons","taskGridIDs","isOnContainerSummaryScreen","$calendarButton","uriMapper","URIMapper","calendarType","isOnIndex","isOnWork","isOnAssets","isOnResources","blockWidget","showBlockWidget","cssClass","blockTabs","bKeepScreenHidden","hideBlockOverlay","TaskCalendar","calendarDivId","parentID","CurrentAsset","stopApplyBindingsDiv","applyBindingsDiv","exportButton","ko","applyBindings","$fieldChooser","$thisDiv","$canvas","$sortBySelection","isActive","buildFieldChooserQtip","targetDiv","getColumnID","replaceTrailingField","relativeToChooser","qtipChooser","qtip","viewport","render","api","isContainerSummaryGrid","isNullOrUndefined","containerComponentData","ContainerSummaryGrid","fieldchooser","focused","fieldsThroughLookup","multilevel","standAlone","keepOpen","borderless","ddClass","quantityAsSingleField","onLoadComplete","fieldListType","eFieldListType","AssetSummaryGridColumnSelector","GridColumnSelector","tip","multiselectAssocAry","relativity","OK","defaultButton","initDialog","NoColumnsSelected","LeastOneColumnBeSelectedDialog","colModelAssocAry","addedColumnsAry","removedColumnsAry","colID","applyColumnChooser","solo","corner","destroyFrozenColumns","frozenHeaderRightDiv","frozenRightBodyDiv","jqm","closeoverlay","overlayClass","closeClass","ajaxText","toTop","onShow","onHide","onLoad","_jqm","H","jqmAddTrigger","jqmAddClose","jqmShow","jqmHide","cc","z-index","A","L","Top","Left","jqDrag","jqResize","ar","jqDnR","dnr","M","E","X","pX","Y","pY","W","M1","E1","J","aR","f1","dpe","mouseup","xmlJsonClass","xml2json","nws","removeWhite","toObj","toJson","json2xml","toXml","sXml","hasChild","FuncTest","textChild","cdataChild","hasElementChild","escape","innerXml","wellform","newline","asXml","txt","normalize","nxt","isBoolean","isObject","isString","isNumber","isUndefined","isValue","formatType","rwd","bNegative","sOutput","sDecimalSeparator","nDotIndex","nDecimalPlaces","nDecimal","sThousandsSeparator","sNewOutput","nCount","DateFormat","timezoneClip","msDateRegExp","msMatch","pad","timestamp","i18n","getTimezoneOffset","setTime","G","getMilliseconds","N","flags","D","B","I","O","P","T","Z","U","$0","defaultFormat","cval","ds","bchk","link","showlink","addParam","idUrl","oSelect","msl","multiple","scell","rowactions","onEdit","afterSave","afterRestore","extraparam","delOptions","editOptions","saverow","restorerow","opers","actions","editbutton","delbutton","editformbutton","ocl","cnt","re","unformatFunc","stripTag","cbv","rv","showModal","closeModal","hideModal","gb","oncret","findPos","offsetLeft","createModal","aIDs","insertSelector","posSelector","appendsel","mw","rtlsup","gbox","themodal","mh","modalhead","ahr","mc","modalcontent","jqModal","coord","oncm","gboxclose","parentZ","rtlt","scrollelm","cone","viewModal","jqM","info_dialog","c_b","modalopt","mopt","dataheight","buttonalign","jm","buttstr","onClick","beforeOpen","afterOpen","createEl","eltype","ajaxso","bindEv","setAttributes","elm","atr","exl","exclude","multiline","vl1","defaultChecked","cbval","ovm","custom_element","celm","daysInFebruary","DaysArray","yln","dln","mln","dv","strDate","checkTime","regs","checkValues","valref","customobject","nam","edtrul","dft","editrules","formoptions","rqfield","custom_func","jqFilter","columns","afterRedraw","errmsg","errorcheck","showQuery","ops","description","numopts","stropts","_gridsopt","groupButton","ruleButtons","initFilter","inputtype","searchtype","searchrules","checkData","colModelItem","onchange","reDraw","createTableForGroup","parentgroup","groupOpSelect","inputAddSubgroup","inputAddRule","searchable","ignoreHiding","searchhidden","inputDeleteGroup","trHolderForSubgroup","tdFirstHolderForSubgroup","tdMainHolderForSubgroup","createTableRowForRule","trpar","ruleFieldTd","ruleFieldSelect","ina","aoprs","ruleOperatorTd","ruleDataInput","ruleOperatorSelect","ruleDataTd","ruleDeleteTd","ruleDeleteInput","getStringForGroup","getStringForRule","opUF","opC","numtypes","resetFilter","hideError","showError","toUserFriendlyString","getStringRule","toSQLString","filterData","getParameter","addFilter","pfilter","rp_ge","searchGrid","recreateFilter","sField","sValue","sOper","sFilter","loadDefaults","beforeShowSearch","afterShowSearch","onInitializeSearch","closeAfterSearch","closeAfterReset","multipleSearch","multipleGroup","onSearch","onReset","tmplNames","tmplFilters","tmplLabel","showOnLoad","layer","showFrm","IDs","defaultFilters","showFilter","fil","butleft","bS","bC","bQ","colnm","found","bt","cmop","curtempl","fl","stringify","e2","editGridRow","clearAfterAdd","closeAfterEdit","reloadAfterSubmit","onInitializeForm","beforeInitData","beforeShowForm","afterShowForm","beforeSubmit","afterSubmit","onclickSubmit","afterComplete","onclickPgButtons","afterclickPgButtons","editData","recreateForm","addedrow","topinfo","bottominfo","saveicon","closeicon","savekey","navkeys","checkOnSubmit","checkOnUpdate","_savedData","processing","ajaxEditOptions","serializeEditData","viewPagerButtons","gID","frmgr","frmtb","onBeforeShow","onAfterShow","onBeforeInit","copydata","maxCols","postdata","extpost","newData","closeovrl","getFormData","custom_value","ofv","selectedText","createData","tb","maxcols","trdata","dc","elc","retpos","tdtmpl","edithidden","editable","edittype","frmopt","elmprefix","elmsuffix","rowabove","rowcontent","rp","rowpos","newdata","idrow","fillData","fmid","vlc","tre","opv","setNulls","NullIfEmpty","postIt","onCS","selr","beforeCheckValues","retvals","tr_par_id","parent_id_field","itm","Status","errorTextFormat","closeAfterAdd","useDataProxy","dataProxy","dpret","compareData","nObj","oObj","checkUpdates","restoreInline","restoreRow","updateNav","totr","getCurrPos","rowsInGrid","frm","tbl","fmto","flr","rtlb","bP","bN","tms","wkey","zI","npos","ppos","posInit","viewGridRow","labelswidth","focusaref","tdtmpl2","fmtnum","max1","max2","maxw","setme","viewfld","viewable","text-align","trv","delGridRow","rowids","delData","delicon","cancelicon","ajaxDelOptions","serializeDelData","dtbl","postd","pk","toarr","navGrid","pEdit","pAdd","pDel","pSearch","pView","editicon","addicon","searchicon","refreshicon","refreshstate","viewicon","beforeRefresh","afterRefresh","cloneToTop","alertwidth","alertheight","alerttop","alertleft","alertzIndex","alertIDs","tbd","navtbl","elemids","addfunc","editfunc","viewfunc","dr","delfunc","navButtonAdd","buttonicon","onClickButton","findnav","navSeparatorAdd","sepclass","sepcontent","GridToForm","formid","rowdata","FormToGrid","fields","griddata","inlineEdit","editRow","oneditfunc","successfunc","aftersavefunc","errorfunc","afterrestorefunc","restoreAfterError","svr","treeg","ta","saveRow","tmp2","tmp3","fr","cv","positions","inlineData","resp","serializeRowData","sucret","ajaxRowOptions","ares","addRow","initdata","useDefValues","useFormatter","addRowParams","edioptions","inlineNav","addParams","editParams","afterSavef","savetext","savetitle","canceltext","canceltitle","editCell","ed","knv","ic","formatCell","beforeEditCell","afterEditCell","onSelectCell","saveCell","v2","nmjq","beforeSaveCell","vv","addpost","beforeSubmitCell","cellurl","serializeCellData","afterSubmitCell","afterSaveCell","errorCell","ajaxCellOptions","restoreCell","afterRestoreCell","nextCell","nCol","prevCell","GridNav","kdir","findNextVisible","iC","nROT","pROT","sl","nCOL","pCOL","getChangedCells","mthd","setSubGrid","suboptions","openicon","expandOnLoad","delayOnLoad","selectOnExpand","reloadOnExpand","subGridOptions","addSubGridCell","addSubGrid","subGridCell","trdiv","tddiv","subGridXml","sjxml","sbid","sgmap","dummy","mapping","pID","subGridJson","populatesubgrid","dp","nd_","subgridtype","subGridUrl","serializeSubGridData","sxml","responseXML","ajaxSubgridOptions","_id","atd","nhc","bfsc","subGridBeforeExpand","subGridRowExpanded","subGridRowColapsed","expandSubGridRow","sgc","collapseSubGridRow","toggleSubGridRow","setTreeNode","expCol","isLeaf","leaf_field","level","level_field","icon","icon_field","loaded","curLevel","ident","lftpos","twrap","ldat","lf","dind","expan","left_field","right_field","_treeleafpos","treeIcons","leaf","plus","minus","pn","srcElement","ind2","ExpandColClick","setTreeGrid","pico","ecol","dupcols","tkey","expandRow","record","childern","collapseRow","getRootNodes","parent_id","getNodeDepth","getNodeParent","lftc","rgtc","levelc","dtid","getNodeChildren","getFullTreeNode","getNodeAncestors","ancestors","isVisibleNode","isNodeLoaded","expandNode","rc1","nodeid","n_left","n_right","n_level","parentid","collapseNode","SortTree","rec","roots","rt","collectChildrenSortTree","setTreeRow","delTreeNode","myright","addChildNode","parentindex","parentdata","parentlevel","rowind","maxright","prow","childs","groupingSetup","grp","visibiltyOnNextGrouping","summaryType","groupingPrepare","rData","gdata","groupingToggle","hid","strpos","tar","tarspan","collapsed","onClickGroup","groupingRender","grdata","colspans","pmrtl","egv","kk","hhdr","fdata","tmpdata","tplfld","summaryTpl","ef","groupingGroupBy","groupingRemove","groupingCalculations","avg","jqGridImport","imptype","impstring","impurl","impData","xmlGrid","config","jsonGrid","XmlConvert","cnfg","xmldata","jstr","jstr1","svdatatype","JsonConvert","jsonstr","gprm","jdata","importComplete","xmld","jqGridExport","exptype","exportCSV","gridProperties","exportSelectedItemsOnly","parentOid","parentFilterColumnValue","childLevel","sortedInfo","insightEvent","ExportToCsvAppInsightsEvent","Exporting","fieldNames","displayLabel","filterString","gridID","sortString","linkedClassName","linkedParentOid","linkedRelationshipFilter","linkedAssetData","CurrentAssetClass","CurrentAssetOid","RelationshipFilter","ProceedIfNotDirty","SkipDirtyCheckOnce","$exportBtnParent","fileDownloadId","pathname","sortInfo","assetClassName","assetParentOid","linkedAssetRelationshipFilter","$gridExportForm","numberOfRecords","MixpanelService","gridExportEvent","fileDownloadCheckTimer","cookieValue","excelExport","exportOptions","pdata","_multiselect","_setSelected","setSelected","selectedList","elt","sortableColumns","tblrow","tid","sortable_opts","cmMap","columnChooser","perm","classname","msel","dlog","dlog_opts","apply_perm","cleanup","colMap","ti","calldone","msel_opts","fixedCols","dopts","mopts","sortableRows","_start_","_update_","ev","subgid","gridDnD","updateDnD","datadnd","appender","onstart","dragcopy","onstop","drag_opts","getdata","dropbyname","dropname","dropmodel","beforedrop","datatoinsert","autoid","autoidprefix","droppos","ondrop","drop_opts","gridResize","_alsoResize_","_stop_","optstest","tableToGrid","inputCheckbox","inputRadio","selectMultiple","selectSingle","rowIds","rowChecked","rowPos","uid1","uid2","scrollstart","_self","_args","scrollstop","latency","IsPagingKeyPress","TRUE","FALSE","NULL","QTIP","PLUGINS","MOUSE","usedIDs","uitooltip","defaultClass","fluidClass","hideOffset","replaceSuffix","oldtitle","trackingBound","history","sanitizeOptions","sanitize","QTip","docBody","tooltipID","isPositioning","isDrawing","rendered","checks","convertNotation","notation","levels","setWidget","titlebar","removeTitle","reposition","createButton","aria-label","redraw","createTitle","aria-atomic","updateButton","updateTitle","updateContent","detectImages","images","srcs","imageLoad","iterations","assignEvents","posOptions","IE6","showMethod","hideMethod","ontoTooltip","ontoTarget","inactiveMethod","inactive","repositionMethod","leave","inactiveEvents","showIndex","targetHide","unassignEvents","builtin","^id$","nextid","^content.text$","^content.title.text$","^content.title.button$","^position.(my|at)$","Corner","^position.container$","^show.ready$","^style.classes$","^style.widget|content.title","^events.(render|show|move|hide|focus|blur)$","^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)","abbrev","tracking","aria-live","aria-describedby","initialize","precedance","rmove","rdraw","category","sameTarget","contentOptions","autofocus","qtips","curIndex","newIndex","zindex","cachedEvent","focusedElem","flipoffset","readjust","horizontal","vertical","posLeft","isShift","viewportScroll","myWidth","atWidth","tipWidth","tipAdjust","overflowLeft","overflowRight","isCenter","posTop","myHeight","atHeight","tipHeight","overflowTop","overflowBottom","iOS","imagemap","namespaceURI","svg","adjusted","perc","elemAPI","suppress","newTarget","metadata5","html5","overwrite","hoverIntent","prerender","coffset","titles","Ajax","rscript","^content.ajax","hasSelector","hideFirst","successHandler","errorHandler","xh","area","shape","baseCoords","coords","imageOffset","dimensions","polyCoordinates","compareX","compareY","realX","realY","calculateTip","width2","height2","tips","bottomright","bottomleft","topright","topleft","topcenter","bottomcenter","rightcenter","leftcenter","lefttop","righttop","leftbottom","rightbottom","Tip","qTip","hasCanvas","getContext","mimic","^position.my|style.tip.(corner|mimic|border)$","^style.tip.(height|width)$","^content.title.text|style.(classes|widget)$","newCorner","user","side","backup","isFluid","isTitleTop","borderRadius","moz","calculateSize","bigHyp","ratio","smallHyp","hyp","detectCorner","detectColours","actual","fill","borderSide","borderSideCamel","important","bodyBorder","contentColour","useTitle","colorElem","vml","regular","translate","newSize","clearRect","beginPath","moveTo","lineTo","closePath","fillStyle","strokeStyle","lineWidth","lineJoin","miterLimit","stroke","antialias","coordsize","fillcolor","stroked","userOffset","corners","mtx","point","tPoint","getBBox","getScreenCTM","farthestViewportElement","createSVGPoint","matrixTransform","Modal","overlaySelector","globalNamespace","^show.modal.(on|blur)$","oEvent","modals","targetOnTop","delBlanket","BGIFrame","msOldDiv","dd","sElement","showIcon","mainCSS","animStyle","originalHeight","ddProp","oldSelectedValue","actionSettings","insideWindow","keyboardAction","currentKey","ddList","postElementHolder","postID","postTitleID","postTitleTextID","postChildID","postAID","postOPTAID","postInputID","postArrowID","postInputhidden","ddTitle","arrow","ddChild","ddTitleText","ddOutOfVision","noBorderTop","onActions","elementid","inlineCSS","allOptions","a_array","isFilter","oldHeight","cacheElement","getElement","ele","getPostID","getOptionsProperties","currentOption","matchIndex","createA","currentOptOption","currentopt","aTag","aidoptfix","aid","clsName","sText","sEnabledClass","innerStyle","createATags","childnodes","optChild","createChildDiv","childid","sStyle","createTitleDiv","titleid","arrowid","titletextid","applyEventsOnA","manageSelection","setValue","setInsideWindow","setTitleText","createDropDown","changeInsertionPoint","iWidth","isDateDd","iHeight","setOutOfVision","addRefreshMethods","applyEvents","hightlightArrow","isReadOnly","setTitleImageSprite","getByIndex","selectedA","oldIndex","currentSelected","objid","getInsideWindow","mainid","actions_array","iCount","actionFound","has_handler","sId","navigateA","where","visibleA","totalA","currentP","nextA","spriteIndex","rowheight","toSprite","sClassName","backgroundImg","backgroundPosition","paddingLeft","allSelected","sIndex","evs","checkMethodAndApply","currentSelectedValue","ison","setOriginalProperties","setValueByIndex","changeValue","addRemoveFromIndex","shouldOpenOpposite","main","mH","wH","cH","ani","opp","fireOpenEvent","fireCloseEvent","textBoxID","leftOfDropDown","newVisibleRows","$childId","bottomOfDropDown","defaultLeft","newHasScrollBar","calculatedHeight","currentSelectedItem","onkeydown","wf","showTail","aObj","forceRefresh","objOpt","Option","ifA","dis","addMyEvent","fireEvent","updateCommonVars","author","mydropdown","previousUnderscore","ArrayProto","ObjProto","FuncProto","nativeIsArray","nativeKeys","nativeBind","nativeCreate","Ctor","_wrapped","VERSION","optimizeCb","argCount","accumulator","identity","iteratee","createAssigner","keysFunc","undefinedOnly","baseCreate","MAX_ARRAY_INDEX","isArrayLike","forEach","collect","createReduce","iterator","memo","reduce","foldl","inject","reduceRight","foldr","detect","predicate","findIndex","findKey","negate","every","some","any","includes","include","fromIndex","guard","invoke","isFunc","pluck","findWhere","lastComputed","shuffle","shuffled","rand","sample","sortBy","criteria","behavior","indexBy","countBy","partition","take","initial","tail","compact","flatten","shallow","strict","startIndex","isArguments","without","uniq","isSorted","seen","zip","unzip","createPredicateIndexFinder","findLastIndex","sortedIndex","low","mid","createIndexFinder","predicateFind","executeBound","sourceFunc","boundFunc","callingContext","bound","partial","boundArgs","bindAll","memoize","hasher","address","throttle","later","leading","trailing","debounce","immediate","callNow","compose","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","collectNonEnumProps","nonEnumIdx","allKeys","mapObject","pairs","functions","extendOwn","assign","pick","oiteratee","omit","tap","interceptor","isMatch","aStack","bStack","areArrays","aCtor","bCtor","isEqual","isElement","Int8Array","constant","propertyOf","accum","escapeMap","&","<","\"","'","`","unescapeMap","createEscaper","escaper","testRegexp","replaceRegexp","fallback","idCounter","uniqueId","templateSettings","evaluate","interpolate","noMatch","escapes","\\","\r","\n","
","
","escapeChar","oldSettings","variable","chain","_chain","mixin","valueOf","toJSON","jQueryBridget","bridget","getSize","borderStyle","boxSizing","isBoxSizeOuter","querySelector","paddingRight","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","EvEmitter","_events","_onceEvents","emitEvent","Element","fizzyUIUtils","modulo","removeFrom","getParent","getQueryElement","handleEvent","filterFindElements","HTMLElement","debounceMethod","docReady","toDashed","htmlInit","Outlayer","Item","layout","transition","transform","WebkitTransition","transitionDuration","transitionProperty","transitionDelay","_transn","ingProperties","onEnd","getPosition","_getOption","layoutPosition","getXValue","getYValue","percentPosition","_transitionTo","isTransitioning","getTranslate","onTransitionEnd","isCleaning","goTo","_nonTransition","_removeStyles","enableTransition","staggerDelay","onwebkitTransitionEnd","ontransitionend","onotransitionend","-webkit-transform","disableTransition","removeTransitionStyles","stagger","removeElem","reveal","getHideRevealTransitionEndProperty","onRevealTransitionEnd","hiddenStyle","visibleStyle","onHideTransitionEnd","outlayerGUID","containerStyle","initLayout","originLeft","originTop","resizeContainer","compatOptions","layoutInstant","reloadItems","stamps","stamp","bindResize","_itemize","_filterFindItemElements","itemSelector","getItemElements","_resetLayout","_manageStamps","_isLayoutInited","layoutItems","_getMeasurement","_getItemsForLayout","_layoutItems","_postLayout","isIgnored","_emitCompleteOnItems","_getItemLayoutPosition","isInstant","isLayoutInstant","_processLayoutQueue","updateStagger","_positionItem","_getContainerSize","_setContainerMeasure","getItem","unignore","_find","unstamp","_getBoundingRect","_manageStamp","_boundingRect","_getElementOffset","isResizeBound","unbindResize","onresize","needsResizeLayout","addItems","appended","prepended","revealItemElements","getItems","hideItemElements","Packery","Rect","overlaps","getMaximalFreeRects","canFit","Packer","sortDirection","spaces","sorter","downwardLeftToRight","pack","placeInSpace","columnPack","placed","rowPack","mergeSortSpaces","mergeRects","addSpace","rightwardTopToBottom","rect","dragItemCount","isPlacing","enablePlacing","_setRectSize","disablePlacing","packer","showDropPlaceholder","dropPlaceholder","positionDropPlaceholder","hideDropPlaceholder","shiftPacker","isEnabled","handleDraggabilly","itemDragStart","itemDragMove","itemDragEnd","handleUIDraggable","_getMeasurements","gutter","maxY","maxX","isShifting","_getPackMethod","_setMaxXY","shiftLayout","_applyGridGutter","columnWidth","sortItemsByPosition","updateShiftTargets","_bindFitEvents","shiftPercentResize","resizeShiftPercentLayout","shiftTargetKeys","shiftTargets","_addShiftTarget","_itemDragTime","dragTimeout","classList","bindDraggabillyEvents","_bindDraggabillyEvents","unbindDraggabillyEvents","bindUIDraggableEvents","_bindUIDraggableEvents","unbindUIDraggableEvents","CanvasPrototype","HTMLCanvasElement","hasBlobConstructor","Blob","hasArrayBufferViewSupport","Uint8Array","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","dataURLtoBlob","atob","ArrayBuffer","dataURI","byteString","arrayBuffer","intArray","mimeString","bb","getBlob","toBlob","mozGetAsFile","quality","toDataURL","undef","doctype","iemobile","apiURL","createObjectURL","URL","revokeObjectURL","webkitURL","File","FileReader","FormData","sendAsBinary","chunked","webkitSlice","mozSlice","_rimg","_rcanvas","_rimgcanvas","_rinput","_rdata","_toString","_supportConsoleLog","_supportConsoleLogApply","_SIZE_CONST","_elEvents","_infoReader","_readerEvents","_xhrPropsExport","_isArray","_each","ctx","_extend","dst","_ext","_on","isFileReader","_off","detachEvent","_one","_fixEvent","_supportInputAttr","media","formData","multiPassResize","pingUrl","multiFlash","flashAbortTimeout","withCredentials","staticPath","flashUrl","flashImageUrl","postNameConcat","ext2mime","jpg","tif","image/*","audio/*","video/*","uploadRetry","networkDownRetryTimeout","chunkSize","chunkUploadRetry","chunkNetworkDownRetryTimeout","KB","MB","GB","TB","EMPTY_PNG","newImage","getXHR","_throttle","_idx","_length","_fail","_end","inc","isFail","afor","_next","isFile","isBlob","blob","isCanvas","getFilesFilter","readAsDataURL","_emit","_readAs","readAsBinaryString","_hasSupportReadAs","toBinaryString","readAsArrayBuffer","readAsText","encoding","readAsImage","_fn","dataURL","checkFileObj","ext","getDropFiles","files","dataTransfer","_getDataTransfer","transFiles","transItems","entrySupport","_getAsEntry","entry","_isEntry","isDirectory","_readEntryAsFiles","entryFiles","allEntries","_isRegularFile","yes","getFiles","filterFiles","isInputFile","getTotalSize","getInfo","readers","addInfoReader","mime","eachFn","resultFn","deleted","upload","prepare","beforeupload","fileupload","fileprogress","filecomplete","pause","imageOriginal","imageAutoOrientation","imageTransform","proxyXHR","XHR","dataArray","_getFilesDataArray","_this","_total","_loaded","_nextFile","filesLeft","_file","_fileLoaded","_fileOptions","_simpleClone","currentFile","_getFormData","successful","oFiles","filename","filetype","trans","Form","isOrignTrans","_isOriginTransform","_addFile","toData","matrix","Image","flashEngine","multipart","addOrigin","postName","inp","notRemove","lengthComputable","onreadystatechange","encode64","responseBody","b64","outStr","byte1","byte2","byte3","enc1","enc2","enc3","enc4","Reader","LOADING","getAsEntry","webkitGetAsEntry","fullPath","createReader","firstAttempt","ondone","entries","readEntries","__dimensions","onHover","onDrop","_type","ff","debounceTrigger","offdnd","FileAPI","protocol","publicId","systemId","flashWebcamUrl","getCanvas","exifOrientation","8","3","6","7","4","5","sx","sy","sh","deg","crop","strategy","preview","_apply","canvas","getMatrix","videoWidth","videoHeight","renderImageToCanvas","multipass","rel","globalAlpha","drawImage","er","applyFilter","naturalWidth","naturalHeight","sf","_trans","exif","Orientation","autoOrientation","_transform","ImgTrans","isFn","toCanvas","fromDataURL","doneFn","Caman","ex","loadImage","originalRenderMethod","detectSubsampling","getImageData","detectVerticalSquash","subsampled","ey","py","alpha","sourceX","sourceY","sourceWidth","sourceHeight","destX","destY","destWidth","destHeight","tmpCanvas","tileSize","tmpContext","vertSquashRatio","tileX","tileY","_chunked","toHtmlData","toMultipartData","toPlainData","toFormData","_to","_convertFile","FileAPIReadPosition","retry","boundary","useBinaryString","image/jpeg","image/png","_xhrResponsePostfix","XML","Text","Body","aborted","_send","onLoadFnName","onPostMessage","execCommand","totalSize","lkb","rawData","bytes","getMedia","getUserMedia","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","Camera","video","_active","_successId","_failId","stream","_detectVideoSignal","play","getTracks","track","shot","Shot","publish","cam","_px","_cameraQueue","flash","wid","Flash","_unwrap","patchCamera","camId","camera","onEvent","cmd","flashId","isShot","DEBUG","jQueryInstance","koExports","amdRequire","exportSymbol","koPath","exportProperty","publicName","utils","objectForEach","setPrototypeOf","__proto__","canSetPrototype","knownEvents","knownEventTypesByEventName","keyEventTypeName","knownEventsForType","eventsThatMustBeRegisteredUsingAttachEvent","propertychange","ieVersion","iElems","isIe6","isIe7","isClickOnCheckableElement","tagNameLower","inputType","cssClassNameRegex","toggleDomNodeCssClass","shouldHaveClass","addOrRemoveFn","arrayForEach","toggleObjectClassPropertyString","currentClassNames","addOrRemoveItem","fieldsIncludedWithJsonPost","arrayIndexOf","arrayFirst","predicateOwner","arrayRemoveItem","itemToRemove","arrayGetDistinctValues","arrayMap","arrayFilter","arrayPushAll","valuesToPush","included","existingEntryIndex","peekObservable","setPrototypeOfOrExtend","objectMap","emptyDomNode","domNode","removeNode","moveCleanedNodesToContainerElement","nodesArray","templateDocument","cleanNode","cloneNodes","shouldCleanNodes","newNodesArray","clonedNode","setDomNodeChildren","replaceDomNodes","nodeToReplaceOrNodeArray","nodesToReplaceArray","insertionPoint","fixUpContinuousNodeArray","continuousNodeArray","setOptionNodeSelectionState","optionNode","isSelected","stringTrim","stringStartsWith","domNodeIsContainedBy","containedByNode","domNodeIsAttachedToDocument","anyDomNodeIsAttachedToDocument","registerEventHandler","mustUseAttachEvent","attachEventHandler","attachEventName","domNodeDisposal","addDisposeCallback","triggerEvent","useClickWorkaround","eventCategory","initEvent","unwrapObservable","isObservable","peek","setTextContent","innerTextNode","virtualElements","setElementName","mergeAttributes","ensureSelectElementIsRenderedCorrectly","selectElement","arrayLikeObject","getFormFields","isMatchingField","parseJson","stringifyJson","replacer","space","postJson","urlOrForm","includeFields","originalForm","originalFunction","partialArgs","domData","dataStoreKeyExpandoPropertyName","dataStore","createIfNotFound","dataStoreKey","hasExistingDataStore","allDataForNode","nextKey","domDataKey","cleanableNodeTypes","1","9","cleanableNodeTypesWithDescendants","getDisposeCallbacksCollection","allDisposeCallbacks","destroyCallbacksCollection","cleanSingleNode","callbacks","cleanImmediateCommentTypeChildren","nodeWithChildren","nextChild","removeDisposeCallback","callbacksCollection","descendants","cleanExternalData","leadingCommentRegex","simpleHtmlParse","documentContext","windowContext","tags","jQueryHtmlParse","parseHtmlFragment","setHtml","parsedNodes","memoization","memos","randomMax8HexChars","generateRandomId","findMemoNodes","rootNode","appendToArray","memoId","parseMemoText","unmemoize","callbackParams","unmemoizeDomNodeAndDescendants","extraCallbackParamsArray","combinedParams","memoText","extenders","writeTimeoutInstance","dependentObservable","read","rateLimit","limitFunction","notifyWhen","valuesArePrimitiveAndEqual","primitiveTypes","oldValueIsPrimitive","timeoutInstance","applyExtenders","requestedExtenders","extenderHandler","subscription","disposeCallback","_target","isDisposed","dispose","subscribable","_subscriptions","_versionNumber","defaultEvent","ko_subscribable_fn","subscribe","callbackTarget","boundCallback","afterSubscriptionRemove","beforeSubscriptionAdd","notifySubscribers","valueToNotify","updateVersion","hasSubscriptionsForEvent","dependencyDetection","begin","getVersion","versionToCheck","selfIsObservable","isPending","pendingValue","beforeChange","_origNotifySubscribers","_rateLimitedChange","_rateLimitedBeforeChange","isDifferent","getSubscriptionsCount","eventName","subscriptions","isSubscribable","computedContext","outerFrames","currentFrame","lastId","registerDependency","callbackArgs","getDependenciesCount","isInitial","isSleeping","ignoreDependencies","observable","initialValue","_latestValue","valueWillMutate","valueHasMutated","equalityComparer","protoProperty","hasPrototype","isWriteableObservable","observableArray","initialValues","trackArrayChanges","valueOrPredicate","underlyingArray","removedValues","removeAll","arrayOfValues","allValues","destroyAll","oldItem","methodName","cacheDiffForKnownOperation","methodCallResult","arrayChangeEventName","trackingChanges","cachedDiff","arrayChangeSubscription","pendingNotifications","underlyingBeforeSubscriptionAddFunction","underlyingAfterSubscriptionRemoveFunction","trackChanges","underlyingNotifySubscribersFunction","previousContents","currentContents","changes","getChanges","compareArrays","sparse","rawArray","operationName","arrayLength","pushDiff","endDeleteIndex","endAddIndex","endIndex","deletions","argsIndex","findMovesInArrayComparison","evaluatorFunctionOrOptions","evaluatorFunctionTarget","_needsEvaluation","_isBeingEvaluated","_suppressDisposalUntilDisposeWhenReturnsFalse","_isDisposed","readFunction","pure","addDependencyTracking","trackingObj","dependencyTracking","_order","_dependenciesCount","_version","haveDependenciesChanged","dependency","disposeComputed","evaluatePossiblyAsync","throttleEvaluationTimeout","evaluationTimeoutInstance","evaluateImmediate","_evalRateLimited","notifyChange","disposeWhen","disposalCandidates","disposalCount","toDispose","writeFunction","disposeWhenNodeIsRemoved","disposeWhenOption","hasWriteFunction","originalLimit","dependeciesOrder","_originalGetVersion","isComputed","protoProp","pureComputed","maxNestedObservableDepth","toJS","rootObject","mapJsObjectGraph","valueToMap","plainJavaScriptObject","mapInputCallback","visitedObjects","objectLookup","canHaveProperties","outputProperties","visitPropertiesOrArrayEntries","indexer","propertyValue","previouslyMappedValue","visitorCallback","existingIndex","hasDomDataExpandoProperty","selectExtensions","readValue","bindingHandlers","optionValueDomDataKey","writeValue","allowUnset","optionValue","expressionRewriting","javaScriptReservedWords","javaScriptAssignmentTarget","getWriteableValue","stringDouble","stringSingle","stringRegexp","everyThingElse","oneNotSpace","bindingToken","divisionLookBehind","keywordRegexLookBehind","return","typeof","parseObjectLiteral","objectLiteralString","toks","depth","tok","unknown","twoWayBindings","preProcessBindings","bindingsStringOrKeyValueArray","bindingOptions","processKeyValue","writableVal","callPreprocessHook","bindingParams","propertyAccessorResultStrings","makeValueAccessors","resultStrings","keyValueArray","keyValue","bindingRewriteValidators","keyValueArrayContainsKey","writeValueToProperty","allBindings","checkIfDifferent","propWriters","commentNodesHaveTextProperty","startCommentRegex","endCommentRegex","htmlTagsWithOptionallyClosingChildren","ol","isStartComment","isEndComment","getVirtualChildren","startComment","allowUnbalanced","currentNode","getMatchingEndComment","allVirtualChildren","getUnbalancedChildTags","childNode","captureRemaining","matchingEndComment","allowedBindings","emptyNode","virtualChildren","endCommentNode","containerNode","nodeToPrepend","nodeToInsert","insertAfterNode","hasBindingValue","virtualNodeBindingValue","regexMatch","normaliseVirtualElementDomStructure","elementVerified","unbalancedTags","nodeToInsertBefore","defaultBindingAttributeName","bindingProvider","bindingCache","nodeHasBindings","components","getBindings","bindingContext","bindingsString","parsedBindings","addBindingsForCustomElement","getBindingAccessors","valueAccessors","getBindingsString","parseBindingsString","bindingFunction","createBindingsStringEvaluatorViaCache","cacheKey","createBindingsStringEvaluator","rewrittenBindings","functionBody","bindingDoesNotRecurseIntoElementTypes","textarea","bindingKey","dataItemOrAccessor","parentContext","dataItemAlias","extendCallback","updateContext","dataItemOrObservable","_subscribable","_addNode","makeValueAccessor","evaluateValueAccessor","valueAccessor","makeAccessorsFromFunction","makeBindingAccessors","bindings","getBindingsAndMakeAccessors","validateThatBindingIsAllowedForVirtualElements","bindingName","applyBindingsToDescendantsInternal","elementOrVirtualElement","bindingContextsMayDifferFromDomParentElement","currentChild","nextInQueue","provider","preprocessNode","applyBindingsToNodeAndDescendantsInternal","nodeVerified","bindingContextMayDifferFromDomParentElement","shouldBindDescendants","shouldApplyBindings","applyBindingsToNodeInternal","boundElementDomDataKey","topologicalSortBindings","bindingsConsidered","cyclicDependencyStack","pushBinding","binding","bindingDependencyKey","sourceBindings","alreadyBound","storedBindingContextForNode","bindingsUpdater","bindingHandlerThatControlsDescendantBindings","getValueAccessor","orderedBindings","bindingKeyAndHandler","handlerInitFn","handlerUpdateFn","initResult","storedBindingContextDomDataKey","getBindingContext","viewModelOrBindingContext","applyBindingAccessorsToNode","applyBindingsToNode","applyBindingsToDescendants","contextFor","dataFor","loadingSubscribablesCache","loadedDefinitionsCache","componentName","cachedDefinition","getObjectOwnProperty","isSynchronousComponent","definition","loadComponentAndNotify","clearCachedDefinition","_getFirstResultFromLoaders","getFirstResultFromLoaders","completedAsync","beginLoadingComponent","argsExceptCallback","candidateLoaders","currentCandidateLoader","methodInstance","wasAborted","synchronousReturnValue","defaultConfigRegistry","register","isRegistered","unregister","defaultLoader","getConfig","loadComponent","errorCallback","makeErrorCallback","possiblyGetConfigFromAmd","loadedConfig","resolveConfig","loadTemplate","templateConfig","resolveTemplate","loadViewModel","viewModelConfig","resolveViewModel","createViewModelKey","makeCallBackWhenZero","tryIssueCallback","resolvedTemplate","resolvedViewModel","isDocumentFragment","isDomElement","cloneNodesFromTemplateSourceElement","elemInstance","fixedInstance","componentInfo","DocumentFragment","_allRegisteredComponents","componentBindingValue","getComponentParamsFromCustomElement","nativeBindingProviderInstance","paramsAttribute","rawParamComputedValues","paramValue","paramValueComputed","$raw","newDocFrag","allComponents","componentLoadingOperationUniqueId","ignored1","ignored2","currentViewModel","currentLoadingOperationId","disposeAssociatedComponentViewModel","currentViewModelDispose","originalChildNodes","componentParams","loadingOperationId","componentDefinition","cloneTemplateIntoElement","componentViewModel","createViewModel","childBindingContext","controlsDescendantBindings","clonedNodesArray","componentViewModelFactory","templateNodes","attrHtmlToJavascriptMap","toRemove","checkedValue","updateModel","isChecked","elemValue","useCheckedValue","isRadio","modelValue","isValueArray","oldElemValue","updateView","isCheckbox","classesWrittenByBindingKey","makeEventHandlerShortcut","viewModel","newValueAccessor","eventsToHandle","handlerReturnValue","handlerFunction","argsForHandler","cancelBubble","makeTemplateValueAccessor","unwrappedValue","foreach","templateEngine","nativeTemplateEngine","as","includeDestroyed","afterAdd","beforeRemove","afterRender","beforeMove","afterMove","hasfocusUpdatingProperty","hasfocusLastValue","handleElementFocusChange","isFocused","ownerDoc","handleElementFocusIn","handleElementFocusOut","makeWithIfBinding","isWith","makeContextCallback","didDisplayOnLastUpdate","savedNodes","dataValue","shouldDisplay","isFirstRender","needsRefresh","captionPlaceholder","selectedOptions","selectWasPreviouslyEmpty","previousScrollTop","unwrappedArray","valueAllowUnset","arrayToDomNodeChildrenOptions","captionValue","filteredArray","previousSelectedValues","applyToObject","predicateType","itemUpdate","optionForArrayItem","arrayEntry","oldOptions","optionText","setSelectionCallback","newOptions","setDomNodeChildrenFromArrayMapping","selectionChanged","valueToWrite","styleName","styleValue","parseVersion","operaVersion","safariVersion","firefoxVersion","selectionChangeRegisteredName","selectionChangeHandlerName","selectionChangeHandler","registerForSelectionChangeEvent","previousElementValue","timeoutHandle","elementValueBeforeEvent","elementValue","deferUpdateModel","preprocess","addBinding","eventsToCatch","requestedEventsToCatch","propertyChangedFired","valueUpdateHandler","ieAutoCompleteHackNeeded","updateFromModel","valueHasChanged","applyValueAction","isCurrentlyVisible","templateSource","templateSources","domElement","anonymousTemplate","rewriterCallback","rewritten","templateRewriting","memoizeDataBindingAttributeSyntaxRegex","memoizeVirtualContainerBindingSyntaxRegex","validateDataBindValuesForRewriting","allValidators","possibleErrorMessage","constructMemoizedTagReplacement","dataBindAttributeValue","tagToRetain","dataBindKeyValueArray","rewrittenDataBindAttributeValue","applyBindingsToNextSiblingScript","ensureTemplateIsRewritten","htmlString","memoizeBindingAttributeSyntax","applyMemoizedBindingsToNextSibling","nodeToBind","elemContentsProperty","dataDomDataPrefix","anonymousTemplatesDomDataKey","templateData","textData","containerData","_templateEngine","setTemplateEngine","invokeForEachNodeInContinuousRange","firstNode","lastNode","firstOutOfRangeNode","activateBindingsOnContinuousNodeArray","nextNodeInRange","nodePreviousSibling","newNodes","getFirstNodeFromPossibleArray","nodeOrNodeArray","executeTemplate","targetNodeOrNodeArray","renderMode","firstTargetNode","templateEngineToUse","renderedNodesArray","haveAddedNodesToParent","resolveTemplateName","renderTemplate","dataOrBindingContext","whenToDispose","activelyDisposeWhenNodeIsRemoved","templateName","renderTemplateForEach","arrayOrObservableArray","targetNode","parentBindingContext","arrayItemContext","executeTemplateForArrayItem","arrayValue","activateBindingsCallback","addedNodesArray","templateComputedDomDataKey","disposeOldComputedAndStoreNewOne","newComputed","oldComputed","bindingValue","templateComputed","innerBindingContext","parsedBindingValue","limitFailedCompares","failedCompares","leftItem","rightItem","statusNotInOld","statusNotInNew","oldArray","newArray","dontLimitMoves","compareSmallArrayToBigArray","smlArray","bigArray","statusNotInSml","statusNotInBig","myMin","myMax","editDistanceMatrix","smlIndex","smlIndexMax","bigIndex","bigIndexMax","compareRange","maxDistance","thisRow","lastRow","bigIndexMaxForRow","bigIndexMinForRow","northDistance","westDistance","editScript","meMinusOne","notInSml","notInBig","mapNodeAndRefreshWhenChanged","callbackAfterAddingNodes","mappedNodes","newMappedNodes","lastMappingResultDomDataKey","isFirstExecution","lastMappingResult","lastArray","newMappingResult","lastMappingResultIndex","newMappingResultIndex","nodesToDelete","itemsToProcess","itemsForBeforeRemoveCallbacks","itemsForMoveCallbacks","itemsForAfterAddCallbacks","mapData","itemMovedOrRetained","editScriptIndex","oldPosition","indexObservable","callCallback","editScriptItem","movedIndex","nextNode","useNodesIfAvailable","templateNodesFunc","templateText","jqueryTmplTemplateEngine","jQueryTmplVersion","ensureHasReferencedJQueryTemplates","compiledTemplate","jQueryTemplateOptions","precompiled","koBindingContext","resultNodes","templateMarkup","jqueryTmplTemplateEngineInstance","mappingProperty","realKoDependentObservable","mappingNesting","dependentObservables","recognizedRootProperties","emptyReturn","_defaultOptions","observe","defaultOptions","unionArrays","extendObject","destination","destType","getType","bothArrays","obj1","obj2","merged","isMapped","unwrapped","fromJS","jsObject","fillOptions","updateViewModel","DO","__DO","fromJSON","updateFromJS","updateFromJSON","resetDefaultOptions","visitModel","rawOptions","otherOptions","mergeArrays","mappedProperties","copiedProperties","withProxyDependentObservable","localDO","realDeferEvaluation","deferEvaluation","isRemoved","isWriteable","_wrapper","realDependentObservable","mappedRootObject","parentName","parentPropertyName","mappedParent","previousMapping","hasCreateCallback","createCallback","hasUpdateCallback","updateCallback","alreadyMapped","hasCreateOrUpdateCallback","fullPropertyName","prevMappedProperty","retval","hasKeyCallback","keyCallback","mappedRemove","mappedRemoveAll","arrayOfKeys","filterArrayByKey","mappedDestroy","mappedDestroyAll","mappedIndexOf","mappedGet","mappedCreate","currentArrayKeys","newArrayKeys","ignoreIndexOf","unwrappedRootObject","itemsByKey","optimizedKeys","newContents","passedOver","mappedItem","getItemByKey","ignorableIndexOf","arrayChanged","ignoreIndices","mapKey","getPropertyName","outputProperty","simpleObjectLookup","buckets","findBucket","bucketKey","bucket","knockout","knockoutElementMapping","knockoutElement","dataElement","mergeMethod","mergeRule","getMethodForMergeRule","replaceOnMerge","arrayElement","mergeConstructor","mergeFromJS","mergeRules","koModel","withMergeConstructor","withMergeMethod","withMergeRule","prefixParent","findMethodFromParent","findMethod","parentAttribute","contextElement","keyParent","attrParent","createDelegatedHandler","findMethodCallBack","matchingParent","$data","$parents","getBindingName","bindingPrefix","createBinding","attributeName","createDelegatedBindings","delegatedHandler","delegatedParentHandler","validation","kv","koUtils","registerExtenders","messagesOnModified","errorsAsTitle","errorsAsTitleOnModified","messageTemplate","insertMessages","parseInputAttributes","writeInputAttributes","decorateInputElement","decorateElementOnModified","errorElementClass","errorMessageClass","allowHtmlMessages","configuration","html5Attributes","html5InputTypes","seedId","isObservableArray","getValue","isValidatable","isValid","isModified","newNode","newId","getConfigOptions","setDomData","getDomData","isEmptyVal","getOriginalElementTitle","savedOriginalTitle","currentTitle","hasSavedOriginalTitle","setImmediate","isInitialized","cleanUpSubscriptions","flagged","__kv_traversed","runTraversal","validatables","traverseGraph","objValues","validatable","graphMonitor","collectErrors","configure","showAllMessages","isAnyMessageShown","invalidAndModifiedPresent","formatMessage","addRule","addAnonymousRule","ruleObj","onlyIf","condition","addExtender","insertValidationMessage","parseInputValidationAttributes","typeAttr","currentType","writeInputValidationAttributes","makeBindingHandlerValidatable","handlerName","allBindingsAccessor","setRules","ruleDefinitions","targetValue","unwrappedTargetValue","nonRules","stringTrimRegEx","testVal","minMaxValidatorFactory","validatorName","isMaxValidation","comparisonValue","valMatches","comparisonValueMatches","maxLength","dif","phoneNumber","otherValue","external","externalValue","validationMessageElement","validationMessage","validationElement","obsv","cssSettingsAccessor","shouldShow","hasModification","data-orig-title","newConfig","validationOptions","throttleEvaluation","__validatingCount__","__validating__","isValidating","__valid__","setError","clearError","h_obsValidationTrigger","obs","ruleContexts","validateObservable","_disposeValidation","validateSync","validateAsync","callBack","valObj","localize","msgTranslations","applyBindingsWithValidation","origApplyBindings","validatedObservable","ITEMKEY","INDEXKEY","LISTKEY","PARENTKEY","DRAGKEY","dataGet","dataSet","addMetaDataAfterRender","prepareTemplateOptions","dataName","actualAfterRender","updateIndexFromDestroyedItems","templateOptions","startActual","updateActual","connectClass","allowDrop","shouldAdd","createTimeout","dragItem","receive","sourceParent","targetParent","targetIndex","parentEl","sourceParentNode","cancelDrop","processAllDeferredBindingUpdates","draggableOptions","lib","symbol","decimal","thousand","precision","nativeMap","defs","checkPrecision","checkCurrencyFormat","neg","zero","unformatted","power","usePrecision","negative","formatMoney","formats","useFormat","formatColumn","padAfterSymbol","fVal","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","ordinal","week","millisecond","_milliseconds","_days","_months","_bubble","qb","_d","db","updateOffset","Tb","Ub","_lang","utc","UTC","getUTCDate","_a","_pf","jb","kb","ib","lb","mb","nb","ob","_overflowDayOfYear","_isValid","_strict","_isUTC","zone","local","abbr","pb","C","rb","vb","Yb","Vb","invalidDate","longDateFormat","wb","lastIndex","Ib","Jb","zb","Lb","Kb","Ab","Gb","Hb","yb","Cb","_l","_meridiemParse","Fb","Db","Eb","Bb","xb","Qb","monthsParse","_dayOfYear","_isPm","isPM","_useUTC","_tzm","_w","K","weekYear","GG","V","_week","gg","dayOfYear","getUTCMonth","_i","getUTCFullYear","_f","Q","score","R","Mb","Ob","Pb","sb","setFullYear","setUTCFullYear","weekdaysParse","relativeTime","getUTCDay","preparse","isMoment","ender","moment","eb","fb","_isAMomentObject","ub","Nb","Rb","Sb","Milliseconds","Seconds","Minutes","Hours","Days","Months","Years","DDD","dayofyear","isoweekday","isoweek","weekyear","isoweekyear","Wb","Xb","MMM","monthsShort","MMMM","months","weekdaysMin","ddd","weekdaysShort","dddd","weekdays","isoWeek","YY","YYYY","YYYYY","YYYYYY","gggg","ggggg","isoWeekYear","GGGG","GGGGG","weekday","isoWeekday","meridiem","hours","minutes","seconds","milliseconds","SS","SSS","SSSS","ZZ","zoneAbbr","zz","zoneName","unix","quarter","Zb","DDDD","_monthsShort","_monthsParse","_weekdays","_weekdaysShort","_weekdaysMin","_weekdaysParse","_longDateFormat","LT","LL","LLL","LLLL","_calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","_relativeTime","future","past","mm","hh","MM","yy","pastFuture","_ordinal","postformat","_invalidDate","isDuration","_abbr","langData","normalizeUnits","parseZone","toDate","toISOString","isDSTShifted","parsingFlags","invalidAt","startOf","humanize","fromNow","isLeapYear","isDST","endOf","isAfter","isBefore","isSame","hasAlignedHourOffset","weeks","isoWeeks","toIsoString","asSeconds","asMonths","splitter","_ghost","splitPos","_splitPos","_initPos","_ismovingNow","contentDiv","splitHorizontal","minAsize","maxAsize","minBsize","maxBsize","ghostClass","invertClass","animSpeed","barsize","minDragLimit","maxDragLimit","moving","sizing","eventPos","splitbarClass","buttonClass","mychilds","slave","user-select","-webkit-user-select","-khtml-user-select","-moz-user-select","startDrag","closeableto","Bt","splitTo","offsetDist","_posSplit","performDrag","endDrag","minLimit","maxLimit","incr","newPos","reversedorder","preserveTopHeight","splitsize","percpx","sizeA","sizeB","anob","anob2","_canLog","_log","logMsg","getDynaTreePersistData","DTNodeStatus_Error","DTNodeStatus_Loading","DTNodeStatus_Ok","Class","getDtNodeFromElement","dynatree","getNode","DynaTreeNode","tree","_nodeCount","nodedatadefaults","childList","_isLoading","hasSubSel","bExpanded","bSelected","toDict","recursive","dict","activeNode","focusNode","fromDict","removeChildren","addChild","_getInnerHtml","getLevel","minExpandLevel","tagConnector","hasChildren","tagExpander","hideCheckbox","isStatusNode","tagCheckbox","imagePath","tagNodeIcon","nodeTitle","onCustomRender","noLink","_fixOrder","childLI","childNode1","childNode2","dtnode","logDebug","useEffects","includeInvisible","isLastSib","isLastSibling","firstTime","noConnector","generateIds","cnList","isFolder","folder","isLazy","lazy","lastsib","partsel","combinedExpanderPrefix","combinedIconPrefix","onCreate","onRender","isExpanded","getKeyPath","excludeSelf","visitParents","keyPathSeparator","getChildren","isFirstSibling","isLoading","getPrevSibling","getNextSibling","isChildOf","otherNode","isDescendantOf","countChildren","sortChildren","cmp","_setStatusNode","setLazyNodeStatus","lts","nodeLoading","tnRoot","strings","nodeWait","nodeError","_parentList","includeRoot","includeSelf","dtn","_getTypeForOuterNodeEvent","cns","eventX","eventY","nx","ny","expander","nodeIcon","getEventTargetType","tcn","vline","connector","makeVisible","_expand","tnFocused","fireEvents","onQueryActivate","activeVisible","persist","cookieId","persistence","activeKey","onActivate","onDeactivate","activateSilently","_userActivate","clickFolderMode","toggleExpand","_setSubSel","_updatePartSelectionState","allDeselected","_fixSelectionState","visit","_select","allChildsSelected","isPartSel","onQuerySelect","selectMode","addSelect","clearSelect","toggleSelect","_loadContent","onLazyRead","logWarning","bExpand","forceSync","onQueryExpand","addExpand","clearExpand","allowEffects","autoCollapse","collapseSiblings","onExpand","scheduleAction","_onClick","targetType","_onDblClick","_onKeydown","sib","_onKeypress","_onFocus","onBlur","onFocus","tn","isRecursiveCall","retainPersistence","setTitle","reloadChildren","$tree","isOk","_loadKeyPath","keyPath","segList","seg","resetLazy","_addChildNode","beforeNode","pers","iBefore","isInitializing","cookiesFound","focusedKey","expandedKeyList","selectedKeyList","bEnableUpdate","prevFlag","enableUpdate","tnFirst","appendAjax","debugLazyDelay","logInfo","orgSuccess","orgError","ajaxDefaults","textStatus","prevPhase","phase","errorThrown","prevParent","lastentry","DynaTreeStatus","_getTreePersistData","cookieOpts","DynaTree","$widget","divTree","_initDragAndDrop","rootVisible","_rexDtLibName","tagEmpty","tagVline","initAjax","initId","$ulInitialize","_reloadAjax","_createFromTag","_checkConsistency","onPostInit","ajaxOpts","addActiveKey","addFocusedKey","addExpandedKeyList","addSelectedKeyList","stopOnParents","nodeList","getSelectedNodes","getPersistData","debugLevel","isUserEvent","renderInvisibleNodes","getRoot","getNodeByKey","getActiveNode","reactivate","setFocus","activateKey","loadKeyPath","selectKey","bEnable","parentTreeNode","$ulParent","$liSpan","$liA","iPos","$ul","_setDndStatus","sourceNode","hitMode","$source","$dndMarker","_onDragEvent","nodeTag","$helper","onDragStart","onDragEnter","enterResponse","nodeOfs","relPos","relPos2","preventVoidMoves","autoExpandMS","onDragOver","onDragLeave","onDragStop","cancelDrag","eventNames","keyboard","onDblClick","onKeydown","onKeypress","__focusHandler","getTree","_registerDnd","connectToDynatree","_last","didRegisterDnd","prevTargetNode","isHelper","mouseDownEvent","AmCharts","themes","maps","inheriting","charts","onReadyArray","useUTC","updateRate","translations","mapTranslations","windows","initHandlers","amString","pmString","construct","inherits","createEvents","listenTo","removeListener","addListener","addChart","requestAnimationFrame","animationRequested","updateInt","removeChart","requestAnimation","cancelAnimationFrame","NaN","isModern","getIEVersion","appName","applyLang","shortDayNames","shortMonthNames","langObj","am","pm","IEversion","isNN","handleReleaseOutside","handleMouseMove","handleWheel","mouseIsOver","mouseWheelScrollEnabled","mouseWheelZoomEnabled","resetMouseOver","handleLoad","processDelay","addInitHandler","callInitHandler","isInArray","getUniqueId","addWheelListeners","wheelIsListened","makeChart","AmSerialChart","AmXYChart","AmPieChart","AmRadarChart","AmAngularGauge","AmFunnelChart","AmMap","AmStockChart","AmGanttChart","realWrite","updateCount","validateAt","autoResize","validateSize","premeasure","toBoolean","removeFromArray","getPath","normalizeUrl","isAbsolute","getDecimals","wordwrap","wrappedText","getStyle","removePx","getURL","opener","closed","ifArray","callMethod","toNumber","toColor","toCoordinate","fitToBounds","isDefined","stripNumbers","roundTo","formatDuration","intervals","nextInterval","addZeroes","scientificToNormal","toScientific","LOG10E","randomColor","hitTest","isInRectangle","isPercents","formatValue","addPrefix","formatDataContextValue","massReplace","cleanFromEmpty","getEffect","getObjById","applyTheme","copyProperties","processObject","listeners","fixNewLines","fixBrakes","deleteObject","fixStepE","toExponential","generateNumber","setCN","addClassNames","classNamePrefix","removeCN","parseDefs","createElementNS","SVG_NS","AxisBase","titleDY","axisThickness","axisColor","axisAlpha","gridCount","tickLength","gridAlpha","gridThickness","gridColor","dashLength","labelFrequency","showLastLabel","showFirstLabel","fillColor","fillAlpha","labelsEnabled","labelRotation","autoGridCount","guides","ignoreAxisWidth","inside","minHorizontalGap","minVerticalGap","titleBold","minorGridEnabled","minorGridAlpha","autoWrap","titleAlign","labelOffset","bcn","centerLabels","firstDayOfWeek","centerLabelOnFullPeriod","markPeriodChange","boldPeriodBeginning","titleWidth","periods","dateFormats","nextPeriod","fff","ss","DD","dataChanged","draw","fixAxisPosition","createBalloon","chart","prevBY","prevBX","allLabels","setBalloonBounds","labels","gridSet","axesLabelsSet","labelsSet","axisLine","axisRenderer","gridCountR","axisWidth","addTitle","setOrientation","titleLabel","titleColor","titleFontSize","fontFamily","positionTitle","VML","marginsChanged","tx","titleRotation","pushAxisItem","graphics","getLabel","handleMouse","touchend","mouseout","serialDataItem","addGuide","Guide","removeGuide","handleGuideOver","hoverInt","lineColor","showBalloon","balloonText","guide","handleGuideOut","hideBalloon","handleGuideClick","addEventListeners","touchstart","axisSet","grid0","chooseMinorFrequency","parseDatesDraw","extractPeriod","minPeriod","getPeriodDuration","choosePeriod","stepWidth","getStepWidth","timeDifference","resetDateToMin","cellWidth","autoRotateCount","autoRotateAngle","labelRotationR","gridPosition","checkPeriodChange","dateFormatsObject","twoLineMode","currentDateFormat","labelFunction","boldLabels","axisItemRenderer","startOnAxis","timeZoom","endTime","minDuration","generateDFObject","balloon","formatBalloonText","adjustBalloonCoordinate","coordinateToValue","chartCursor","balloonTextFunction","parseDates","cursorPosition","stickBalloonToCategory","stickBalloonToStart","cname","cornerRadius","shadowAlpha","borderThickness","borderAlpha","adjustBorderColor","showBullet","mainSet","plotBalloonsSet","pointerWidth","animationDuration","pointerOrientation","setBounds","ValueAxis","stackType","unitPosition","includeAllValues","recalculateToPercents","includeGuidesInMinMax","integersOnly","durationUnits","scrollbar","baseValue","radarCategoriesEnabled","axisFrequency","gridType","useScientificNotation","axisTitleOffset","pointPosition","minMaxMultiplier","logGridLimit","totalTextOffset","treatZeroAs","relativeStart","relativeEnd","updateData","totals","chartData","stackGraphs","recalculate","synchronizationMultiplier","synchronizeWith","getValueAxisById","synchronizeWithAxis","foundGraphs","getMinMax","minZoom","maxZoom","fullMin","fullMax","strictMinMax","minimum","maximum","logarithmic","logMin","minimumDate","minRR","maximumDate","maxRR","reversed","getDateMinMax","getExtremes","minReal","minCalc","maxCalc","LN10","maxDecCount","nf","numberFormatter","exponential","maxInterval","getMaxInterval","getMinorGridStep","maxTime","lastTime","gridCountReal","startCount","getCoordinate","zeroGridAlpha","axesSet","toBack","above","toValue","guideFillRenderer","baseCoord","axisCreated","toFront","axisY","axisX","dataDateFormat","usePrefixes","prefixesOfBigNumbers","prefixesOfSmallNumbers","graphs","stackGraph","valueAxis","stackable","newStack","axes","fillToGraph","percents","compareFromStart","categoryAxis","recalculateFromDate","getClosestIndex","recalculateValue","dataContext","valueField","recBaseValue","expandMinMax","maxReal","setStep","graphsById","includeInMinMax","minMaxField","zoomOut","zoomToRelativeValues","zoomToValues","startValue","endValue","prevStartValue","prevEndValue","handleSynchronization","RecAxis","RecItem","aa","ma","na","Pa","da","previousCoord","xa","ea","fa","Ba","lineAlpha","lineThickness","boldLabel","minorTickLength","ga","Da","oa","ha","Qa","ca","centerRotatedLabels","polygon","text-anchor","RecFill","AmChart","svgIcons","tapToActivate","chartCreated","previousWidth","previousHeight","backgroundAlpha","autoDisplay","addCodeCredits","accessible","touchStartTime","touchClickDuration","percentPrecision","autoMarginOffset","timeOuts","creditsPosition","chartDiv","legendDiv","titleHeight","hideBalloonTime","handDrawScatter","cssScale","handDrawThickness","cssAngle","panEventsEnabled","product","AmBalloon","processTimeout","processCount","animatable","drawChart","realWidth","realHeight","drawBackground","redrawLabels","drawTitles","brr","renderFix","boundingRect","makeAccessible","setAttr","updateWidth","updateHeight","bgImg","Title","bold","pointerEvents","sprite","freeLabelsSet","afterWriteTO","afterWrite","legend","measure","divRealHeight","divRealWidth","containerDiv","exportConfig","AmExport","amExport","addLegend","divId","prevLegendPosition","listenersAdded","addListeners","initChart","createLabelsSet","AmCharts_path","pathToImages","initHC","language","percentFormatter","pf","addDefs","AmDraw","extension","SVG","checkTransform","handDrawn","cursorLineSet","graphsBehindSet","bulletBehindSet","columnSet","graphsSet","trendLinesSet","cursorSet","scrollbarsSet","bulletSet","balloonsSet","zoomButtonSet","zbSet","linkSet","setSize","autoTransform","clearTimeOuts","docfn1","docfn2","chartScrollbar","scrollbarV","scrollbarH","setMouseCursor","drawLabel","Label","urlTarget","addLabel","clearLabels","ieW","getTitleHeight","handleWheelReal","handleDocTouchStart","tmx","mouseX","tmy","mouseY","handleDocTouchEnd","tapped","panRequired","msTouchAction","touchAction","resetTouchStyle","checkTouchDuration","isTouchEvent","resetTouchDuration","checkTouchMoved","handleTouchStart","handleTouchEnd","handleMouseDown","handleMouseOver","handleMouseOut","dispDUpd","skipEvents","dispatchDataUpdated","chartRendered","sizeChanged","legendInitTO","invalidateSize","marginsUpdated","initTO","resizedTO","invalidateSizeReal","validateTO","validateData","validateNow","showItem","hideItem","balloonTO","hideBalloonReal","cleanChart","showBalloonReal","followCursor","changeColor","fixedPosition","outTO","handleMouseOutReal","mouse2Y","mouse2X","wasTouched","AmLegend","autoMargins","removeLegend","handleResize","getSVG","hasSVG","frame","setLegendData","setData","stopAnim","updateAnimations","animationFinished","inIframe","Slice","SerialDataItem","GraphDataItem","AmGraph","columnIndex","centerCustomBullets","maxBulletSize","minBulletSize","animationPlayed","depthCount","negativeBase","visibleInLegend","showAllValueLabels","showBulletsAt","showBalloonAt","connect","bullet","bulletBorderThickness","bulletBorderAlpha","bulletAlpha","bulletSize","cornerRadiusTop","hideBulletsCount","bulletOffset","cursorBulletAlpha","gradientOrientation","periodValue","clustered","periodSpan","accessibleLabel","accessibleSkipText","switchable","minDistance","tcc","labelAnchor","noRounding","isRolledOverBullet","drawGraphs","behindColumns","bulletAxis","columnsSet","columnsArray","ownColumns","allBullets","animationArray","labelPosition","xAxis","yAxis","createGraph","startAlpha","seqAn","sequencedAnimation","fillAlphas","bulletColorR","bulletColor","lineColorR","bulletColorNegative","negativeLineColor","playedTO","createSerialGraph","positiveClip","createRadarGraph","createXYGraph","setAnimationPlayed","startDuration","pmh","pmw","pmy","pmx","createBullet","labelText","createLabel","positionLabel","drawLineGraph","launchAnimation","rMultiplier","isNegative","labelIsNegative","columnGraphics","columnHeight","getGradRotation","gradientRotation","dashLengthSwitched","fillColorsSwitched","lineColorSwitched","columnWidthReal","useNegativeColorIfDown","columnSpacing","fillColorsR","Ra","negativeFillColors","Ja","Ya","Za","negativeFillAlphas","minCoord","resetBullet","Ua","Ka","La","nmx","nmy","nmh","nmw","fixedColumnWidth","lineColorField","bulletColorSwitched","fillColorsField","fillColors","dashLengthField","Ma","noStepRisers","Sa","$a","Ta","openField","ba","ja","qa","ra","sa","ya","Ea","ka","la","va","Na","Va","Ha","Ca","za","proCandlesticks","topRadius","Fa","pa","Ia","Wa","wa","Ga","stepDirection","ignoreCustomColors","gap","drawSmoothedGraph","Aa","ec","percentWidthValue","Cuboid","d3x","d3y","fc","showOnAxis","showHandOnHover","column","animateColumns","Xa","gc","totalText","Oa","totalTextColor","$b","bc","lastDataItem","bulletsHidden","hideBullets","customBulletsHidden","hideCustomBullets","labelColor","formatString","clipRect","negativeClip","negativeLineAlpha","handleGraphEvent","touchmove","fillToAxis","applyMask","Bezier","animateGraphs","startEffect","animateWidth","animateHeight","legendKeyColor","legendColor","legendKeyAlpha","legendAlpha","customBullet","bulletBorderColorR","useLineColorForBulletBorder","bulletConfig","availableSpace","graph","graphDataItem","bulletY","customBulletGraphics","cset","bx","bulletHitAreaSize","circle","hitBullet","bulletGraphics","showBullets","showCustomBullets","handleRollOver","handleRollOut","handleClick","handleDoubleClick","contextmenu","handleRightClick","valueBalloonsEnabled","showGraphBalloon","changeOpacity","fixBulletSize","resizedDItem","doNotScale","currentDataItem","resizeBullet","balloonFunction","getBalloonColor","fixPrevious","ChartCursor","cursorAlpha","selectionAlpha","cursorColor","categoryBalloonAlpha","zoomed","zoomable","pan","categoryBalloonDateFormat","categoryBalloonText","categoryBalloonEnabled","rolledOver","bulletsEnabled","skipZoomDispatch","selectWithoutZooming","oneBalloonOnly","graphBulletSize","zooming","adjustment","avoidBalloonOverlapping","leaveCursor","leaveAfterTouch","valueZoomable","balloonPointerOrientation","hLineEnabled","vLineEnabled","vZoomEnabled","hZoomEnabled","prevLineHeight","prevLineWidth","createElements","limitToGraph","fullWidth","pointer","hideLines","valueLineAxis","valueAxes","valueLineAlpha","vvLine","hhLine","vLine","fullLines","handleKeys","showCursor","hideCursor","prevIndex","hideGraphBalloons","updateDrawing","fy","dispatchMovedEvent","forceShow","mouse2X0","dispatchPanEvent","updateSelection","drawing","drawingNow","drawingLine","drawStartX","drawStartY","fixWidth","fixHeight","fixVLine","prevLineX","prevLineY","fixHLine","hideCursorReal","handleCursorHide","mouseY0","mouseX0","updateFullLine","clearSelection","justReleased","mouseIsDown","fixPosition","prevY","prevX","mouse2Y0","index0","timestamp0","registerInitialMouse","initialX","initialY","finalX","finalY","dispatchZoomEvent","equalSpacing","getEndTime","selectionHeight","selectionWidth","selectionY","selectionX","endX","startY","endY","panning","mostCloseGraph","hideBalloons","finalPosition","handleCursorMove","prevDeltaX","prevDeltaY","prevDelta2X","prevDelta2Y","delta2X","delta2Y","syncTO","setTimestamp","setIndex","showCursorAt","categoryToCoordinate","enableDrawing","syncWithCursor","syncWithCursorReal","isZooming","SimpleChartScrollbar","selectedBackgroundColor","scrollDuration","selectedBackgroundAlpha","resizeEnabled","hideResizeGrips","scrollbarHeight","updateOnReleaseOnly","dragIconHeight","dragIconWidth","dragIcon","dragCursorHover","dragCursorDown","vResizeCursor","hResizeCursor","percentStart","percentEnd","getPercents","getDBox","plotAreaHeight","plotAreaWidth","bg","invisibleBg","handleBgClick","selectedBG","dragger","handleDragStart","handleDragStop","handleDraggerOver","iconLeft","iconRight","updateGripCursor","leftDragStart","leftDragStop","iconRollOver","iconRollOut","rightDragStart","rightDragStop","hideDragIcons","clipDragger","percentZoom","updateScrollbarSize","clipAndUpdate","initialMouse","forceClip","initialCoord","resizingRight","resizingLeft","stopForceClip","animating","clipY","clipH","clipX","clipW","dispatchScrollbarEvent","maskGraphs","updateDragIconPositions","skipEvent","multiplier","showDragIcons","removeCursors","fireZoomEvent","vResizeCursorDown","vResizeCursorHover","hResizeCursorDown","hResizeCursorHover","updateOnRelease","forceTO","ChartScrollbar","graphLineColor","graphLineAlpha","graphFillColor","graphFillAlpha","selectedGraphLineColor","selectedGraphLineAlpha","selectedGraphFillColor","selectedGraphFillAlpha","scrollbarCreated","oppositeAxis","gridAxis","catScrollbar","CategoryAxis","unselectedGraph","selectedGraph","dataProvider","closeField","highField","lowField","graphType","handleBackgroundClick","zoomScrollbar","minSelectedTime","maxSelectedTime","endDate","xToIndex","horizontalPadding","verticalPadding","follow","shadowColor","fadeOutDuration","offsetY","offsetX","disableMouseEvents","deltaSignX","deltaSignY","sdy","sdx","pointToX","pointToY","xAnim","yAnim","removeDiv","balloonColor","textDiv","yPos","prevTX","prevTY","rPrevX","rPrevY","rPrevTX","rPrevTY","restorePrevious","followMouse","previousX","previousY","destroyTO","positionChanged","isHiding","fadeAnim1","fadeAnim2","AmCoordinateChart","balloonDateFormat","gridAboveGraphs","processValueAxes","createValueAxes","processGraphs","processGuides","addValueAxis","parseData","parseSerialData","parseCount","delayParseSerialData","parsePartSerialData","onDataUpdated","seriesIdField","categoryField","forceShowField","classNameField","labelColorField","categoryFunction","lookupTable","gapPeriod","processValues","forceGap","processFields","parseGraphData","removeValueAxesAndGraphs","removeValueAxis","removeGraph","addGraph","chooseGraphColor","handleValueAxisZoom","[[title]]","[[description]]","getGraphById","itemColors","bulletBorderColor","patterns","handleLegendEvent","textClickEnabled","hideGraphsBalloon","showGraphsBalloon","highlightGraph","unhighlightGraph","hideGraph","showGraph","rollOverGraphAlpha","updateLegend","resetAnimation","animateAgain","TrendLine","isProtected","initialDate","initialCategory","finalDate","finalCategory","valueAxisX","initialXValue","finalXValue","dateToCoordinate","marginLeftReal","marginTopReal","initialImage","finalImage","handleLineClick","handleLineOver","handleLineOut","trendLine","rollOverColor","svgPath","outlineColor","fill-opacity","stroke-width","stroke-opacity","ellipse","gradient","adjustLuminosity","font-family","font-size","makeHD","triangle","handDrawnLine","doNothing","wedge","thickness","grad","rgb2hex","bezierX","bezierY","drawSegment","SVG_XLINK","createSVGRect","rBin","createSvgElement","SVGRenderer","VMLRenderer","vmlStyleSheet","styleSheets","createStyleSheet","AmDObject","cx","cy","addToContainer","rx","ry","accessibleTitle","rtl","getAttr","angle","clipPath","setText","hasChildNodes","prevNextNode","toPrevious","an_translate","an_y","an_x","cNames","styleMap","shapeType","anchor","svgPathToVml","weight","dashstyle","arcSize","whiteSpace","getBox","getBGColor","setAttributeNS","baseHref","removeTarget","clipPathC","patternNode","randomX","randomY","markerLabelGap","verticalGap","horizontalGap","spacing","markerDisabledColor","markerType","markerSize","markerBorderThickness","markerBorderAlpha","valueWidth","switchType","switchColor","reversedOrder","valueText","useMarkerColorForLabels","equalWidths","useGraphSettings","showEntries","labelDx","legendData","valueLabels","drawLegend","combineLegend","maxColumnsReal","maxColumns","divWidth","lx","ly","maxLabelWidth","createEntry","createValue","arrangeEntries","updateValues","hideFromLegend","legendEntryWidth","customMarker","createMarker","createX","createV","dItem","legendSwitch","selectedColor","clickMarker","legendTextReal","labelWidth","legendEntry","legendMarker","legendLabel","rollOverMarker","rollOutMarker","rollOverLabel","rollOutLabel","clickLabel","forceWidth","valueAlign","useMarkerColorForValues","markerBorderColor","periodDataItem","periodPercentDataItem","periodValueText","legendPeriodValueText","legendPeriodValueTextR","legendValueText","legendValueTextR","formatPeriodString","valueFunction","legendColorFunction","formatMilliseconds","stringToDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","setUTCHours","getWeekNumber","getFromDateString","changeDate","changeUTCDate","setUTCDate","setUTCMonth","setUTCMinutes","setUTCSeconds","setUTCMilliseconds","get_class","FakeBlobBuilder","FakeBlob","FBB_proto","FB_proto","FileReaderSync","FileException","file_ex_codes","file_ex_code","real_URL","real_create_object_URL","real_revoke_object_URL","btoa","fake","uri","uri_info","uri_origin","data_URI_header","object_URL","buf","buf_len","blobParts","builder","getPrototypeOf","AmRectangularChart","depth3D","plotAreaFillColors","plotAreaFillAlphas","plotAreaBorderColor","plotAreaBorderAlpha","maxZoomFactor","zoomOutButtonImageSize","zoomOutButtonImage","zoomOutText","zoomOutButtonColor","zoomOutButtonAlpha","zoomOutButtonRollOverAlpha","zoomOutButtonPadding","trendLines","updateDxy","resetMargins","processScrollbars","updateMargins","updatePlotArea","updateScrollbars","updateTrendLines","updateChartCursor","updateValueAxes","scrollbarOnly","updateGraphs","drawPlotArea","xAxes","yAxes","fixMargins","measureMargins","getAxisBounds","minMarginLeft","minMarginRight","minMarginTop","minMarginBottom","drawZoomOutButton","zoomOutButtonFontSize","zoomOutButtonFontColor","zoomOutButton","zbBG","rollOverZB","rollOutZB","clickZB","zoomOutButtonTabIndex","rolledOverZB","zoomOutValueAxes","plotAreaGradientAngle","bbset","marginRightReal","marginBottomReal","columnSpacing3D","setAxisRenderers","updateObjectSize","addChartCursor","addChartScrollbar","removeChartCursor","zoomTrendLines","handleCursorValueZoom","addTrendLine","removeTrendLine","adjustMargins","getScrollbarPosition","updateChartScrollbar","showZB","handleScrollbarValueZoom","relativeZoomValueAxes","zoomAxesAndGraphs","zoomValueScrollbar","handleValueAxisZoomReal","updateAfterValueZoom","handleCursorZoom","handleCursorZoomStarted","handleCursorPanning","handleCursorChange","skipZoomed","startX0","endX0","endY0","startY0","handleCursorZoomReal","prepareForExport","processValueAxis","processGraph","zoomChart","hideXScrollbar","hideYScrollbar","zoomObjects","prevPlotAreaWidth","prevPlotAreaHeight","zoomOutOnDataUpdate","xField","yField","errorField","removeChartScrollbar","valueLineEnabled","categoryLineAxis","valueLineBalloonEnabled","categoryBalloonColor","skipZoom","updateCategoryAxis","countColumns","getStartTime","syncGrid","synchronizeGrid","wheelBusy","zoomToDates","zoomToIndexes","valueScrollbar","indexZoom","updateLegendValues","fixCursor","updateColumnsDepth","dispatchTimeZoomEvent","maxSelectedSeries","dispatchIndexZoomEvent","compareDepth","zoomedByScrollbar","getCategoryIndexByValue","handleScrollbarZoom","prevStartTime","prevEndTime","prevStartIndex","prevEndIndex","zoomToCategoryValues","average","customData","categoryBalloonFunction","addValueScrollbar","removeValueScrollbar","getNextItem","start0","end0","startTime0","endTime0","prevCursorItem","showNextAvailable","prevMostCloseGraph","graphBulletAlpha","arrangeBalloons","bwidth","bcolor","balpha","totalFrames","safeDistance","widthField","widthValue","tickPosition","previousPos","toCategory","coordinateToDate","AmSlicedChart","groupPercent","groupedTitle","groupedPulled","groupedAlpha","hoverAlpha","outlineAlpha","outlineThickness","pullOutDuration","pullOutEffect","pullOnHover","pullOutOnlyOne","labelTickColor","labelTickAlpha","hideLabelsPercent","gradientRatio","clickSlice","rollOverSlice","rollOutSlice","hideSlice","showSlice","invalidateVisibility","recalculatePercents","tempPrec","startSlices","setStartTO","startSlice","startSequenced","pullSlices","pulled","pullSlice","labelSet","showLabels","balloonX","balloonY","pullX","pullY","drawTicks","skipTick","tx0","tx2","ty0","initialStart","pullInAll","pullOutAll","pieAlpha","titleField","pulledField","descriptionField","labelRadius","labelRadiusField","urlField","patternField","visibleInLegendField","alphaField","colorField","groupValue","removeSmallSlices","groupedColor","groupedUrl","groupedDescription","groupedPattern","groupedClassName","baseColor","pieBaseColor","brightnessStep","pieBrightnessStep","measureMaxLabel","minRadius","startAngle","innerRadius","startRadius","pullOutRadius","previousScale","adjustPrecision","gradientType","pieX","pieY","radius","showZeroSlices","ix","iy","labelQuarter","textX","arrangeLabels","pieXReal","pieYReal","radiusReal","innerRadiusReal","setDepths","checkOverlapping","checkOverlappingReal","fallback.save.text","fallback.save.image","capturing.delayed.menu.label","capturing.delayed.menu.title","menu.label.print","menu.label.undo","menu.label.redo","menu.label.cancel","menu.label.save.image","menu.label.save.data","menu.label.draw","menu.label.draw.change","menu.label.draw.add","menu.label.draw.shapes","menu.label.draw.colors","menu.label.draw.widths","menu.label.draw.opacities","menu.label.draw.text","menu.label.draw.modes","menu.label.draw.modes.pencil","menu.label.draw.modes.line","menu.label.draw.modes.arrow","label.saved.from","_timer","libs","autoLoad","resources","pdfmake/pdfmake.min.js","pdfmake.min.js","fabric.min.js","FileSaver.min.js","loadTimeout","unsupportedIE9libs","hasBlob","hasTouch","Touch","focusedMenuItem","hasClasslist","undos","redos","xD","yD","undo","skipped","fabric","Group","cfg","renderAll","redo","recentState","createMenu","deactivateAll","deepMerge","loadSVGFromURL","fromURL","objects","groupSVGElements","originX","originY","i1","rgba","_objects","getRGBA","freeDrawingBrush","PathGroup","Triangle","Path","Line","strokeWidth","saveState","_stateProperties","i18l","IText","setActiveObject","selectAll","enterEditing","strokeLineCap","lineCap","arrowTop","arrowLeft","getAngle","known","ignoreUndo","JPG","PNG","PDF","CSV","removeImages","forceRemoveImages","modes","shapes","widths","opacities","autoClose","strokeOpacity","pdfMake","pageOrientation","pageMargins","pageOrigin","pageSize","pageSizes","4A0","2A0","A0","A1","A2","A3","A4","A5","A6","A7","A8","A9","A10","B0","B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","C0","C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","RA0","RA1","RA2","RA3","RA4","SRA0","SRA1","SRA2","SRA3","SRA4","EXECUTIVE","FOLIO","LEGAL","LETTER","TABLOID","menuReviver","menuWalker","keyListener","fileListener","compress","listenersToRemove","catalog","download","saveAs","toImage","loadResource","addons","exist","handleLog","loadCallback","addListenerToRemove","loadDependencies","i2","pxToNumber","returnUndefined","numberToPx","cloneObject","isDate","thingy","isHashbanged","isPressed","removeImage","isTainted","hostname","isSupported","atan","gatherAttribute","lvl","gatherClassName","gatherElements","bbox","parseTransformAttribute","clippings","repeat","parseAttributes","SHARED_ATTRIBUTES","transformMatrix","attrVal","attrRGBA","returnInstance","Color","_source","getSource","gatherPosition","ivt","invertTransform","viewportTransform","transformPoint","getPointer","modifyFabric","ElementsParser","resolveGradient","instanceFillValue","gradientId","gradientDefs","svgUid","Gradient","fromElement","parsedAttributes","ATTRIBUTE_NAMES","DEFAULT_SVG_FONT_SIZE","textBuffer","offX","getWidth","getLeft","getTop","_fontSizeFraction","getHeight","lX","lY","legends","handleNamespace","handleCallback","beforeCapture","svgs","stockLegend","leftContainer","panelsSettings","panelSpacing","rightContainer","periodSelector","dataSetSelector","fabricCFG","removeFunctionsFromObject","isDrawingMode","Canvas","pressedTS","isDrawingTimer","_isCurrentlyDrawing","ignoreUndoOnMouseUp","onMouseUp","findTarget","hasLine","isAnnotation","legendSettings","parseSVGDocument","paths","isCoreElement","PID","r2","r1","_isRetinaScaling","scaleX","scaleY","patternSourceCanvas","StaticCanvas","Pattern","toSVG","original_reviver","clipTo","tm","smoothCustomBullets","baseVal","quadraticCurveTo","balloons","elm_parent","style_parent","parseStyleAttribute","style_text","fabric_label","ts1","ts2","handleBorder","afterCapture","attrOpacity","capitalize","reviver","lossless","getBase64","isBase64","toByteArray","getByteArray","toJPG","toPNG","clipPaths","clipPathIds","replacement","toHex","clipPathId","sliceOffset","clipPathAttr","parentClassList","clipPathString","XMLSerializer","serializeToString","toPDF","getMargins","pageDimensions","pageContent","createPdf","getDataUrl","toPRINT","states","isIOS","MSStream","print","getChartData","toCSV","delimiter","quotes","withHeader","toXLSX","SheetNames","Sheets","datenum","date1904","epoch","sheet_from_array_of_arrays","ws","cell_ref","XLSX","encode_cell","SSF","_table","encode_range","bookType","bookSST","_processData","exportFields","dataFieldsMap","dataFieldsTitlesMap","enchant","Arr","PLUS","SLASH","NUMBER","LOWER","UPPER","b64ToByteArray","placeHolders","exists","startTS","waitForIt","tmpTS","vfs","handleDropbox","onloadend","layerY","layerX","handleReady","t1","t2","tsStart","tsEnd","dateFields","dataFields","exportTitles","exportSelection","columnNames","i3","lookupFields","addField","checkExistance","mainDataSet","fieldMappings","fieldMap","stockGraphs","i4","toField","fromField","comparedGraphs","categoryValue","comparedIndex","segmentsField","dataField","graphField","getAnnotations","setAnnotations","enlivenObjects","enlivenedObjects","uniqueField","buildList","populated","parentIsActive","hasActiveParent","siblingIsActive","hasActiveSibling","childHasSubmenu","hasSubmenu","isRoot","tmpRoot","tmpOdd","migrateSetup","migrated","crawler","listener","removeListeners","export","loadListeners","handleClone","docListener","KEY_WHITELIST","MENU_LEFT","MENU_RIGHT","focusFirst","throughTab","focusNext","focusPrev","focusDown","focusUp","blurAll","unselectParents","discardActiveObject","onReady","light","themeName","GaugeArrow","nailAlpha","nailRadius","startWidth","nailBorderAlpha","GaugeAxis","tickColor","tickAlpha","bandAlpha","AreasSettings","colorSolid","unlistedAreasAlpha","unlistedAreasColor","rollOverOutlineColor","selectedOutlineColor","unlistedAreasOutlineColor","unlistedAreasOutlineAlpha","LinesSettings","ImagesSettings","labelRollOverColor","ZoomControl","buttonFillAlpha","buttonIconColor","SmallMap","mapColor","rectangleColor","PeriodSelector","PeriodButton","MozBorderRadius","outline","PeriodButtonSelected","PeriodInputField","DataSetSelector","rollOverBackgroundColor","DataSetCompareList","webkitBoxSizing","DataSetSelect","FC","fullCalendar","internalApiVersion","fcViews","views","_element","singleRes","Calendar","complexOptions","mergeOptions","optionObjs","mergeProps","massageOverrides","overrides","subObj","subName","subVal","intersectRanges","applyAll","isInt","htmlEscape","cssToStr","capitaliseFirstLetter","compensateScroll","rowEls","scrollbarWidths","border-left-width","margin-left","border-right-width","margin-right","uncompensateScroll","disableCursor","enableCursor","distributeHeight","availableHeight","shouldRedistribute","minOffset1","minOffset2","flexEls","flexOffsets","flexHeights","usedHeight","undistributeHeight","minOffset","naturalOffset","matchCellWidths","maxInnerWidth","innerEl","setPotentialScroller","containerEl","unsetScroller","getOuterRect","getClientRect","getContentRect","getScrollbarWidths","getScrollParent","getCssFloat","leftRightWidth","getIsLeftRtlScrollbars","_isLeftRtlScrollbars","computeIsLeftRtlScrollbars","isPrimaryMouseButton","intersectRects","rect1","rect2","constrainPoint","getRectCenter","diffPoints","point1","point2","parseFieldSpecs","compareByFieldSpecs","compareByFieldSpec","flexibleCompare","specs","fieldSpecs","fieldSpec","localeCompare","subjectRange","constraintRange","subjectStart","subjectEnd","constraintStart","constraintEnd","segStart","segEnd","isStart","isEnd","computeIntervalUnit","divideRangeByDuration","divideDurationByDuration","multiplyDuration","durationHasTime","dayIDs","intervalUnits","diffDayTime","stripTime","diffDay","diffByUnit","computeRangeAs","dur","asDays","dur1","dur2","months1","months2","isNativeDate","isTimeString","hasOwnPropMethod","propObjs","complexProps","complexObjs","createObject","copyOwnProps","hasOwnProp","copyNativeMethods","isAtomic","thisObj","firstDefined","stripHtmlEntities","statements","compareNumbers","timeoutId","ambigDateOfMonthRegex","ambigTimeOrZoneRegex","newMomentProto","oldMomentProto","allowValueOptimization","setUTCValues","setLocalValues","makeMoment","mom","hasTime","parseAsUTC","isSingleString","isAmbigTime","isAmbigZone","ambigMatch","transferAmbigs","_ambigTime","_ambigZone","utcOffset","_fullCalendar","weekCalc","_locale","_fullCalendar_weekCalc","dayHours","stripZone","wasAmbigTime","hasZone","wasAmbigZone","tzo","oldMomentFormat","isWithin","commonlyAmbiguate","units","inputs","preserveTime","anyAmbigTime","anyAmbigZone","moms","setMomentValues","formatStr","formatDateWithChunks","getFormatStringChunks","chunks","formatDateWithChunk","tokenOverrides","chunk","maybeStr","maybe","formatRange","date1","date2","localeData","formatRangeWithChunks","unzonedDate1","unzonedDate2","chunkStr","leftI","leftStr","rightI","rightStr","middleI","middleStr1","middleStr2","middleStr","formatSimilarChunk","similarUnitMap","formatStringChunkCache","chunkFormatString","chunker","members","mixIntoClass","extendClass","superClass","subClass","theClass","Emitter","callbackHash","getCallbacks","triggerWith","Popover","documentMousedownProxy","documentMousedown","removeElement","windowEl","viewportEl","viewportTop","viewportLeft","viewportOffset","viewportConstrain","CoordCache","forcedOffsetParentEl","isHorizontal","isVertical","lefts","rights","tops","bottoms","offsetParentEl","queryBoundingRect","buildElHorizontals","buildElVerticals","scrollParentEl","getHorizontalIndex","getVerticalIndex","getLeftOffset","leftIndex","getLeftPosition","getRightOffset","getRightPosition","getTopOffset","topIndex","getTopPosition","getBottomOffset","getBottomPosition","DragListener","isListening","isDragging","mousemoveProxy","mouseupProxy","subjectEl","subjectHref","scrollEl","scrollBounds","scrollTopVel","scrollLeftVel","scrollIntervalId","scrollHandlerProxy","scrollIntervalMs","startListening","listenStart","distanceSq","updateScroll","stopListening","stopDrag","stopScrolling","listenStop","computeScrollBounds","sensitivity","topCloseness","bottomCloseness","leftCloseness","rightCloseness","topVel","leftVel","setScrollVel","constrainScrollVel","scrollIntervalFunc","frac","scrollStop","scrollHandler","HitDragListener","component","origHit","coordAdjust","subjectRect","origPoint","computeCoords","queryHit","subjectCenter","prepareHits","hitOver","isHitsEqual","hitOut","hitDone","isOrig","releaseHits","hit0","hit1","isHitPropsWithin","subHit","superHit","MouseFollower","sourceEl","top0","left0","topDelta","leftDelta","isFollowing","isAnimating","updatePosition","getEl","sourceOffset","Grid","elsByFill","externalDragStartProxy","eventTimeFormat","displayEventTime","displayEventEnd","minResizeDuration","largeUnit","computeEventTimeFormat","computeDisplayEventTime","computeDisplayEventEnd","setRange","rangeUpdated","processRangeOptions","spanToSegs","diffDates","getHitSpan","getHitEl","setElement","dayMousedown","bindSegHandlers","bindGlobalHandlers","unbindGlobalHandlers","renderSkeleton","renderDates","unrenderDates","isSelectable","dayClickHit","selectionSpan","dragListener","unselect","computeSelection","renderSelection","unrenderSelection","triggerDayClick","reportSelection","renderEventLocationHelper","eventLocation","sourceSeg","fakeEvent","fabricateHelperEvent","renderHelper","allDay","normalizeEventDates","unrenderHelper","renderHighlight","unrenderHighlight","span0","span1","computeSelectionSpan","isSelectionSpanAllowed","renderFill","unrenderFill","highlightSegClasses","renderBusinessHours","unrenderBusinessHours","getNowIndicatorUnit","renderNowIndicator","unrenderNowIndicator","segs","renderFillSegEls","segElMethod","renderedSegs","fillSegHtml","fillSegTag","classesMethod","cssMethod","getDayClasses","getNow","intervalDuration","intervalStart","highlightStateClass","mousedOverSeg","isDraggingSeg","isResizingSeg","isDraggingExternal","renderEvents","bgEvents","fgEvents","isBgEvent","renderBgEvents","renderFgEvents","eventsToSegs","renderBgSegs","renderFgSegs","unrenderEvents","triggerSegMouseout","unrenderFgSegs","unrenderBgSegs","getEventSegs","renderFgSegEls","disableResizing","fgSegHtml","resolveEventEl","bgEventSegEl","bgEventSegClasses","bgEventSegCss","background-color","businessHoursSegClasses","triggerSegMouseover","isEventResizable","segResizeMousedown","isEventDraggable","segDragMousedown","dropLocation","mouseFollower","segDragStart","hideEvent","computeEventDrop","isEventSpanAllowed","eventToSpan","renderDrag","unrenderDrag","showEvent","segDragStop","reportEventDrop","startSpan","endSpan","getEventEnd","normalizeEventTimes","applyDragOpacity","externalDragStart","listenToExternalDrag","getDraggedElMeta","computeExternalDrop","isExternalSpanAllowed","eventProps","reportExternalDrop","applyTimezone","eventEnd","resizeLocation","segResizeStart","origHitSpan","hitSpan","computeEventStartResize","computeEventEndResize","renderEventResize","unrenderEventResize","segResizeStop","reportEventResize","computeEventResize","defaultDuration","defaultAllDayEventDuration","defaultTimedEventDuration","getEventTimeText","displayEnd","getSegClasses","getEventSkinCss","eventColor","sourceColor","optionColor","border-color","textColor","eventToSegs","eventToSpans","eventToRange","eventRangeToSpans","allEvents","segSliceFunc","eventsById","groupEventsById","ranges","isInverseBgEvent","invertRanges","eventRangeToSegs","getDefaultEventEnd","spans","eventSpanToSegs","eventStartMS","eventDurationMS","viewStart","viewEnd","inverseRanges","compareRanges","sortEventSegs","compareEventSegs","seg1","seg2","eventOrderSpecs","rendering","getEventRendering","range1","range2","dataAttrPrefix","stick","DayTableMixin","breakOnWeeks","dayDates","dayIndices","daysPerRow","rowCnt","colCnt","colHeadFormat","updateDayTable","dayIndex","isHiddenDay","updateDayTableCols","computeColCnt","computeColHeadFormat","getCellDate","getCellDayIndex","getCellRange","getColDayIndex","getDateDayIndex","dayOffset","sliceRangeByRow","normalRange","computeDayRange","rangeFirst","rangeLast","rowFirst","rowLast","segFirst","segLast","firstRowDayIndex","lastRowDayIndex","sliceRangeByDay","renderHeadHtml","widgetHeaderClass","renderHeadTrHtml","renderHeadIntroHtml","renderIntroHtml","renderHeadDateCellsHtml","htmls","renderHeadDateCellHtml","colspan","otherAttrs","renderBgTrHtml","renderBgIntroHtml","renderBgCellsHtml","renderBgCellHtml","widgetContentClass","bookendCells","trEl","introHtml","DayGrid","numbersVisible","bottomCoordPadding","cellEls","helperEls","rowCoordCache","colCoordCache","isRigid","renderDayRowHtml","getCellEl","removeSegPopover","getBusinessHoursEvents","renderNumberTrHtml","renderNumberIntroHtml","renderNumberCellsHtml","renderNumberCellHtml","dayNumbersVisible","leftCol","rightCol","getCellHit","helperNodes","rowStructs","renderSegRows","rowNode","rowEl","skeletonEl","skeletonTop","tbodyEl","renderFillRow","startCol","endCol","popoverSegs","allDaySegs","rowStruct","segRows","groupSegRows","renderSegRow","isResizableFromStart","isEventResizableFromStart","isResizableFromEnd","isEventResizableFromEnd","skinCss","timeHtml","titleHtml","rowSegs","segLevels","buildSegLevels","levelCnt","segMatrix","cellMatrix","loneCellMatrix","levelSegs","emptyCellsUntil","isDaySegCollision","compareDaySegCols","otherSegs","otherSeg","segPopover","limitRows","levelLimit","rowLevelLimit","unlimitRow","computeRowLevelLimit","limitRow","trEls","trHeight","iterInnerHeights","moreNodes","limitedNodes","segsBelow","totalSegsBelow","colSegsBelow","rowspan","segMoreNodes","moreTd","moreWrap","moreLink","getCellSegs","renderMoreLink","moreEls","limitedEls","hiddenSegs","getMoreLinkText","clickOption","moreEl","dayEl","allSegs","reslicedAllSegs","resliceDaySegs","reslicedHiddenSegs","showSegPopover","zoomTo","topEl","renderSegPopoverContent","isTheme","segContainer","dayDate","dayStart","dayEnd","dayRange","startLevel","TimeGrid","slotDuration","snapDuration","snapsPerSlot","minTime","labelFormat","labelInterval","colEls","slatEls","nowIndicatorEls","slatCoordCache","processOptions","renderHtml","renderContentSkeleton","renderSlatRowHtml","slotTime","slotDate","isLabeled","axisHtml","axisStyleAttr","computeLabelInterval","slotsPerLabel","AGENDA_STOCK_SUB_DURATIONS","colIndex","slatIndex","slatTop","slatHeight","localSnapIndex","snapIndex","snapTop","snapBottom","computeSnapTime","sliceRangeByTimes","updateSize","isResize","updateSegVerticals","fgSegs","bgSegs","businessSegs","computeDateTop","startOfDayDate","computeTimeTop","slatCoverage","slatRemainder","helperSegs","renderHelperSegs","unrenderHelperSegs","renderBusinessSegs","unrenderBusinessSegs","colContainerEls","renderHighlightSegs","unrenderHighlightSegs","fgContainerEls","bgContainerEls","helperContainerEls","highlightContainerEls","businessContainerEls","highlightSegs","cellHtml","renderFgSegsIntoContainers","unrenderNamedSegs","attachSegsByCol","groupSegsByCol","segsByCol","containerEls","updateFgSegCoords","fullTimeText","startTimeText","isMultiDayEvent","computeSegVerticals","assignSegVerticals","generateSegVerticalCss","computeFgSegHorizontals","assignFgSegHorizontals","level0","buildSlotSegLevels","computeForwardSlotSegs","computeSlotSegPressures","computeFgSegForwardBack","seriesBackwardPressure","seriesBackwardCoord","forwardSegs","forwardCoord","sortForwardSegs","backwardCoord","compareForwardSegs","forwardPressure","generateFgSegHorizontalCss","shouldOverlap","computeSlotSegCollisions","forwardSeg","isSlotSegCollision","View","displaying","isSkeletonRendered","isEventsRendered","intervalEnd","intervalUnit","scrollerEl","nextDayThreshold","isHiddenDayHash","nowIndicatorTimeoutID","nowIndicatorIntervalID","initThemingProps","initHiddenDays","computeRange","skipHiddenDays","computePrevDate","massageCurrentDate","computeNextDate","computeTitle","computeTitleFormat","unrenderSkeleton","scrollState","queryScroll","freezeContentHeight","displayView","forceScroll","computeInitialScroll","unfreezeContentHeight","triggerRender","clearEvents","clearView","redisplay","wasEventsRendered","displayEvents","getEventCache","startNowIndicator","stopNowIndicator","triggerUnrender","initialNow","initialNowQueried","cleared","setScroll","setHeight","getSuggestedViewHeight","isHeightAuto","isAuto","computeScrollerHeight","totalHeight","both","otherHeight","previousScrollState","triggerEventRender","triggerEventUnrender","destroyEvents","renderedEventSegEach","startEditable","mutateResult","mutateEvent","undoFunc","reportEventChange","triggerEventDrop","dateDelta","eventInput","renderEvent","triggerExternalDrop","durationEditable","triggerEventResize","durationDelta","triggerSelect","destroySelection","hiddenDays","dayCnt","isExclusive","out","startDay","endDay","endTimeMS","dirDefaults","langDefaults","viewSpecCache","loadingLevel","Calendar_constructor","initOptions","langOptionHash","rtlDefaults","populateInstanceComputableOptions","getViewSpec","viewType","buildViewSpec","getUnitViewSpec","viewTypes","spec","getViewsWithButtons","singleUnit","requestedViewType","viewOverrides","specChain","defaultsChain","overridesChain","buildViewSpecOptions","buildViewSpecButtonText","queryButtonText","buttonTextOverride","buttonTextDefault","humanizeDuration","instantiateView","isValidViewType","pushLoading","popLoading","buildSelectSpan","zonedStartInput","zonedEndInput","refetchEvents","reportEvents","rerenderEvents","changeView","renderView","prevYear","nextYear","incrementDate","getCalendar","getView","getMomentLocaleData","weekNumberCalculation","getIsAmbigTimezone","zonedDate","timeAdjust","adjustedZonedDate","zonedStart","locale","EventManager","isFetchNeeded","fetchEvents","headerElement","currentView","viewsByType","suggestedViewHeight","windowResizeProxy","ignoreWindowResize","initialRender","elementVisible","calcSize","Header","handleWindowResize","windowResize","windowResizeDelay","deactivateButton","activateButton","updateHeaderTitle","updateTodayButton","getAndRenderEvents","contentHeight","shouldRecalc","_calcSize","fetchAndRenderEvents","lazyFetching","disableButton","enableButton","zonedDateInput","titleRangeSeparator","monthYearFormat","forceEventDuration","weekends","weekNumbers","weekNumberTitle","scrollTime","startParam","endParam","timezoneParam","buttonIcons","themeButtonIcons","dragOpacity","dragRevertDuration","dragScroll","unselectAuto","dropAccept","eventOrder","eventLimit","eventLimitText","eventLimitClick","dayPopoverFormat","englishDefaults","langs","datepickerLang","langCode","dpLangCode","dpOptions","fcOptions","dpComputableOptions","newFcOptions","momOptions","momComputableOptions","dayOfMonthFormat","mediumTimeFormat","smallTimeFormat","extraSmallTimeFormat","hourFormat","noMeridiemTimeFormat","instanceComputableOptions","smallDayDateFormat","weekFormat","smallWeekFormat","viewsWithButtons","sections","renderSection","sectionEl","buttonStr","groupChildren","isOnlyButtons","groupEl","buttonName","customButtonProps","viewSpec","buttonClick","overrideText","defaultText","themeIcon","normalIcon","innerHtml","customButtons","sourceNormalizers","sourceFetchers","eventGUID","addEventSource","removeEventSource","updateEvent","removeEvents","clientEvents","stickySource","sources","rangeStart","rangeEnd","currentFetchID","pendingSourceCnt","eventSources","sourceInput","buildEventSource","fetchID","fetchEventSource","_fetchEventSource","eventInputs","isArraySource","abstractEvent","buildEventFromInput","expandEvent","fetchers","normalizers","origArray","isSourcesEqual","source1","source2","getSourcePrimitive","googleCalendarId","getMiscEventProps","isMiscEventPropName","eventID","eventDataTransform","_recurring","allDayDefault","assignDatesToEvent","backupEventDates","_rangeStart","_rangeEnd","dowHash","newProps","miscProps","oldProps","clearEnd","startDelta","endDelta","date0","_allDay","mutateEvents","isAmbigTimezone","undoFunctions","wholeDay","optionVal","businessHours","defaultVal","constraint","eventConstraint","overlap","eventOverlap","isSpanAllowed","eventSpan","selectConstraint","selectOverlap","constraintEvents","anyContainment","peerEvents","peerEvent","peerOverlap","constraintToEvents","eventContainsRange","getPeerEvents","eventIntersectsRange","constraintInput","eventStart","otherEvent","BasicView","dayGridClass","dayGrid","weekNumbersVisible","weekNumberWidth","headContainerEl","headRowEl","instantiateDayGrid","subclass","basicDayGridMethods","renderSkeletonHtml","renderHead","hasRigidRows","weekNumberStyleAttr","scrollerHeight","MonthView","isFixedWeeks","weekMode","basic","basicDay","basicWeek","fixedWeekCount","AgendaView","timeGridClass","timeGrid","noScrollRowEls","bottomRuleEl","bottomRuleHeight","instantiateTimeGrid","agendaTimeGridMethods","agendaDayGridMethods","AGENDA_ALL_DAY_EVENT_LIMIT","dayEvents","timedEvents","daySegs","timedSegs","weekText","agenda","allDaySlot","allDayText","slotEventOverlap","agendaDay","agendaWeek","Query","queryString","parseQuery","ps","keyval","getParamValue","getParamValues","deleteParam","keyMatchesFilter","valMatchesFilter","replaceParam","oldVal","uriString","strictMode","parseUri","parsers","loose","uriParts","hasAuthorityPrefixUserPref","hasAuthorityPrefix","userInfo","host","setProtocol","setHasAuthorityPrefix","setUserInfo","setHost","setPort","setPath","setQuery","setAnchor","getQueryParamValue","getQueryParamValues","deleteQueryParam","replaceQueryParam","jsUri","_global","mathRNG","nodeRNG","whatwgRNG","_rndBytes","crypto","getRandomValues","_rnds","Uint32Array","_rb","randomBytes","_rng","BufferClass","Buffer","_byteToHex","_hexToByte","oct","unparse","bth","_seedBytes","_nodeId","_clockseq","_lastMSecs","_lastNSecs","clockseq","msecs","nsecs","tl","tmh","v4","rnds","rng","_previousRoot","CodeMirror","place","givenOptions","lineWrapping","inputDiv","scroller","mover","gutterText","lineSpace","selectionDiv","lineDiv","themeChanged","ios","lineNumbers","khtml","stringWidth","Delayed","blinker","BranchChunk","LeafChunk","work","loadMode","inverted","shiftSelecting","lastClick","lastDoubleClick","lastScrollPos","draggingText","suppressEdits","updateInput","userSelChange","textChanged","leaveInputAlone","gutterDirty","displayOffset","showingFrom","showingTo","lastSizeC","bracketHighlighted","maxLine","tabCache","operation","History","onMouseDown","onDoubleClick","e_preventDefault","gecko","onContextMenu","updateDisplay","fixedGutter","onScroll","fastPoll","dragDrop","drag_","onDragEvent","addStop","e_stop","replaceSelection","isLine","getSelection","setOption","resetInput","wrappingChanged","gutterChanged","getOption","indentLine","smartIndent","indentSelection","indentSelected","historySize","undone","clearHistory","matchBrackets","getTokenAt","clipPos","getLine","getStateBefore","getStateAfter","clipLine","cursorCoords","charCoords","localCoords","pageCoords","coordsChar","eltOffset","markText","setBookmark","findMarksAt","setMarker","addGutterMarker","clearMarker","removeGutterMarker","setLineClass","hideLine","setLineHidden","showLine","onDeleteLine","lineInfo","addWidget","vert","horiz","yBot","vspace","textHeight","hspace","scrollIntoView","lineCount","getCursor","copyPos","somethingSelected","posEq","setCursor","setSelectionUser","getLineHandle","setLine","replaceRange","removeLine","getRange","triggerOnKeyDown","commands","moveH","deleteH","moveV","toggleOverwrite","posFromIndex","lineNo","iter","indexFromPos","compoundChange","getInputField","getWrapperElement","getScrollerElement","getGutterElement","getLineAt","updateLineHeight","updateLines","splitLines","setShift","e_prop","e_target","onGutterClick","posFromMouse","e_button","mac","selectLine","selectWordAt","going","dragAndDrop","posLess","up","visibleLines","ie","loadFile","curFrom","curTo","scr","setDragImage","doHandleBinding","dropShift","prevShift","Pass","handleKeyBinding","startMap","getKeyMap","keyMap","auto","maybeTransition","isModifierKey","keyNames","altGraphKey","lookupKey","extraKeys","oldKeyCode","handleCharBinding","lastStoppedKey","pollingFast","readInput","onKeyEvent","electricChars","slowPoll","restartBlink","newText","selFrom","selTo","addChange","undoDepth","updateLinesNoUndo","unredoHelper","replaced","added","editEnd","recomputeMaxLength","maxLineLength","nlines","firstLine","lastLine","prevLine","fixMarkEnds","fixMarkStarts","inheritMarks","perLine","charWidth","guess","newWork","lendiff","task","hlEnd","highlightLines","startWorker","changeObj","updateLine","adjustPos","replaceRange1","end1","computeSel","endch","newSel","l1","l2","pollInterval","startOperation","endOperation","missed","changed","prevInput","hasSelection","same","selectInput","scrollEditorIntoView","winH","scrollCursorIntoView","pl","screen","screentop","screenw","screenleft","gutterw","atLeft","lh","fromHeight","toHeight","lineAtHeight","suppressCallback","intact","computeIntact","domStart","intactLines","gutterDisplay","patchDisplay","different","heightAtLine","checkHeights","curNode","heightChanged","updateGutter","onUpdate","intact2","killNode","domPos","nextIntact","scratch","getHTML","makeTab","bgClassName","hText","hEditor","normalNode","marker","gutterMarker","firstLineNumber","minwidth","eltText","resized","fromPos","toPos","headPos","wrapOff","lineOff","sameLine","rstyle","quirksMode","middleStart","middleHeight","oldFrom","oldTo","goalColumn","from1","skipHidden","autoClearEmptyLines","oldLine","no","oldCh","getNonHidden","lNo","toEnd","linelen","findPosH","lineObj","findNextLine","lo","moveOnce","boundToLine","sawWord","isWordChar","indent","curSpace","indentation","tabSize","curSpaceString","indentUnit","indentString","indentWithTabs","getMode","stateAfter","TextMarker","mk","marked","lineN","mark","addMark","MarkedText","bm","Bookmark","markers","changeLine","fline","tline","markerText","markerClass","lineClass","bgClass","charFromX","getX","measureLine","fromX","toX","estimated","estX","middleX","tempId","wbr","spanAffectsWrapping","inLineWrap","heightPos","tw","innerOff","cachedHeight","cachedHeightFor","measureText","cachedWidth","cachedWidthFor","liberal","offW","offL","scrollPos","oldCSS","rehide","ie_lt9","matching","(",")","[","]","{","}","autoclear","scan","te","two","findStartLine","minindent","minline","lim","indented","startState","copyState","highlightWorker","workTime","foundWork","unchanged","compareStates","realChange","bail","hadState","workDelay","onHighlightComplete","reScroll","updated","tc","cbs","onCursorActivity","nestedOperation","startCompound","endCompound","extensions","mimeModes","defineMode","dependencies","defineMIME","resolveMode","mfactory","listModes","listMIMEs","defineExtension","killLine","deleteLine","goDocStart","goDocEnd","goLineStart","goLineStartSmart","firstNonWS","goLineEnd","goLineUp","goLineDown","goPageUp","goPageDown","goCharLeft","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goWordRight","delCharLeft","delCharRight","delWordLeft","delWordRight","indentAuto","indentMore","indentLess","insertTab","transposeChars","newlineAndIndent","Right","Up","Down","End","Home","PageUp","PageDown","Delete","Backspace","Tab","Shift-Tab","Enter","Insert","pcDefault","Ctrl-A","Ctrl-D","Ctrl-Z","Shift-Ctrl-Z","Ctrl-Y","Ctrl-Home","Alt-Up","Ctrl-End","Ctrl-Down","Ctrl-Left","Ctrl-Right","Alt-Left","Alt-Right","Ctrl-Backspace","Ctrl-Delete","Ctrl-S","Ctrl-F","Ctrl-G","Shift-Ctrl-G","Shift-Ctrl-F","Shift-Ctrl-R","Ctrl-[","Ctrl-]","fallthrough","macDefault","Cmd-A","Cmd-D","Cmd-Z","Shift-Cmd-Z","Cmd-Y","Cmd-Up","Cmd-End","Cmd-Down","Cmd-Left","Cmd-Right","Alt-Backspace","Ctrl-Alt-Backspace","Alt-Delete","Cmd-S","Cmd-F","Cmd-G","Shift-Cmd-G","Cmd-Alt-F","Shift-Cmd-Alt-F","Cmd-[","Cmd-]","emacsy","Ctrl-B","Ctrl-P","Ctrl-N","Alt-F","Alt-B","Ctrl-E","Ctrl-V","Shift-Ctrl-V","Ctrl-H","Alt-D","Ctrl-K","Ctrl-T","extraMap","lookup","nofallthrough","fromTextArea","rmSubmit","realSubmit","wrappedSubmit","getTextArea","toTextArea","nstate","a1","a2","StringStream","eol","sol","eat","ok","eatWhile","eatSpace","skipToEnd","skipTo","backUp","countColumn","consume","caseInsensitive","cased","attach","lenBefore","dup","fromOpen","toOpen","isDead","sameSet","newmk","nmark","to_","copyStyles","textBefore","taken","newmark","mylen","mymk","mymark","omk","curWord","prevWord","blankLine","wrapAt","wrapId","wrapWBR","span_","outPos","allText","styleToClass","sg","nextChange","marks","markpos","advanceMarks","upto","appliedStyle","cleanUp","part","insertHeight","iterN","rm","spilled","newleaf","maybeSpill","me","myIndex","used","compound","dtime","startBefore","endAfter","stopMethod","e_stopPropagation","overridden","override","disconnect","wrapHandler","vendor","lineSep","computedStyle","bod","skipBody","ot","escapeElement","parentElement","compareEndPoints","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","44","45","46","59","91","92","93","127","186","187","188","189","190","191","192","219","220","221","222","63276","63277","63275","63273","63234","63232","63235","63233","63302","63272","parserConfig","jsonMode","keywords","kw","atom","while","with","do","try","finally","break","continue","new","delete","throw","var","const","let","catch","switch","case","instanceof","true","false","null","isOperatorChar","nextUntilUnescaped","cont","jsTokenBase","jsTokenString","jsTokenComment","reAllowed","word","kwAllowed","quote","maybeEnd","atomicTypes","JSLexical","inScope","varname","localVars","parseJS","lexical","statement","lex","defaultVars","pushcontext","vars","popcontext","pushlex","poplex","expect","wanted","expecting","callee","vardef1","functiondef","forspec1","maybelabel","funarg","maybeoperator","maybeexpression","commasep","objprop","commaSeparated","vardef2","forspec2","formaybein","forspec3","basecolumn","textAfter","firstChar","mask","dF","SyntaxError","mmm","mmmm","yyyy","HH","tt","TT","shortDate","mediumDate","longDate","fullDate","shortTime","mediumTime","longTime","isoDate","isoTime","isoDateTime","isoUtcDateTime","sortableModule","sortableFactory","sortableError","dragEl","ghostEl","cloneEl","rootEl","nextEl","lastDownEl","scrollCustomFn","lastEl","lastCSS","lastParentCSS","activeGroup","putSortable","autoScroll","tapEvt","touchEvt","moved","R_SPACE","R_FLOAT","Zepto","Polymer","captureMode","supportDraggable","supportCssPointerEvents","_silent","savedInputChecked","touchDragOverListeners","_autoScroll","sens","winWidth","winHeight","vx","vy","scrollOffsetX","scrollOffsetY","scrollFn","pid","_prepareGroup","toFn","pull","fromGroup","originalGroup","checkPull","checkPut","put","revertClone","Sortable","store","chosenClass","dragClass","preventOnFilter","dropBubble","dragoverBubble","dataIdAttr","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","nativeDraggable","_onTapStart","_onDragOver","originalTarget","shadowRoot","_saveInputCheckedState","_closest","_dispatchEvent","_prepareDragStart","dragStartFn","_lastX","_lastY","_disableDelayedDrag","_triggerDragStart","_disableDraggable","_onDrop","_dragStartTimer","pointerType","_onDragStart","removeAllRanges","_dragStarted","_nulling","_emulateDragOver","_css","elementFromPoint","_onTouchMove","translate3d","_appendGhost","ghostRect","useFallback","_offUpEvents","_clone","_loopId","effectAllowed","dragRect","targetRect","activeSortable","isOwner","isMovingBetweenSortable","canSort","lastPullMode","_cloneHide","_ghostIsLast","lastElementChild","_onMove","_animate","cssFloat","isWide","isLong","halfway","nextElementSibling","elTop","tgTop","previousElementSibling","moveVector","_unsilent","prevRect","currentRect","_globalDragOver","_generateId","_matches","_getParentOrHost","dropEffect","targetEl","fromEl","onName","toEl","originalEvt","willInsertAfter","onMoveFn","onMove","retVal","draggedRect","relatedRect","dom","passive","__SV","sessionStorage","setItem","replaceState","desiredHash","mixpanel","people","MIXPANEL_CUSTOM_LIB_URL"],"mappings":"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","file":"thirdparty.js","sourcesContent":["(function (root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.StackFrame = factory();\n }\n}(this, function () {\n 'use strict';\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function _capitalize(str) {\n return str[0].toUpperCase() + str.substring(1);\n }\n\n function _getter(p) {\n return function () {\n return this[p];\n };\n }\n\n var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n var numericProps = ['columnNumber', 'lineNumber'];\n var stringProps = ['fileName', 'functionName', 'source'];\n var arrayProps = ['args'];\n\n function StackFrame(obj) {\n if (obj instanceof Object) {\n var props = booleanProps.concat(numericProps.concat(stringProps.concat(arrayProps)));\n for (var i = 0; i < props.length; i++) {\n if (obj.hasOwnProperty(props[i]) && obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n }\n\n StackFrame.prototype = {\n getArgs: function () {\n return this.args;\n },\n setArgs: function (v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n this.args = v;\n },\n\n getEvalOrigin: function () {\n return this.evalOrigin;\n },\n setEvalOrigin: function (v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n\n toString: function () {\n var functionName = this.getFunctionName() || '{anonymous}';\n var args = '(' + (this.getArgs() || []).join(',') + ')';\n var fileName = this.getFileName() ? ('@' + this.getFileName()) : '';\n var lineNumber = _isNumber(this.getLineNumber()) ? (':' + this.getLineNumber()) : '';\n var columnNumber = _isNumber(this.getColumnNumber()) ? (':' + this.getColumnNumber()) : '';\n return functionName + args + fileName + lineNumber + columnNumber;\n }\n };\n\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n StackFrame.prototype['set' + _capitalize(booleanProps[i])] = (function (p) {\n return function (v) {\n this[p] = Boolean(v);\n };\n })(booleanProps[i]);\n }\n\n for (var j = 0; j < numericProps.length; j++) {\n StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n StackFrame.prototype['set' + _capitalize(numericProps[j])] = (function (p) {\n return function (v) {\n if (!_isNumber(v)) {\n throw new TypeError(p + ' must be a Number');\n }\n this[p] = Number(v);\n };\n })(numericProps[j]);\n }\n\n for (var k = 0; k < stringProps.length; k++) {\n StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n StackFrame.prototype['set' + _capitalize(stringProps[k])] = (function (p) {\n return function (v) {\n this[p] = String(v);\n };\n })(stringProps[k]);\n }\n\n return StackFrame;\n}));\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n}(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+\\:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+\\:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code\\])?$/;\n\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?:\\:(\\d+))?(?:\\:(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[\\(\\)]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^\\()]*)|(\\)\\,.*$)/g, '');\n }\n var tokens = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(').split(/\\s+/).slice(1);\n var locationParts = this.extractLocation(tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval\\:\\d+\\:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionName = tokens.join('@') || undefined;\n\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(\n new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n })\n );\n }\n }\n\n return result;\n },\n\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n\n return filtered.map(function(line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = (tokens.shift() || '');\n var functionName = functionCall\n .replace(//, '$2')\n .replace(/\\([^\\)]*\\)/g, '') || undefined;\n var argsRaw;\n if (functionCall.match(/\\(([^\\)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^\\(]+\\(([^\\)]*)\\)$/, '$1');\n }\n var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n undefined : argsRaw.split(',');\n\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n}));\n","/*!\n * jQuery JavaScript Library v2.1.1\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-05-01T17:11Z\n */\n\n(function (global, factory) {\n\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper window is present,\n // execute the factory and get jQuery\n // For environments that do not inherently posses a window with a document\n // (such as Node.js), expose a jQuery-making factory as module.exports\n // This accentuates the need for the creation of a real window\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info\n module.exports = global.document ?\n\t\t\tfactory(global, true) :\n\t\t\tfunction (w) {\n\t\t\t if (!w.document) {\n\t\t\t throw new Error(\"jQuery requires a window with a document\");\n\t\t\t }\n\t\t\t return factory(w);\n\t\t\t};\n } else {\n factory(global);\n }\n\n // Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n\n // Can't do this because several apps including ASP.NET trace\n // the stack via arguments.caller.callee and Firefox dies if\n // you try to trace through \"use strict\" call chains. (#13335)\n // Support: Firefox 18+\n //\n\n var arr = [];\n\n var slice = arr.slice;\n\n var concat = arr.concat;\n\n var push = arr.push;\n\n var indexOf = arr.indexOf;\n\n var class2type = {};\n\n var toString = class2type.toString;\n\n var hasOwn = class2type.hasOwnProperty;\n\n var support = {};\n\n\n\n var\n // Use the correct document accordingly with window argument (sandbox)\n document = window.document,\n\n version = \"2.1.1\",\n\n // Define a local copy of jQuery\n jQuery = function (selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n },\n\n // Support: Android<4.1\n // Make sure we trim BOM and NBSP\n rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n // Matches dashed string for camelizing\n rmsPrefix = /^-ms-/,\n rdashAlpha = /-([\\da-z])/gi,\n\n // Used by jQuery.camelCase as callback to replace()\n fcamelCase = function (all, letter) {\n return letter.toUpperCase();\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n\n constructor: jQuery,\n\n // Start with an empty selector\n selector: \"\",\n\n // The default length of a jQuery object is 0\n length: 0,\n\n toArray: function () {\n return slice.call(this);\n },\n\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function (num) {\n return num != null ?\n\n // Return just the one element from the set\n (num < 0 ? this[num + this.length] : this[num]) :\n\n // Return all the elements in a clean array\n slice.call(this);\n },\n\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function (elems) {\n\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems);\n\n // Add the old object onto the stack (as a reference)\n ret.prevObject = this;\n ret.context = this.context;\n\n // Return the newly-formed element set\n return ret;\n },\n\n // Execute a callback for every element in the matched set.\n // (You can seed the arguments with an array of args, but this is\n // only used internally.)\n each: function (callback, args) {\n return jQuery.each(this, callback, args);\n },\n\n map: function (callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n\n slice: function () {\n return this.pushStack(slice.apply(this, arguments));\n },\n\n first: function () {\n return this.eq(0);\n },\n\n last: function () {\n return this.eq(-1);\n },\n\n eq: function (i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n\n end: function () {\n return this.prevObject || this.constructor(null);\n },\n\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options, name, src, copy, copyIsArray, clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false;\n\n // Handle a deep copy situation\n if (typeof target === \"boolean\") {\n deep = target;\n\n // skip the boolean and the target\n target = arguments[i] || {};\n i++;\n }\n\n // Handle case when target is a string or something (possible in deep copy)\n if (typeof target !== \"object\" && !jQuery.isFunction(target)) {\n target = {};\n }\n\n // extend jQuery itself if only one argument is passed\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n src = target[name];\n copy = options[name];\n\n // Prevent never-ending loop\n if (target === copy) {\n continue;\n }\n\n // Recurse if we're merging plain objects or arrays\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && jQuery.isArray(src) ? src : [];\n\n } else {\n clone = src && jQuery.isPlainObject(src) ? src : {};\n }\n\n // Never move original objects, clone them\n target[name] = jQuery.extend(deep, clone, copy);\n\n // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n\n // Return the modified object\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n\n // Assume jQuery is ready without the ready module\n isReady: true,\n\n error: function (msg) {\n throw new Error(msg);\n },\n\n noop: function () { },\n\n // See test/unit/core.js for details concerning isFunction.\n // Since version 1.3, DOM methods and functions like alert\n // aren't supported. They return false on IE (#2968).\n isFunction: function (obj) {\n return jQuery.type(obj) === \"function\";\n },\n\n isArray: Array.isArray,\n\n isWindow: function (obj) {\n return obj != null && obj === obj.window;\n },\n\n isNumeric: function (obj) {\n // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n // subtraction forces infinities to NaN\n return !jQuery.isArray(obj) && obj - parseFloat(obj) >= 0;\n },\n\n isPlainObject: function (obj) {\n // Not plain objects:\n // - Any object or value whose internal [[Class]] property is not \"[object Object]\"\n // - DOM nodes\n // - window\n if (jQuery.type(obj) !== \"object\" || obj.nodeType || jQuery.isWindow(obj)) {\n return false;\n }\n\n if (obj.constructor &&\n !hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\")) {\n return false;\n }\n\n // If the function hasn't returned already, we're confident that\n // |obj| is a plain object, created by {} or constructed with new Object\n return true;\n },\n\n isEmptyObject: function (obj) {\n var name;\n for (name in obj) {\n return false;\n }\n return true;\n },\n\n type: function (obj) {\n if (obj == null) {\n return obj + \"\";\n }\n // Support: Android < 4.0, iOS < 6 (functionish RegExp)\n return typeof obj === \"object\" || typeof obj === \"function\" ?\n class2type[toString.call(obj)] || \"object\" :\n typeof obj;\n },\n\n // Evaluates a script in a global context\n globalEval: function (code) {\n var script,\n indirect = eval;\n\n code = jQuery.trim(code);\n\n if (code) {\n // If the code includes a valid, prologue position\n // strict mode pragma, execute code by injecting a\n // script tag into the document.\n if (code.indexOf(\"use strict\") === 1) {\n script = document.createElement(\"script\");\n script.text = code;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else {\n // Otherwise, avoid the DOM node creation, insertion\n // and removal by using an indirect global eval\n indirect(code);\n }\n }\n },\n\n // Convert dashed to camelCase; used by the css and data modules\n // Microsoft forgot to hump their vendor prefix (#9572)\n camelCase: function (string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n },\n\n nodeName: function (elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n },\n\n // args is for internal usage only\n each: function (obj, callback, args) {\n var value,\n i = 0,\n length = obj.length,\n isArray = isArraylike(obj);\n\n if (args) {\n if (isArray) {\n for (; i < length; i++) {\n value = callback.apply(obj[i], args);\n\n if (value === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n value = callback.apply(obj[i], args);\n\n if (value === false) {\n break;\n }\n }\n }\n\n // A special, fast, case for the most common use of each\n } else {\n if (isArray) {\n for (; i < length; i++) {\n value = callback.call(obj[i], i, obj[i]);\n\n if (value === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n value = callback.call(obj[i], i, obj[i]);\n\n if (value === false) {\n break;\n }\n }\n }\n }\n\n return obj;\n },\n\n // Support: Android<4.1\n trim: function (text) {\n return text == null ?\n \"\" :\n (text + \"\").replace(rtrim, \"\");\n },\n\n // results is for internal usage only\n makeArray: function (arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArraylike(Object(arr))) {\n jQuery.merge(ret,\n typeof arr === \"string\" ?\n [arr] : arr\n );\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n\n inArray: function (elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n\n merge: function (first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n\n return first;\n },\n\n grep: function (elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert;\n\n // Go through the array, only saving the items\n // that pass the validator function\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n\n // arg is for internal usage only\n map: function (elems, callback, arg) {\n var value,\n i = 0,\n length = elems.length,\n isArray = isArraylike(elems),\n ret = [];\n\n // Go through the array, translating each of the items to their new values\n if (isArray) {\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n\n // Go through every key on the object,\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n }\n\n // Flatten any nested arrays\n return concat.apply([], ret);\n },\n\n // A global GUID counter for objects\n guid: 1,\n\n // Bind a function to a context, optionally partially applying any\n // arguments.\n proxy: function (fn, context) {\n var tmp, args, proxy;\n\n if (typeof context === \"string\") {\n tmp = fn[context];\n context = fn;\n fn = tmp;\n }\n\n // Quick check to determine if target is callable, in the spec\n // this throws a TypeError, but we will just return undefined.\n if (!jQuery.isFunction(fn)) {\n return undefined;\n }\n\n // Simulated bind\n args = slice.call(arguments, 2);\n proxy = function () {\n return fn.apply(context || this, args.concat(slice.call(arguments)));\n };\n\n // Set the guid of unique handler to the same of original handler, so it can be removed\n proxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n return proxy;\n },\n\n now: Date.now,\n\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n // Populate the class2type map\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function (i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArraylike(obj) {\n var length = obj.length,\n type = jQuery.type(obj);\n\n if (type === \"function\" || jQuery.isWindow(obj)) {\n return false;\n }\n\n if (obj.nodeType === 1 && length) {\n return true;\n }\n\n return type === \"array\" || length === 0 ||\n typeof length === \"number\" && length > 0 && (length - 1) in obj;\n }\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v1.10.19\n * http://sizzlejs.com/\n *\n * Copyright 2013 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-04-18\n */\n (function (window) {\n\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n\n // Instance-specific data\n expando = \"sizzle\" + -(new Date()),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n sortOrder = function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n return 0;\n },\n\n // General-purpose constants\n strundefined = typeof undefined,\n MAX_NEGATIVE = 1 << 31,\n\n // Instance methods\n hasOwn = ({}).hasOwnProperty,\n arr = [],\n pop = arr.pop,\n push_native = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf if we can't use a native one\n indexOf = arr.indexOf || function (elem) {\n var i = 0,\n len = this.length;\n for (; i < len; i++) {\n if (this[i] === elem) {\n return i;\n }\n }\n return -1;\n },\n\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n // Regular expressions\n\n // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // http://www.w3.org/TR/css3-syntax/#characters\n characterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n // Loosely modeled on CSS identifier characters\n // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors\n // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n identifier = characterEncoding.replace(\"w\", \"w#\"),\n\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")(?:\" + whitespace +\n // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace +\n // \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n \"*\\\\]\",\n\n pseudos = \":(\" + characterEncoding + \")(?:\\\\((\" +\n // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n // 3. anything else (capture 2)\n \".*\" +\n \")\\\\)|)\",\n\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n\n rattributeQuotes = new RegExp(\"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\"),\n\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + characterEncoding + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + characterEncoding + \")\"),\n \"TAG\": new RegExp(\"^(\" + characterEncoding.replace(\"w\", \"w*\") + \")\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n rsibling = /[+~]/,\n rescape = /'|\\\\/g,\n\n // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\"),\n funescape = function (_, escaped, escapedWhitespace) {\n var high = \"0x\" + escaped - 0x10000;\n // NaN means non-codepoint\n // Support: Firefox<24\n // Workaround erroneous numeric interpretation of +\"0x\"\n return high !== high || escapedWhitespace ?\n escaped :\n high < 0 ?\n // BMP codepoint\n String.fromCharCode(high + 0x10000) :\n // Supplemental Plane codepoint (surrogate pair)\n String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n };\n\n // Optimize for push.apply( _, NodeList )\n try {\n push.apply(\n (arr = slice.call(preferredDoc.childNodes)),\n preferredDoc.childNodes\n );\n // Support: Android<4.0\n // Detect silently failing push.apply\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ?\n\n // Leverage slice if possible\n function (target, els) {\n push_native.apply(target, slice.call(els));\n } :\n\n // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0;\n // Can't trust NodeList.length\n while ((target[j++] = els[i++])) { }\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var match, elem, m, nodeType,\n // QSA vars\n i, groups, old, nid, newContext, newSelector;\n\n if ((context ? context.ownerDocument || context : preferredDoc) !== document) {\n setDocument(context);\n }\n\n context = context || document;\n results = results || [];\n\n if (!selector || typeof selector !== \"string\") {\n return results;\n }\n\n if ((nodeType = context.nodeType) !== 1 && nodeType !== 9) {\n return [];\n }\n\n if (documentIsHTML && !seed) {\n\n // Shortcuts\n if ((match = rquickExpr.exec(selector))) {\n // Speed-up: Sizzle(\"#ID\")\n if ((m = match[1])) {\n if (nodeType === 9) {\n elem = context.getElementById(m);\n // Check parentNode to catch when Blackberry 4.6 returns\n // nodes that are no longer in the document (jQuery #6963)\n if (elem && elem.parentNode) {\n // Handle the case where IE, Opera, and Webkit return items\n // by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n }\n } else {\n // Context is not a document\n if (context.ownerDocument && (elem = context.ownerDocument.getElementById(m)) &&\n contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n }\n\n // Speed-up: Sizzle(\"TAG\")\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results;\n\n // Speed-up: Sizzle(\".CLASS\")\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n }\n\n // QSA path\n if (support.qsa && (!rbuggyQSA || !rbuggyQSA.test(selector))) {\n nid = old = expando;\n newContext = context;\n newSelector = nodeType === 9 && selector;\n\n // qSA works strangely on Element-rooted queries\n // We can work around this by specifying an extra ID on the root\n // and working up from there (Thanks to Andrew Dupont for the technique)\n // IE 8 doesn't work on object elements\n if (nodeType === 1 && context.nodeName.toLowerCase() !== \"object\") {\n groups = tokenize(selector);\n\n if ((old = context.getAttribute(\"id\"))) {\n nid = old.replace(rescape, \"\\\\$&\");\n } else {\n context.setAttribute(\"id\", nid);\n }\n nid = \"[id='\" + nid + \"'] \";\n\n i = groups.length;\n while (i--) {\n groups[i] = nid + toSelector(groups[i]);\n }\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context;\n newSelector = groups.join(\",\");\n }\n\n if (newSelector) {\n try {\n push.apply(results,\n newContext.querySelectorAll(newSelector)\n );\n return results;\n } catch (qsaError) {\n } finally {\n if (!old) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n }\n\n // All others\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n\n /**\n * Create key-value caches of limited size\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n return (cache[key + \" \"] = value);\n }\n return cache;\n }\n\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\n function assert(fn) {\n var div = document.createElement(\"div\");\n\n try {\n return !!fn(div);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n // release memory in IE\n div = null;\n }\n }\n\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = attrs.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n (~b.sourceIndex || MAX_NEGATIVE) -\n (~a.sourceIndex || MAX_NEGATIVE);\n\n // Use IE sourceIndex if available on both nodes\n if (diff) {\n return diff;\n }\n\n // Check if b follows a\n if (cur) {\n while ((cur = cur.nextSibling)) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length;\n\n // Match elements found at the specified indexes\n while (i--) {\n if (seed[(j = matchIndexes[i])]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== strundefined && context;\n }\n\n // Expose support vars for convenience\n support = Sizzle.support = {};\n\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n isXML = Sizzle.isXML = function (elem) {\n // documentElement is verified for cases where it doesn't yet exist\n // (such as loading iframes in IE - #4833)\n var documentElement = elem && (elem.ownerDocument || elem).documentElement;\n return documentElement ? documentElement.nodeName !== \"HTML\" : false;\n };\n\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n doc = node ? node.ownerDocument || node : preferredDoc,\n parent = doc.defaultView;\n\n // If no document and documentElement is available, return\n if (doc === document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n }\n\n // Set our document\n document = doc;\n docElem = doc.documentElement;\n\n // Support tests\n documentIsHTML = !isXML(doc);\n\n // Support: IE>8\n // If iframe document is assigned to \"document\" variable and if iframe has been reloaded,\n // IE will throw \"permission denied\" error when accessing \"document\" variable, see jQuery #13936\n // IE6-8 do not support the defaultView property so parent will be undefined\n if (parent && parent !== parent.top) {\n // IE11 does not have attachEvent, so all must suffer\n if (parent.addEventListener) {\n parent.addEventListener(\"unload\", function () {\n setDocument();\n }, false);\n } else if (parent.attachEvent) {\n parent.attachEvent(\"onunload\", function () {\n setDocument();\n });\n }\n }\n\n /* Attributes\n ---------------------------------------------------------------------- */\n\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)\n support.attributes = assert(function (div) {\n div.className = \"i\";\n return !div.getAttribute(\"className\");\n });\n\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n\n // Check if getElementsByTagName(\"*\") returns only elements\n support.getElementsByTagName = assert(function (div) {\n div.appendChild(doc.createComment(\"\"));\n return !div.getElementsByTagName(\"*\").length;\n });\n\n // Check if getElementsByClassName can be trusted\n support.getElementsByClassName = rnative.test(doc.getElementsByClassName) && assert(function (div) {\n div.innerHTML = \"
\";\n\n // Support: Safari<4\n // Catch class over-caching\n div.firstChild.className = \"i\";\n // Support: Opera<10\n // Catch gEBCN failure to find non-leading classes\n return div.getElementsByClassName(\"i\").length === 2;\n });\n\n // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programatically-set names,\n // so use a roundabout getElementsByName test\n support.getById = assert(function (div) {\n docElem.appendChild(div).id = expando;\n return !doc.getElementsByName || !doc.getElementsByName(expando).length;\n });\n\n // ID find and filter\n if (support.getById) {\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== strundefined && documentIsHTML) {\n var m = context.getElementById(id);\n // Check parentNode to catch when Blackberry 4.6 returns\n // nodes that are no longer in the document #6963\n return m && m.parentNode ? [m] : [];\n }\n };\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n } else {\n // Support: IE6/7\n // getElementById is not reliable as a find shortcut\n delete Expr.find[\"ID\"];\n\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n };\n }\n\n // Tag\n Expr.find[\"TAG\"] = support.getElementsByTagName ?\n function (tag, context) {\n if (typeof context.getElementsByTagName !== strundefined) {\n return context.getElementsByTagName(tag);\n }\n } :\n function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n results = context.getElementsByTagName(tag);\n\n // Filter out possible comments\n if (tag === \"*\") {\n while ((elem = results[i++])) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n return results;\n };\n\n // Class\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== strundefined && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n\n // QSA and matchesSelector support\n\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n rbuggyMatches = [];\n\n // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See http://bugs.jquery.com/ticket/13378\n rbuggyQSA = [];\n\n if ((support.qsa = rnative.test(doc.querySelectorAll))) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (div) {\n // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // http://bugs.jquery.com/ticket/12359\n div.innerHTML = \"\";\n\n // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n if (div.querySelectorAll(\"[msallowclip^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n }\n\n // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n if (!div.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n }\n\n // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n if (!div.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n }\n });\n\n assert(function (div) {\n // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n var input = doc.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n div.appendChild(input).setAttribute(\"name\", \"D\");\n\n // Support: IE8\n // Enforce case-sensitivity of name attribute\n if (div.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n }\n\n // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n if (!div.querySelectorAll(\":enabled\").length) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n }\n\n // Opera 10-11 does not throw on post-comma invalid pseudos\n div.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if ((support.matchesSelector = rnative.test((matches = docElem.matches ||\n docElem.webkitMatchesSelector ||\n docElem.mozMatchesSelector ||\n docElem.oMatchesSelector ||\n docElem.msMatchesSelector)))) {\n\n assert(function (div) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(div, \"div\");\n\n // This should fail with an exception\n // Gecko does not error, returns false instead\n matches.call(div, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n\n /* Contains\n ---------------------------------------------------------------------- */\n hasCompare = rnative.test(docElem.compareDocumentPosition);\n\n // Element contains another\n // Purposefully does not implement inclusive descendent\n // As in, an element does not contain itself\n contains = hasCompare || rnative.test(docElem.contains) ?\n function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (\n adown.contains ?\n adown.contains(bup) :\n a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16\n ));\n } :\n function (a, b) {\n if (b) {\n while ((b = b.parentNode)) {\n if (b === a) {\n return true;\n }\n }\n }\n return false;\n };\n\n /* Sorting\n ---------------------------------------------------------------------- */\n\n // Document order sorting\n sortOrder = hasCompare ?\n function (a, b) {\n\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n // Sort on method existence if only one input has compareDocumentPosition\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n if (compare) {\n return compare;\n }\n\n // Calculate position if both inputs belong to the same document\n compare = (a.ownerDocument || a) === (b.ownerDocument || b) ?\n a.compareDocumentPosition(b) :\n\n // Otherwise we know they are disconnected\n 1;\n\n // Disconnected nodes\n if (compare & 1 ||\n (!support.sortDetached && b.compareDocumentPosition(a) === compare)) {\n\n // Choose the first element that is related to our preferred document\n if (a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a)) {\n return -1;\n }\n if (b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b)) {\n return 1;\n }\n\n // Maintain original order\n return sortInput ?\n (indexOf.call(sortInput, a) - indexOf.call(sortInput, b)) :\n 0;\n }\n\n return compare & 4 ? -1 : 1;\n } :\n function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b];\n\n // Parentless nodes are either documents or disconnected\n if (!aup || !bup) {\n return a === doc ? -1 :\n b === doc ? 1 :\n aup ? -1 :\n bup ? 1 :\n sortInput ?\n (indexOf.call(sortInput, a) - indexOf.call(sortInput, b)) :\n 0;\n\n // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n }\n\n // Otherwise we need full lists of their ancestors for comparison\n cur = a;\n while ((cur = cur.parentNode)) {\n ap.unshift(cur);\n }\n cur = b;\n while ((cur = cur.parentNode)) {\n bp.unshift(cur);\n }\n\n // Walk down the tree looking for a discrepancy\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ?\n // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) :\n\n // Otherwise nodes in our document sort first\n ap[i] === preferredDoc ? -1 :\n bp[i] === preferredDoc ? 1 :\n 0;\n };\n\n return doc;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n // Set document vars if needed\n if ((elem.ownerDocument || elem) !== document) {\n setDocument(elem);\n }\n\n // Make sure that attribute selectors are quoted\n expr = expr.replace(rattributeQuotes, \"='$1']\");\n\n if (support.matchesSelector && documentIsHTML &&\n (!rbuggyMatches || !rbuggyMatches.test(expr)) &&\n (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n\n try {\n var ret = matches.call(elem, expr);\n\n // IE 9's matchesSelector returns false on disconnected nodes\n if (ret || support.disconnectedMatch ||\n // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) { }\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n if ((context.ownerDocument || context) !== document) {\n setDocument(context);\n }\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n if ((elem.ownerDocument || elem) !== document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ?\n fn(elem, name, !documentIsHTML) :\n undefined;\n\n return val !== undefined ?\n val :\n support.attributes || !documentIsHTML ?\n elem.getAttribute(name) :\n (val = elem.getAttributeNode(name)) && val.specified ?\n val.value :\n null;\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0;\n\n // Unless we *know* we can detect duplicates, assume their presence\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while ((elem = results[i++])) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n }\n\n // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n sortInput = null;\n\n return results;\n };\n\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while ((node = elem[i++])) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n }\n // Do not include comment or processing instruction nodes\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n\n // Can be adjusted by the user\n cacheLength: 50,\n\n createPseudo: markFunction,\n\n match: matchExpr,\n\n attrHandle: {},\n\n find: {},\n\n relative: {\n \">\": { dir: \"parentNode\", first: true },\n \" \": { dir: \"parentNode\" },\n \"+\": { dir: \"previousSibling\", first: true },\n \"~\": { dir: \"previousSibling\" }\n },\n\n preFilter: {\n \"ATTR\": function (match) {\n match[1] = match[1].replace(runescape, funescape);\n\n // Move the given value to match[3] whether quoted or unquoted\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n\n \"CHILD\": function (match) {\n /* matches from matchExpr[\"CHILD\"]\n 1 type (only|nth|...)\n 2 what (child|of-type)\n 3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n 4 xn-component of xn+y argument ([+-]?\\d*n|)\n 5 sign of xn-component\n 6 x of xn-component\n 7 sign of y-component\n 8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n }\n\n // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +((match[7] + match[8]) || match[3] === \"odd\");\n\n // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n\n \"PSEUDO\": function (match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n }\n\n // Accept quoted arguments as-is\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\";\n\n // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) &&\n // Get excess from tokenize (recursively)\n (excess = tokenize(unquoted, true)) &&\n // advance to the next closing parenthesis\n (excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n }\n\n // Return only captures needed by the pseudo filter method (type and argument)\n return match.slice(0, 3);\n }\n },\n\n filter: {\n\n \"TAG\": function (nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ?\n function () { return true; } :\n function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n\n \"CLASS\": function (className) {\n var pattern = classCache[className + \" \"];\n\n return pattern ||\n (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) &&\n classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute(\"class\") || \"\");\n });\n },\n\n \"ATTR\": function (name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n if (!operator) {\n return true;\n }\n\n result += \"\";\n\n return operator === \"=\" ? result === check :\n operator === \"!=\" ? result !== check :\n operator === \"^=\" ? check && result.indexOf(check) === 0 :\n operator === \"*=\" ? check && result.indexOf(check) > -1 :\n operator === \"$=\" ? check && result.slice(-check.length) === check :\n operator === \"~=\" ? (\" \" + result + \" \").indexOf(check) > -1 :\n operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" :\n false;\n };\n },\n\n \"CHILD\": function (type, what, argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n\n return first === 1 && last === 0 ?\n\n // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } :\n\n function (elem, context, xml) {\n var cache, outerCache, node, diff, nodeIndex, start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType;\n\n if (parent) {\n\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n while ((node = node[dir])) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n }\n // Reverse direction for :only-* (if we haven't yet done so)\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild];\n\n // non-xml :nth-child(...) stores cache data on `parent`\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n outerCache = parent[expando] || (parent[expando] = {});\n cache = outerCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = cache[0] === dirruns && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while ((node = ++nodeIndex && node && node[dir] ||\n\n // Fallback to seeking `elem` from the start\n (diff = nodeIndex = 0) || start.pop())) {\n\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n outerCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n\n // Use previously-cached element index if available\n } else if (useCache && (cache = (elem[expando] || (elem[expando] = {}))[type]) && cache[0] === dirruns) {\n diff = cache[1];\n\n // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\n } else {\n // Use the same loop as above to seek `elem` from the start\n while ((node = ++nodeIndex && node && node[dir] ||\n (diff = nodeIndex = 0) || start.pop())) {\n\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n (node[expando] || (node[expando] = {}))[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n\n // Incorporate the offset, then check against cycle size\n diff -= last;\n return diff === first || (diff % first === 0 && diff / first >= 0);\n }\n };\n },\n\n \"PSEUDO\": function (pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] ||\n Sizzle.error(\"unsupported pseudo: \" + pseudo);\n\n // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n if (fn[expando]) {\n return fn(argument);\n }\n\n // But maintain support for old signatures\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ?\n markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n while (i--) {\n idx = indexOf.call(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) :\n function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n\n return matcher[expando] ?\n markFunction(function (seed, matches, context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length;\n\n // Match elements unmatched by `matcher`\n while (i--) {\n if ((elem = unmatched[i])) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) :\n function (elem, context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results);\n return !results.pop();\n };\n }),\n\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n\n \"contains\": markFunction(function (text) {\n return function (elem) {\n return (elem.textContent || elem.innerText || getText(elem)).indexOf(text) > -1;\n };\n }),\n\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n do {\n if ((elemLang = documentIsHTML ?\n elem.lang :\n elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\"))) {\n\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n return false;\n };\n }),\n\n // Miscellaneous\n \"target\": function (elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n\n \"root\": function (elem) {\n return elem === docElem;\n },\n\n \"focus\": function (elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n\n // Boolean properties\n \"enabled\": function (elem) {\n return elem.disabled === false;\n },\n\n \"disabled\": function (elem) {\n return elem.disabled === true;\n },\n\n \"checked\": function (elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n },\n\n \"selected\": function (elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n\n // Contents\n \"empty\": function (elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n return true;\n },\n\n \"parent\": function (elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n\n // Element/input types\n \"header\": function (elem) {\n return rheader.test(elem.nodeName);\n },\n\n \"input\": function (elem) {\n return rinputs.test(elem.nodeName);\n },\n\n \"button\": function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n\n \"text\": function (elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" &&\n elem.type === \"text\" &&\n\n // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n ((attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n\n \"last\": createPositionalPseudo(function (matchIndexes, length) {\n return [length - 1];\n }),\n\n \"eq\": createPositionalPseudo(function (matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n })\n }\n };\n\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n // Add button/input type pseudos\n for (i in { radio: true, checkbox: true, file: true, password: true, image: true }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n for (i in { submit: true, reset: true }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n }\n\n // Easy API for creating new setFilters\n function setFilters() { }\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched, match, tokens, type,\n soFar, groups, preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n groups.push((tokens = []));\n }\n\n matched = false;\n\n // Combinators\n if ((match = rcombinators.exec(soFar))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n }\n\n // Filters\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] ||\n (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n }\n\n // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n return parseOnly ?\n soFar.length :\n soFar ?\n Sizzle.error(selector) :\n // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n checkNonElements = base && dir === \"parentNode\",\n doneName = done++;\n\n return combinator.first ?\n // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while ((elem = elem[dir])) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n } :\n\n // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache, outerCache,\n newCache = [dirruns, doneName];\n\n // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\n if (xml) {\n while ((elem = elem[dir])) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while ((elem = elem[dir])) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {});\n if ((oldCache = outerCache[dir]) &&\n oldCache[0] === dirruns && oldCache[1] === doneName) {\n\n // Assign to newCache so results back-propagate to previous elements\n return (newCache[2] = oldCache[2]);\n } else {\n // Reuse newcache so results back-propagate to previous elements\n outerCache[dir] = newCache;\n\n // A match means we're done; a fail means we have to keep checking\n if ((newCache[2] = matcher(elem, context, xml))) {\n return true;\n }\n }\n }\n }\n }\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ?\n function (elem, context, xml) {\n var i = matchers.length;\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n return true;\n } :\n matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if ((elem = unmatched[i])) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n return markFunction(function (seed, results, context, xml) {\n var temp, i, elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ?\n condense(elems, preMap, preFilter, context, xml) :\n elems,\n\n matcherOut = matcher ?\n // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ?\n\n // ...intermediate processing is necessary\n [] :\n\n // ...otherwise use results directly\n results :\n matcherIn;\n\n // Find primary matches\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n }\n\n // Apply postFilter\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml);\n\n // Un-match failing elements by moving them back to matcherIn\n i = temp.length;\n while (i--) {\n if ((elem = temp[i])) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n while (i--) {\n if ((elem = matcherOut[i])) {\n // Restore matcherIn since elem is not yet a final match\n temp.push((matcherIn[i] = elem));\n }\n }\n postFinder(null, (matcherOut = []), temp, xml);\n }\n\n // Move matched elements from seed to results to keep them synchronized\n i = matcherOut.length;\n while (i--) {\n if ((elem = matcherOut[i]) &&\n (temp = postFinder ? indexOf.call(seed, elem) : preMap[i]) > -1) {\n\n seed[temp] = !(results[temp] = elem);\n }\n }\n }\n\n // Add elements to results, through postFinder if defined\n } else {\n matcherOut = condense(\n matcherOut === results ?\n matcherOut.splice(preexisting, matcherOut.length) :\n matcherOut\n );\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext, matcher, j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf.call(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n return (!leadingRelative && (xml || context !== outermostContext)) || (\n (checkContext = context).nodeType ?\n matchContext(elem, context, xml) :\n matchAnyContext(elem, context, xml));\n }];\n\n for (; i < len; i++) {\n if ((matcher = Expr.relative[tokens[i].type])) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches);\n\n // Return special upon seeing a positional matcher\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n return setMatcher(\n i > 1 && elementMatcher(matchers),\n i > 1 && toSelector(\n // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({ value: tokens[i - 2].type === \" \" ? \"*\" : \"\" })\n ).replace(rtrim, \"$1\"),\n matcher,\n i < j && matcherFromTokens(tokens.slice(i, j)),\n j < len && matcherFromTokens((tokens = tokens.slice(j))),\n j < len && toSelector(tokens)\n );\n }\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function (seed, context, xml, results, outermost) {\n var elem, j, matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n len = elems.length;\n\n if (outermost) {\n outermostContext = context !== document && context;\n }\n\n // Add elements passing elementMatchers directly to results\n // Keep `i` a string if there are no elements so `matchedCount` will be \"00\" below\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0;\n while ((matcher = elementMatchers[j++])) {\n if (matcher(elem, context, xml)) {\n results.push(elem);\n break;\n }\n }\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n }\n\n // Track unmatched elements for set filters\n if (bySet) {\n // They will have gone through all possible matchers\n if ((elem = !matcher && elem)) {\n matchedCount--;\n }\n\n // Lengthen the array for every element, matched or not\n if (seed) {\n unmatched.push(elem);\n }\n }\n }\n\n // Apply set filters to unmatched elements\n matchedCount += i;\n if (bySet && i !== matchedCount) {\n j = 0;\n while ((matcher = setMatchers[j++])) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n }\n\n // Discard index placeholder values to get only actual matches\n setMatched = condense(setMatched);\n }\n\n // Add matches to results\n push.apply(results, setMatched);\n\n // Seedless set matches succeeding multiple successful matchers stipulate sorting\n if (outermost && !seed && setMatched.length > 0 &&\n (matchedCount + setMatchers.length) > 1) {\n\n Sizzle.uniqueSort(results);\n }\n }\n\n // Override manipulation of globals by nested matchers\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ?\n markFunction(superMatcher) :\n superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match /* Internal Use Only */) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n i = match.length;\n while (i--) {\n cached = matcherFromTokens(match[i]);\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n }\n\n // Cache the compiled function\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers));\n\n // Save selector and tokenization\n cached.selector = selector;\n }\n return cached;\n };\n\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n select = Sizzle.select = function (selector, context, results, seed) {\n var i, tokens, token, type, find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize((selector = compiled.selector || selector));\n\n results = results || [];\n\n // Try to minimize operations if there is no seed and only one group\n if (match.length === 1) {\n\n // Take a shortcut and set the context if the root selector is an ID\n tokens = match[0] = match[0].slice(0);\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n support.getById && context.nodeType === 9 && documentIsHTML &&\n Expr.relative[tokens[1].type]) {\n\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n if (!context) {\n return results;\n\n // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n }\n\n // Fetch a seed set for right-to-left matching\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n while (i--) {\n token = tokens[i];\n\n // Abort if we hit a combinator\n if (Expr.relative[(type = token.type)]) {\n break;\n }\n if ((find = Expr.find[type])) {\n // Search, expanding context for leading sibling combinators\n if ((seed = find(\n token.matches[0].replace(runescape, funescape),\n rsibling.test(tokens[0].type) && testContext(context.parentNode) || context\n ))) {\n\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n }\n\n // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n (compiled || compile(selector, match))(\n seed,\n context,\n !documentIsHTML,\n results,\n rsibling.test(selector) && testContext(context.parentNode) || context\n );\n return results;\n };\n\n // One-time assignments\n\n // Sort stability\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando;\n\n // Support: Chrome<14\n // Always assume duplicates if they aren't passed to the comparison function\n support.detectDuplicates = !!hasDuplicate;\n\n // Initialize against the default document\n setDocument();\n\n // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n support.sortDetached = assert(function (div1) {\n // Should return 1, but returns 4 (following)\n return div1.compareDocumentPosition(document.createElement(\"div\")) & 1;\n });\n\n // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n if (!assert(function (div) {\n div.innerHTML = \"\";\n return div.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n }\n\n // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n if (!support.attributes || !assert(function (div) {\n div.innerHTML = \"\";\n div.firstChild.setAttribute(\"value\", \"\");\n return div.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n }\n\n // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n if (!assert(function (div) {\n return div.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() :\n (val = elem.getAttributeNode(name)) && val.specified ?\n val.value :\n null;\n }\n });\n }\n\n return Sizzle;\n\n })(window);\n\n\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors;\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n\n\n\n var rneedsContext = jQuery.expr.match.needsContext;\n\n var rsingleTag = (/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/);\n\n\n\n var risSimple = /^.[^:#\\[\\.,]*$/;\n\n // Implement the identical functionality for filter and not\n function winnow(elements, qualifier, not) {\n if (jQuery.isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n /* jshint -W018 */\n return !!qualifier.call(elem, i, elem) !== not;\n });\n\n }\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return (elem === qualifier) !== not;\n });\n\n }\n\n if (typeof qualifier === \"string\") {\n if (risSimple.test(qualifier)) {\n return jQuery.filter(qualifier, elements, not);\n }\n\n qualifier = jQuery.filter(qualifier, elements);\n }\n\n return jQuery.grep(elements, function (elem) {\n return (indexOf.call(qualifier, elem) >= 0) !== not;\n });\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n return elems.length === 1 && elem.nodeType === 1 ?\n jQuery.find.matchesSelector(elem, expr) ? [elem] : [] :\n jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function (selector) {\n var i,\n len = this.length,\n ret = [],\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n // Needed because $( selector, context ) becomes $( context ).find( selector )\n ret = this.pushStack(len > 1 ? jQuery.unique(ret) : ret);\n ret.selector = this.selector ? this.selector + \" \" + selector : selector;\n return ret;\n },\n filter: function (selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function (selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function (selector) {\n return !!winnow(\n this,\n\n // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ?\n jQuery(selector) :\n selector || [],\n false\n ).length;\n }\n });\n\n\n // Initialize a jQuery object\n\n\n // A central reference to the root jQuery(document)\n var rootjQuery,\n\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n init = jQuery.fn.init = function (selector, context) {\n var match, elem;\n\n // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n if (!selector) {\n return this;\n }\n\n // Handle HTML strings\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n\n } else {\n match = rquickExpr.exec(selector);\n }\n\n // Match html or make sure no context is specified for #id\n if (match && (match[1] || !context)) {\n\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context;\n\n // scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n jQuery.merge(this, jQuery.parseHTML(\n match[1],\n context && context.nodeType ? context.ownerDocument || context : document,\n true\n ));\n\n // HANDLE: $(html, props)\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (jQuery.isFunction(this[match])) {\n this[match](context[match]);\n\n // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this;\n\n // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n // Check parentNode to catch when Blackberry 4.6 returns\n // nodes that are no longer in the document #6963\n if (elem && elem.parentNode) {\n // Inject the element directly into the jQuery object\n this.length = 1;\n this[0] = elem;\n }\n\n this.context = document;\n this.selector = selector;\n return this;\n }\n\n // HANDLE: $(expr, $(...))\n } else if (!context || context.jquery) {\n return (context || rootjQuery).find(selector);\n\n // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n }\n\n // HANDLE: $(DOMElement)\n } else if (selector.nodeType) {\n this.context = this[0] = selector;\n this.length = 1;\n return this;\n\n // HANDLE: $(function)\n // Shortcut for document ready\n } else if (jQuery.isFunction(selector)) {\n return typeof rootjQuery.ready !== \"undefined\" ?\n rootjQuery.ready(selector) :\n // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n if (selector.selector !== undefined) {\n this.selector = selector.selector;\n this.context = selector.context;\n }\n\n return jQuery.makeArray(selector, this);\n };\n\n // Give the init function the jQuery prototype for later instantiation\n init.prototype = jQuery.fn;\n\n // Initialize central reference\n rootjQuery = jQuery(document);\n\n\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n\n jQuery.extend({\n dir: function (elem, dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n matched.push(elem);\n }\n }\n return matched;\n },\n\n sibling: function (n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n }\n });\n\n jQuery.fn.extend({\n has: function (target) {\n var targets = jQuery(target, this),\n l = targets.length;\n\n return this.filter(function () {\n var i = 0;\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n\n closest: function (selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n pos = rneedsContext.test(selectors) || typeof selectors !== \"string\" ?\n jQuery(selectors, context || this.context) :\n 0;\n\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (pos ?\n pos.index(cur) > -1 :\n\n // Don't pass non-elements to Sizzle\n cur.nodeType === 1 &&\n jQuery.find.matchesSelector(cur, selectors))) {\n\n matched.push(cur);\n break;\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.unique(matched) : matched);\n },\n\n // Determine the position of an element within\n // the matched set of elements\n index: function (elem) {\n\n // No argument, return index in parent\n if (!elem) {\n return (this[0] && this[0].parentNode) ? this.first().prevAll().length : -1;\n }\n\n // index in selector\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n }\n\n // Locate the position of the desired element\n return indexOf.call(this,\n\n // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem\n );\n },\n\n add: function (selector, context) {\n return this.pushStack(\n jQuery.unique(\n jQuery.merge(this.get(), jQuery(selector, context))\n )\n );\n },\n\n addBack: function (selector) {\n return this.add(selector == null ?\n this.prevObject : this.prevObject.filter(selector)\n );\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) { }\n return cur;\n }\n\n jQuery.each({\n parent: function (elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function (elem) {\n return jQuery.dir(elem, \"parentNode\");\n },\n parentsUntil: function (elem, i, until) {\n return jQuery.dir(elem, \"parentNode\", until);\n },\n next: function (elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function (elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function (elem) {\n return jQuery.dir(elem, \"nextSibling\");\n },\n prevAll: function (elem) {\n return jQuery.dir(elem, \"previousSibling\");\n },\n nextUntil: function (elem, i, until) {\n return jQuery.dir(elem, \"nextSibling\", until);\n },\n prevUntil: function (elem, i, until) {\n return jQuery.dir(elem, \"previousSibling\", until);\n },\n siblings: function (elem) {\n return jQuery.sibling((elem.parentNode || {}).firstChild, elem);\n },\n children: function (elem) {\n return jQuery.sibling(elem.firstChild);\n },\n contents: function (elem) {\n return elem.contentDocument || jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.unique(matched);\n }\n\n // Reverse order for parents* and prev-derivatives\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n var rnotwhite = (/\\S+/g);\n\n\n\n // String to Object options format cache\n var optionsCache = {};\n\n // Convert String-formatted options into Object-formatted ones and store in cache\n function createOptions(options) {\n var object = optionsCache[options] = {};\n jQuery.each(options.match(rnotwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n jQuery.Callbacks = function (options) {\n\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ?\n (optionsCache[options] || createOptions(options)) :\n jQuery.extend({}, options);\n\n var // Last fire value (for non-forgettable lists)\n memory,\n // Flag to know if list was already fired\n fired,\n // Flag to know if list is currently firing\n firing,\n // First callback to fire (used internally by add and fireWith)\n firingStart,\n // End of the loop when firing\n firingLength,\n // Index of currently firing callback (modified by remove if needed)\n firingIndex,\n // Actual callback list\n list = [],\n // Stack of fire calls for repeatable lists\n stack = !options.once && [],\n // Fire callbacks\n fire = function (data) {\n memory = options.memory && data;\n fired = true;\n firingIndex = firingStart || 0;\n firingStart = 0;\n firingLength = list.length;\n firing = true;\n for (; list && firingIndex < firingLength; firingIndex++) {\n if (list[firingIndex].apply(data[0], data[1]) === false && options.stopOnFalse) {\n memory = false; // To prevent further calls using add\n break;\n }\n }\n firing = false;\n if (list) {\n if (stack) {\n if (stack.length) {\n fire(stack.shift());\n }\n } else if (memory) {\n list = [];\n } else {\n self.disable();\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function () {\n if (list) {\n // First, we save the current length\n var start = list.length;\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n var type = jQuery.type(arg);\n if (type === \"function\") {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && type !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n // Do we need to add the callbacks to the\n // current firing batch?\n if (firing) {\n firingLength = list.length;\n // With memory, if we're not firing then\n // we should call right away\n } else if (memory) {\n firingStart = start;\n fire(memory);\n }\n }\n return this;\n },\n // Remove a callback from the list\n remove: function () {\n if (list) {\n jQuery.each(arguments, function (_, arg) {\n var index;\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1);\n // Handle firing indexes\n if (firing) {\n if (index <= firingLength) {\n firingLength--;\n }\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n }\n });\n }\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function (fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : !!(list && list.length);\n },\n // Remove all callbacks from the list\n empty: function () {\n list = [];\n firingLength = 0;\n return this;\n },\n // Have the list do nothing anymore\n disable: function () {\n list = stack = memory = undefined;\n return this;\n },\n // Is it disabled?\n disabled: function () {\n return !list;\n },\n // Lock the list in its current state\n lock: function () {\n stack = undefined;\n if (!memory) {\n self.disable();\n }\n return this;\n },\n // Is it locked?\n locked: function () {\n return !stack;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function (context, args) {\n if (list && (!fired || stack)) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n if (firing) {\n stack.push(args);\n } else {\n fire(args);\n }\n }\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function () {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function () {\n return !!fired;\n }\n };\n\n return self;\n };\n\n\n jQuery.extend({\n\n Deferred: function (func) {\n var tuples = [\n // action, add listener, listener list, final state\n [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\"],\n [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\"],\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\")]\n ],\n state = \"pending\",\n promise = {\n state: function () {\n return state;\n },\n always: function () {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n then: function ( /* fnDone, fnFail, fnProgress */) {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (i, tuple) {\n var fn = jQuery.isFunction(fns[i]) && fns[i];\n // deferred[ done | fail | progress ] for forwarding actions to newDefer\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n if (returned && jQuery.isFunction(returned.promise)) {\n returned.promise()\n .done(newDefer.resolve)\n .fail(newDefer.reject)\n .progress(newDefer.notify);\n } else {\n newDefer[tuple[0] + \"With\"](this === promise ? newDefer.promise() : this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function (obj) {\n return obj != null ? jQuery.extend(obj, promise) : promise;\n }\n },\n deferred = {};\n\n // Keep pipe for back-compat\n promise.pipe = promise.then;\n\n // Add list-specific methods\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[3];\n\n // promise[ done | fail | progress ] = list.add\n promise[tuple[1]] = list.add;\n\n // Handle state\n if (stateString) {\n list.add(function () {\n // state = [ resolved | rejected ]\n state = stateString;\n\n // [ reject_list | resolve_list ].disable; progress_list.lock\n }, tuples[i ^ 1][2].disable, tuples[2][2].lock);\n }\n\n // deferred[ resolve | reject | notify ]\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? promise : this, arguments);\n return this;\n };\n deferred[tuple[0] + \"With\"] = list.fireWith;\n });\n\n // Make the deferred a promise\n promise.promise(deferred);\n\n // Call given func if any\n if (func) {\n func.call(deferred, deferred);\n }\n\n // All done!\n return deferred;\n },\n\n // Deferred helper\n when: function (subordinate /* , ..., subordinateN */) {\n var i = 0,\n resolveValues = slice.call(arguments),\n length = resolveValues.length,\n\n // the count of uncompleted subordinates\n remaining = length !== 1 || (subordinate && jQuery.isFunction(subordinate.promise)) ? length : 0,\n\n // the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n deferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n // Update function for both resolve and progress values\n updateFunc = function (i, contexts, values) {\n return function (value) {\n contexts[i] = this;\n values[i] = arguments.length > 1 ? slice.call(arguments) : value;\n if (values === progressValues) {\n deferred.notifyWith(contexts, values);\n } else if (!(--remaining)) {\n deferred.resolveWith(contexts, values);\n }\n };\n },\n\n progressValues, progressContexts, resolveContexts;\n\n // add listeners to Deferred subordinates; treat others as resolved\n if (length > 1) {\n progressValues = new Array(length);\n progressContexts = new Array(length);\n resolveContexts = new Array(length);\n for (; i < length; i++) {\n if (resolveValues[i] && jQuery.isFunction(resolveValues[i].promise)) {\n resolveValues[i].promise()\n .done(updateFunc(i, resolveContexts, resolveValues))\n .fail(deferred.reject)\n .progress(updateFunc(i, progressContexts, progressValues));\n } else {\n --remaining;\n }\n }\n }\n\n // if we're not waiting on anything, resolve the master\n if (!remaining) {\n deferred.resolveWith(resolveContexts, resolveValues);\n }\n\n return deferred.promise();\n }\n });\n\n\n // The deferred used on DOM ready\n var readyList;\n\n jQuery.fn.ready = function (fn) {\n // Add the callback\n jQuery.ready.promise().done(fn);\n\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n\n // Hold (or release) the ready event\n holdReady: function (hold) {\n if (hold) {\n jQuery.readyWait++;\n } else {\n jQuery.ready(true);\n }\n },\n\n // Handle when the DOM is ready\n ready: function (wait) {\n\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n }\n\n // Remember that the DOM is ready\n jQuery.isReady = true;\n\n // If a normal DOM Ready event fired, decrement, and wait if need be\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n }\n\n // If there are functions bound, to execute\n readyList.resolveWith(document, [jQuery]);\n\n // Trigger any bound ready events\n if (jQuery.fn.triggerHandler) {\n jQuery(document).triggerHandler(\"ready\");\n jQuery(document).off(\"ready\");\n }\n }\n });\n\n /**\n * The ready event handler and self cleanup method\n */\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed, false);\n window.removeEventListener(\"load\", completed, false);\n jQuery.ready();\n }\n\n jQuery.ready.promise = function (obj) {\n if (!readyList) {\n\n readyList = jQuery.Deferred();\n\n // Catch cases where $(document).ready() is called after the browser event has already occurred.\n // we once tried to use readyState \"interactive\" here, but it caused issues like the one\n // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\n if (document.readyState === \"complete\") {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n setTimeout(jQuery.ready);\n\n } else {\n\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed, false);\n\n // A fallback to window.onload, that will always work\n window.addEventListener(\"load\", completed, false);\n }\n }\n return readyList.promise(obj);\n };\n\n // Kick off the DOM ready check even if the user does not\n jQuery.ready.promise();\n\n\n\n\n // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n var access = jQuery.access = function (elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null;\n\n // Sets many values\n if (jQuery.type(key) === \"object\") {\n chainable = true;\n for (i in key) {\n jQuery.access(elems, fn, i, key[i], true, emptyGet, raw);\n }\n\n // Sets one value\n } else if (value !== undefined) {\n chainable = true;\n\n if (!jQuery.isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null;\n\n // ...except when executing function values\n } else {\n bulk = fn;\n fn = function (elem, key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n return chainable ?\n elems :\n\n // Gets\n bulk ?\n fn.call(elems) :\n len ? fn(elems[0], key) : emptyGet;\n };\n\n\n /**\n * Determines whether an object can have data\n */\n jQuery.acceptData = function (owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n /* jshint -W018 */\n return owner.nodeType === 1 || owner.nodeType === 9 || !(+owner.nodeType);\n };\n\n\n function Data() {\n // Support: Android < 4,\n // Old WebKit does not have Object.preventExtensions/freeze method,\n // return new empty object instead with no [[set]] accessor\n Object.defineProperty(this.cache = {}, 0, {\n get: function () {\n return {};\n }\n });\n\n this.expando = jQuery.expando + Math.random();\n }\n\n Data.uid = 1;\n Data.accepts = jQuery.acceptData;\n\n Data.prototype = {\n key: function (owner) {\n // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return the key for a frozen object.\n if (!Data.accepts(owner)) {\n return 0;\n }\n\n var descriptor = {},\n // Check if the owner object already has a cache key\n unlock = owner[this.expando];\n\n // If not, create one\n if (!unlock) {\n unlock = Data.uid++;\n\n // Secure it in a non-enumerable, non-writable property\n try {\n descriptor[this.expando] = { value: unlock };\n Object.defineProperties(owner, descriptor);\n\n // Support: Android < 4\n // Fallback to a less secure definition\n } catch (e) {\n descriptor[this.expando] = unlock;\n jQuery.extend(owner, descriptor);\n }\n }\n\n // Ensure the cache object\n if (!this.cache[unlock]) {\n this.cache[unlock] = {};\n }\n\n return unlock;\n },\n set: function (owner, data, value) {\n var prop,\n // There may be an unlock assigned to this node,\n // if there is no entry for this \"owner\", create one inline\n // and set the unlock as though an owner entry had always existed\n unlock = this.key(owner),\n cache = this.cache[unlock];\n\n // Handle: [ owner, key, value ] args\n if (typeof data === \"string\") {\n cache[data] = value;\n\n // Handle: [ owner, { properties } ] args\n } else {\n // Fresh assignments by object are shallow copied\n if (jQuery.isEmptyObject(cache)) {\n jQuery.extend(this.cache[unlock], data);\n // Otherwise, copy the properties one-by-one to the cache object\n } else {\n for (prop in data) {\n cache[prop] = data[prop];\n }\n }\n }\n return cache;\n },\n get: function (owner, key) {\n // Either a valid cache is found, or will be created.\n // New caches will be created and the unlock returned,\n // allowing direct access to the newly created\n // empty data object. A valid owner object must be provided.\n var cache = this.cache[this.key(owner)];\n\n return key === undefined ?\n cache : cache[key];\n },\n access: function (owner, key, value) {\n var stored;\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined ||\n ((key && typeof key === \"string\") && value === undefined)) {\n\n stored = this.get(owner, key);\n\n return stored !== undefined ?\n stored : this.get(owner, jQuery.camelCase(key));\n }\n\n // [*]When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n this.set(owner, key, value);\n\n // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n return value !== undefined ? value : key;\n },\n remove: function (owner, key) {\n var i, name, camel,\n unlock = this.key(owner),\n cache = this.cache[unlock];\n\n if (key === undefined) {\n this.cache[unlock] = {};\n\n } else {\n // Support array or space separated string of keys\n if (jQuery.isArray(key)) {\n // If \"name\" is an array of keys...\n // When data is initially created, via (\"key\", \"val\") signature,\n // keys will be converted to camelCase.\n // Since there is no way to tell _how_ a key was added, remove\n // both plain key and camelCase key. #12786\n // This will only penalize the array argument path.\n name = key.concat(key.map(jQuery.camelCase));\n } else {\n camel = jQuery.camelCase(key);\n // Try the string as a key before any manipulation\n if (key in cache) {\n name = [key, camel];\n } else {\n // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n name = camel;\n name = name in cache ?\n [name] : (name.match(rnotwhite) || []);\n }\n }\n\n i = name.length;\n while (i--) {\n delete cache[name[i]];\n }\n }\n },\n hasData: function (owner) {\n return !jQuery.isEmptyObject(\n this.cache[owner[this.expando]] || {}\n );\n },\n discard: function (owner) {\n if (owner[this.expando]) {\n delete this.cache[owner[this.expando]];\n }\n }\n };\n var data_priv = new Data();\n\n var data_user = new Data();\n\n\n\n /*\n Implementation Summary\n \n 1. Enforce API surface and semantic compatibility with 1.9.x branch\n 2. Improve the module's maintainability by reducing the storage\n paths to a single mechanism.\n 3. Use the same single mechanism to support \"private\" and \"user\" data.\n 4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n 5. Avoid exposing implementation details on user objects (eg. expando properties)\n 6. Provide a clear path for implementation upgrade to WeakMap in 2014\n */\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /([A-Z])/g;\n\n function dataAttr(elem, key, data) {\n var name;\n\n // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$1\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = data === \"true\" ? true :\n data === \"false\" ? false :\n data === \"null\" ? null :\n // Only convert to a number if it doesn't change the string\n +data + \"\" === data ? +data :\n rbrace.test(data) ? jQuery.parseJSON(data) :\n data;\n } catch (e) { }\n\n // Make sure we set the data so it isn't changed later\n data_user.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n return data;\n }\n\n jQuery.extend({\n hasData: function (elem) {\n return data_user.hasData(elem) || data_priv.hasData(elem);\n },\n\n data: function (elem, name, data) {\n return data_user.access(elem, name, data);\n },\n\n removeData: function (elem, name) {\n data_user.remove(elem, name);\n },\n\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to data_priv methods, these can be deprecated.\n _data: function (elem, name, data) {\n return data_priv.access(elem, name, data);\n },\n\n _removeData: function (elem, name) {\n data_priv.remove(elem, name);\n }\n });\n\n jQuery.fn.extend({\n data: function (key, value) {\n var i, name, data,\n elem = this[0],\n attrs = elem && elem.attributes;\n\n // Gets all values\n if (key === undefined) {\n if (this.length) {\n data = data_user.get(elem);\n\n if (elem.nodeType === 1 && !data_priv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n while (i--) {\n\n // Support: IE11+\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n if (name.indexOf(\"data-\") === 0) {\n name = jQuery.camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n data_priv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n }\n\n // Sets multiple values\n if (typeof key === \"object\") {\n return this.each(function () {\n data_user.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data,\n camelKey = jQuery.camelCase(key);\n\n // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // with the key as-is\n data = data_user.get(elem, key);\n if (data !== undefined) {\n return data;\n }\n\n // Attempt to get data from the cache\n // with the key camelized\n data = data_user.get(elem, camelKey);\n if (data !== undefined) {\n return data;\n }\n\n // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n data = dataAttr(elem, camelKey, undefined);\n if (data !== undefined) {\n return data;\n }\n\n // We tried really hard, but the data doesn't exist.\n return;\n }\n\n // Set the data...\n this.each(function () {\n // First, attempt to store a copy or reference of any\n // data that might've been store with a camelCased key.\n var data = data_user.get(this, camelKey);\n\n // For HTML5 data-* attribute interop, we have to\n // store property names with dashes in a camelCase form.\n // This might not apply to all properties...*\n data_user.set(this, camelKey, value);\n\n // *... In the case of properties that might _actually_\n // have dashes, we need to also store a copy of that\n // unchanged property.\n if (key.indexOf(\"-\") !== -1 && data !== undefined) {\n data_user.set(this, key, value);\n }\n });\n }, null, value, arguments.length > 1, null, true);\n },\n\n removeData: function (key) {\n return this.each(function () {\n data_user.remove(this, key);\n });\n }\n });\n\n\n jQuery.extend({\n queue: function (elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = data_priv.get(elem, type);\n\n // Speed up dequeue by getting out quickly if this is just a lookup\n if (data) {\n if (!queue || jQuery.isArray(data)) {\n queue = data_priv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n return queue || [];\n }\n },\n\n dequeue: function (elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function () {\n jQuery.dequeue(elem, type);\n };\n\n // If the fx queue is dequeued, always remove the progress sentinel\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n }\n\n // clear up the last queue stop function\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n\n // not intended for public consumption - generates a queueHooks object, or returns the current one\n _queueHooks: function (elem, type) {\n var key = type + \"queueHooks\";\n return data_priv.get(elem, key) || data_priv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n data_priv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n\n jQuery.fn.extend({\n queue: function (type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ?\n this :\n this.each(function () {\n var queue = jQuery.queue(this, type, data);\n\n // ensure a hooks for this queue\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function (type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function (type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function (type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function () {\n if (!(--count)) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n type = type || \"fx\";\n\n while (i--) {\n tmp = data_priv.get(elements[i], type + \"queueHooks\");\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = (/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/).source;\n\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n\n var isHidden = function (elem, el) {\n // isHidden might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem;\n return jQuery.css(elem, \"display\") === \"none\" || !jQuery.contains(elem.ownerDocument, elem);\n };\n\n var rcheckableType = (/^(?:checkbox|radio)$/i);\n\n\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\");\n\n // #11217 - WebKit loses check when the name is after the checked attribute\n // Support: Windows Web Apps (WWA)\n // `name` and `type` need .setAttribute for WWA\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n\n div.appendChild(input);\n\n // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3\n // old WebKit doesn't clone checked state correctly in fragments\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked;\n\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n // Support: IE9-IE11+\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue;\n })();\n var strundefined = typeof undefined;\n\n\n\n support.focusinBubbles = \"onfocusin\" in window;\n\n\n var\n rkeyEvent = /^key/,\n rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,\n rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n rtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n }\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) { }\n }\n\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n jQuery.event = {\n\n global: {},\n\n add: function (elem, types, handler, data, selector) {\n\n var handleObjIn, eventHandle, tmp,\n events, t, handleObj,\n special, handlers, type, namespaces, origType,\n elemData = data_priv.get(elem);\n\n // Don't attach events to noData or text/comment nodes (but allow plain objects)\n if (!elemData) {\n return;\n }\n\n // Caller can pass in an object of custom data in lieu of the handler\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n }\n\n // Make sure that the handler has a unique ID, used to find/remove it later\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n }\n\n // Init the element's event structure and main handler, if this is the first\n if (!(events = elemData.events)) {\n events = elemData.events = {};\n }\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?\n jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n }\n\n // Handle multiple events separated by a space\n types = (types || \"\").match(rnotwhite) || [\"\"];\n t = types.length;\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n // There *must* be a type, no attaching namespace-only handlers\n if (!type) {\n continue;\n }\n\n // If event changes its type, use the special event handlers for the changed type\n special = jQuery.event.special[type] || {};\n\n // If selector defined, determine special event api type, otherwise given type\n type = (selector ? special.delegateType : special.bindType) || type;\n\n // Update special based on newly reset type\n special = jQuery.event.special[type] || {};\n\n // handleObj is passed to all event handlers\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn);\n\n // Init the event handler queue if we're the first\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0;\n\n // Only use addEventListener if the special events handler returns false\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle, false);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n }\n\n // Add to the element's handler list, delegates in front\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n }\n\n // Keep track of which events have ever been used, for event optimization\n jQuery.event.global[type] = true;\n }\n\n },\n\n // Detach an event or set of events from an element\n remove: function (elem, types, handler, selector, mappedTypes) {\n\n var j, origCount, tmp,\n events, t, handleObj,\n special, handlers, type, namespaces, origType,\n elemData = data_priv.hasData(elem) && data_priv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n }\n\n // Once for each type.namespace in types; type may be omitted\n types = (types || \"\").match(rnotwhite) || [\"\"];\n t = types.length;\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n // Unbind all events (on this namespace, if provided) for the element\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\");\n\n // Remove matching events\n origCount = j = handlers.length;\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) &&\n (!handler || handler.guid === handleObj.guid) &&\n (!tmp || tmp.test(handleObj.namespace)) &&\n (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n }\n\n // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n }\n\n // Remove the expando if it's no longer used\n if (jQuery.isEmptyObject(events)) {\n delete elemData.handle;\n data_priv.remove(elem, \"events\");\n }\n },\n\n trigger: function (event, data, elem, onlyHandlers) {\n\n var i, cur, tmp, bubbleType, ontype, handle, special,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n\n cur = tmp = elem = elem || document;\n\n // Don't do events on text and comment nodes\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n }\n\n // focus/blur morphs to focusin/out; ensure we're not firing them right now\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") >= 0) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n ontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n // Caller can pass in a jQuery.Event object, Object, or just an event type string\n event = event[jQuery.expando] ?\n event :\n new jQuery.Event(type, typeof event === \"object\" && event);\n\n // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.namespace_re = event.namespace ?\n new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") :\n null;\n\n // Clean up the event in case it is being reused\n event.result = undefined;\n if (!event.target) {\n event.target = elem;\n }\n\n // Clone any incoming data and prepend the event, creating the handler arg list\n data = data == null ?\n [event] :\n jQuery.makeArray(data, [event]);\n\n // Allow special events to draw outside the lines\n special = jQuery.event.special[type] || {};\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n }\n\n // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n if (!onlyHandlers && !special.noBubble && !jQuery.isWindow(elem)) {\n\n bubbleType = special.delegateType || type;\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n }\n\n // Only add window if we got to document (e.g., not plain obj or detached DOM)\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n }\n\n // Fire handlers on the event path\n i = 0;\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n\n event.type = i > 1 ?\n bubbleType :\n special.bindType || type;\n\n // jQuery handler\n handle = (data_priv.get(cur, \"events\") || {})[event.type] && data_priv.get(cur, \"handle\");\n if (handle) {\n handle.apply(cur, data);\n }\n\n // Native handler\n handle = ontype && cur[ontype];\n if (handle && handle.apply && jQuery.acceptData(cur)) {\n event.result = handle.apply(cur, data);\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n event.type = type;\n\n // If nobody prevented the default action, do it now\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) &&\n jQuery.acceptData(elem)) {\n\n // Call a native DOM method on the target with the same name name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && jQuery.isFunction(elem[type]) && !jQuery.isWindow(elem)) {\n\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n }\n\n // Prevent re-triggering of the same event, since we already bubbled it above\n jQuery.event.triggered = type;\n elem[type]();\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n\n dispatch: function (event) {\n\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(event);\n\n var i, j, ret, matched, handleObj,\n handlerQueue = [],\n args = slice.call(arguments),\n handlers = (data_priv.get(this, \"events\") || {})[event.type] || [],\n special = jQuery.event.special[event.type] || {};\n\n // Use the fix-ed jQuery.Event rather than the (read-only) native event\n args[0] = event;\n event.delegateTarget = this;\n\n // Call the preDispatch hook for the mapped type, and let it bail if desired\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n }\n\n // Determine handlers\n handlerQueue = jQuery.event.handlers.call(this, event, handlers);\n\n // Run delegates first; they may want to stop propagation beneath us\n i = 0;\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n\n j = 0;\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n\n // Triggered event must either 1) have no namespace, or\n // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).\n if (!event.namespace_re || event.namespace_re.test(handleObj.namespace)) {\n\n event.handleObj = handleObj;\n event.data = handleObj.data;\n\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler)\n .apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n // Call the postDispatch hook for the mapped type\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n\n handlers: function (event, handlers) {\n var i, matches, sel, handleObj,\n handlerQueue = [],\n delegateCount = handlers.delegateCount,\n cur = event.target;\n\n // Find delegate handlers\n // Black-hole SVG instance trees (#13180)\n // Avoid non-left-click bubbling in Firefox (#3861)\n if (delegateCount && cur.nodeType && (!event.button || event.type !== \"click\")) {\n\n for (; cur !== this; cur = cur.parentNode || this) {\n\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.disabled !== true || event.type !== \"click\") {\n matches = [];\n for (i = 0; i < delegateCount; i++) {\n handleObj = handlers[i];\n\n // Don't conflict with Object.prototype properties (#13203)\n sel = handleObj.selector + \" \";\n\n if (matches[sel] === undefined) {\n matches[sel] = handleObj.needsContext ?\n jQuery(sel, this).index(cur) >= 0 :\n jQuery.find(sel, this, null, [cur]).length;\n }\n if (matches[sel]) {\n matches.push(handleObj);\n }\n }\n if (matches.length) {\n handlerQueue.push({ elem: cur, handlers: matches });\n }\n }\n }\n }\n\n // Add the remaining (directly-bound) handlers\n if (delegateCount < handlers.length) {\n handlerQueue.push({ elem: this, handlers: handlers.slice(delegateCount) });\n }\n\n return handlerQueue;\n },\n\n // Includes some event props shared by KeyEvent and MouseEvent\n props: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n\n fixHooks: {},\n\n keyHooks: {\n props: \"char charCode key keyCode\".split(\" \"),\n filter: function (event, original) {\n\n // Add which for key events\n if (event.which == null) {\n event.which = original.charCode != null ? original.charCode : original.keyCode;\n }\n\n return event;\n }\n },\n\n mouseHooks: {\n props: \"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n filter: function (event, original) {\n var eventDoc, doc, body,\n button = original.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (event.pageX == null && original.clientX != null) {\n eventDoc = event.target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n\n event.pageX = original.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = original.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Add which for click: 1 === left; 2 === middle; 3 === right\n // Note: button is not normalized, so don't use it\n if (!event.which && button !== undefined) {\n event.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\n }\n\n return event;\n }\n },\n\n fix: function (event) {\n if (event[jQuery.expando]) {\n return event;\n }\n\n // Create a writable copy of the event object and normalize some properties\n var i, prop, copy,\n type = event.type,\n originalEvent = event,\n fixHook = this.fixHooks[type];\n\n if (!fixHook) {\n this.fixHooks[type] = fixHook =\n rmouseEvent.test(type) ? this.mouseHooks :\n rkeyEvent.test(type) ? this.keyHooks :\n\t\t\t\t{};\n }\n copy = fixHook.props ? this.props.concat(fixHook.props) : this.props;\n\n event = new jQuery.Event(originalEvent);\n\n i = copy.length;\n while (i--) {\n prop = copy[i];\n event[prop] = originalEvent[prop];\n }\n\n // Support: Cordova 2.5 (WebKit) (#13255)\n // All events should have a target; Cordova deviceready doesn't\n if (!event.target) {\n event.target = document;\n }\n\n // Support: Safari 6.0+, Chrome < 28\n // Target should not be a text node (#504, #13143)\n if (event.target.nodeType === 3) {\n event.target = event.target.parentNode;\n }\n\n return fixHook.filter ? fixHook.filter(event, originalEvent) : event;\n },\n\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n focus: {\n // Fire native event if possible so blur/focus sequence is correct\n trigger: function () {\n if (this !== safeActiveElement() && this.focus) {\n this.focus();\n return false;\n }\n },\n delegateType: \"focusin\"\n },\n blur: {\n trigger: function () {\n if (this === safeActiveElement() && this.blur) {\n this.blur();\n return false;\n }\n },\n delegateType: \"focusout\"\n },\n click: {\n // For checkbox, fire native event so checked state will be right\n trigger: function () {\n if (this.type === \"checkbox\" && this.click && jQuery.nodeName(this, \"input\")) {\n this.click();\n return false;\n }\n },\n\n // For cross-browser consistency, don't fire native .click() on links\n _default: function (event) {\n return jQuery.nodeName(event.target, \"a\");\n }\n },\n\n beforeunload: {\n postDispatch: function (event) {\n\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n },\n\n simulate: function (type, elem, event, bubble) {\n // Piggyback on a donor event to simulate a different one.\n // Fake originalEvent to avoid donor's stopPropagation, but if the\n // simulated event prevents default then we do the same on the donor.\n var e = jQuery.extend(\n new jQuery.Event(),\n event,\n {\n type: type,\n isSimulated: true,\n originalEvent: {}\n }\n );\n if (bubble) {\n jQuery.event.trigger(e, null, elem);\n } else {\n jQuery.event.dispatch.call(elem, e);\n }\n if (e.isDefaultPrevented()) {\n event.preventDefault();\n }\n }\n };\n\n jQuery.removeEvent = function (elem, type, handle) {\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle, false);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n }\n\n // Event object\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type;\n\n // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n this.isDefaultPrevented = src.defaultPrevented ||\n src.defaultPrevented === undefined &&\n // Support: Android < 4.0\n src.returnValue === false ?\n returnTrue :\n returnFalse;\n\n // Event type\n } else {\n this.type = src;\n }\n\n // Put explicitly provided properties onto the event object\n if (props) {\n jQuery.extend(this, props);\n }\n\n // Create a timestamp if incoming event doesn't have one\n this.timeStamp = src && src.timeStamp || jQuery.now();\n\n // Mark it as fixed\n this[jQuery.expando] = true;\n };\n\n // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n jQuery.Event.prototype = {\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function () {\n var e = this.originalEvent;\n\n this.isDefaultPrevented = returnTrue;\n\n if (e && e.preventDefault) {\n e.preventDefault();\n }\n },\n stopPropagation: function () {\n var e = this.originalEvent;\n\n this.isPropagationStopped = returnTrue;\n\n if (e && e.stopPropagation) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function () {\n var e = this.originalEvent;\n\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && e.stopImmediatePropagation) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n };\n\n // Create mouseenter/leave events using mouseover/out and event-time checks\n // Support: Chrome 15+\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n\n handle: function (event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj;\n\n // For mousenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n if (!related || (related !== target && !jQuery.contains(target, related))) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n return ret;\n }\n };\n });\n\n // Create \"bubbling\" focus and blur events\n // Support: Firefox, Chrome, Safari\n if (!support.focusinBubbles) {\n jQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function (orig, fix) {\n\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function (event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event), true);\n };\n\n jQuery.event.special[fix] = {\n setup: function () {\n var doc = this.ownerDocument || this,\n attaches = data_priv.access(doc, fix);\n\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n data_priv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function () {\n var doc = this.ownerDocument || this,\n attaches = data_priv.access(doc, fix) - 1;\n\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n data_priv.remove(doc, fix);\n\n } else {\n data_priv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n\n jQuery.fn.extend({\n\n on: function (types, selector, data, fn, /*INTERNAL*/ one) {\n var origFn, type;\n\n // Types can be a map of types/handlers\n if (typeof types === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n for (type in types) {\n this.on(type, selector, data, types[type], one);\n }\n return this;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return this;\n }\n\n if (one === 1) {\n origFn = fn;\n fn = function (event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n };\n // Use same guid so caller can remove using origFn\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n return this.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n },\n one: function (types, selector, data, fn) {\n return this.on(types, selector, data, fn, 1);\n },\n off: function (types, selector, fn) {\n var handleObj, type;\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(\n handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\n handleObj.selector,\n handleObj.handler\n );\n return this;\n }\n if (typeof types === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n return this;\n }\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n if (fn === false) {\n fn = returnFalse;\n }\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n },\n\n trigger: function (type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function (type, data) {\n var elem = this[0];\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n });\n\n\n var\n rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\n rtagName = /<([\\w:]+)/,\n rhtml = /<|&#?\\w+;/,\n rnoInnerhtml = /<(?:script|style|link)/i,\n // checked=\"checked\" or checked\n rchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n rscriptType = /^$|\\/(?:java|ecma)script/i,\n rscriptTypeMasked = /^true\\/(.*)/,\n rcleanScript = /^\\s*\\s*$/g,\n\n // We have to close these tags to support XHTML (#13200)\n wrapMap = {\n\n // Support: IE 9\n option: [1, \"\"],\n\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n\n _default: [0, \"\", \"\"]\n };\n\n // Support: IE 9\n wrapMap.optgroup = wrapMap.option;\n\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td;\n\n // Support: 1.x compatibility\n // Manipulating tables requires a tbody\n function manipulationTarget(elem, content) {\n return jQuery.nodeName(elem, \"table\") &&\n jQuery.nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\") ?\n\n elem.getElementsByTagName(\"tbody\")[0] ||\n elem.appendChild(elem.ownerDocument.createElement(\"tbody\")) :\n elem;\n }\n\n // Replace/restore the type attribute of script elements for safe DOM manipulation\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n function restoreScript(elem) {\n var match = rscriptTypeMasked.exec(elem.type);\n\n if (match) {\n elem.type = match[1];\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n // Mark scripts as having already been evaluated\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n data_priv.set(\n elems[i], \"globalEval\", !refElements || data_priv.get(refElements[i], \"globalEval\")\n );\n }\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n }\n\n // 1. Copy private data: events, handlers, etc.\n if (data_priv.hasData(src)) {\n pdataOld = data_priv.access(src);\n pdataCur = data_priv.set(dest, pdataOld);\n events = pdataOld.events;\n\n if (events) {\n delete pdataCur.handle;\n pdataCur.events = {};\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n }\n\n // 2. Copy user data\n if (data_user.hasData(src)) {\n udataOld = data_user.access(src);\n udataCur = jQuery.extend({}, udataOld);\n\n data_user.set(dest, udataCur);\n }\n }\n\n function getAll(context, tag) {\n var ret = context.getElementsByTagName ? context.getElementsByTagName(tag || \"*\") :\n context.querySelectorAll ? context.querySelectorAll(tag || \"*\") :\n [];\n\n return tag === undefined || tag && jQuery.nodeName(context, tag) ?\n jQuery.merge([context], ret) :\n ret;\n }\n\n // Support: IE >= 9\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase();\n\n // Fails to persist the checked state of a cloned checkbox or radio button.\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked;\n\n // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n jQuery.extend({\n clone: function (elem, dataAndEvents, deepDataAndEvents) {\n var i, l, srcElements, destElements,\n clone = elem.cloneNode(true),\n inPage = jQuery.contains(elem.ownerDocument, elem);\n\n // Support: IE >= 9\n // Fix Cloning issues\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) &&\n !jQuery.isXMLDoc(elem)) {\n\n // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n }\n\n // Copy the events from the original to the clone\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n }\n\n // Preserve script evaluation history\n destElements = getAll(clone, \"script\");\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n }\n\n // Return the cloned set\n return clone;\n },\n\n buildFragment: function (elems, context, scripts, selection) {\n var elem, tmp, tag, wrap, contains, j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n\n // Add nodes directly\n if (jQuery.type(elem) === \"object\") {\n // Support: QtWebKit\n // jQuery.merge because push.apply(_, arraylike) throws\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem);\n\n // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem));\n\n // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\"));\n\n // Deserialize a standard representation\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + elem.replace(rxhtmlTag, \"<$1>\") + wrap[2];\n\n // Descend through wrappers to the right content\n j = wrap[0];\n while (j--) {\n tmp = tmp.lastChild;\n }\n\n // Support: QtWebKit\n // jQuery.merge because push.apply(_, arraylike) throws\n jQuery.merge(nodes, tmp.childNodes);\n\n // Remember the top-level container\n tmp = fragment.firstChild;\n\n // Fixes #12346\n // Support: Webkit, IE\n tmp.textContent = \"\";\n }\n }\n }\n\n // Remove wrapper from fragment\n fragment.textContent = \"\";\n\n i = 0;\n while ((elem = nodes[i++])) {\n\n // #4087 - If origin and destination elements are the same, and this is\n // that element, do not do anything\n if (selection && jQuery.inArray(elem, selection) !== -1) {\n continue;\n }\n\n contains = jQuery.contains(elem.ownerDocument, elem);\n\n // Append to fragment\n tmp = getAll(fragment.appendChild(elem), \"script\");\n\n // Preserve script evaluation history\n if (contains) {\n setGlobalEval(tmp);\n }\n\n // Capture executables\n if (scripts) {\n j = 0;\n while ((elem = tmp[j++])) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n },\n\n cleanData: function (elems) {\n var data, elem, type, key,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (jQuery.acceptData(elem)) {\n key = elem[data_priv.expando];\n\n if (key && (data = data_priv.cache[key])) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type);\n\n // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n }\n if (data_priv.cache[key]) {\n // Discard any remaining `private` data\n delete data_priv.cache[key];\n }\n }\n }\n // Discard any remaining `user` data\n delete data_user.cache[elem[data_user.expando]];\n }\n }\n });\n\n jQuery.fn.extend({\n text: function (value) {\n return access(this, function (value) {\n return value === undefined ?\n jQuery.text(this) :\n this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n\n append: function () {\n return this.domManip(arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n\n prepend: function () {\n return this.domManip(arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n\n before: function () {\n return this.domManip(arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n\n after: function () {\n return this.domManip(arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n\n remove: function (selector, keepData /* Internal Use Only */) {\n var elem,\n elems = selector ? jQuery.filter(selector, this) : this,\n i = 0;\n\n for (; (elem = elems[i]) != null; i++) {\n if (!keepData && elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem));\n }\n\n if (elem.parentNode) {\n if (keepData && jQuery.contains(elem.ownerDocument, elem)) {\n setGlobalEval(getAll(elem, \"script\"));\n }\n elem.parentNode.removeChild(elem);\n }\n }\n\n return this;\n },\n\n empty: function () {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false));\n\n // Remove any remaining nodes\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n\n clone: function (dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n\n html: function (value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n }\n\n // See if we can take a shortcut and just use innerHTML\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) &&\n !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n\n value = value.replace(rxhtmlTag, \"<$1>\");\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {};\n\n // Remove element nodes and prevent memory leaks\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0;\n\n // If using innerHTML throws an exception, use the fallback method\n } catch (e) { }\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n\n replaceWith: function () {\n var arg = arguments[0];\n\n // Make the changes, replacing each context element with the new content\n this.domManip(arguments, function (elem) {\n arg = this.parentNode;\n\n jQuery.cleanData(getAll(this));\n\n if (arg) {\n arg.replaceChild(elem, this);\n }\n });\n\n // Force removal if there was no new content (e.g., from empty arguments)\n return arg && (arg.length || arg.nodeType) ? this : this.remove();\n },\n\n detach: function (selector) {\n return this.remove(selector, true);\n },\n\n domManip: function (args, callback) {\n\n // Flatten any nested arrays\n args = concat.apply([], args);\n\n var fragment, first, scripts, hasScripts, node, doc,\n i = 0,\n l = this.length,\n set = this,\n iNoClone = l - 1,\n value = args[0],\n isFunction = jQuery.isFunction(value);\n\n // We can't cloneNode fragments that contain checked, in WebKit\n if (isFunction ||\n (l > 1 && typeof value === \"string\" &&\n !support.checkClone && rchecked.test(value))) {\n return this.each(function (index) {\n var self = set.eq(index);\n if (isFunction) {\n args[0] = value.call(this, index, self.html());\n }\n self.domManip(args, callback);\n });\n }\n\n if (l) {\n fragment = jQuery.buildFragment(args, this[0].ownerDocument, false, this);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n }\n\n if (first) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length;\n\n // Use the original fragment for the last item instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true);\n\n // Keep references to cloned scripts for later restoration\n if (hasScripts) {\n // Support: QtWebKit\n // jQuery.merge because push.apply(_, arraylike) throws\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(this[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument;\n\n // Reenable scripts\n jQuery.map(scripts, restoreScript);\n\n // Evaluate executable scripts on first document insertion\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n if (rscriptType.test(node.type || \"\") &&\n !data_priv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n\n if (node.src) {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl) {\n jQuery._evalUrl(node.src);\n }\n } else {\n jQuery.globalEval(node.textContent.replace(rcleanScript, \"\"));\n }\n }\n }\n }\n }\n }\n\n return this;\n }\n });\n\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems);\n\n // Support: QtWebKit\n // .get() because push.apply(_, arraylike) throws\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n\n\n var iframe,\n elemdisplay = {};\n\n /**\n * Retrieve the actual display of a element\n * @param {String} name nodeName of the element\n * @param {Object} doc Document object\n */\n // Called only from within defaultDisplay\n function actualDisplay(name, doc) {\n var style,\n elem = jQuery(doc.createElement(name)).appendTo(doc.body),\n\n // getDefaultComputedStyle might be reliably used only on attached element\n display = window.getDefaultComputedStyle && (style = window.getDefaultComputedStyle(elem[0])) ?\n\n // Use of this method is a temporary fix (more like optmization) until something better comes along,\n // since it was removed from specification and supported only in FF\n style.display : jQuery.css(elem[0], \"display\");\n\n // We don't have any data stored on the element,\n // so use \"detach\" method as fast way to get rid of the element\n elem.detach();\n\n return display;\n }\n\n /**\n * Try to determine the default display value of an element\n * @param {String} nodeName\n */\n function defaultDisplay(nodeName) {\n var doc = document,\n display = elemdisplay[nodeName];\n\n if (!display) {\n display = actualDisplay(nodeName, doc);\n\n // If the simple way fails, read from inside an iframe\n if (display === \"none\" || !display) {\n\n // Use the already-created iframe if possible\n iframe = (iframe || jQuery(\"' : '');\n inst._keyEvent = false;\n return html;\n },\n\n /* Generate the month and year header. */\n _generateMonthYearHeader: function (inst, drawMonth, drawYear, minDate, maxDate,\n\t\t\tsecondary, monthNames, monthNamesShort) {\n var changeMonth = this._get(inst, 'changeMonth');\n var changeYear = this._get(inst, 'changeYear');\n var showMonthAfterYear = this._get(inst, 'showMonthAfterYear');\n var html = '
';\n var monthHtml = '';\n // month selection\n if (secondary || !changeMonth)\n monthHtml += '' + monthNames[drawMonth] + '';\n else {\n var inMinYear = (minDate && minDate.getFullYear() == drawYear);\n var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);\n monthHtml += '';\n }\n if (!showMonthAfterYear)\n html += monthHtml + (secondary || !(changeMonth && changeYear) ? ' ' : '');\n // year selection\n if (!inst.yearshtml) {\n inst.yearshtml = '';\n if (secondary || !changeYear)\n html += '' + drawYear + '';\n else {\n // determine range of years to display\n var years = this._get(inst, 'yearRange').split(':');\n var thisYear = new Date().getFullYear();\n var determineYear = function (value) {\n var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) :\n\t\t\t\t\t\t(value.match(/[+-].*/) ? thisYear + parseInt(value, 10) :\n\t\t\t\t\t\tparseInt(value, 10)));\n return (isNaN(year) ? thisYear : year);\n };\n var year = determineYear(years[0]);\n var endYear = Math.max(year, determineYear(years[1] || ''));\n year = (minDate ? Math.max(year, minDate.getFullYear()) : year);\n endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);\n inst.yearshtml += '';\n\n html += inst.yearshtml;\n inst.yearshtml = null;\n }\n }\n html += this._get(inst, 'yearSuffix');\n if (showMonthAfterYear)\n html += (secondary || !(changeMonth && changeYear) ? ' ' : '') + monthHtml;\n html += '
'; // Close datepicker_header\n return html;\n },\n\n /* Adjust one of the date sub-fields. */\n _adjustInstDate: function (inst, offset, period) {\n var year = inst.drawYear + (period == 'Y' ? offset : 0);\n var month = inst.drawMonth + (period == 'M' ? offset : 0);\n var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) +\n\t\t\t(period == 'D' ? offset : 0);\n var date = this._restrictMinMax(inst,\n\t\t\tthis._daylightSavingAdjust(new Date(year, month, day)));\n inst.selectedDay = date.getDate();\n inst.drawMonth = inst.selectedMonth = date.getMonth();\n inst.drawYear = inst.selectedYear = date.getFullYear();\n if (period == 'M' || period == 'Y')\n this._notifyChange(inst);\n },\n\n /* Ensure a date is within any min/max bounds. */\n _restrictMinMax: function (inst, date) {\n var minDate = this._getMinMaxDate(inst, 'min');\n var maxDate = this._getMinMaxDate(inst, 'max');\n var newDate = (minDate && date < minDate ? minDate : date);\n newDate = (maxDate && newDate > maxDate ? maxDate : newDate);\n return newDate;\n },\n\n /* Notify change of month/year. */\n _notifyChange: function (inst) {\n var onChange = this._get(inst, 'onChangeMonthYear');\n if (onChange)\n onChange.apply((inst.input ? inst.input[0] : null),\n\t\t\t\t[inst.selectedYear, inst.selectedMonth + 1, inst]);\n },\n\n /* Determine the number of months to show. */\n _getNumberOfMonths: function (inst) {\n var numMonths = this._get(inst, 'numberOfMonths');\n return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths));\n },\n\n /* Determine the current maximum date - ensure no time components are set. */\n _getMinMaxDate: function (inst, minMax) {\n return this._determineDate(inst, this._get(inst, minMax + 'Date'), null);\n },\n\n /* Find the number of days in a given month. */\n _getDaysInMonth: function (year, month) {\n return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();\n },\n\n /* Find the day of the week of the first of a month. */\n _getFirstDayOfMonth: function (year, month) {\n return new Date(year, month, 1).getDay();\n },\n\n /* Determines if we should allow a \"next/prev\" month display change. */\n _canAdjustMonth: function (inst, offset, curYear, curMonth) {\n var numMonths = this._getNumberOfMonths(inst);\n var date = this._daylightSavingAdjust(new Date(curYear,\n\t\t\tcurMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));\n if (offset < 0)\n date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));\n return this._isInRange(inst, date);\n },\n\n /* Is the given date in the accepted range? */\n _isInRange: function (inst, date) {\n var minDate = this._getMinMaxDate(inst, 'min');\n var maxDate = this._getMinMaxDate(inst, 'max');\n return ((!minDate || date.getTime() >= minDate.getTime()) &&\n\t\t\t(!maxDate || date.getTime() <= maxDate.getTime()));\n },\n\n /* Provide the configuration settings for formatting/parsing. */\n _getFormatConfig: function (inst) {\n var shortYearCutoff = this._get(inst, 'shortYearCutoff');\n shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :\n\t\t\tnew Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));\n return { shortYearCutoff: shortYearCutoff,\n dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'),\n monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')\n };\n },\n\n /* Format the given date for display. */\n _formatDate: function (inst, day, month, year) {\n if (!day) {\n inst.currentDay = inst.selectedDay;\n inst.currentMonth = inst.selectedMonth;\n inst.currentYear = inst.selectedYear;\n }\n var date = (day ? (typeof day == 'object' ? day :\n\t\t\tthis._daylightSavingAdjust(new Date(year, month, day))) :\n\t\t\tthis._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));\n return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst));\n }\n });\n\n /*\n * Bind hover events for datepicker elements.\n * Done via delegate so the binding only occurs once in the lifetime of the parent div.\n * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.\n */\n function bindHover(dpDiv) {\n var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';\n return dpDiv.bind('mouseout', function (event) {\n var elem = $(event.target).closest(selector);\n if (!elem.length) {\n return;\n }\n elem.removeClass(\"ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover\");\n })\n\t\t.bind('mouseover', function (event) {\n\t\t var elem = $(event.target).closest(selector);\n\t\t if ($.datepicker._isDisabledDatepicker(instActive.inline ? dpDiv.parent()[0] : instActive.input[0]) ||\n\t\t\t\t\t!elem.length) {\n\t\t return;\n\t\t }\n\t\t elem.parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');\n\t\t elem.addClass('ui-state-hover');\n\t\t if (elem.hasClass('ui-datepicker-prev')) elem.addClass('ui-datepicker-prev-hover');\n\t\t if (elem.hasClass('ui-datepicker-next')) elem.addClass('ui-datepicker-next-hover');\n\t\t});\n }\n\n /* jQuery extend now ignores nulls! */\n function extendRemove(target, props) {\n $.extend(target, props);\n for (var name in props)\n if (props[name] == null || props[name] == undefined)\n target[name] = props[name];\n return target;\n };\n\n /* Determine whether an object is an array. */\n function isArray(a) {\n return (a && (($.browser.safari && typeof a == 'object' && a.length) ||\n\t\t(a.constructor && a.constructor.toString().match(/\\Array\\(\\)/))));\n };\n\n /* Invoke the datepicker functionality.\n @param options string - a command, optionally followed by additional parameters or\n Object - settings for attaching new datepicker functionality\n @return jQuery object */\n $.fn.datepicker = function (options) {\n\n /* Verify an empty collection wasn't passed - Fixes #6976 */\n if (!this.length) {\n return this;\n }\n\n options.container = options.container || 'body';\n\n var callCheckExternalClick = function(e) {\n $.datepicker._checkExternalClick(e);\n };\n\n /* Initialise the date picker. */\n $(document).bind('mousedown.Datepicker', callCheckExternalClick).\n\t\tfind(options.container).append($.datepicker.dpDiv);\n\n // on destroy, remove our listener on document.\n this.bind('destroyed', function() {\n $(document).unbind('mousedown.Datepicker', callCheckExternalClick);\n });\n // Cartegraph change\n // Added a scroll event that closes the datepicker when user scrolls the page\n $(options.closeWhenScrolling).unbind('scroll.flexui-editMode').bind(\"scroll.flexui-editMode\", function () {\n if ($.datepicker._datepickerShowing)\n $.datepicker._hideDatepicker();\n });\n $.datepicker.initialized = true;\n \n\n var otherArgs = Array.prototype.slice.call(arguments, 1);\n if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget'))\n return $.datepicker['_' + options + 'Datepicker'].\n\t\t\tapply($.datepicker, [this[0]].concat(otherArgs));\n if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')\n return $.datepicker['_' + options + 'Datepicker'].\n\t\t\tapply($.datepicker, [this[0]].concat(otherArgs));\n return this.each(function () {\n typeof options == 'string' ?\n\t\t\t$.datepicker['_' + options + 'Datepicker'].\n\t\t\t\tapply($.datepicker, [this].concat(otherArgs)) :\n\t\t\t$.datepicker._attachDatepicker(this, options);\n });\n };\n\n $.datepicker = new Datepicker(); // singleton instance\n $.datepicker.initialized = false;\n $.datepicker.uuid = new Date().getTime();\n $.datepicker.version = \"1.8.14\";\n\n // Workaround for #4055\n // Add another global to avoid noConflict issues with inline event handlers\n window['DP_jQuery_' + dpuuid] = $;\n\n})(jQuery);\n/*\n* jQuery UI Dialog 1.8.14\n*\n* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)\n* Dual licensed under the MIT or GPL Version 2 licenses.\n* http://jquery.org/license\n*\n* http://docs.jquery.com/UI/Dialog\n*\n* Depends:\n*\tjquery.ui.core.js\n*\tjquery.ui.widget.js\n* jquery.ui.button.js\n*\tjquery.ui.draggable.js\n*\tjquery.ui.mouse.js\n*\tjquery.ui.position.js\n*\tjquery.ui.resizable.js\n*/\n(function ($, undefined) {\n\n var uiDialogClasses =\n\t\t'ui-dialog ' +\n\t\t'ui-widget ' +\n\t\t'ui-widget-content ' +\n\t\t'ui-corner-all ',\n\tsizeRelatedOptions = {\n\t buttons: true,\n\t height: true,\n\t maxHeight: true,\n\t maxWidth: true,\n\t minHeight: true,\n\t minWidth: true,\n\t width: true\n\t},\n\tresizableRelatedOptions = {\n\t maxHeight: true,\n\t maxWidth: true,\n\t minHeight: true,\n\t minWidth: true\n\t},\n // support for jQuery 1.3.2 - handle common attrFn methods for dialog\n\tattrFn = {\n\t val: true,\n\t css: true,\n\t html: true,\n\t text: true,\n\t data: true,\n\t width: true,\n\t height: true,\n\t offset: true,\n\t click: true\n\t};\n\n $.widget(\"ui.dialog\", {\n options: {\n autoOpen: true,\n buttons: {},\n closeOnEscape: true,\n closeText: 'close',\n dialogClass: '',\n draggable: true,\n hide: null,\n height: 'auto',\n maxHeight: false,\n maxWidth: false,\n minHeight: 150,\n minWidth: 150,\n modal: false,\n position: {\n my: 'center',\n at: 'center',\n collision: 'fit',\n // ensure that the titlebar is never outside the document\n using: function (pos) {\n var topOffset = $(this).css(pos).offset().top;\n if (topOffset < 0) {\n $(this).css('top', pos.top - topOffset);\n }\n }\n },\n resizable: true,\n show: null,\n stack: true,\n title: '',\n width: 300,\n zIndex: 1000\n },\n\n _create: function () {\n this.originalTitle = this.element.attr('title');\n // #5742 - .attr() might return a DOMElement\n if (typeof this.originalTitle !== \"string\") {\n this.originalTitle = \"\";\n }\n\n this.options.title = this.options.title || this.originalTitle;\n var self = this,\n\t\t\toptions = self.options,\n\n\t\t\ttitle = options.title || ' ',\n\t\t\ttitleId = $.ui.dialog.getTitleId(self.element),\n\n\t\t\tuiDialog = (self.uiDialog = $('
'))\n\t\t\t\t.appendTo(document.body)\n\t\t\t\t.hide()\n\t\t\t\t.addClass(uiDialogClasses + options.dialogClass)\n\t\t\t\t.css({\n\t\t\t\t zIndex: options.zIndex\n\t\t\t\t})\n // setting tabIndex makes the div focusable\n // setting outline to 0 prevents a border on focus in Mozilla\n\t\t\t\t.attr('tabIndex', -1).css('outline', 0).keydown(function (event) {\n\t\t\t\t if (options.closeOnEscape && event.keyCode &&\n\t\t\t\t\t\tevent.keyCode === $.ui.keyCode.ESCAPE) {\n\n\t\t\t\t self.close(event);\n\t\t\t\t event.preventDefault();\n\t\t\t\t }\n\t\t\t\t})\n\t\t\t\t.attr({\n\t\t\t\t role: 'dialog',\n\t\t\t\t 'aria-labelledby': titleId\n\t\t\t\t})\n\t\t\t\t.mousedown(function (event) {\n\t\t\t\t self.moveToTop(false, event);\n\t\t\t\t}),\n\n\t\t\tuiDialogContent = self.element\n\t\t\t\t.show()\n\t\t\t\t.removeAttr('title')\n\t\t\t\t.addClass(\n\t\t\t\t\t'ui-dialog-content ' +\n\t\t\t\t\t'ui-widget-content')\n\t\t\t\t.appendTo(uiDialog),\n\n\t\t\tuiDialogTitlebar = (self.uiDialogTitlebar = $('
'))\n\t\t\t\t.addClass(\n\t\t\t\t\t'ui-dialog-titlebar ' +\n\t\t\t\t\t'ui-widget-header ' +\n\t\t\t\t\t'ui-corner-all ' +\n\t\t\t\t\t'ui-helper-clearfix'\n\t\t\t\t)\n\t\t\t\t.prependTo(uiDialog),\n\n\t\t\tuiDialogTitlebarClose = $('')\n\t\t\t\t.addClass(\n\t\t\t\t\t'ui-dialog-titlebar-close ' +\n\t\t\t\t\t'ui-corner-all'\n\t\t\t\t)\n\t\t\t\t.attr('role', 'button')\n\t\t\t\t.hover(\n\t\t\t\t\tfunction () {\n\t\t\t\t\t uiDialogTitlebarClose.addClass('ui-state-hover');\n\t\t\t\t\t},\n\t\t\t\t\tfunction () {\n\t\t\t\t\t uiDialogTitlebarClose.removeClass('ui-state-hover');\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t.focus(function () {\n\t\t\t\t uiDialogTitlebarClose.addClass('ui-state-focus');\n\t\t\t\t})\n\t\t\t\t.blur(function () {\n\t\t\t\t uiDialogTitlebarClose.removeClass('ui-state-focus');\n\t\t\t\t})\n\t\t\t\t.click(function (event) {\n\t\t\t\t self.close(event);\n\t\t\t\t return false;\n\t\t\t\t})\n\t\t\t\t.appendTo(uiDialogTitlebar),\n\n\t\t\tuiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $(''))\n\t\t\t\t.addClass(\n\t\t\t\t\t'ui-icon ' +\n\t\t\t\t\t'ui-icon-closethick'\n\t\t\t\t)\n\t\t\t\t.text(options.closeText)\n\t\t\t\t.appendTo(uiDialogTitlebarClose),\n\n\t\t\tuiDialogTitle = $('')\n\t\t\t\t.addClass('ui-dialog-title')\n\t\t\t\t.attr('id', titleId)\n\t\t\t\t.html(title)\n\t\t\t\t.prependTo(uiDialogTitlebar);\n\n //handling of deprecated beforeclose (vs beforeClose) option\n //Ticket #4669 http://dev.jqueryui.com/ticket/4669\n //TODO: remove in 1.9pre\n if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) {\n options.beforeClose = options.beforeclose;\n }\n\n uiDialogTitlebar.find(\"*\").add(uiDialogTitlebar).disableSelection();\n\n if (options.draggable && $.fn.draggable) {\n self._makeDraggable();\n }\n if (options.resizable && $.fn.resizable) {\n self._makeResizable();\n }\n\n self._createButtons(options.buttons);\n self._isOpen = false;\n\n if ($.fn.bgiframe) {\n uiDialog.bgiframe();\n }\n },\n\n _init: function () {\n if (this.options.autoOpen) {\n this.open();\n }\n },\n\n destroy: function () {\n var self = this;\n\n if (self.overlay) {\n self.overlay.destroy();\n }\n self.uiDialog.hide();\n self.element\n\t\t\t.unbind('.dialog')\n\t\t\t.removeData('dialog')\n\t\t\t.removeClass('ui-dialog-content ui-widget-content')\n\t\t\t.hide().appendTo('body');\n self.uiDialog.remove();\n\n if (self.originalTitle) {\n self.element.attr('title', self.originalTitle);\n }\n\n return self;\n },\n\n widget: function () {\n return this.uiDialog;\n },\n\n close: function (event) {\n var self = this,\n\t\t\tmaxZ, thisZ;\n\n if (false === self._trigger('beforeClose', event)) {\n return;\n }\n\n if (self.overlay) {\n self.overlay.destroy();\n }\n self.uiDialog.unbind('keypress.ui-dialog');\n\n self._isOpen = false;\n\n if (self.options.hide) {\n self.uiDialog.hide(self.options.hide, function () {\n self._trigger('close', event);\n });\n } else {\n self.uiDialog.hide();\n self._trigger('close', event);\n }\n\n $.ui.dialog.overlay.resize();\n\n // adjust the maxZ to allow other modal dialogs to continue to work (see #4309)\n if (self.options.modal) {\n maxZ = 0;\n $('.ui-dialog').each(function () {\n if (this !== self.uiDialog[0]) {\n thisZ = $(this).css('z-index');\n if (!isNaN(thisZ)) {\n maxZ = Math.max(maxZ, thisZ);\n }\n }\n });\n $.ui.dialog.maxZ = maxZ;\n }\n\n return self;\n },\n\n isOpen: function () {\n return this._isOpen;\n },\n\n // the force parameter allows us to move modal dialogs to their correct\n // position on open\n moveToTop: function (force, event) {\n var self = this,\n\t\t\toptions = self.options,\n\t\t\tsaveScroll;\n\n if ((options.modal && !force) ||\n\t\t\t(!options.stack && !options.modal)) {\n return self._trigger('focus', event);\n }\n\n if (options.zIndex > $.ui.dialog.maxZ) {\n $.ui.dialog.maxZ = options.zIndex;\n }\n if (self.overlay) {\n $.ui.dialog.maxZ += 1;\n self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ);\n }\n\n //Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed.\n // http://ui.jquery.com/bugs/ticket/3193\n saveScroll = { scrollTop: self.element.attr('scrollTop'), scrollLeft: self.element.attr('scrollLeft') };\n $.ui.dialog.maxZ += 1;\n self.uiDialog.css('z-index', $.ui.dialog.maxZ);\n self.element.attr(saveScroll);\n self._trigger('focus', event);\n\n return self;\n },\n\n open: function () {\n if (this._isOpen) { return; }\n\n var self = this,\n\t\t\toptions = self.options,\n\t\t\tuiDialog = self.uiDialog;\n\n self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;\n self._size();\n self._position(options.position);\n uiDialog.show(options.show);\n self.moveToTop(true);\n\n // prevent tabbing out of modal dialogs\n if (options.modal) {\n uiDialog.bind('keypress.ui-dialog', function (event) {\n if (event.keyCode !== $.ui.keyCode.TAB) {\n return;\n }\n\n var tabbables = $(':tabbable, a:not(:hidden)', this),\n\t\t\t\t\tfirst = tabbables.filter(':first'),\n\t\t\t\t\tlast = tabbables.filter(':last');\n\n if (event.target === last[0] && !event.shiftKey) {\n first.focus(1);\n return false;\n } else if (event.target === first[0] && event.shiftKey) {\n last.focus(1);\n return false;\n }\n });\n }\n\n // set focus to the first tabbable element in the content area or the first button\n // if there are no tabbable elements, set focus on the dialog itself\n $(self.element.find(':tabbable').get().concat(\n\t\t\tuiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(\n\t\t\t\tuiDialog.get()))).eq(0).focus();\n\n self._isOpen = true;\n self._trigger('open');\n\n return self;\n },\n\n _createButtons: function (buttons) {\n var self = this,\n\t\t\thasButtons = false,\n\t\t\tuiDialogButtonPane = $('
')\n\t\t\t\t.addClass(\n\t\t\t\t\t'ui-dialog-buttonpane ' +\n\t\t\t\t\t'ui-widget-content ' +\n\t\t\t\t\t'ui-helper-clearfix'\n\t\t\t\t),\n\t\t\tuiButtonSet = $(\"
\")\n\t\t\t\t.addClass(\"ui-dialog-buttonset\")\n\t\t\t\t.appendTo(uiDialogButtonPane);\n\n // if we already have a button pane, remove it\n self.uiDialog.find('.ui-dialog-buttonpane').remove();\n\n if (typeof buttons === 'object' && buttons !== null) {\n $.each(buttons, function () {\n return !(hasButtons = true);\n });\n }\n if (hasButtons) {\n $.each(buttons, function (name, props) {\n props = $.isFunction(props) ?\n\t\t\t\t\t{ click: props, text: name} :\n\t\t\t\t\tprops;\n //Cartegraph change. Buttons don't style well in IE.\n var button = $('')\n\t\t\t\t\t.click(function (event) {\n\t\t\t\t\t props.click.apply(self.element[0], arguments);\n //Cartegraph... Don't want to change the HASH... But we do want the links to be able to have keyboard focus.\n event.preventDefault();\n\t\t\t\t\t})\n\t\t\t\t\t.appendTo(uiButtonSet);\n // can't use .attr( props, true ) with jQuery 1.3.2.\n $.each(props, function (key, value) {\n if (key === \"click\") {\n return;\n }\n if (key in attrFn) {\n button[key](value);\n } else {\n button.attr(key, value);\n }\n });\n if ($.fn.button) {\n button.button();\n }\n });\n uiDialogButtonPane.appendTo(self.uiDialog);\n }\n },\n\n _makeDraggable: function () {\n var self = this,\n\t\t\toptions = self.options,\n\t\t\tdoc = $(document),\n\t\t\theightBeforeDrag;\n\n function filteredUi(ui) {\n return {\n position: ui.position,\n offset: ui.offset\n };\n }\n\n self.uiDialog.draggable({\n cancel: '.ui-dialog-content, .ui-dialog-titlebar-close',\n handle: '.ui-dialog-titlebar',\n containment: 'document',\n start: function (event, ui) {\n heightBeforeDrag = options.height === \"auto\" ? \"auto\" : $(this).height();\n $(this).height($(this).height()).addClass(\"ui-dialog-dragging\");\n self._trigger('dragStart', event, filteredUi(ui));\n },\n drag: function (event, ui) {\n self._trigger('drag', event, filteredUi(ui));\n },\n stop: function (event, ui) {\n options.position = [ui.position.left - doc.scrollLeft(),\n\t\t\t\t\tui.position.top - doc.scrollTop()];\n $(this).removeClass(\"ui-dialog-dragging\").height(heightBeforeDrag);\n self._trigger('dragStop', event, filteredUi(ui));\n $.ui.dialog.overlay.resize();\n }\n });\n },\n\n _makeResizable: function (handles) {\n handles = (handles === undefined ? this.options.resizable : handles);\n var self = this,\n\t\t\toptions = self.options,\n // .ui-resizable has position: relative defined in the stylesheet\n // but dialogs have to use absolute or fixed positioning\n\t\t\tposition = self.uiDialog.css('position'),\n\t\t\tresizeHandles = (typeof handles === 'string' ?\n\t\t\t\thandles :\n\t\t\t\t'n,e,s,w,se,sw,ne,nw'\n\t\t\t);\n\n function filteredUi(ui) {\n return {\n originalPosition: ui.originalPosition,\n originalSize: ui.originalSize,\n position: ui.position,\n size: ui.size\n };\n }\n\n self.uiDialog.resizable({\n cancel: '.ui-dialog-content',\n containment: 'document',\n alsoResize: self.element,\n maxWidth: options.maxWidth,\n maxHeight: options.maxHeight,\n minWidth: options.minWidth,\n minHeight: self._minHeight(),\n handles: resizeHandles,\n start: function (event, ui) {\n $(this).addClass(\"ui-dialog-resizing\");\n self._trigger('resizeStart', event, filteredUi(ui));\n },\n resize: function (event, ui) {\n self._trigger('resize', event, filteredUi(ui));\n },\n stop: function (event, ui) {\n $(this).removeClass(\"ui-dialog-resizing\");\n options.height = $(this).height();\n options.width = $(this).width();\n self._trigger('resizeStop', event, filteredUi(ui));\n $.ui.dialog.overlay.resize();\n }\n })\n\t\t.css('position', position)\n\t\t.find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');\n },\n\n _minHeight: function () {\n var options = this.options;\n\n if (options.height === 'auto') {\n return options.minHeight;\n } else {\n return Math.min(options.minHeight, options.height);\n }\n },\n\n _position: function (position) {\n var myAt = [],\n\t\t\toffset = [0, 0],\n\t\t\tisVisible;\n\n if (position) {\n // deep extending converts arrays to objects in jQuery <= 1.3.2 :-(\n //\t\tif (typeof position == 'string' || $.isArray(position)) {\n //\t\t\tmyAt = $.isArray(position) ? position : position.split(' ');\n\n if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) {\n myAt = position.split ? position.split(' ') : [position[0], position[1]];\n if (myAt.length === 1) {\n myAt[1] = myAt[0];\n }\n\n $.each(['left', 'top'], function (i, offsetPosition) {\n if (+myAt[i] === myAt[i]) {\n offset[i] = myAt[i];\n myAt[i] = offsetPosition;\n }\n });\n\n position = {\n my: myAt.join(\" \"),\n at: myAt.join(\" \"),\n offset: offset.join(\" \")\n };\n }\n\n position = $.extend({}, $.ui.dialog.prototype.options.position, position);\n } else {\n position = $.ui.dialog.prototype.options.position;\n }\n\n // need to show the dialog to get the actual offset in the position plugin\n isVisible = this.uiDialog.is(':visible');\n if (!isVisible) {\n this.uiDialog.show();\n }\n this.uiDialog\n // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781\n\t\t\t.css({ top: 0, left: 0 })\n\t\t\t.position($.extend({ of: window }, position));\n if (!isVisible) {\n this.uiDialog.hide();\n }\n },\n\n _setOptions: function (options) {\n var self = this,\n\t\t\tresizableOptions = {},\n\t\t\tresize = false;\n\n $.each(options, function (key, value) {\n self._setOption(key, value);\n\n if (key in sizeRelatedOptions) {\n resize = true;\n }\n if (key in resizableRelatedOptions) {\n resizableOptions[key] = value;\n }\n });\n\n if (resize) {\n this._size();\n }\n if (this.uiDialog.is(\":data(resizable)\")) {\n this.uiDialog.resizable(\"option\", resizableOptions);\n }\n },\n\n _setOption: function (key, value) {\n var self = this,\n\t\t\tuiDialog = self.uiDialog;\n\n switch (key) {\n //handling of deprecated beforeclose (vs beforeClose) option \n //Ticket #4669 http://dev.jqueryui.com/ticket/4669 \n //TODO: remove in 1.9pre \n case \"beforeclose\":\n key = \"beforeClose\";\n break;\n case \"buttons\":\n self._createButtons(value);\n break;\n case \"closeText\":\n // ensure that we always pass a string\n self.uiDialogTitlebarCloseText.text(\"\" + value);\n break;\n case \"dialogClass\":\n uiDialog\n\t\t\t\t\t.removeClass(self.options.dialogClass)\n\t\t\t\t\t.addClass(uiDialogClasses + value);\n break;\n case \"disabled\":\n if (value) {\n uiDialog.addClass('ui-dialog-disabled');\n } else {\n uiDialog.removeClass('ui-dialog-disabled');\n }\n break;\n case \"draggable\":\n var isDraggable = uiDialog.is(\":data(draggable)\");\n if (isDraggable && !value) {\n uiDialog.draggable(\"destroy\");\n }\n\n if (!isDraggable && value) {\n self._makeDraggable();\n }\n break;\n case \"position\":\n self._position(value);\n break;\n case \"resizable\":\n // currently resizable, becoming non-resizable\n var isResizable = uiDialog.is(\":data(resizable)\");\n if (isResizable && !value) {\n uiDialog.resizable('destroy');\n }\n\n // currently resizable, changing handles\n if (isResizable && typeof value === 'string') {\n uiDialog.resizable('option', 'handles', value);\n }\n\n // currently non-resizable, becoming resizable\n if (!isResizable && value !== false) {\n self._makeResizable(value);\n }\n break;\n case \"title\":\n // convert whatever was passed in o a string, for html() to not throw up\n $(\".ui-dialog-title\", self.uiDialogTitlebar).html(\"\" + (value || ' '));\n break;\n }\n\n $.Widget.prototype._setOption.apply(self, arguments);\n },\n\n _size: function () {\n /* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content\n * divs will both have width and height set, so we need to reset them\n */\n var options = this.options,\n\t\t\tnonContentHeight,\n\t\t\tminContentHeight,\n\t\t\tisVisible = this.uiDialog.is(\":visible\");\n\n // reset content sizing\n this.element.show().css({\n width: 'auto',\n minHeight: 0,\n height: 0\n });\n\n if (options.minWidth > options.width) {\n options.width = options.minWidth;\n }\n\n // reset wrapper sizing\n // determine the height of all the non-content elements\n nonContentHeight = this.uiDialog.css({\n height: 'auto',\n width: options.width\n })\n\t\t\t.height();\n minContentHeight = Math.max(0, options.minHeight - nonContentHeight);\n\n if (options.height === \"auto\") {\n // only needed for IE6 support\n if ($.support.minHeight) {\n this.element.css({\n minHeight: minContentHeight,\n height: \"auto\"\n });\n } else {\n this.uiDialog.show();\n var autoHeight = this.element.css(\"height\", \"auto\").height();\n if (!isVisible) {\n this.uiDialog.hide();\n }\n this.element.height(Math.max(autoHeight, minContentHeight));\n }\n } else {\n this.element.height(Math.max(options.height - nonContentHeight, 0));\n }\n\n if (this.uiDialog.is(':data(resizable)')) {\n this.uiDialog.resizable('option', 'minHeight', this._minHeight());\n }\n }\n });\n\n $.extend($.ui.dialog, {\n version: \"1.8.14\",\n\n uuid: 0,\n maxZ: 0,\n\n getTitleId: function ($el) {\n var id = $el.attr('id');\n if (!id) {\n this.uuid += 1;\n id = this.uuid;\n }\n return 'ui-dialog-title-' + id;\n },\n\n overlay: function (dialog) {\n this.$el = $.ui.dialog.overlay.create(dialog);\n }\n });\n\n $.extend($.ui.dialog.overlay, {\n instances: [],\n // reuse old instances due to IE memory leak with alpha transparency (see #5185)\n oldInstances: [],\n maxZ: 0,\n events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),\n\t\tfunction (event) { return event + '.dialog-overlay'; }).join(' '),\n create: function (dialog) {\n if (this.instances.length === 0) {\n // prevent use of anchors and inputs\n // we use a setTimeout in case the overlay is created from an\n // event that we're going to be cancelling (see #2804)\n setTimeout(function () {\n // handle $(el).dialog().dialog('close') (see #4065)\n if ($.ui.dialog.overlay.instances.length) {\n $(document).bind($.ui.dialog.overlay.events, function (event) {\n // stop events if the z-index of the target is < the z-index of the overlay\n // we cannot return true when we don't want to cancel the event (#3523)\n if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) {\n // Cartegraph change. This prevented use of input fields in jQuery-ui dialogs in Firefox\n // Unfortunately, could not blanket remove as tabs can escape in non-firefox browsers without this.\n if (!Cartegraph.Browser.isFirefox()) // End Cartegraph change\n return false;\n }\n });\n }\n }, 1);\n\n // allow closing by pressing the escape key\n $(document).bind('keydown.dialog-overlay', function (event) {\n if (dialog.options.closeOnEscape && event.keyCode &&\n\t\t\t\t\tevent.keyCode === $.ui.keyCode.ESCAPE) {\n\n dialog.close(event);\n event.preventDefault();\n }\n });\n\n // handle window resize\n $(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);\n }\n\n var $el = (this.oldInstances.pop() || $('
').addClass('ui-widget-overlay'))\n\t\t\t.appendTo(document.body)\n\t\t\t.css({\n\t\t\t width: this.width(),\n\t\t\t height: this.height()\n\t\t\t});\n\n if ($.fn.bgiframe) {\n $el.bgiframe();\n }\n\n this.instances.push($el);\n $.ui.dialog.overlay.resize();\n return $el;\n },\n\n destroy: function ($el) {\n var indexOf = $.inArray($el, this.instances);\n if (indexOf != -1) {\n this.oldInstances.push(this.instances.splice(indexOf, 1)[0]);\n }\n\n if (this.instances.length === 0) {\n $([document, window]).unbind('.dialog-overlay');\n }\n\n $el.remove();\n\n // adjust the maxZ to allow other modal dialogs to continue to work (see #4309)\n var maxZ = 0;\n $.each(this.instances, function () {\n maxZ = Math.max(maxZ, this.css('z-index'));\n });\n this.maxZ = maxZ;\n },\n\n height: function () {\n var scrollHeight,\n\t\t\toffsetHeight;\n // handle IE 6\n if ($.browser.msie && $.browser.version < 7) {\n scrollHeight = Math.max(\n\t\t\t\tdocument.documentElement.scrollHeight,\n\t\t\t\tdocument.body.scrollHeight\n\t\t\t);\n offsetHeight = Math.max(\n\t\t\t\tdocument.documentElement.offsetHeight,\n\t\t\t\tdocument.body.offsetHeight\n\t\t\t);\n\n if (scrollHeight < offsetHeight) {\n return $(window).height() + 'px';\n } else {\n return scrollHeight + 'px';\n }\n // handle \"good\" browsers\n } else {\n return $(document).height() + 'px';\n }\n },\n\n width: function () {\n var scrollWidth,\n\t\t\toffsetWidth;\n // handle IE\n if ($.browser.msie) {\n scrollWidth = Math.max(\n\t\t\t\tdocument.documentElement.scrollWidth,\n\t\t\t\tdocument.body.scrollWidth\n\t\t\t);\n offsetWidth = Math.max(\n\t\t\t\tdocument.documentElement.offsetWidth,\n\t\t\t\tdocument.body.offsetWidth\n\t\t\t);\n\n if (scrollWidth < offsetWidth) {\n return $(window).width() + 'px';\n } else {\n return scrollWidth + 'px';\n }\n // handle \"good\" browsers\n } else {\n return $(document).width() + 'px';\n }\n },\n\n resize: function () {\n /* If the dialog is draggable and the user drags it past the\n * right edge of the window, the document becomes wider so we\n * need to stretch the overlay. If the user then drags the\n * dialog back to the left, the document will become narrower,\n * so we need to shrink the overlay to the appropriate size.\n * This is handled by shrinking the overlay before setting it\n * to the full document size.\n */\n var $overlays = $([]);\n $.each($.ui.dialog.overlay.instances, function () {\n $overlays = $overlays.add(this);\n });\n\n $overlays.css({\n width: 0,\n height: 0\n }).css({\n width: $.ui.dialog.overlay.width(),\n height: $.ui.dialog.overlay.height()\n });\n }\n });\n\n $.extend($.ui.dialog.overlay.prototype, {\n destroy: function () {\n $.ui.dialog.overlay.destroy(this.$el);\n }\n });\n\n} (jQuery));\n/*\n* jQuery UI Position 1.8.14\n*\n* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)\n* Dual licensed under the MIT or GPL Version 2 licenses.\n* http://jquery.org/license\n*\n* http://docs.jquery.com/UI/Position\n*/\n(function ($, undefined) {\n\n $.ui = $.ui || {};\n\n var horizontalPositions = /left|center|right/,\n\tverticalPositions = /top|center|bottom/,\n\tcenter = \"center\",\n\t_position = $.fn.position,\n\t_offset = $.fn.offset;\n\n $.fn.position = function (options) {\n if (!options || !options.of) {\n return _position.apply(this, arguments);\n }\n\n // make a copy, we don't want to modify arguments\n options = $.extend({}, options);\n\n var target = $(options.of),\n\t\ttargetElem = target[0],\n\t\tcollision = (options.collision || \"flip\").split(\" \"),\n\t\toffset = options.offset ? options.offset.split(\" \") : [0, 0],\n\t\ttargetWidth,\n\t\ttargetHeight,\n\t\tbasePosition;\n\n if (targetElem.nodeType === 9) {\n targetWidth = target.width();\n targetHeight = target.height();\n basePosition = { top: 0, left: 0 };\n // TODO: use $.isWindow() in 1.9\n } else if (targetElem.setTimeout) {\n targetWidth = target.width();\n targetHeight = target.height();\n basePosition = { top: target.scrollTop(), left: target.scrollLeft() };\n } else if (targetElem.preventDefault) {\n // force left top to allow flipping\n options.at = \"left top\";\n targetWidth = targetHeight = 0;\n basePosition = { top: options.of.pageY, left: options.of.pageX };\n } else {\n targetWidth = target.outerWidth();\n targetHeight = target.outerHeight();\n basePosition = target.offset();\n }\n\n // force my and at to have valid horizontal and veritcal positions\n // if a value is missing or invalid, it will be converted to center \n $.each([\"my\", \"at\"], function () {\n var pos = (options[this] || \"\").split(\" \");\n if (pos.length === 1) {\n pos = horizontalPositions.test(pos[0]) ?\n\t\t\t\tpos.concat([center]) :\n\t\t\t\tverticalPositions.test(pos[0]) ?\n\t\t\t\t\t[center].concat(pos) :\n\t\t\t\t\t[center, center];\n }\n pos[0] = horizontalPositions.test(pos[0]) ? pos[0] : center;\n pos[1] = verticalPositions.test(pos[1]) ? pos[1] : center;\n options[this] = pos;\n });\n\n // normalize collision option\n if (collision.length === 1) {\n collision[1] = collision[0];\n }\n\n // normalize offset option\n offset[0] = parseInt(offset[0], 10) || 0;\n if (offset.length === 1) {\n offset[1] = offset[0];\n }\n offset[1] = parseInt(offset[1], 10) || 0;\n\n if (options.at[0] === \"right\") {\n basePosition.left += targetWidth;\n } else if (options.at[0] === center) {\n basePosition.left += targetWidth / 2;\n }\n\n if (options.at[1] === \"bottom\") {\n basePosition.top += targetHeight;\n } else if (options.at[1] === center) {\n basePosition.top += targetHeight / 2;\n }\n\n basePosition.left += offset[0];\n basePosition.top += offset[1];\n\n return this.each(function () {\n var elem = $(this),\n\t\t\telemWidth = elem.outerWidth(),\n\t\t\telemHeight = elem.outerHeight(),\n\t\t\tmarginLeft = parseInt($.css(this, \"marginLeft\", true)) || 0,\n\t\t\tmarginTop = parseInt($.css(this, \"marginTop\", true)) || 0,\n\t\t\tcollisionWidth = elemWidth + marginLeft +\n\t\t\t\t(parseInt($.css(this, \"marginRight\", true)) || 0),\n\t\t\tcollisionHeight = elemHeight + marginTop +\n\t\t\t\t(parseInt($.css(this, \"marginBottom\", true)) || 0),\n\t\t\tposition = $.extend({}, basePosition),\n\t\t\tcollisionPosition;\n\n if (options.my[0] === \"right\") {\n position.left -= elemWidth;\n } else if (options.my[0] === center) {\n position.left -= elemWidth / 2;\n }\n\n if (options.my[1] === \"bottom\") {\n position.top -= elemHeight;\n } else if (options.my[1] === center) {\n position.top -= elemHeight / 2;\n }\n\n // prevent fractions (see #5280)\n position.left = Math.round(position.left);\n position.top = Math.round(position.top);\n\n collisionPosition = {\n left: position.left - marginLeft,\n top: position.top - marginTop\n };\n\n $.each([\"left\", \"top\"], function (i, dir) {\n if ($.ui.position[collision[i]]) {\n $.ui.position[collision[i]][dir](position, {\n targetWidth: targetWidth,\n targetHeight: targetHeight,\n elemWidth: elemWidth,\n elemHeight: elemHeight,\n collisionPosition: collisionPosition,\n collisionWidth: collisionWidth,\n collisionHeight: collisionHeight,\n offset: offset,\n my: options.my,\n at: options.at\n });\n }\n });\n\n if ($.fn.bgiframe) {\n elem.bgiframe();\n }\n elem.offset($.extend(position, { using: options.using }));\n });\n };\n\n $.ui.position = {\n fit: {\n left: function (position, data) {\n var win = $(window),\n\t\t\t\tover = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft();\n position.left = over > 0 ? position.left - over : Math.max(position.left - data.collisionPosition.left, position.left);\n },\n top: function (position, data) {\n var win = $(window),\n\t\t\t\tover = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop();\n position.top = over > 0 ? position.top - over : Math.max(position.top - data.collisionPosition.top, position.top);\n }\n },\n\n flip: {\n left: function (position, data) {\n if (data.at[0] === center) {\n return;\n }\n var win = $(window),\n\t\t\t\tover = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(),\n\t\t\t\tmyOffset = data.my[0] === \"left\" ?\n\t\t\t\t\t-data.elemWidth :\n\t\t\t\t\tdata.my[0] === \"right\" ?\n\t\t\t\t\t\tdata.elemWidth :\n\t\t\t\t\t\t0,\n\t\t\t\tatOffset = data.at[0] === \"left\" ?\n\t\t\t\t\tdata.targetWidth :\n\t\t\t\t\t-data.targetWidth,\n\t\t\t\toffset = -2 * data.offset[0];\n position.left += data.collisionPosition.left < 0 ?\n\t\t\t\tmyOffset + atOffset + offset :\n\t\t\t\tover > 0 ?\n\t\t\t\t\tmyOffset + atOffset + offset :\n\t\t\t\t\t0;\n },\n top: function (position, data) {\n if (data.at[1] === center) {\n return;\n }\n var win = $(window),\n\t\t\t\tover = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(),\n\t\t\t\tmyOffset = data.my[1] === \"top\" ?\n\t\t\t\t\t-data.elemHeight :\n\t\t\t\t\tdata.my[1] === \"bottom\" ?\n\t\t\t\t\t\tdata.elemHeight :\n\t\t\t\t\t\t0,\n\t\t\t\tatOffset = data.at[1] === \"top\" ?\n\t\t\t\t\tdata.targetHeight :\n\t\t\t\t\t-data.targetHeight,\n\t\t\t\toffset = -2 * data.offset[1];\n position.top += data.collisionPosition.top < 0 ?\n\t\t\t\tmyOffset + atOffset + offset :\n\t\t\t\tover > 0 ?\n\t\t\t\t\tmyOffset + atOffset + offset :\n\t\t\t\t\t0;\n }\n }\n };\n\n // offset setter from jQuery 1.4\n if (!$.offset.setOffset) {\n $.offset.setOffset = function (elem, options) {\n // set position first, in-case top/left are set even on static elem\n if (/static/.test($.css(elem, \"position\"))) {\n elem.style.position = \"relative\";\n }\n var curElem = $(elem),\n\t\t\tcurOffset = curElem.offset(),\n\t\t\tcurTop = parseInt($.css(elem, \"top\", true), 10) || 0,\n\t\t\tcurLeft = parseInt($.css(elem, \"left\", true), 10) || 0,\n\t\t\tprops = {\n\t\t\t top: (options.top - curOffset.top) + curTop,\n\t\t\t left: (options.left - curOffset.left) + curLeft\n\t\t\t};\n\n if ('using' in options) {\n options.using.call(elem, props);\n } else {\n curElem.css(props);\n }\n };\n\n $.fn.offset = function (options) {\n var elem = this[0];\n if (!elem || !elem.ownerDocument) { return null; }\n if (options) {\n return this.each(function () {\n $.offset.setOffset(this, options);\n });\n }\n return _offset.call(this);\n };\n }\n\n} (jQuery));\n/*\n* jQuery UI Progressbar 1.8.14\n*\n* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)\n* Dual licensed under the MIT or GPL Version 2 licenses.\n* http://jquery.org/license\n*\n* http://docs.jquery.com/UI/Progressbar\n*\n* Depends:\n* jquery.ui.core.js\n* jquery.ui.widget.js\n*/\n(function ($, undefined) {\n\n $.widget(\"ui.progressbar\", {\n options: {\n value: 0,\n max: 100\n },\n\n min: 0,\n\n _create: function () {\n this.element\n\t\t\t.addClass(\"ui-progressbar ui-widget ui-widget-content ui-corner-all\")\n\t\t\t.attr({\n\t\t\t role: \"progressbar\",\n\t\t\t \"aria-valuemin\": this.min,\n\t\t\t \"aria-valuemax\": this.options.max,\n\t\t\t \"aria-valuenow\": this._value()\n\t\t\t});\n\n this.valueDiv = $(\"
\")\n\t\t\t.appendTo(this.element);\n\n this.oldValue = this._value();\n this._refreshValue();\n },\n\n destroy: function () {\n this.element\n\t\t\t.removeClass(\"ui-progressbar ui-widget ui-widget-content ui-corner-all\")\n\t\t\t.removeAttr(\"role\")\n\t\t\t.removeAttr(\"aria-valuemin\")\n\t\t\t.removeAttr(\"aria-valuemax\")\n\t\t\t.removeAttr(\"aria-valuenow\");\n\n this.valueDiv.remove();\n\n $.Widget.prototype.destroy.apply(this, arguments);\n },\n\n value: function (newValue) {\n if (newValue === undefined) {\n return this._value();\n }\n\n this._setOption(\"value\", newValue);\n return this;\n },\n\n _setOption: function (key, value) {\n if (key === \"value\") {\n this.options.value = value;\n this._refreshValue();\n if (this._value() === this.options.max) {\n this._trigger(\"complete\");\n }\n }\n\n $.Widget.prototype._setOption.apply(this, arguments);\n },\n\n _value: function () {\n var val = this.options.value;\n // normalize invalid value\n if (typeof val !== \"number\") {\n val = 0;\n }\n return Math.min(this.options.max, Math.max(this.min, val));\n },\n\n _percentage: function () {\n return 100 * this._value() / this.options.max;\n },\n\n _refreshValue: function () {\n var value = this.value();\n var percentage = this._percentage();\n\n if (this.oldValue !== value) {\n this.oldValue = value;\n this._trigger(\"change\");\n }\n\n this.valueDiv\n\t\t\t.toggle(value > this.min)\n\t\t\t.toggleClass(\"ui-corner-right\", value === this.options.max)\n\t\t\t.width(percentage.toFixed(0) + \"%\");\n this.element.attr(\"aria-valuenow\", value);\n }\n });\n\n $.extend($.ui.progressbar, {\n version: \"1.8.14\"\n });\n\n})(jQuery);\n/*\n* jQuery UI Slider 1.8.14\n*\n* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)\n* Dual licensed under the MIT or GPL Version 2 licenses.\n* http://jquery.org/license\n*\n* http://docs.jquery.com/UI/Slider\n*\n* Depends:\n*\tjquery.ui.core.js\n*\tjquery.ui.mouse.js\n*\tjquery.ui.widget.js\n*/\n(function ($, undefined) {\n\n // number of pages in a slider\n // (how many times can you page up/down to go through the whole range)\n var numPages = 5;\n\n $.widget(\"ui.slider\", $.ui.mouse, {\n\n widgetEventPrefix: \"slide\",\n\n options: {\n animate: false,\n distance: 0,\n max: 100,\n min: 0,\n orientation: \"horizontal\",\n range: false,\n step: 1,\n value: 0,\n values: null\n },\n\n _create: function () {\n var self = this,\n\t\t\to = this.options,\n\t\t\texistingHandles = this.element.find(\".ui-slider-handle\").addClass(\"ui-state-default ui-corner-all\"),\n\t\t\thandle = \"\",\n\t\t\thandleCount = (o.values && o.values.length) || 1,\n\t\t\thandles = [];\n\n this._keySliding = false;\n this._mouseSliding = false;\n this._animateOff = true;\n this._handleIndex = null;\n this._detectOrientation();\n this._mouseInit();\n\n this.element\n\t\t\t.addClass(\"ui-slider\" +\n\t\t\t\t\" ui-slider-\" + this.orientation +\n\t\t\t\t\" ui-widget\" +\n\t\t\t\t\" ui-widget-content\" +\n\t\t\t\t\" ui-corner-all\" +\n\t\t\t\t(o.disabled ? \" ui-slider-disabled ui-disabled\" : \"\"));\n\n this.range = $([]);\n\n if (o.range) {\n if (o.range === true) {\n if (!o.values) {\n o.values = [this._valueMin(), this._valueMin()];\n }\n if (o.values.length && o.values.length !== 2) {\n o.values = [o.values[0], o.values[0]];\n }\n }\n\n this.range = $(\"
\")\n\t\t\t\t.appendTo(this.element)\n\t\t\t\t.addClass(\"ui-slider-range\" +\n // note: this isn't the most fittingly semantic framework class for this element,\n // but worked best visually with a variety of themes\n\t\t\t\t\" ui-widget-header\" +\n\t\t\t\t((o.range === \"min\" || o.range === \"max\") ? \" ui-slider-range-\" + o.range : \"\"));\n }\n\n for (var i = existingHandles.length; i < handleCount; i += 1) {\n handles.push(handle);\n }\n\n this.handles = existingHandles.add($(handles.join(\"\")).appendTo(self.element));\n\n this.handle = this.handles.eq(0);\n\n this.handles.add(this.range).filter(\"a\")\n\t\t\t.click(function (event) {\n\t\t\t event.preventDefault();\n\t\t\t})\n\t\t\t.hover(function () {\n\t\t\t if (!o.disabled) {\n\t\t\t $(this).addClass(\"ui-state-hover\");\n\t\t\t }\n\t\t\t}, function () {\n\t\t\t $(this).removeClass(\"ui-state-hover\");\n\t\t\t})\n\t\t\t.focus(function () {\n\t\t\t if (!o.disabled) {\n\t\t\t $(\".ui-slider .ui-state-focus\").removeClass(\"ui-state-focus\");\n\t\t\t $(this).addClass(\"ui-state-focus\");\n\t\t\t } else {\n\t\t\t $(this).blur();\n\t\t\t }\n\t\t\t})\n\t\t\t.blur(function () {\n\t\t\t $(this).removeClass(\"ui-state-focus\");\n\t\t\t});\n\n this.handles.each(function (i) {\n $(this).data(\"index.ui-slider-handle\", i);\n });\n\n this.handles\n\t\t\t.keydown(function (event) {\n\t\t\t var ret = true,\n\t\t\t\t\tindex = $(this).data(\"index.ui-slider-handle\"),\n\t\t\t\t\tallowed,\n\t\t\t\t\tcurVal,\n\t\t\t\t\tnewVal,\n\t\t\t\t\tstep;\n\n\t\t\t if (self.options.disabled) {\n\t\t\t return;\n\t\t\t }\n\n\t\t\t switch (event.keyCode) {\n\t\t\t case $.ui.keyCode.HOME:\n\t\t\t case $.ui.keyCode.END:\n\t\t\t case $.ui.keyCode.PAGE_UP:\n\t\t\t case $.ui.keyCode.PAGE_DOWN:\n\t\t\t case $.ui.keyCode.UP:\n\t\t\t case $.ui.keyCode.RIGHT:\n\t\t\t case $.ui.keyCode.DOWN:\n\t\t\t case $.ui.keyCode.LEFT:\n\t\t\t ret = false;\n\t\t\t if (!self._keySliding) {\n\t\t\t self._keySliding = true;\n\t\t\t $(this).addClass(\"ui-state-active\");\n\t\t\t allowed = self._start(event, index);\n\t\t\t if (allowed === false) {\n\t\t\t return;\n\t\t\t }\n\t\t\t }\n\t\t\t break;\n\t\t\t }\n\n\t\t\t step = self.options.step;\n\t\t\t if (self.options.values && self.options.values.length) {\n\t\t\t curVal = newVal = self.values(index);\n\t\t\t } else {\n\t\t\t curVal = newVal = self.value();\n\t\t\t }\n\n\t\t\t switch (event.keyCode) {\n\t\t\t case $.ui.keyCode.HOME:\n\t\t\t newVal = self._valueMin();\n\t\t\t break;\n\t\t\t case $.ui.keyCode.END:\n\t\t\t newVal = self._valueMax();\n\t\t\t break;\n\t\t\t case $.ui.keyCode.PAGE_UP:\n\t\t\t newVal = self._trimAlignValue(curVal + ((self._valueMax() - self._valueMin()) / numPages));\n\t\t\t break;\n\t\t\t case $.ui.keyCode.PAGE_DOWN:\n\t\t\t newVal = self._trimAlignValue(curVal - ((self._valueMax() - self._valueMin()) / numPages));\n\t\t\t break;\n\t\t\t case $.ui.keyCode.UP:\n\t\t\t case $.ui.keyCode.RIGHT:\n\t\t\t if (curVal === self._valueMax()) {\n\t\t\t return;\n\t\t\t }\n\t\t\t newVal = self._trimAlignValue(curVal + step);\n\t\t\t break;\n\t\t\t case $.ui.keyCode.DOWN:\n\t\t\t case $.ui.keyCode.LEFT:\n\t\t\t if (curVal === self._valueMin()) {\n\t\t\t return;\n\t\t\t }\n\t\t\t newVal = self._trimAlignValue(curVal - step);\n\t\t\t break;\n\t\t\t }\n\n\t\t\t self._slide(event, index, newVal);\n\n\t\t\t return ret;\n\n\t\t\t})\n\t\t\t.keyup(function (event) {\n\t\t\t var index = $(this).data(\"index.ui-slider-handle\");\n\n\t\t\t if (self._keySliding) {\n\t\t\t self._keySliding = false;\n\t\t\t self._stop(event, index);\n\t\t\t self._change(event, index);\n\t\t\t $(this).removeClass(\"ui-state-active\");\n\t\t\t }\n\n\t\t\t});\n\n this._refreshValue();\n\n this._animateOff = false;\n },\n\n destroy: function () {\n this.handles.remove();\n this.range.remove();\n\n this.element\n\t\t\t.removeClass(\"ui-slider\" +\n\t\t\t\t\" ui-slider-horizontal\" +\n\t\t\t\t\" ui-slider-vertical\" +\n\t\t\t\t\" ui-slider-disabled\" +\n\t\t\t\t\" ui-widget\" +\n\t\t\t\t\" ui-widget-content\" +\n\t\t\t\t\" ui-corner-all\")\n\t\t\t.removeData(\"slider\")\n\t\t\t.unbind(\".slider\");\n\n this._mouseDestroy();\n\n return this;\n },\n\n _mouseCapture: function (event) {\n var o = this.options,\n\t\t\tposition,\n\t\t\tnormValue,\n\t\t\tdistance,\n\t\t\tclosestHandle,\n\t\t\tself,\n\t\t\tindex,\n\t\t\tallowed,\n\t\t\toffset,\n\t\t\tmouseOverHandle;\n\n if (o.disabled) {\n return false;\n }\n\n this.elementSize = {\n width: this.element.outerWidth(),\n height: this.element.outerHeight()\n };\n this.elementOffset = this.element.offset();\n\n position = { x: event.pageX, y: event.pageY };\n normValue = this._normValueFromMouse(position);\n distance = this._valueMax() - this._valueMin() + 1;\n self = this;\n this.handles.each(function (i) {\n var thisDistance = Math.abs(normValue - self.values(i));\n if (distance > thisDistance) {\n distance = thisDistance;\n closestHandle = $(this);\n index = i;\n }\n });\n\n // workaround for bug #3736 (if both handles of a range are at 0,\n // the first is always used as the one with least distance,\n // and moving it is obviously prevented by preventing negative ranges)\n if (o.range === true && this.values(1) === o.min) {\n index += 1;\n closestHandle = $(this.handles[index]);\n }\n\n allowed = this._start(event, index);\n if (allowed === false) {\n return false;\n }\n this._mouseSliding = true;\n\n self._handleIndex = index;\n\n closestHandle\n\t\t\t.addClass(\"ui-state-active\")\n\t\t\t.focus();\n\n offset = closestHandle.offset();\n mouseOverHandle = !$(event.target).parents().andSelf().is(\".ui-slider-handle\");\n this._clickOffset = mouseOverHandle ? { left: 0, top: 0} : {\n left: event.pageX - offset.left - (closestHandle.width() / 2),\n top: event.pageY - offset.top -\n\t\t\t\t(closestHandle.height() / 2) -\n\t\t\t\t(parseInt(closestHandle.css(\"borderTopWidth\"), 10) || 0) -\n\t\t\t\t(parseInt(closestHandle.css(\"borderBottomWidth\"), 10) || 0) +\n\t\t\t\t(parseInt(closestHandle.css(\"marginTop\"), 10) || 0)\n };\n\n if (!this.handles.hasClass(\"ui-state-hover\")) {\n this._slide(event, index, normValue);\n }\n this._animateOff = true;\n return true;\n },\n\n _mouseStart: function (event) {\n return true;\n },\n\n _mouseDrag: function (event) {\n var position = { x: event.pageX, y: event.pageY },\n\t\t\tnormValue = this._normValueFromMouse(position);\n\n this._slide(event, this._handleIndex, normValue);\n\n return false;\n },\n\n _mouseStop: function (event) {\n this.handles.removeClass(\"ui-state-active\");\n this._mouseSliding = false;\n\n this._stop(event, this._handleIndex);\n this._change(event, this._handleIndex);\n\n this._handleIndex = null;\n this._clickOffset = null;\n this._animateOff = false;\n\n return false;\n },\n\n _detectOrientation: function () {\n this.orientation = (this.options.orientation === \"vertical\") ? \"vertical\" : \"horizontal\";\n },\n\n _normValueFromMouse: function (position) {\n var pixelTotal,\n\t\t\tpixelMouse,\n\t\t\tpercentMouse,\n\t\t\tvalueTotal,\n\t\t\tvalueMouse;\n\n if (this.orientation === \"horizontal\") {\n pixelTotal = this.elementSize.width;\n pixelMouse = position.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0);\n } else {\n pixelTotal = this.elementSize.height;\n pixelMouse = position.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0);\n }\n\n percentMouse = (pixelMouse / pixelTotal);\n if (percentMouse > 1) {\n percentMouse = 1;\n }\n if (percentMouse < 0) {\n percentMouse = 0;\n }\n if (this.orientation === \"vertical\") {\n percentMouse = 1 - percentMouse;\n }\n\n valueTotal = this._valueMax() - this._valueMin();\n valueMouse = this._valueMin() + percentMouse * valueTotal;\n\n return this._trimAlignValue(valueMouse);\n },\n\n _start: function (event, index) {\n var uiHash = {\n handle: this.handles[index],\n value: this.value()\n };\n if (this.options.values && this.options.values.length) {\n uiHash.value = this.values(index);\n uiHash.values = this.values();\n }\n return this._trigger(\"start\", event, uiHash);\n },\n\n _slide: function (event, index, newVal) {\n var otherVal,\n\t\t\tnewValues,\n\t\t\tallowed;\n\n if (this.options.values && this.options.values.length) {\n otherVal = this.values(index ? 0 : 1);\n\n if ((this.options.values.length === 2 && this.options.range === true) &&\n\t\t\t\t\t((index === 0 && newVal > otherVal) || (index === 1 && newVal < otherVal))\n\t\t\t\t) {\n newVal = otherVal;\n }\n\n if (newVal !== this.values(index)) {\n newValues = this.values();\n newValues[index] = newVal;\n // A slide can be canceled by returning false from the slide callback\n allowed = this._trigger(\"slide\", event, {\n handle: this.handles[index],\n value: newVal,\n values: newValues\n });\n otherVal = this.values(index ? 0 : 1);\n if (allowed !== false) {\n this.values(index, newVal, true);\n }\n }\n } else {\n if (newVal !== this.value()) {\n // A slide can be canceled by returning false from the slide callback\n allowed = this._trigger(\"slide\", event, {\n handle: this.handles[index],\n value: newVal\n });\n if (allowed !== false) {\n this.value(newVal);\n }\n }\n }\n },\n\n _stop: function (event, index) {\n var uiHash = {\n handle: this.handles[index],\n value: this.value()\n };\n if (this.options.values && this.options.values.length) {\n uiHash.value = this.values(index);\n uiHash.values = this.values();\n }\n\n this._trigger(\"stop\", event, uiHash);\n },\n\n _change: function (event, index) {\n if (!this._keySliding && !this._mouseSliding) {\n var uiHash = {\n handle: this.handles[index],\n value: this.value()\n };\n if (this.options.values && this.options.values.length) {\n uiHash.value = this.values(index);\n uiHash.values = this.values();\n }\n\n this._trigger(\"change\", event, uiHash);\n }\n },\n\n value: function (newValue) {\n if (arguments.length) {\n this.options.value = this._trimAlignValue(newValue);\n this._refreshValue();\n this._change(null, 0);\n return;\n }\n\n return this._value();\n },\n\n values: function (index, newValue) {\n var vals,\n\t\t\tnewValues,\n\t\t\ti;\n\n if (arguments.length > 1) {\n this.options.values[index] = this._trimAlignValue(newValue);\n this._refreshValue();\n this._change(null, index);\n return;\n }\n\n if (arguments.length) {\n if ($.isArray(arguments[0])) {\n vals = this.options.values;\n newValues = arguments[0];\n for (i = 0; i < vals.length; i += 1) {\n vals[i] = this._trimAlignValue(newValues[i]);\n this._change(null, i);\n }\n this._refreshValue();\n } else {\n if (this.options.values && this.options.values.length) {\n return this._values(index);\n } else {\n return this.value();\n }\n }\n } else {\n return this._values();\n }\n },\n\n _setOption: function (key, value) {\n var i,\n\t\t\tvalsLength = 0;\n\n if ($.isArray(this.options.values)) {\n valsLength = this.options.values.length;\n }\n\n $.Widget.prototype._setOption.apply(this, arguments);\n\n switch (key) {\n case \"disabled\":\n if (value) {\n this.handles.filter(\".ui-state-focus\").blur();\n this.handles.removeClass(\"ui-state-hover\");\n this.handles.attr(\"disabled\", \"disabled\");\n this.element.addClass(\"ui-disabled\");\n } else {\n this.handles.removeAttr(\"disabled\");\n this.element.removeClass(\"ui-disabled\");\n }\n break;\n case \"orientation\":\n this._detectOrientation();\n this.element\n\t\t\t\t\t.removeClass(\"ui-slider-horizontal ui-slider-vertical\")\n\t\t\t\t\t.addClass(\"ui-slider-\" + this.orientation);\n this._refreshValue();\n break;\n case \"value\":\n this._animateOff = true;\n this._refreshValue();\n this._change(null, 0);\n this._animateOff = false;\n break;\n case \"values\":\n this._animateOff = true;\n this._refreshValue();\n for (i = 0; i < valsLength; i += 1) {\n this._change(null, i);\n }\n this._animateOff = false;\n break;\n }\n },\n\n //internal value getter\n // _value() returns value trimmed by min and max, aligned by step\n _value: function () {\n var val = this.options.value;\n val = this._trimAlignValue(val);\n\n return val;\n },\n\n //internal values getter\n // _values() returns array of values trimmed by min and max, aligned by step\n // _values( index ) returns single value trimmed by min and max, aligned by step\n _values: function (index) {\n var val,\n\t\t\tvals,\n\t\t\ti;\n\n if (arguments.length) {\n val = this.options.values[index];\n val = this._trimAlignValue(val);\n\n return val;\n } else {\n // .slice() creates a copy of the array\n // this copy gets trimmed by min and max and then returned\n vals = this.options.values.slice();\n for (i = 0; i < vals.length; i += 1) {\n vals[i] = this._trimAlignValue(vals[i]);\n }\n\n return vals;\n }\n },\n\n // returns the step-aligned value that val is closest to, between (inclusive) min and max\n _trimAlignValue: function (val) {\n if (val <= this._valueMin()) {\n return this._valueMin();\n }\n if (val >= this._valueMax()) {\n return this._valueMax();\n }\n var step = (this.options.step > 0) ? this.options.step : 1,\n\t\t\tvalModStep = (val - this._valueMin()) % step;\n alignValue = val - valModStep;\n\n if (Math.abs(valModStep) * 2 >= step) {\n alignValue += (valModStep > 0) ? step : (-step);\n }\n\n // Since JavaScript has problems with large floats, round\n // the final value to 5 digits after the decimal point (see #4124)\n return parseFloat(alignValue.toFixed(5));\n },\n\n _valueMin: function () {\n return this.options.min;\n },\n\n _valueMax: function () {\n return this.options.max;\n },\n\n _refreshValue: function () {\n var oRange = this.options.range,\n\t\t\to = this.options,\n\t\t\tself = this,\n\t\t\tanimate = (!this._animateOff) ? o.animate : false,\n\t\t\tvalPercent,\n\t\t\t_set = {},\n\t\t\tlastValPercent,\n\t\t\tvalue,\n\t\t\tvalueMin,\n\t\t\tvalueMax;\n\n if (this.options.values && this.options.values.length) {\n this.handles.each(function (i, j) {\n valPercent = (self.values(i) - self._valueMin()) / (self._valueMax() - self._valueMin()) * 100;\n _set[self.orientation === \"horizontal\" ? \"left\" : \"bottom\"] = valPercent + \"%\";\n $(this).stop(1, 1)[animate ? \"animate\" : \"css\"](_set, o.animate);\n if (self.options.range === true) {\n if (self.orientation === \"horizontal\") {\n if (i === 0) {\n self.range.stop(1, 1)[animate ? \"animate\" : \"css\"]({ left: valPercent + \"%\" }, o.animate);\n }\n if (i === 1) {\n self.range[animate ? \"animate\" : \"css\"]({ width: (valPercent - lastValPercent) + \"%\" }, { queue: false, duration: o.animate });\n }\n } else {\n if (i === 0) {\n self.range.stop(1, 1)[animate ? \"animate\" : \"css\"]({ bottom: (valPercent) + \"%\" }, o.animate);\n }\n if (i === 1) {\n self.range[animate ? \"animate\" : \"css\"]({ height: (valPercent - lastValPercent) + \"%\" }, { queue: false, duration: o.animate });\n }\n }\n }\n lastValPercent = valPercent;\n });\n } else {\n value = this.value();\n valueMin = this._valueMin();\n valueMax = this._valueMax();\n valPercent = (valueMax !== valueMin) ?\n\t\t\t\t\t(value - valueMin) / (valueMax - valueMin) * 100 :\n\t\t\t\t\t0;\n _set[self.orientation === \"horizontal\" ? \"left\" : \"bottom\"] = valPercent + \"%\";\n this.handle.stop(1, 1)[animate ? \"animate\" : \"css\"](_set, o.animate);\n\n if (oRange === \"min\" && this.orientation === \"horizontal\") {\n this.range.stop(1, 1)[animate ? \"animate\" : \"css\"]({ width: valPercent + \"%\" }, o.animate);\n }\n if (oRange === \"max\" && this.orientation === \"horizontal\") {\n this.range[animate ? \"animate\" : \"css\"]({ width: (100 - valPercent) + \"%\" }, { queue: false, duration: o.animate });\n }\n if (oRange === \"min\" && this.orientation === \"vertical\") {\n this.range.stop(1, 1)[animate ? \"animate\" : \"css\"]({ height: valPercent + \"%\" }, o.animate);\n }\n if (oRange === \"max\" && this.orientation === \"vertical\") {\n this.range[animate ? \"animate\" : \"css\"]({ height: (100 - valPercent) + \"%\" }, { queue: false, duration: o.animate });\n }\n }\n }\n\n });\n\n $.extend($.ui.slider, {\n version: \"1.8.14\"\n });\n\n} (jQuery));\n/*\n* jQuery UI Tabs 1.8.14\n*\n* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)\n* Dual licensed under the MIT or GPL Version 2 licenses.\n* http://jquery.org/license\n*\n* http://docs.jquery.com/UI/Tabs\n*\n* Depends:\n*\tjquery.ui.core.js\n*\tjquery.ui.widget.js\n*/\n(function ($, undefined) {\n\n var tabId = 0,\n\tlistId = 0;\n\n function getNextTabId() {\n return ++tabId;\n }\n\n function getNextListId() {\n return ++listId;\n }\n\n $.widget(\"ui.tabs\", {\n options: {\n add: null,\n ajaxOptions: null,\n cache: false,\n cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true }\n collapsible: false,\n disable: null,\n disabled: [],\n enable: null,\n event: \"click\",\n fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }\n idPrefix: \"ui-tabs-\",\n load: null,\n panelTemplate: \"
\",\n remove: null,\n select: null,\n show: null,\n spinner: \"Loading…\",\n tabTemplate: \"
  • #{label}
  • \"\n },\n\n _create: function () {\n this._tabify(true);\n },\n\n _setOption: function (key, value) {\n if (key == \"selected\") {\n if (this.options.collapsible && value == this.options.selected) {\n return;\n }\n this.select(value);\n } else {\n this.options[key] = value;\n this._tabify();\n }\n },\n\n _tabId: function (a) {\n return a.title && a.title.replace(/\\s/g, \"_\").replace(/[^\\w\\u00c0-\\uFFFF-]/g, \"\") ||\n\t\t\tthis.options.idPrefix + getNextTabId();\n },\n\n _sanitizeSelector: function (hash) {\n // we need this because an id may contain a \":\"\n return hash.replace(/:/g, \"\\\\:\");\n },\n\n _cookie: function () {\n var cookie = this.cookie ||\n\t\t\t(this.cookie = this.options.cookie.name || \"ui-tabs-\" + getNextListId());\n return $.cookie.apply(null, [cookie].concat($.makeArray(arguments)));\n },\n\n _ui: function (tab, panel) {\n return {\n tab: tab,\n panel: panel,\n index: this.anchors.index(tab)\n };\n },\n\n _cleanup: function () {\n // restore all former loading tabs labels\n this.lis.filter(\".ui-state-processing\")\n\t\t\t.removeClass(\"ui-state-processing\")\n\t\t\t.find(\"span:data(label.tabs)\")\n\t\t\t\t.each(function () {\n\t\t\t\t var el = $(this);\n\t\t\t\t el.html(el.data(\"label.tabs\")).removeData(\"label.tabs\");\n\t\t\t\t});\n },\n\n _tabify: function (init) {\n var self = this,\n\t\t\to = this.options,\n\t\t\tfragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash\n\n this.list = this.element.find(\"ol,ul\").eq(0);\n this.lis = $(\" > li:has(a[href])\", this.list);\n this.anchors = this.lis.map(function () {\n return $(\"a\", this)[0];\n });\n this.panels = $([]);\n\n this.anchors.each(function (i, a) {\n var href = $(a).attr(\"href\");\n // For dynamically created HTML that contains a hash as href IE < 8 expands\n // such href to the full page url with hash and then misinterprets tab as ajax.\n // Same consideration applies for an added tab with a fragment identifier\n // since a[href=#fragment-identifier] does unexpectedly not match.\n // Thus normalize href attribute...\n var hrefBase = href.split(\"#\")[0],\n\t\t\t\tbaseEl;\n if (hrefBase && (hrefBase === location.toString().split(\"#\")[0] ||\n\t\t\t\t\t(baseEl = $(\"base\")[0]) && hrefBase === baseEl.href)) {\n href = a.hash;\n a.href = href;\n }\n\n // inline tab\n if (fragmentId.test(href)) {\n self.panels = self.panels.add(self.element.find(self._sanitizeSelector(href)));\n // remote tab\n // prevent loading the page itself if href is just \"#\"\n } else if (href && href !== \"#\") {\n // required for restore on destroy\n $.data(a, \"href.tabs\", href);\n\n // TODO until #3808 is fixed strip fragment identifier from url\n // (IE fails to load from such url)\n $.data(a, \"load.tabs\", href.replace(/#.*$/, \"\"));\n\n var id = self._tabId(a);\n a.href = \"#\" + id;\n var $panel = self.element.find(\"#\" + id);\n if (!$panel.length) {\n $panel = $(o.panelTemplate)\n\t\t\t\t\t\t.attr(\"id\", id)\n\t\t\t\t\t\t.addClass(\"ui-tabs-panel ui-widget-content ui-corner-bottom\")\n\t\t\t\t\t\t.insertAfter(self.panels[i - 1] || self.list);\n $panel.data(\"destroy.tabs\", true);\n }\n self.panels = self.panels.add($panel);\n // invalid tab href\n } else {\n o.disabled.push(i);\n }\n });\n\n // initialization from scratch\n if (init) {\n // attach necessary classes for styling\n this.element.addClass(\"ui-tabs ui-widget ui-widget-content ui-corner-all\");\n this.list.addClass(\"ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all\");\n this.lis.addClass(\"ui-state-default ui-corner-top\");\n this.panels.addClass(\"ui-tabs-panel ui-widget-content ui-corner-bottom\");\n\n // Selected tab\n // use \"selected\" option or try to retrieve:\n // 1. from fragment identifier in url\n // 2. from cookie\n // 3. from selected class attribute on
  • \n if (o.selected === undefined) {\n if (location.hash) {\n this.anchors.each(function (i, a) {\n if (a.hash == location.hash) {\n o.selected = i;\n return false;\n }\n });\n }\n if (typeof o.selected !== \"number\" && o.cookie) {\n o.selected = parseInt(self._cookie(), 10);\n }\n if (typeof o.selected !== \"number\" && this.lis.filter(\".ui-tabs-selected\").length) {\n o.selected = this.lis.index(this.lis.filter(\".ui-tabs-selected\"));\n }\n o.selected = o.selected || (this.lis.length ? 0 : -1);\n } else if (o.selected === null) { // usage of null is deprecated, TODO remove in next release\n o.selected = -1;\n }\n\n // sanity check - default to first tab...\n o.selected = ((o.selected >= 0 && this.anchors[o.selected]) || o.selected < 0)\n\t\t\t\t? o.selected\n\t\t\t\t: 0;\n\n // Take disabling tabs via class attribute from HTML\n // into account and update option properly.\n // A selected tab cannot become disabled.\n o.disabled = $.unique(o.disabled.concat(\n\t\t\t\t$.map(this.lis.filter(\".ui-state-disabled\"), function (n, i) {\n\t\t\t\t return self.lis.index(n);\n\t\t\t\t})\n\t\t\t)).sort();\n\n if ($.inArray(o.selected, o.disabled) != -1) {\n o.disabled.splice($.inArray(o.selected, o.disabled), 1);\n }\n\n // highlight selected tab\n this.panels.addClass(\"ui-tabs-hide\");\n this.lis.removeClass(\"ui-tabs-selected ui-state-active\");\n // check for length avoids error when initializing empty list\n if (o.selected >= 0 && this.anchors.length) {\n self.element.find(self._sanitizeSelector(self.anchors[o.selected].hash)).removeClass(\"ui-tabs-hide\");\n this.lis.eq(o.selected).addClass(\"ui-tabs-selected ui-state-active\");\n\n // seems to be expected behavior that the show callback is fired\n self.element.queue(\"tabs\", function () {\n self._trigger(\"show\", null,\n\t\t\t\t\t\tself._ui(self.anchors[o.selected], self.element.find(self._sanitizeSelector(self.anchors[o.selected].hash))[0]));\n });\n\n this.load(o.selected);\n }\n\n // clean up to avoid memory leaks in certain versions of IE 6\n // TODO: namespace this event\n $(window).bind(\"unload\", function () {\n self.lis.add(self.anchors).unbind(\".tabs\"); \n self.lis = self.anchors = self.panels = null;\n });\n // update selected after add/remove\n } else {\n o.selected = this.lis.index(this.lis.filter(\".ui-tabs-selected\"));\n }\n\n // update collapsible\n // TODO: use .toggleClass()\n this.element[o.collapsible ? \"addClass\" : \"removeClass\"](\"ui-tabs-collapsible\");\n\n // set or update cookie after init and add/remove respectively\n if (o.cookie) {\n this._cookie(o.selected, o.cookie);\n }\n\n // disable tabs\n for (var i = 0, li; (li = this.lis[i]); i++) {\n $(li)[$.inArray(i, o.disabled) != -1 &&\n // TODO: use .toggleClass()\n\t\t\t\t!$(li).hasClass(\"ui-tabs-selected\") ? \"addClass\" : \"removeClass\"](\"ui-state-disabled\");\n }\n\n // reset cache if switching from cached to not cached\n if (o.cache === false) {\n this.anchors.removeData(\"cache.tabs\");\n }\n\n // remove all handlers before, tabify may run on existing tabs after add or option change\n this.lis.add(this.anchors).unbind(\".tabs\");\n\n if (o.event !== \"mouseover\") {\n var addState = function (state, el) {\n if (el.is(\":not(.ui-state-disabled)\")) {\n el.addClass(\"ui-state-\" + state);\n }\n };\n var removeState = function (state, el) {\n el.removeClass(\"ui-state-\" + state);\n };\n this.lis.bind(\"mouseover.tabs\", function () {\n addState(\"hover\", $(this));\n });\n this.lis.bind(\"mouseout.tabs\", function () {\n removeState(\"hover\", $(this));\n });\n this.anchors.bind(\"focus.tabs\", function () {\n addState(\"focus\", $(this).closest(\"li\"));\n });\n this.anchors.bind(\"blur.tabs\", function () {\n removeState(\"focus\", $(this).closest(\"li\"));\n });\n }\n\n // set up animations\n var hideFx, showFx;\n if (o.fx) {\n if ($.isArray(o.fx)) {\n hideFx = o.fx[0];\n showFx = o.fx[1];\n } else {\n hideFx = showFx = o.fx;\n }\n }\n\n // Reset certain styles left over from animation\n // and prevent IE's ClearType bug...\n function resetStyle($el, fx) {\n $el.css(\"display\", \"\");\n if (!$.support.opacity && fx.opacity) {\n $el[0].style.removeAttribute(\"filter\");\n }\n }\n\n // Show a tab...\n var showTab = showFx\n\t\t\t? function (clicked, $show) {\n\t\t\t $(clicked).closest(\"li\").addClass(\"ui-tabs-selected ui-state-active\");\n\t\t\t $show.hide().removeClass(\"ui-tabs-hide\") // avoid flicker that way\n\t\t\t\t\t.animate(showFx, showFx.duration || \"normal\", function () {\n\t\t\t\t\t resetStyle($show, showFx);\n\t\t\t\t\t self._trigger(\"show\", null, self._ui(clicked, $show[0]));\n\t\t\t\t\t});\n\t\t\t}\n\t\t\t: function (clicked, $show) {\n\t\t\t $(clicked).closest(\"li\").addClass(\"ui-tabs-selected ui-state-active\");\n\t\t\t $show.removeClass(\"ui-tabs-hide\");\n\t\t\t self._trigger(\"show\", null, self._ui(clicked, $show[0]));\n\t\t\t};\n\n // Hide a tab, $show is optional...\n var hideTab = hideFx\n\t\t\t? function (clicked, $hide) {\n\t\t\t $hide.animate(hideFx, hideFx.duration || \"normal\", function () {\n\t\t\t self.lis.removeClass(\"ui-tabs-selected ui-state-active\");\n\t\t\t $hide.addClass(\"ui-tabs-hide\");\n\t\t\t resetStyle($hide, hideFx);\n\t\t\t self.element.dequeue(\"tabs\");\n\t\t\t });\n\t\t\t}\n\t\t\t: function (clicked, $hide, $show) {\n\t\t\t self.lis.removeClass(\"ui-tabs-selected ui-state-active\");\n\t\t\t $hide.addClass(\"ui-tabs-hide\");\n\t\t\t self.element.dequeue(\"tabs\");\n\t\t\t};\n\n // attach tab event handler, unbind to avoid duplicates from former tabifying...\n this.anchors.bind(o.event + \".tabs\", function () {\n var el = this,\n\t\t\t\t$li = $(el).closest(\"li\"),\n\t\t\t\t$hide = self.panels.filter(\":not(.ui-tabs-hide)\"),\n\t\t\t\t$show = self.element.find(self._sanitizeSelector(el.hash));\n\n // If tab is already selected and not collapsible or tab disabled or\n // or is already loading or click callback returns false stop here.\n // Check if click handler returns false last so that it is not executed\n // for a disabled or loading tab!\n if (($li.hasClass(\"ui-tabs-selected\") && !o.collapsible) ||\n\t\t\t\t$li.hasClass(\"ui-state-disabled\") ||\n\t\t\t\t$li.hasClass(\"ui-state-processing\") ||\n\t\t\t\tself.panels.filter(\":animated\").length ||\n\t\t\t\tself._trigger(\"select\", null, self._ui(this, $show[0])) === false) {\n this.blur();\n return false;\n }\n\n o.selected = self.anchors.index(this);\n\n self.abort();\n\n // if tab may be closed\n if (o.collapsible) {\n if ($li.hasClass(\"ui-tabs-selected\")) {\n o.selected = -1;\n\n if (o.cookie) {\n self._cookie(o.selected, o.cookie);\n }\n\n self.element.queue(\"tabs\", function () {\n hideTab(el, $hide);\n }).dequeue(\"tabs\");\n\n this.blur();\n return false;\n } else if (!$hide.length) {\n if (o.cookie) {\n self._cookie(o.selected, o.cookie);\n }\n\n self.element.queue(\"tabs\", function () {\n showTab(el, $show);\n });\n\n // TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171\n self.load(self.anchors.index(this));\n\n this.blur();\n return false;\n }\n }\n\n if (o.cookie) {\n self._cookie(o.selected, o.cookie);\n }\n\n // show new tab\n if ($show.length) {\n if ($hide.length) {\n self.element.queue(\"tabs\", function () {\n hideTab(el, $hide);\n });\n }\n self.element.queue(\"tabs\", function () {\n showTab(el, $show);\n });\n\n self.load(self.anchors.index(this));\n } else {\n throw \"jQuery UI Tabs: Mismatching fragment identifier.\";\n }\n\n // Prevent IE from keeping other link focussed when using the back button\n // and remove dotted border from clicked link. This is controlled via CSS\n // in modern browsers; blur() removes focus from address bar in Firefox\n // which can become a usability and annoying problem with tabs('rotate').\n if ($.browser.msie) {\n this.blur();\n }\n });\n\n // disable click in any case\n this.anchors.bind(\"click.tabs\", function () {\n return false;\n });\n },\n\n _getIndex: function (index) {\n // meta-function to give users option to provide a href string instead of a numerical index.\n // also sanitizes numerical indexes to valid values.\n if (typeof index == \"string\") {\n index = this.anchors.index(this.anchors.filter(\"[href$=\" + index + \"]\"));\n }\n\n return index;\n },\n\n destroy: function () {\n var o = this.options;\n\n this.abort();\n\n this.element\n\t\t\t.unbind(\".tabs\")\n\t\t\t.removeClass(\"ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible\")\n\t\t\t.removeData(\"tabs\");\n\n this.list.removeClass(\"ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all\");\n\n this.anchors.each(function () {\n var href = $.data(this, \"href.tabs\");\n if (href) {\n this.href = href;\n }\n var $this = $(this).unbind(\".tabs\");\n $.each([\"href\", \"load\", \"cache\"], function (i, prefix) {\n $this.removeData(prefix + \".tabs\");\n });\n });\n\n this.lis.unbind(\".tabs\").add(this.panels).each(function () {\n if ($.data(this, \"destroy.tabs\")) {\n $(this).remove();\n } else {\n $(this).removeClass([\n\t\t\t\t\t\"ui-state-default\",\n\t\t\t\t\t\"ui-corner-top\",\n\t\t\t\t\t\"ui-tabs-selected\",\n\t\t\t\t\t\"ui-state-active\",\n\t\t\t\t\t\"ui-state-hover\",\n\t\t\t\t\t\"ui-state-focus\",\n\t\t\t\t\t\"ui-state-disabled\",\n\t\t\t\t\t\"ui-tabs-panel\",\n\t\t\t\t\t\"ui-widget-content\",\n\t\t\t\t\t\"ui-corner-bottom\",\n\t\t\t\t\t\"ui-tabs-hide\"\n\t\t\t\t].join(\" \"));\n }\n });\n\n if (o.cookie) {\n this._cookie(null, o.cookie);\n }\n\n return this;\n },\n\n add: function (url, label, index) {\n if (index === undefined) {\n index = this.anchors.length;\n }\n\n var self = this,\n\t\t\to = this.options,\n\t\t\t$li = $(o.tabTemplate.replace(/#\\{href\\}/g, url).replace(/#\\{label\\}/g, label)),\n\t\t\tid = !url.indexOf(\"#\") ? url.replace(\"#\", \"\") : this._tabId($(\"a\", $li)[0]);\n\n $li.addClass(\"ui-state-default ui-corner-top\").data(\"destroy.tabs\", true);\n\n // try to find an existing element before creating a new one\n var $panel = self.element.find(\"#\" + id);\n if (!$panel.length) {\n $panel = $(o.panelTemplate)\n\t\t\t\t.attr(\"id\", id)\n\t\t\t\t.data(\"destroy.tabs\", true);\n }\n $panel.addClass(\"ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide\");\n\n if (index >= this.lis.length) {\n $li.appendTo(this.list);\n $panel.appendTo(this.list[0].parentNode);\n } else {\n $li.insertBefore(this.lis[index]);\n $panel.insertBefore(this.panels[index]);\n }\n\n o.disabled = $.map(o.disabled, function (n, i) {\n return n >= index ? ++n : n;\n });\n\n this._tabify();\n\n if (this.anchors.length == 1) {\n o.selected = 0;\n $li.addClass(\"ui-tabs-selected ui-state-active\");\n $panel.removeClass(\"ui-tabs-hide\");\n this.element.queue(\"tabs\", function () {\n self._trigger(\"show\", null, self._ui(self.anchors[0], self.panels[0]));\n });\n\n this.load(0);\n }\n\n this._trigger(\"add\", null, this._ui(this.anchors[index], this.panels[index]));\n return this;\n },\n\n remove: function (index) {\n index = this._getIndex(index);\n var o = this.options,\n\t\t\t$li = this.lis.eq(index).remove(),\n\t\t\t$panel = this.panels.eq(index).remove();\n\n // If selected tab was removed focus tab to the right or\n // in case the last tab was removed the tab to the left.\n if ($li.hasClass(\"ui-tabs-selected\") && this.anchors.length > 1) {\n this.select(index + (index + 1 < this.anchors.length ? 1 : -1));\n }\n\n o.disabled = $.map(\n\t\t\t$.grep(o.disabled, function (n, i) {\n\t\t\t return n != index;\n\t\t\t}),\n\t\t\tfunction (n, i) {\n\t\t\t return n >= index ? --n : n;\n\t\t\t});\n\n this._tabify();\n\n this._trigger(\"remove\", null, this._ui($li.find(\"a\")[0], $panel[0]));\n return this;\n },\n\n enable: function (index) {\n index = this._getIndex(index);\n var o = this.options;\n if ($.inArray(index, o.disabled) == -1) {\n return;\n }\n\n this.lis.eq(index).removeClass(\"ui-state-disabled\");\n o.disabled = $.grep(o.disabled, function (n, i) {\n return n != index;\n });\n\n this._trigger(\"enable\", null, this._ui(this.anchors[index], this.panels[index]));\n return this;\n },\n\n disable: function (index) {\n index = this._getIndex(index);\n var self = this, o = this.options;\n // cannot disable already selected tab\n if (index != o.selected) {\n this.lis.eq(index).addClass(\"ui-state-disabled\");\n\n o.disabled.push(index);\n o.disabled.sort();\n\n this._trigger(\"disable\", null, this._ui(this.anchors[index], this.panels[index]));\n }\n\n return this;\n },\n\n select: function (index) {\n index = this._getIndex(index);\n if (index == -1) {\n if (this.options.collapsible && this.options.selected != -1) {\n index = this.options.selected;\n } else {\n return this;\n }\n }\n this.anchors.eq(index).trigger(this.options.event + \".tabs\");\n return this;\n },\n\n load: function (index) {\n index = this._getIndex(index);\n var self = this,\n\t\t\to = this.options,\n\t\t\ta = this.anchors.eq(index)[0],\n\t\t\turl = $.data(a, \"load.tabs\");\n\n this.abort();\n\n // not remote or from cache\n if (!url || this.element.queue(\"tabs\").length !== 0 && $.data(a, \"cache.tabs\")) {\n this.element.dequeue(\"tabs\");\n return;\n }\n\n // load remote from here on\n this.lis.eq(index).addClass(\"ui-state-processing\");\n\n if (o.spinner) {\n var span = $(\"span\", a);\n span.data(\"label.tabs\", span.html()).html(o.spinner);\n }\n\n this.xhr = $.ajax($.extend({}, o.ajaxOptions, {\n url: url,\n success: function (r, s) {\n self.element.find(self._sanitizeSelector(a.hash)).html(r);\n\n // take care of tab labels\n self._cleanup();\n\n if (o.cache) {\n $.data(a, \"cache.tabs\", true);\n }\n\n self._trigger(\"load\", null, self._ui(self.anchors[index], self.panels[index]));\n try {\n o.ajaxOptions.success(r, s);\n }\n catch (e) { }\n },\n error: function (xhr, s, e) {\n // take care of tab labels\n self._cleanup();\n\n self._trigger(\"load\", null, self._ui(self.anchors[index], self.panels[index]));\n try {\n // Passing index avoid a race condition when this method is\n // called after the user has selected another tab.\n // Pass the anchor that initiated this request allows\n // loadError to manipulate the tab content panel via $(a.hash)\n o.ajaxOptions.error(xhr, s, index, a);\n }\n catch (e) { }\n }\n }));\n\n // last, so that load event is fired before show...\n self.element.dequeue(\"tabs\");\n\n return this;\n },\n\n abort: function () {\n // stop possibly running animations\n this.element.queue([]);\n this.panels.stop(false, true);\n\n // \"tabs\" queue must not contain more than two elements,\n // which are the callbacks for the latest clicked tab...\n this.element.queue(\"tabs\", this.element.queue(\"tabs\").splice(-2, 2));\n\n // terminate pending requests from other tabs\n if (this.xhr) {\n this.xhr.abort();\n delete this.xhr;\n }\n\n // take care of tab labels\n this._cleanup();\n return this;\n },\n\n url: function (index, url) {\n this.anchors.eq(index).removeData(\"cache.tabs\").data(\"load.tabs\", url);\n return this;\n },\n\n length: function () {\n return this.anchors.length;\n }\n });\n\n $.extend($.ui.tabs, {\n version: \"1.8.14\"\n });\n\n /*\n * Tabs Extensions\n */\n\n /*\n * Rotate\n */\n $.extend($.ui.tabs.prototype, {\n rotation: null,\n rotate: function (ms, continuing) {\n var self = this,\n\t\t\to = this.options;\n\n var rotate = self._rotate || (self._rotate = function (e) {\n clearTimeout(self.rotation);\n self.rotation = setTimeout(function () {\n var t = o.selected;\n self.select(++t < self.anchors.length ? t : 0);\n }, ms);\n\n if (e) {\n e.stopPropagation();\n }\n });\n\n var stop = self._unrotate || (self._unrotate = !continuing\n\t\t\t? function (e) {\n\t\t\t if (e.clientX) { // in case of a true click\n\t\t\t self.rotate(null);\n\t\t\t }\n\t\t\t}\n\t\t\t: function (e) {\n\t\t\t t = o.selected;\n\t\t\t rotate();\n\t\t\t});\n\n // start rotation\n if (ms) {\n this.element.bind(\"tabsshow\", rotate);\n this.anchors.bind(o.event + \".tabs\", stop);\n rotate();\n // stop rotation\n } else {\n clearTimeout(self.rotation);\n this.element.unbind(\"tabsshow\", rotate);\n this.anchors.unbind(o.event + \".tabs\", stop);\n delete this._rotate;\n delete this._unrotate;\n }\n\n return this;\n }\n });\n\n})(jQuery);","/*!\n* jQuery UI 1.8.14\n*\n* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)\n* Dual licensed under the MIT or GPL Version 2 licenses.\n* http://jquery.org/license\n*\n* http://docs.jquery.com/UI\n*/\n\n/* Afrikaans initialisation for the jQuery UI date picker plugin. */\n/* Written by Renier Pretorius. */\njQuery(function ($) {\n $.datepicker.regional['af'] = {\n closeText: 'Selekteer',\n prevText: 'Vorige',\n nextText: 'Volgende',\n currentText: 'Vandag',\n monthNames: ['Januarie', 'Februarie', 'Maart', 'April', 'Mei', 'Junie',\n\t\t'Julie', 'Augustus', 'September', 'Oktober', 'November', 'Desember'],\n monthNamesShort: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun',\n\t\t'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'],\n dayNames: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'],\n dayNamesShort: ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'],\n dayNamesMin: ['So', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Sa'],\n weekHeader: 'Wk',\n dateFormat: 'dd/mm/yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['af']);\n});\n/* Algerian Arabic Translation for jQuery UI date picker plugin. (can be used for Tunisia)*/\n/* Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */\n\njQuery(function ($) {\n $.datepicker.regional['ar-DZ'] = {\n closeText: 'إغلاق',\n prevText: '<السابق',\n nextText: 'التالي>',\n currentText: 'اليوم',\n monthNames: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان',\n\t\t'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],\n dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n weekHeader: 'أسبوع',\n dateFormat: 'dd/mm/yy',\n firstDay: 6,\n isRTL: true,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['ar-DZ']);\n});\n/* Arabic Translation for jQuery UI date picker plugin. */\n/* Khaled Alhourani -- me@khaledalhourani.com */\n/* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */\njQuery(function ($) {\n $.datepicker.regional['ar'] = {\n closeText: 'إغلاق',\n prevText: '<السابق',\n nextText: 'التالي>',\n currentText: 'اليوم',\n monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'حزيران',\n\t\t'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],\n monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],\n dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n weekHeader: 'أسبوع',\n dateFormat: 'dd/mm/yy',\n firstDay: 6,\n isRTL: true,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['ar']);\n}); /* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */\n/* Written by Jamil Najafov (necefov33@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['az'] = {\n closeText: 'Bağla',\n prevText: '<Geri',\n nextText: 'İrəli>',\n currentText: 'Bugün',\n monthNames: ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'İyun',\n\t\t'İyul', 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'],\n monthNamesShort: ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'İyun',\n\t\t'İyul', 'Avq', 'Sen', 'Okt', 'Noy', 'Dek'],\n dayNames: ['Bazar', 'Bazar ertəsi', 'Çərşənbə axşamı', 'Çərşənbə', 'Cümə axşamı', 'Cümə', 'Şənbə'],\n dayNamesShort: ['B', 'Be', 'Ça', 'Ç', 'Ca', 'C', 'Ş'],\n dayNamesMin: ['B', 'B', 'Ç', 'С', 'Ç', 'C', 'Ş'],\n weekHeader: 'Hf',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['az']);\n}); /* Bulgarian initialisation for the jQuery UI date picker plugin. */\n/* Written by Stoyan Kyosev (http://svest.org). */\njQuery(function ($) {\n $.datepicker.regional['bg'] = {\n closeText: 'затвори',\n prevText: '<назад',\n nextText: 'напред>',\n nextBigText: '>>',\n currentText: 'днес',\n monthNames: ['Януари', 'Февруари', 'Март', 'Април', 'Май', 'Юни',\n 'Юли', 'Август', 'Септември', 'Октомври', 'Ноември', 'Декември'],\n monthNamesShort: ['Яну', 'Фев', 'Мар', 'Апр', 'Май', 'Юни',\n 'Юли', 'Авг', 'Сеп', 'Окт', 'Нов', 'Дек'],\n dayNames: ['Неделя', 'Понеделник', 'Вторник', 'Сряда', 'Четвъртък', 'Петък', 'Събота'],\n dayNamesShort: ['Нед', 'Пон', 'Вто', 'Сря', 'Чет', 'Пет', 'Съб'],\n dayNamesMin: ['Не', 'По', 'Вт', 'Ср', 'Че', 'Пе', 'Съ'],\n weekHeader: 'Wk',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['bg']);\n});\n/* Bosnian i18n for the jQuery UI date picker plugin. */\n/* Written by Kenan Konjo. */\njQuery(function ($) {\n $.datepicker.regional['bs'] = {\n closeText: 'Zatvori',\n prevText: '<',\n nextText: '>',\n currentText: 'Danas',\n monthNames: ['Januar', 'Februar', 'Mart', 'April', 'Maj', 'Juni',\n\t\t'Juli', 'August', 'Septembar', 'Oktobar', 'Novembar', 'Decembar'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun',\n\t\t'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],\n dayNames: ['Nedelja', 'Ponedeljak', 'Utorak', 'Srijeda', 'Četvrtak', 'Petak', 'Subota'],\n dayNamesShort: ['Ned', 'Pon', 'Uto', 'Sri', 'Čet', 'Pet', 'Sub'],\n dayNamesMin: ['Ne', 'Po', 'Ut', 'Sr', 'Če', 'Pe', 'Su'],\n weekHeader: 'Wk',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['bs']);\n}); /* Inicialització en català per a l'extenció 'calendar' per jQuery. */\n/* Writers: (joan.leon@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['ca'] = {\n closeText: 'Tancar',\n prevText: '<Ant',\n nextText: 'Seg>',\n currentText: 'Avui',\n monthNames: ['Gener', 'Febrer', 'Març', 'Abril', 'Maig', 'Juny',\n\t\t'Juliol', 'Agost', 'Setembre', 'Octubre', 'Novembre', 'Desembre'],\n monthNamesShort: ['Gen', 'Feb', 'Mar', 'Abr', 'Mai', 'Jun',\n\t\t'Jul', 'Ago', 'Set', 'Oct', 'Nov', 'Des'],\n dayNames: ['Diumenge', 'Dilluns', 'Dimarts', 'Dimecres', 'Dijous', 'Divendres', 'Dissabte'],\n dayNamesShort: ['Dug', 'Dln', 'Dmt', 'Dmc', 'Djs', 'Dvn', 'Dsb'],\n dayNamesMin: ['Dg', 'Dl', 'Dt', 'Dc', 'Dj', 'Dv', 'Ds'],\n weekHeader: 'Sm',\n dateFormat: 'dd/mm/yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['ca']);\n}); /* Czech initialisation for the jQuery UI date picker plugin. */\n/* Written by Tomas Muller (tomas@tomas-muller.net). */\njQuery(function ($) {\n $.datepicker.regional['cs'] = {\n closeText: 'Zavřít',\n prevText: '<Dříve',\n nextText: 'Později>',\n currentText: 'Nyní',\n monthNames: ['leden', 'únor', 'březen', 'duben', 'květen', 'červen',\n 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'],\n monthNamesShort: ['led', 'úno', 'bře', 'dub', 'kvě', 'čer',\n\t\t'čvc', 'srp', 'zář', 'říj', 'lis', 'pro'],\n dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'],\n dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],\n dayNamesMin: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],\n weekHeader: 'Týd',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['cs']);\n});\n/* Danish initialisation for the jQuery UI date picker plugin. */\n/* Written by Jan Christensen ( deletestuff@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['da'] = {\n closeText: 'Luk',\n prevText: '<Forrige',\n nextText: 'Næste>',\n currentText: 'Idag',\n monthNames: ['Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni',\n 'Juli', 'August', 'September', 'Oktober', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],\n dayNames: ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag'],\n dayNamesShort: ['Søn', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør'],\n dayNamesMin: ['Sø', 'Ma', 'Ti', 'On', 'To', 'Fr', 'Lø'],\n weekHeader: 'Uge',\n dateFormat: 'dd-mm-yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['da']);\n});\n/* German initialisation for the jQuery UI date picker plugin. */\n/* Written by Milian Wolff (mail@milianw.de). */\njQuery(function ($) {\n $.datepicker.regional['de'] = {\n closeText: 'schließen',\n prevText: '<zurück',\n nextText: 'Vor>',\n currentText: 'heute',\n monthNames: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni',\n\t\t'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],\n monthNamesShort: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun',\n\t\t'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n dayNames: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],\n dayNamesShort: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n weekHeader: 'Wo',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['de']);\n});\n/* Greek (el) initialisation for the jQuery UI date picker plugin. */\n/* Written by Alex Cicovic (http://www.alexcicovic.com) */\njQuery(function ($) {\n $.datepicker.regional['el'] = {\n closeText: 'Κλείσιμο',\n prevText: 'Προηγούμενος',\n nextText: 'Επόμενος',\n currentText: 'Τρέχων Μήνας',\n monthNames: ['Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος',\n\t\t'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'],\n monthNamesShort: ['Ιαν', 'Φεβ', 'Μαρ', 'Απρ', 'Μαι', 'Ιουν',\n\t\t'Ιουλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ'],\n dayNames: ['Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'],\n dayNamesShort: ['Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', 'Σαβ'],\n dayNamesMin: ['Κυ', 'Δε', 'Τρ', 'Τε', 'Πε', 'Πα', 'Σα'],\n weekHeader: 'Εβδ',\n dateFormat: 'dd/mm/yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['el']);\n}); /* English/Australia initialisation for the jQuery UI date picker plugin. */\n/* Based on the en-GB initialisation. */\njQuery(function ($) {\n $.datepicker.regional['en-AU'] = {\n closeText: 'Done',\n prevText: 'Prev',\n nextText: 'Next',\n currentText: 'Today',\n monthNames: ['January', 'February', 'March', 'April', 'May', 'June',\n\t\t'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n\t\t'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n weekHeader: 'Wk',\n dateFormat: 'dd/mm/yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['en-AU']);\n});\n/* English/UK initialisation for the jQuery UI date picker plugin. */\n/* Written by Stuart. */\njQuery(function ($) {\n $.datepicker.regional['en-GB'] = {\n closeText: 'Done',\n prevText: 'Prev',\n nextText: 'Next',\n currentText: 'Today',\n monthNames: ['January', 'February', 'March', 'April', 'May', 'June',\n\t\t'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n\t\t'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n weekHeader: 'Wk',\n dateFormat: 'dd/mm/yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['en-GB']);\n});\n/* English/New Zealand initialisation for the jQuery UI date picker plugin. */\n/* Based on the en-GB initialisation. */\njQuery(function ($) {\n $.datepicker.regional['en-NZ'] = {\n closeText: 'Done',\n prevText: 'Prev',\n nextText: 'Next',\n currentText: 'Today',\n monthNames: ['January', 'February', 'March', 'April', 'May', 'June',\n\t\t'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n\t\t'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n weekHeader: 'Wk',\n dateFormat: 'dd/mm/yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['en-NZ']);\n});\n/* Esperanto initialisation for the jQuery UI date picker plugin. */\n/* Written by Olivier M. (olivierweb@ifrance.com). */\njQuery(function ($) {\n $.datepicker.regional['eo'] = {\n closeText: 'Fermi',\n prevText: '<Anta',\n nextText: 'Sekv>',\n currentText: 'Nuna',\n monthNames: ['Januaro', 'Februaro', 'Marto', 'Aprilo', 'Majo', 'Junio',\n\t\t'Julio', 'Aŭgusto', 'Septembro', 'Oktobro', 'Novembro', 'Decembro'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun',\n\t\t'Jul', 'Aŭg', 'Sep', 'Okt', 'Nov', 'Dec'],\n dayNames: ['Dimanĉo', 'Lundo', 'Mardo', 'Merkredo', 'Ĵaŭdo', 'Vendredo', 'Sabato'],\n dayNamesShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Ĵaŭ', 'Ven', 'Sab'],\n dayNamesMin: ['Di', 'Lu', 'Ma', 'Me', 'Ĵa', 'Ve', 'Sa'],\n weekHeader: 'Sb',\n dateFormat: 'dd/mm/yy',\n firstDay: 0,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['eo']);\n});\n/* Inicialización en español para la extensión 'UI date picker' para jQuery. */\n/* Traducido por Vester (xvester@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['es'] = {\n closeText: 'Cerrar',\n prevText: '<Ant',\n nextText: 'Sig>',\n currentText: 'Hoy',\n monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio',\n\t\t'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],\n monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun',\n\t\t'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],\n dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],\n dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mié', 'Juv', 'Vie', 'Sáb'],\n dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],\n weekHeader: 'Sm',\n dateFormat: 'dd/mm/yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['es']);\n}); /* Estonian initialisation for the jQuery UI date picker plugin. */\n/* Written by Mart Sõmermaa (mrts.pydev at gmail com). */\njQuery(function ($) {\n $.datepicker.regional['et'] = {\n closeText: 'Sulge',\n prevText: 'Eelnev',\n nextText: 'Järgnev',\n currentText: 'Täna',\n monthNames: ['Jaanuar', 'Veebruar', 'Märts', 'Aprill', 'Mai', 'Juuni',\n\t\t'Juuli', 'August', 'September', 'Oktoober', 'November', 'Detsember'],\n monthNamesShort: ['Jaan', 'Veebr', 'Märts', 'Apr', 'Mai', 'Juuni',\n\t\t'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'],\n dayNames: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'],\n dayNamesShort: ['Pühap', 'Esmasp', 'Teisip', 'Kolmap', 'Neljap', 'Reede', 'Laup'],\n dayNamesMin: ['P', 'E', 'T', 'K', 'N', 'R', 'L'],\n weekHeader: 'Sm',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['et']);\n}); /* Euskarako oinarria 'UI date picker' jquery-ko extentsioarentzat */\n/* Karrikas-ek itzulia (karrikas@karrikas.com) */\njQuery(function ($) {\n $.datepicker.regional['eu'] = {\n closeText: 'Egina',\n prevText: '<Aur',\n nextText: 'Hur>',\n currentText: 'Gaur',\n monthNames: ['Urtarrila', 'Otsaila', 'Martxoa', 'Apirila', 'Maiatza', 'Ekaina',\n\t\t'Uztaila', 'Abuztua', 'Iraila', 'Urria', 'Azaroa', 'Abendua'],\n monthNamesShort: ['Urt', 'Ots', 'Mar', 'Api', 'Mai', 'Eka',\n\t\t'Uzt', 'Abu', 'Ira', 'Urr', 'Aza', 'Abe'],\n dayNames: ['Igandea', 'Astelehena', 'Asteartea', 'Asteazkena', 'Osteguna', 'Ostirala', 'Larunbata'],\n dayNamesShort: ['Iga', 'Ast', 'Ast', 'Ast', 'Ost', 'Ost', 'Lar'],\n dayNamesMin: ['Ig', 'As', 'As', 'As', 'Os', 'Os', 'La'],\n weekHeader: 'Wk',\n dateFormat: 'yy/mm/dd',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['eu']);\n}); /* Persian (Farsi) Translation for the jQuery UI date picker plugin. */\n/* Javad Mowlanezhad -- jmowla@gmail.com */\n/* Jalali calendar should supported soon! (Its implemented but I have to test it) */\njQuery(function ($) {\n $.datepicker.regional['fa'] = {\n closeText: 'بستن',\n prevText: '<قبلي',\n nextText: 'بعدي>',\n currentText: 'امروز',\n monthNames: ['فروردين', 'ارديبهشت', 'خرداد', 'تير', 'مرداد', 'شهريور',\n\t\t'مهر', 'آبان', 'آذر', 'دي', 'بهمن', 'اسفند'],\n monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],\n dayNames: ['يکشنبه', 'دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'],\n dayNamesShort: ['ي', 'د', 'س', 'چ', 'پ', 'ج', 'ش'],\n dayNamesMin: ['ي', 'د', 'س', 'چ', 'پ', 'ج', 'ش'],\n weekHeader: 'هف',\n dateFormat: 'yy/mm/dd',\n firstDay: 6,\n isRTL: true,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['fa']);\n}); /* Finnish initialisation for the jQuery UI date picker plugin. */\n/* Written by Harri Kilpi� (harrikilpio@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['fi'] = {\n closeText: 'Sulje',\n prevText: '«Edellinen',\n nextText: 'Seuraava»',\n currentText: 'Tänään',\n monthNames: ['Tammikuu', 'Helmikuu', 'Maaliskuu', 'Huhtikuu', 'Toukokuu', 'Kesäkuu',\n 'Heinäkuu', 'Elokuu', 'Syyskuu', 'Lokakuu', 'Marraskuu', 'Joulukuu'],\n monthNamesShort: ['Tammi', 'Helmi', 'Maalis', 'Huhti', 'Touko', 'Kesä',\n 'Heinä', 'Elo', 'Syys', 'Loka', 'Marras', 'Joulu'],\n dayNamesShort: ['Su', 'Ma', 'Ti', 'Ke', 'To', 'Pe', 'Su'],\n dayNames: ['Sunnuntai', 'Maanantai', 'Tiistai', 'Keskiviikko', 'Torstai', 'Perjantai', 'Lauantai'],\n dayNamesMin: ['Su', 'Ma', 'Ti', 'Ke', 'To', 'Pe', 'La'],\n weekHeader: 'Vk',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['fi']);\n});\n/* Faroese initialisation for the jQuery UI date picker plugin */\n/* Written by Sverri Mohr Olsen, sverrimo@gmail.com */\njQuery(function ($) {\n $.datepicker.regional['fo'] = {\n closeText: 'Lat aftur',\n prevText: '<Fyrra',\n nextText: 'Næsta>',\n currentText: 'Í dag',\n monthNames: ['Januar', 'Februar', 'Mars', 'Apríl', 'Mei', 'Juni',\n\t\t'Juli', 'August', 'September', 'Oktober', 'November', 'Desember'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun',\n\t\t'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'],\n dayNames: ['Sunnudagur', 'Mánadagur', 'Týsdagur', 'Mikudagur', 'Hósdagur', 'Fríggjadagur', 'Leyardagur'],\n dayNamesShort: ['Sun', 'Mán', 'Týs', 'Mik', 'Hós', 'Frí', 'Ley'],\n dayNamesMin: ['Su', 'Má', 'Tý', 'Mi', 'Hó', 'Fr', 'Le'],\n weekHeader: 'Vk',\n dateFormat: 'dd-mm-yy',\n firstDay: 0,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['fo']);\n});\n/* Swiss-French initialisation for the jQuery UI date picker plugin. */\n/* Written Martin Voelkle (martin.voelkle@e-tc.ch). */\njQuery(function ($) {\n $.datepicker.regional['fr-CH'] = {\n closeText: 'Fermer',\n prevText: '<Préc',\n nextText: 'Suiv>',\n currentText: 'Courant',\n monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',\n\t\t'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],\n monthNamesShort: ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Jun',\n\t\t'Jul', 'Aoû', 'Sep', 'Oct', 'Nov', 'Déc'],\n dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],\n dayNamesShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],\n dayNamesMin: ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'],\n weekHeader: 'Sm',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['fr-CH']);\n}); /* French initialisation for the jQuery UI date picker plugin. */\n/* Written by Keith Wood (kbwood{at}iinet.com.au),\nStéphane Nahmani (sholby@sholby.net),\nStéphane Raimbault */\njQuery(function ($) {\n $.datepicker.regional['fr'] = {\n closeText: 'Fermer',\n prevText: 'Précédent',\n nextText: 'Suivant',\n currentText: 'Aujourd\\'hui',\n monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',\n\t\t'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],\n monthNamesShort: ['Janv.', 'Févr.', 'Mars', 'Avril', 'Mai', 'Juin',\n\t\t'Juil.', 'Août', 'Sept.', 'Oct.', 'Nov.', 'Déc.'],\n dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],\n dayNamesShort: ['Dim.', 'Lun.', 'Mar.', 'Mer.', 'Jeu.', 'Ven.', 'Sam.'],\n dayNamesMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],\n weekHeader: 'Sem.',\n dateFormat: 'dd/mm/yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['fr']);\n});\n/* Galician localization for 'UI date picker' jQuery extension. */\n/* Translated by Jorge Barreiro . */\njQuery(function ($) {\n $.datepicker.regional['gl'] = {\n closeText: 'Pechar',\n prevText: '<Ant',\n nextText: 'Seg>',\n currentText: 'Hoxe',\n monthNames: ['Xaneiro', 'Febreiro', 'Marzo', 'Abril', 'Maio', 'Xuño',\n\t\t'Xullo', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Decembro'],\n monthNamesShort: ['Xan', 'Feb', 'Mar', 'Abr', 'Mai', 'Xuñ',\n\t\t'Xul', 'Ago', 'Set', 'Out', 'Nov', 'Dec'],\n dayNames: ['Domingo', 'Luns', 'Martes', 'Mércores', 'Xoves', 'Venres', 'Sábado'],\n dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mér', 'Xov', 'Ven', 'Sáb'],\n dayNamesMin: ['Do', 'Lu', 'Ma', 'Mé', 'Xo', 'Ve', 'Sá'],\n weekHeader: 'Sm',\n dateFormat: 'dd/mm/yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['gl']);\n}); /* Hebrew initialisation for the UI Datepicker extension. */\n/* Written by Amir Hardon (ahardon at gmail dot com). */\njQuery(function ($) {\n $.datepicker.regional['he'] = {\n closeText: 'סגור',\n prevText: '<הקודם',\n nextText: 'הבא>',\n currentText: 'היום',\n monthNames: ['ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני',\n\t\t'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר'],\n monthNamesShort: ['1', '2', '3', '4', '5', '6',\n\t\t'7', '8', '9', '10', '11', '12'],\n dayNames: ['ראשון', 'שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת'],\n dayNamesShort: ['א\\'', 'ב\\'', 'ג\\'', 'ד\\'', 'ה\\'', 'ו\\'', 'שבת'],\n dayNamesMin: ['א\\'', 'ב\\'', 'ג\\'', 'ד\\'', 'ה\\'', 'ו\\'', 'שבת'],\n weekHeader: 'Wk',\n dateFormat: 'dd/mm/yy',\n firstDay: 0,\n isRTL: true,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['he']);\n});\n/* Croatian i18n for the jQuery UI date picker plugin. */\n/* Written by Vjekoslav Nesek. */\njQuery(function ($) {\n $.datepicker.regional['hr'] = {\n closeText: 'Zatvori',\n prevText: '<',\n nextText: '>',\n currentText: 'Danas',\n monthNames: ['Siječanj', 'Veljača', 'Ožujak', 'Travanj', 'Svibanj', 'Lipanj',\n\t\t'Srpanj', 'Kolovoz', 'Rujan', 'Listopad', 'Studeni', 'Prosinac'],\n monthNamesShort: ['Sij', 'Velj', 'Ožu', 'Tra', 'Svi', 'Lip',\n\t\t'Srp', 'Kol', 'Ruj', 'Lis', 'Stu', 'Pro'],\n dayNames: ['Nedjelja', 'Ponedjeljak', 'Utorak', 'Srijeda', 'Četvrtak', 'Petak', 'Subota'],\n dayNamesShort: ['Ned', 'Pon', 'Uto', 'Sri', 'Čet', 'Pet', 'Sub'],\n dayNamesMin: ['Ne', 'Po', 'Ut', 'Sr', 'Če', 'Pe', 'Su'],\n weekHeader: 'Tje',\n dateFormat: 'dd.mm.yy.',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['hr']);\n}); /* Hungarian initialisation for the jQuery UI date picker plugin. */\n/* Written by Istvan Karaszi (jquery@spam.raszi.hu). */\njQuery(function ($) {\n $.datepicker.regional['hu'] = {\n closeText: 'bezárás',\n prevText: '« vissza',\n nextText: 'előre »',\n currentText: 'ma',\n monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június',\n\t\t'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún',\n\t\t'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'],\n dayNames: ['Vasárnap', 'Hétfö', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'],\n dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'],\n dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],\n weekHeader: 'Hé',\n dateFormat: 'yy-mm-dd',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: true,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['hu']);\n});\n/* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */\n/* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/\njQuery(function ($) {\n $.datepicker.regional['hy'] = {\n closeText: 'Փակել',\n prevText: '<Նախ.',\n nextText: 'Հաջ.>',\n currentText: 'Այսօր',\n monthNames: ['Հունվար', 'Փետրվար', 'Մարտ', 'Ապրիլ', 'Մայիս', 'Հունիս',\n\t\t'Հուլիս', 'Օգոստոս', 'Սեպտեմբեր', 'Հոկտեմբեր', 'Նոյեմբեր', 'Դեկտեմբեր'],\n monthNamesShort: ['Հունվ', 'Փետր', 'Մարտ', 'Ապր', 'Մայիս', 'Հունիս',\n\t\t'Հուլ', 'Օգս', 'Սեպ', 'Հոկ', 'Նոյ', 'Դեկ'],\n dayNames: ['կիրակի', 'եկուշաբթի', 'երեքշաբթի', 'չորեքշաբթի', 'հինգշաբթի', 'ուրբաթ', 'շաբաթ'],\n dayNamesShort: ['կիր', 'երկ', 'երք', 'չրք', 'հնգ', 'ուրբ', 'շբթ'],\n dayNamesMin: ['կիր', 'երկ', 'երք', 'չրք', 'հնգ', 'ուրբ', 'շբթ'],\n weekHeader: 'ՇԲՏ',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['hy']);\n}); /* Indonesian initialisation for the jQuery UI date picker plugin. */\n/* Written by Deden Fathurahman (dedenf@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['id'] = {\n closeText: 'Tutup',\n prevText: '<mundur',\n nextText: 'maju>',\n currentText: 'hari ini',\n monthNames: ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni',\n\t\t'Juli', 'Agustus', 'September', 'Oktober', 'Nopember', 'Desember'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun',\n\t\t'Jul', 'Agus', 'Sep', 'Okt', 'Nop', 'Des'],\n dayNames: ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu'],\n dayNamesShort: ['Min', 'Sen', 'Sel', 'Rab', 'kam', 'Jum', 'Sab'],\n dayNamesMin: ['Mg', 'Sn', 'Sl', 'Rb', 'Km', 'jm', 'Sb'],\n weekHeader: 'Mg',\n dateFormat: 'dd/mm/yy',\n firstDay: 0,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['id']);\n}); /* Icelandic initialisation for the jQuery UI date picker plugin. */\n/* Written by Haukur H. Thorsson (haukur@eskill.is). */\njQuery(function ($) {\n $.datepicker.regional['is'] = {\n closeText: 'Loka',\n prevText: '< Fyrri',\n nextText: 'Næsti >',\n currentText: 'Í dag',\n monthNames: ['Janúar', 'Febrúar', 'Mars', 'Apríl', 'Maí', 'Júní',\n\t\t'Júlí', 'Ágúst', 'September', 'Október', 'Nóvember', 'Desember'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Maí', 'Jún',\n\t\t'Júl', 'Ágú', 'Sep', 'Okt', 'Nóv', 'Des'],\n dayNames: ['Sunnudagur', 'Mánudagur', 'Þriðjudagur', 'Miðvikudagur', 'Fimmtudagur', 'Föstudagur', 'Laugardagur'],\n dayNamesShort: ['Sun', 'Mán', 'Þri', 'Mið', 'Fim', 'Fös', 'Lau'],\n dayNamesMin: ['Su', 'Má', 'Þr', 'Mi', 'Fi', 'Fö', 'La'],\n weekHeader: 'Vika',\n dateFormat: 'dd/mm/yy',\n firstDay: 0,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['is']);\n}); /* Italian initialisation for the jQuery UI date picker plugin. */\n/* Written by Antonello Pasella (antonello.pasella@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['it'] = {\n closeText: 'Chiudi',\n prevText: '<Prec',\n nextText: 'Succ>',\n currentText: 'Oggi',\n monthNames: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno',\n\t\t\t'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'],\n monthNamesShort: ['Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu',\n\t\t\t'Lug', 'Ago', 'Set', 'Ott', 'Nov', 'Dic'],\n dayNames: ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', 'Giovedì', 'Venerdì', 'Sabato'],\n dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab'],\n dayNamesMin: ['Do', 'Lu', 'Ma', 'Me', 'Gi', 'Ve', 'Sa'],\n weekHeader: 'Sm',\n dateFormat: 'dd/mm/yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['it']);\n});\n/* Japanese initialisation for the jQuery UI date picker plugin. */\n/* Written by Kentaro SATO (kentaro@ranvis.com). */\njQuery(function ($) {\n $.datepicker.regional['ja'] = {\n closeText: '閉じる',\n prevText: '<前',\n nextText: '次>',\n currentText: '今日',\n monthNames: ['1月', '2月', '3月', '4月', '5月', '6月',\n\t\t'7月', '8月', '9月', '10月', '11月', '12月'],\n monthNamesShort: ['1月', '2月', '3月', '4月', '5月', '6月',\n\t\t'7月', '8月', '9月', '10月', '11月', '12月'],\n dayNames: ['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日'],\n dayNamesShort: ['日', '月', '火', '水', '木', '金', '土'],\n dayNamesMin: ['日', '月', '火', '水', '木', '金', '土'],\n weekHeader: '週',\n dateFormat: 'yy/mm/dd',\n firstDay: 0,\n isRTL: false,\n showMonthAfterYear: true,\n yearSuffix: '年'\n };\n $.datepicker.setDefaults($.datepicker.regional['ja']);\n}); /* Korean initialisation for the jQuery calendar extension. */\n/* Written by DaeKwon Kang (ncrash.dk@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['ko'] = {\n closeText: '닫기',\n prevText: '이전달',\n nextText: '다음달',\n currentText: '오늘',\n monthNames: ['1월(JAN)', '2월(FEB)', '3월(MAR)', '4월(APR)', '5월(MAY)', '6월(JUN)',\n\t\t'7월(JUL)', '8월(AUG)', '9월(SEP)', '10월(OCT)', '11월(NOV)', '12월(DEC)'],\n monthNamesShort: ['1월(JAN)', '2월(FEB)', '3월(MAR)', '4월(APR)', '5월(MAY)', '6월(JUN)',\n\t\t'7월(JUL)', '8월(AUG)', '9월(SEP)', '10월(OCT)', '11월(NOV)', '12월(DEC)'],\n dayNames: ['일', '월', '화', '수', '목', '금', '토'],\n dayNamesShort: ['일', '월', '화', '수', '목', '금', '토'],\n dayNamesMin: ['일', '월', '화', '수', '목', '금', '토'],\n weekHeader: 'Wk',\n dateFormat: 'yy-mm-dd',\n firstDay: 0,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: '년'\n };\n $.datepicker.setDefaults($.datepicker.regional['ko']);\n}); /* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */\n/* Written by Dmitriy Karasyov (dmitriy.karasyov@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['kz'] = {\n closeText: 'Жабу',\n prevText: '<Алдыңғы',\n nextText: 'Келесі>',\n currentText: 'Бүгін',\n monthNames: ['Қаңтар', 'Ақпан', 'Наурыз', 'Сәуір', 'Мамыр', 'Маусым',\n\t\t'Шілде', 'Тамыз', 'Қыркүйек', 'Қазан', 'Қараша', 'Желтоқсан'],\n monthNamesShort: ['Қаң', 'Ақп', 'Нау', 'Сәу', 'Мам', 'Мау',\n\t\t'Шіл', 'Там', 'Қыр', 'Қаз', 'Қар', 'Жел'],\n dayNames: ['Жексенбі', 'Дүйсенбі', 'Сейсенбі', 'Сәрсенбі', 'Бейсенбі', 'Жұма', 'Сенбі'],\n dayNamesShort: ['жкс', 'дсн', 'ссн', 'срс', 'бсн', 'жма', 'снб'],\n dayNamesMin: ['Жк', 'Дс', 'Сс', 'Ср', 'Бс', 'Жм', 'Сн'],\n weekHeader: 'Не',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['kz']);\n});\n/* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */\n/* @author Arturas Paleicikas */\njQuery(function ($) {\n $.datepicker.regional['lt'] = {\n closeText: 'Uždaryti',\n prevText: '<Atgal',\n nextText: 'Pirmyn>',\n currentText: 'Šiandien',\n monthNames: ['Sausis', 'Vasaris', 'Kovas', 'Balandis', 'Gegužė', 'Birželis',\n\t\t'Liepa', 'Rugpjūtis', 'Rugsėjis', 'Spalis', 'Lapkritis', 'Gruodis'],\n monthNamesShort: ['Sau', 'Vas', 'Kov', 'Bal', 'Geg', 'Bir',\n\t\t'Lie', 'Rugp', 'Rugs', 'Spa', 'Lap', 'Gru'],\n dayNames: ['sekmadienis', 'pirmadienis', 'antradienis', 'trečiadienis', 'ketvirtadienis', 'penktadienis', 'šeštadienis'],\n dayNamesShort: ['sek', 'pir', 'ant', 'tre', 'ket', 'pen', 'šeš'],\n dayNamesMin: ['Se', 'Pr', 'An', 'Tr', 'Ke', 'Pe', 'Še'],\n weekHeader: 'Wk',\n dateFormat: 'yy-mm-dd',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['lt']);\n}); /* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin. */\n/* @author Arturas Paleicikas */\njQuery(function ($) {\n $.datepicker.regional['lv'] = {\n closeText: 'Aizvērt',\n prevText: 'Iepr',\n nextText: 'Nāka',\n currentText: 'Šodien',\n monthNames: ['Janvāris', 'Februāris', 'Marts', 'Aprīlis', 'Maijs', 'Jūnijs',\n\t\t'Jūlijs', 'Augusts', 'Septembris', 'Oktobris', 'Novembris', 'Decembris'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jūn',\n\t\t'Jūl', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],\n dayNames: ['svētdiena', 'pirmdiena', 'otrdiena', 'trešdiena', 'ceturtdiena', 'piektdiena', 'sestdiena'],\n dayNamesShort: ['svt', 'prm', 'otr', 'tre', 'ctr', 'pkt', 'sst'],\n dayNamesMin: ['Sv', 'Pr', 'Ot', 'Tr', 'Ct', 'Pk', 'Ss'],\n weekHeader: 'Nav',\n dateFormat: 'dd-mm-yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['lv']);\n}); /* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */\n/* Written by Saji Nediyanchath (saji89@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['ml'] = {\n closeText: 'ശരി',\n prevText: 'മുന്നത്തെ',\n nextText: 'അടുത്തത് ',\n currentText: 'ഇന്ന്',\n monthNames: ['ജനുവരി', 'ഫെബ്രുവരി', 'മാര്‍ച്ച്', 'ഏപ്രില്‍', 'മേയ്', 'ജൂണ്‍',\n\t\t'ജൂലൈ', 'ആഗസ്റ്റ്', 'സെപ്റ്റംബര്‍', 'ഒക്ടോബര്‍', 'നവംബര്‍', 'ഡിസംബര്‍'],\n monthNamesShort: ['ജനു', 'ഫെബ്', 'മാര്‍', 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍',\n\t\t'ജൂലാ', 'ആഗ', 'സെപ്', 'ഒക്ടോ', 'നവം', 'ഡിസ'],\n dayNames: ['ഞായര്‍', 'തിങ്കള്‍', 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],\n dayNamesShort: ['ഞായ', 'തിങ്ക', 'ചൊവ്വ', 'ബുധ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],\n dayNamesMin: ['ഞാ', 'തി', 'ചൊ', 'ബു', 'വ്യാ', 'വെ', 'ശ'],\n weekHeader: 'ആ',\n dateFormat: 'dd/mm/yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['ml']);\n});\n/* Malaysian initialisation for the jQuery UI date picker plugin. */\n/* Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */\njQuery(function ($) {\n $.datepicker.regional['ms'] = {\n closeText: 'Tutup',\n prevText: '<Sebelum',\n nextText: 'Selepas>',\n currentText: 'hari ini',\n monthNames: ['Januari', 'Februari', 'Mac', 'April', 'Mei', 'Jun',\n\t\t'Julai', 'Ogos', 'September', 'Oktober', 'November', 'Disember'],\n monthNamesShort: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun',\n\t\t'Jul', 'Ogo', 'Sep', 'Okt', 'Nov', 'Dis'],\n dayNames: ['Ahad', 'Isnin', 'Selasa', 'Rabu', 'Khamis', 'Jumaat', 'Sabtu'],\n dayNamesShort: ['Aha', 'Isn', 'Sel', 'Rab', 'kha', 'Jum', 'Sab'],\n dayNamesMin: ['Ah', 'Is', 'Se', 'Ra', 'Kh', 'Ju', 'Sa'],\n weekHeader: 'Mg',\n dateFormat: 'dd/mm/yy',\n firstDay: 0,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['ms']);\n}); /* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */\n/* Written by Mathias Bynens */\njQuery(function ($) {\n $.datepicker.regional.nl = {\n closeText: 'Sluiten',\n prevText: '←',\n nextText: '→',\n currentText: 'Vandaag',\n monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni',\n\t\t'juli', 'augustus', 'september', 'oktober', 'november', 'december'],\n monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun',\n\t\t'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],\n dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],\n dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],\n dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],\n weekHeader: 'Wk',\n dateFormat: 'dd-mm-yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional.nl);\n}); /* Norwegian initialisation for the jQuery UI date picker plugin. */\n/* Written by Naimdjon Takhirov (naimdjon@gmail.com). */\n\njQuery(function ($) {\n $.datepicker.regional['no'] = {\n closeText: 'Lukk',\n prevText: '«Forrige',\n nextText: 'Neste»',\n currentText: 'I dag',\n monthNames: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember'],\n monthNamesShort: ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'],\n dayNamesShort: ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'],\n dayNames: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'],\n dayNamesMin: ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'],\n weekHeader: 'Uke',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['no']);\n});\n/* Polish initialisation for the jQuery UI date picker plugin. */\n/* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['pl'] = {\n closeText: 'Zamknij',\n prevText: '<Poprzedni',\n nextText: 'Następny>',\n currentText: 'Dziś',\n monthNames: ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec',\n\t\t'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień'],\n monthNamesShort: ['Sty', 'Lu', 'Mar', 'Kw', 'Maj', 'Cze',\n\t\t'Lip', 'Sie', 'Wrz', 'Pa', 'Lis', 'Gru'],\n dayNames: ['Niedziela', 'Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota'],\n dayNamesShort: ['Nie', 'Pn', 'Wt', 'Śr', 'Czw', 'Pt', 'So'],\n dayNamesMin: ['N', 'Pn', 'Wt', 'Śr', 'Cz', 'Pt', 'So'],\n weekHeader: 'Tydz',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['pl']);\n});\n/* Brazilian initialisation for the jQuery UI date picker plugin. */\n/* Written by Leonildo Costa Silva (leocsilva@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['pt-BR'] = {\n closeText: 'Fechar',\n prevText: '<Anterior',\n nextText: 'Próximo>',\n currentText: 'Hoje',\n monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho',\n\t\t'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],\n monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun',\n\t\t'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],\n dayNames: ['Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado'],\n dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],\n dayNamesMin: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],\n weekHeader: 'Sm',\n dateFormat: 'dd/mm/yy',\n firstDay: 0,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['pt-BR']);\n}); /* Portuguese initialisation for the jQuery UI date picker plugin. */\njQuery(function ($) {\n $.datepicker.regional['pt'] = {\n closeText: 'Fechar',\n prevText: '<Anterior',\n nextText: 'Seguinte',\n currentText: 'Hoje',\n monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho',\n\t\t'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],\n monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun',\n\t\t'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],\n dayNames: ['Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado'],\n dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],\n dayNamesMin: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],\n weekHeader: 'Sem',\n dateFormat: 'dd/mm/yy',\n firstDay: 0,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['pt']);\n}); /* Romansh initialisation for the jQuery UI date picker plugin. */\n/* Written by Yvonne Gienal (yvonne.gienal@educa.ch). */\njQuery(function ($) {\n $.datepicker.regional['rm'] = {\n closeText: 'Serrar',\n prevText: '<Suandant',\n nextText: 'Precedent>',\n currentText: 'Actual',\n monthNames: ['Schaner', 'Favrer', 'Mars', 'Avrigl', 'Matg', 'Zercladur', 'Fanadur', 'Avust', 'Settember', 'October', 'November', 'December'],\n monthNamesShort: ['Scha', 'Fev', 'Mar', 'Avr', 'Matg', 'Zer', 'Fan', 'Avu', 'Sett', 'Oct', 'Nov', 'Dec'],\n dayNames: ['Dumengia', 'Glindesdi', 'Mardi', 'Mesemna', 'Gievgia', 'Venderdi', 'Sonda'],\n dayNamesShort: ['Dum', 'Gli', 'Mar', 'Mes', 'Gie', 'Ven', 'Som'],\n dayNamesMin: ['Du', 'Gl', 'Ma', 'Me', 'Gi', 'Ve', 'So'],\n weekHeader: 'emna',\n dateFormat: 'dd/mm/yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['rm']);\n});\n/* Romanian initialisation for the jQuery UI date picker plugin.\n*\n* Written by Edmond L. (ll_edmond@walla.com)\n* and Ionut G. Stan (ionut.g.stan@gmail.com)\n*/\njQuery(function ($) {\n $.datepicker.regional['ro'] = {\n closeText: 'Închide',\n prevText: '« Luna precedentă',\n nextText: 'Luna următoare »',\n currentText: 'Azi',\n monthNames: ['Ianuarie', 'Februarie', 'Martie', 'Aprilie', 'Mai', 'Iunie',\n\t\t'Iulie', 'August', 'Septembrie', 'Octombrie', 'Noiembrie', 'Decembrie'],\n monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun',\n\t\t'Iul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayNames: ['Duminică', 'Luni', 'Marţi', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'],\n dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sâm'],\n dayNamesMin: ['Du', 'Lu', 'Ma', 'Mi', 'Jo', 'Vi', 'Sâ'],\n weekHeader: 'Săpt',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['ro']);\n});\n/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */\n/* Written by Andrew Stromnov (stromnov@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['ru'] = {\n closeText: 'Закрыть',\n prevText: '<Пред',\n nextText: 'След>',\n currentText: 'Сегодня',\n monthNames: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',\n\t\t'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],\n monthNamesShort: ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн',\n\t\t'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],\n dayNames: ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'],\n dayNamesShort: ['вск', 'пнд', 'втр', 'срд', 'чтв', 'птн', 'сбт'],\n dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],\n weekHeader: 'Нед',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['ru']);\n}); /* Slovak initialisation for the jQuery UI date picker plugin. */\n/* Written by Vojtech Rinik (vojto@hmm.sk). */\njQuery(function ($) {\n $.datepicker.regional['sk'] = {\n closeText: 'Zavrieť',\n prevText: '<Predchádzajúci',\n nextText: 'Nasledujúci>',\n currentText: 'Dnes',\n monthNames: ['Január', 'Február', 'Marec', 'Apríl', 'Máj', 'Jún',\n\t\t'Júl', 'August', 'September', 'Október', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Máj', 'Jún',\n\t\t'Júl', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],\n dayNames: ['Nedeľa', 'Pondelok', 'Utorok', 'Streda', 'Štvrtok', 'Piatok', 'Sobota'],\n dayNamesShort: ['Ned', 'Pon', 'Uto', 'Str', 'Štv', 'Pia', 'Sob'],\n dayNamesMin: ['Ne', 'Po', 'Ut', 'St', 'Št', 'Pia', 'So'],\n weekHeader: 'Ty',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['sk']);\n});\n/* Slovenian initialisation for the jQuery UI date picker plugin. */\n/* Written by Jaka Jancar (jaka@kubje.org). */\n/* c = č, s = š z = ž C = Č S = Š Z = Ž */\njQuery(function ($) {\n $.datepicker.regional['sl'] = {\n closeText: 'Zapri',\n prevText: '<Prejšnji',\n nextText: 'Naslednji>',\n currentText: 'Trenutni',\n monthNames: ['Januar', 'Februar', 'Marec', 'April', 'Maj', 'Junij',\n\t\t'Julij', 'Avgust', 'September', 'Oktober', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun',\n\t\t'Jul', 'Avg', 'Sep', 'Okt', 'Nov', 'Dec'],\n dayNames: ['Nedelja', 'Ponedeljek', 'Torek', 'Sreda', 'Četrtek', 'Petek', 'Sobota'],\n dayNamesShort: ['Ned', 'Pon', 'Tor', 'Sre', 'Čet', 'Pet', 'Sob'],\n dayNamesMin: ['Ne', 'Po', 'To', 'Sr', 'Če', 'Pe', 'So'],\n weekHeader: 'Teden',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['sl']);\n});\n/* Albanian initialisation for the jQuery UI date picker plugin. */\n/* Written by Flakron Bytyqi (flakron@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['sq'] = {\n closeText: 'mbylle',\n prevText: '<mbrapa',\n nextText: 'Përpara>',\n currentText: 'sot',\n monthNames: ['Janar', 'Shkurt', 'Mars', 'Prill', 'Maj', 'Qershor',\n\t\t'Korrik', 'Gusht', 'Shtator', 'Tetor', 'Nëntor', 'Dhjetor'],\n monthNamesShort: ['Jan', 'Shk', 'Mar', 'Pri', 'Maj', 'Qer',\n\t\t'Kor', 'Gus', 'Sht', 'Tet', 'Nën', 'Dhj'],\n dayNames: ['E Diel', 'E Hënë', 'E Martë', 'E Mërkurë', 'E Enjte', 'E Premte', 'E Shtune'],\n dayNamesShort: ['Di', 'Hë', 'Ma', 'Më', 'En', 'Pr', 'Sh'],\n dayNamesMin: ['Di', 'Hë', 'Ma', 'Më', 'En', 'Pr', 'Sh'],\n weekHeader: 'Ja',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['sq']);\n});\n/* Serbian i18n for the jQuery UI date picker plugin. */\n/* Written by Dejan Dimić. */\njQuery(function ($) {\n $.datepicker.regional['sr-SR'] = {\n closeText: 'Zatvori',\n prevText: '<',\n nextText: '>',\n currentText: 'Danas',\n monthNames: ['Januar', 'Februar', 'Mart', 'April', 'Maj', 'Jun',\n\t\t'Jul', 'Avgust', 'Septembar', 'Oktobar', 'Novembar', 'Decembar'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun',\n\t\t'Jul', 'Avg', 'Sep', 'Okt', 'Nov', 'Dec'],\n dayNames: ['Nedelja', 'Ponedeljak', 'Utorak', 'Sreda', 'Četvrtak', 'Petak', 'Subota'],\n dayNamesShort: ['Ned', 'Pon', 'Uto', 'Sre', 'Čet', 'Pet', 'Sub'],\n dayNamesMin: ['Ne', 'Po', 'Ut', 'Sr', 'Če', 'Pe', 'Su'],\n weekHeader: 'Sed',\n dateFormat: 'dd/mm/yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['sr-SR']);\n});\n/* Serbian i18n for the jQuery UI date picker plugin. */\n/* Written by Dejan Dimić. */\njQuery(function ($) {\n $.datepicker.regional['sr'] = {\n closeText: 'Затвори',\n prevText: '<',\n nextText: '>',\n currentText: 'Данас',\n monthNames: ['Јануар', 'Фебруар', 'Март', 'Април', 'Мај', 'Јун',\n\t\t'Јул', 'Август', 'Септембар', 'Октобар', 'Новембар', 'Децембар'],\n monthNamesShort: ['Јан', 'Феб', 'Мар', 'Апр', 'Мај', 'Јун',\n\t\t'Јул', 'Авг', 'Сеп', 'Окт', 'Нов', 'Дец'],\n dayNames: ['Недеља', 'Понедељак', 'Уторак', 'Среда', 'Четвртак', 'Петак', 'Субота'],\n dayNamesShort: ['Нед', 'Пон', 'Уто', 'Сре', 'Чет', 'Пет', 'Суб'],\n dayNamesMin: ['Не', 'По', 'Ут', 'Ср', 'Че', 'Пе', 'Су'],\n weekHeader: 'Сед',\n dateFormat: 'dd/mm/yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['sr']);\n});\n/* Swedish initialisation for the jQuery UI date picker plugin. */\n/* Written by Anders Ekdahl ( anders@nomadiz.se). */\njQuery(function ($) {\n $.datepicker.regional['sv'] = {\n closeText: 'Stäng',\n prevText: '«Förra',\n nextText: 'Nästa»',\n currentText: 'Idag',\n monthNames: ['Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni',\n 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],\n dayNamesShort: ['Sön', 'Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör'],\n dayNames: ['Söndag', 'Måndag', 'Tisdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lördag'],\n dayNamesMin: ['Sö', 'Må', 'Ti', 'On', 'To', 'Fr', 'Lö'],\n weekHeader: 'Ve',\n dateFormat: 'yy-mm-dd',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['sv']);\n});\n/* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */\n/* Written by S A Sureshkumar (saskumar@live.com). */\njQuery(function ($) {\n $.datepicker.regional['ta'] = {\n closeText: 'மூடு',\n prevText: 'முன்னையது',\n nextText: 'அடுத்தது',\n currentText: 'இன்று',\n monthNames: ['தை', 'மாசி', 'பங்குனி', 'சித்திரை', 'வைகாசி', 'ஆனி',\n\t\t'ஆடி', 'ஆவணி', 'புரட்டாசி', 'ஐப்பசி', 'கார்த்திகை', 'மார்கழி'],\n monthNamesShort: ['தை', 'மாசி', 'பங்', 'சித்', 'வைகா', 'ஆனி',\n\t\t'ஆடி', 'ஆவ', 'புர', 'ஐப்', 'கார்', 'மார்'],\n dayNames: ['ஞாயிற்றுக்கிழமை', 'திங்கட்கிழமை', 'செவ்வாய்க்கிழமை', 'புதன்கிழமை', 'வியாழக்கிழமை', 'வெள்ளிக்கிழமை', 'சனிக்கிழமை'],\n dayNamesShort: ['ஞாயிறு', 'திங்கள்', 'செவ்வாய்', 'புதன்', 'வியாழன்', 'வெள்ளி', 'சனி'],\n dayNamesMin: ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],\n weekHeader: 'Не',\n dateFormat: 'dd/mm/yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['ta']);\n});\n/* Thai initialisation for the jQuery UI date picker plugin. */\n/* Written by pipo (pipo@sixhead.com). */\njQuery(function ($) {\n $.datepicker.regional['th'] = {\n closeText: 'ปิด',\n prevText: '« ย้อน',\n nextText: 'ถัดไป »',\n currentText: 'วันนี้',\n monthNames: ['มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน',\n\t\t'กรกฎาคม', 'สิงหาคม', 'กันยายน', 'ตุลาคม', 'พฤศจิกายน', 'ธันวาคม'],\n monthNamesShort: ['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.',\n\t\t'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.'],\n dayNames: ['อาทิตย์', 'จันทร์', 'อังคาร', 'พุธ', 'พฤหัสบดี', 'ศุกร์', 'เสาร์'],\n dayNamesShort: ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'],\n dayNamesMin: ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'],\n weekHeader: 'Wk',\n dateFormat: 'dd/mm/yy',\n firstDay: 0,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['th']);\n}); /* Tajiki (UTF-8) initialisation for the jQuery UI date picker plugin. */\n/* Written by Abdurahmon Saidov (saidovab@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['tj'] = {\n closeText: 'Идома',\n prevText: '<Қафо',\n nextText: 'Пеш>',\n currentText: 'Имрӯз',\n monthNames: ['Январ', 'Феврал', 'Март', 'Апрел', 'Май', 'Июн',\n\t\t'Июл', 'Август', 'Сентябр', 'Октябр', 'Ноябр', 'Декабр'],\n monthNamesShort: ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн',\n\t\t'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],\n dayNames: ['якшанбе', 'душанбе', 'сешанбе', 'чоршанбе', 'панҷшанбе', 'ҷумъа', 'шанбе'],\n dayNamesShort: ['якш', 'душ', 'сеш', 'чор', 'пан', 'ҷум', 'шан'],\n dayNamesMin: ['Як', 'Дш', 'Сш', 'Чш', 'Пш', 'Ҷм', 'Шн'],\n weekHeader: 'Хф',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['tj']);\n}); /* Turkish initialisation for the jQuery UI date picker plugin. */\n/* Written by Izzet Emre Erkan (kara@karalamalar.net). */\njQuery(function ($) {\n $.datepicker.regional['tr'] = {\n closeText: 'kapat',\n prevText: '<geri',\n nextText: 'ileri>',\n currentText: 'bugün',\n monthNames: ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran',\n\t\t'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'],\n monthNamesShort: ['Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz',\n\t\t'Tem', 'Ağu', 'Eyl', 'Eki', 'Kas', 'Ara'],\n dayNames: ['Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi'],\n dayNamesShort: ['Pz', 'Pt', 'Sa', 'Ça', 'Pe', 'Cu', 'Ct'],\n dayNamesMin: ['Pz', 'Pt', 'Sa', 'Ça', 'Pe', 'Cu', 'Ct'],\n weekHeader: 'Hf',\n dateFormat: 'dd.mm.yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['tr']);\n}); /* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */\n/* Written by Maxim Drogobitskiy (maxdao@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['uk'] = {\n closeText: 'Закрити',\n prevText: '<',\n nextText: '>',\n currentText: 'Сьогодні',\n monthNames: ['Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень',\n\t\t'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень'],\n monthNamesShort: ['Січ', 'Лют', 'Бер', 'Кві', 'Тра', 'Чер',\n\t\t'Лип', 'Сер', 'Вер', 'Жов', 'Лис', 'Гру'],\n dayNames: ['неділя', 'понеділок', 'вівторок', 'середа', 'четвер', 'п’ятниця', 'субота'],\n dayNamesShort: ['нед', 'пнд', 'вів', 'срд', 'чтв', 'птн', 'сбт'],\n dayNamesMin: ['Нд', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],\n weekHeader: 'Не',\n dateFormat: 'dd/mm/yy',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['uk']);\n}); /* Vietnamese initialisation for the jQuery UI date picker plugin. */\n/* Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */\njQuery(function ($) {\n $.datepicker.regional['vi'] = {\n closeText: 'Đóng',\n prevText: '<Trước',\n nextText: 'Tiếp>',\n currentText: 'Hôm nay',\n monthNames: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu',\n\t\t'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'],\n monthNamesShort: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6',\n\t\t'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],\n dayNames: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],\n dayNamesShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],\n dayNamesMin: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],\n weekHeader: 'Tu',\n dateFormat: 'dd/mm/yy',\n firstDay: 0,\n isRTL: false,\n showMonthAfterYear: false,\n yearSuffix: ''\n };\n $.datepicker.setDefaults($.datepicker.regional['vi']);\n});\n/* Chinese initialisation for the jQuery UI date picker plugin. */\n/* Written by Cloudream (cloudream@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['zh-CN'] = {\n closeText: '关闭',\n prevText: '<上月',\n nextText: '下月>',\n currentText: '今天',\n monthNames: ['一月', '二月', '三月', '四月', '五月', '六月',\n\t\t'七月', '八月', '九月', '十月', '十一月', '十二月'],\n monthNamesShort: ['一', '二', '三', '四', '五', '六',\n\t\t'七', '八', '九', '十', '十一', '十二'],\n dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],\n dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],\n weekHeader: '周',\n dateFormat: 'yy-mm-dd',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: true,\n yearSuffix: '年'\n };\n $.datepicker.setDefaults($.datepicker.regional['zh-CN']);\n});\n/* Chinese initialisation for the jQuery UI date picker plugin. */\n/* Written by SCCY (samuelcychan@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['zh-HK'] = {\n closeText: '關閉',\n prevText: '<上月',\n nextText: '下月>',\n currentText: '今天',\n monthNames: ['一月', '二月', '三月', '四月', '五月', '六月',\n\t\t'七月', '八月', '九月', '十月', '十一月', '十二月'],\n monthNamesShort: ['一', '二', '三', '四', '五', '六',\n\t\t'七', '八', '九', '十', '十一', '十二'],\n dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],\n dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],\n weekHeader: '周',\n dateFormat: 'dd-mm-yy',\n firstDay: 0,\n isRTL: false,\n showMonthAfterYear: true,\n yearSuffix: '年'\n };\n $.datepicker.setDefaults($.datepicker.regional['zh-HK']);\n});\n/* Chinese initialisation for the jQuery UI date picker plugin. */\n/* Written by Ressol (ressol@gmail.com). */\njQuery(function ($) {\n $.datepicker.regional['zh-TW'] = {\n closeText: '關閉',\n prevText: '<上月',\n nextText: '下月>',\n currentText: '今天',\n monthNames: ['一月', '二月', '三月', '四月', '五月', '六月',\n\t\t'七月', '八月', '九月', '十月', '十一月', '十二月'],\n monthNamesShort: ['一', '二', '三', '四', '五', '六',\n\t\t'七', '八', '九', '十', '十一', '十二'],\n dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],\n dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],\n weekHeader: '周',\n dateFormat: 'yy/mm/dd',\n firstDay: 1,\n isRTL: false,\n showMonthAfterYear: true,\n yearSuffix: '年'\n };\n $.datepicker.setDefaults($.datepicker.regional['zh-TW']);\n});","/*!\n* jQuery UI Touch Punch 0.2.2\n*\n* Copyright 2011, Dave Furfero\n* Dual licensed under the MIT or GPL Version 2 licenses.\n*\n* Depends:\n* jquery.ui.widget.js\n* jquery.ui.mouse.js\n*/\n(function ($) {\n\n // Detect touch support\n $.support.touch = 'ontouchend' in document;\n\n // Ignore browsers without touch support\n if (!$.support.touch) {\n return;\n }\n\n var mouseProto = $.ui.mouse.prototype,\n _mouseInit = mouseProto._mouseInit,\n touchHandled;\n\n /**\n * Simulate a mouse event based on a corresponding touch event\n * @param {Object} event A touch event\n * @param {String} simulatedType The corresponding mouse event\n */\n function simulateMouseEvent(event, simulatedType) {\n\n // Ignore multi-touch events\n if (event.originalEvent.touches.length > 1) {\n return;\n }\n\n event.preventDefault();\n\n var touch = event.originalEvent.changedTouches[0],\n simulatedEvent = document.createEvent('MouseEvents');\n\n // Initialize the simulated mouse event using the touch event's coordinates\n simulatedEvent.initMouseEvent(\n simulatedType, // type\n true, // bubbles \n true, // cancelable \n window, // view \n 1, // detail \n touch.screenX, // screenX \n touch.screenY, // screenY \n touch.clientX, // clientX \n touch.clientY, // clientY \n false, // ctrlKey \n false, // altKey \n false, // shiftKey \n false, // metaKey \n 0, // button \n null // relatedTarget \n );\n\n // Dispatch the simulated event to the target element\n event.target.dispatchEvent(simulatedEvent);\n }\n\n /**\n * Handle the jQuery UI widget's touchstart events\n * @param {Object} event The widget element's touchstart event\n */\n mouseProto._touchStart = function (event) {\n\n var self = this;\n\n // Ignore the event if another widget is already being handled\n if (touchHandled || !self._mouseCapture(event.originalEvent.changedTouches[0])) {\n return;\n }\n\n // Set the flag to prevent other widgets from inheriting the touch event\n touchHandled = true;\n\n // Track movement to determine if interaction was a click\n self._touchMoved = false;\n\n // Simulate the mouseover event\n simulateMouseEvent(event, 'mouseover');\n\n // Simulate the mousemove event\n simulateMouseEvent(event, 'mousemove');\n\n // Simulate the mousedown event\n simulateMouseEvent(event, 'mousedown');\n };\n\n /**\n * Handle the jQuery UI widget's touchmove events\n * @param {Object} event The document's touchmove event\n */\n mouseProto._touchMove = function (event) {\n\n // Ignore event if not handled\n if (!touchHandled) {\n return;\n }\n\n // Interaction was not a click\n this._touchMoved = true;\n\n // Simulate the mousemove event\n simulateMouseEvent(event, 'mousemove');\n };\n\n /**\n * Handle the jQuery UI widget's touchend events\n * @param {Object} event The document's touchend event\n */\n mouseProto._touchEnd = function (event) {\n\n // Ignore event if not handled\n if (!touchHandled) {\n return;\n }\n\n // Simulate the mouseup event\n simulateMouseEvent(event, 'mouseup');\n\n // Simulate the mouseout event\n simulateMouseEvent(event, 'mouseout');\n\n // If the touch interaction did not move, it should trigger a click\n if (!this._touchMoved) {\n\n // Simulate the click event\n simulateMouseEvent(event, 'click');\n }\n\n // Unset the flag to allow other widgets to inherit the touch event\n touchHandled = false;\n };\n\n /**\n * A duck punch of the $.ui.mouse _mouseInit method to support touch events.\n * This method extends the widget with bound touch event handlers that\n * translate touch events to mouse events and pass them to the widget's\n * original mouse event handling methods.\n */\n mouseProto._mouseInit = function () {\n\n var self = this;\n\n // Delegate the touch handlers to the widget's element\n self.element\n .bind('touchstart', $.proxy(self, '_touchStart'))\n .bind('touchmove', $.proxy(self, '_touchMove'))\n .bind('touchend', $.proxy(self, '_touchEnd'));\n\n // Call the original $.ui.mouse init method\n _mouseInit.call(self);\n };\n\n})(jQuery);","/*!\n* Note: While Microsoft is not the author of this file, Microsoft is\n* offering you a license subject to the terms of the Microsoft Software\n* License Terms for Microsoft ASP.NET Model View Controller 3.\n* Microsoft reserves all other rights. The notices below are provided\n* for informational purposes only and are not the license terms under\n* which Microsoft distributed this file.\n*\n* jQuery Validation Plugin 1.8.0\n*\n* http://bassistance.de/jquery-plugins/jquery-plugin-validation/\n* http://docs.jquery.com/Plugins/Validation\n*\n* Copyright (c) 2006 - 2011 Jörn Zaefferer\n* \n* Permission is hereby granted, free of charge, to any person obtaining a copy\n* of this software and associated documentation files (the \"Software\"), to deal\n* in the Software without restriction, including without limitation the rights\n* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n* copies of the Software, and to permit persons to whom the Software is\n* furnished to do so, subject to the following conditions:\n* \n* The above copyright notice and this permission notice shall be included in\n* all copies or substantial portions of the Software.\n* \n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n* THE SOFTWARE.\n*/\n\n(function ($) {\n\n $.extend($.fn, {\n // http://docs.jquery.com/Plugins/Validation/validate\n validate: function (options) {\n\n // if nothing is selected, return nothing; can't chain anyway\n if (!this.length) {\n options && options.debug && window.console && console.warn(\"nothing selected, can't validate, returning nothing\");\n return;\n }\n\n // check if a validator for this form was already created\n var validator = $.data(this[0], 'validator');\n if (validator) {\n return validator;\n }\n\n validator = new $.validator(options, this[0]);\n $.data(this[0], 'validator', validator);\n\n if (validator.settings.onsubmit) {\n\n // allow suppresing validation by adding a cancel class to the submit button\n this.find(\"input, button\").filter(\".cancel\").click(function () {\n validator.cancelSubmit = true;\n });\n\n // when a submitHandler is used, capture the submitting button\n if (validator.settings.submitHandler) {\n this.find(\"input, button\").filter(\":submit\").click(function () {\n validator.submitButton = this;\n });\n }\n\n // validate the form on submit\n this.submit(function (event) {\n if (validator.settings.debug)\n // prevent form submit to be able to see console output\n event.preventDefault();\n\n function handle() {\n if (validator.settings.submitHandler) {\n if (validator.submitButton) {\n // insert a hidden input as a replacement for the missing submit button\n var hidden = $(\"\").attr(\"name\", validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm);\n }\n validator.settings.submitHandler.call(validator, validator.currentForm);\n if (validator.submitButton) {\n // and clean up afterwards; thanks to no-block-scope, hidden can be referenced\n hidden.remove();\n }\n return false;\n }\n return true;\n }\n\n // prevent submit for invalid forms or custom submit handlers\n if (validator.cancelSubmit) {\n validator.cancelSubmit = false;\n return handle();\n }\n if (validator.form()) {\n if (validator.pendingRequest) {\n validator.formSubmitted = true;\n return false;\n }\n return handle();\n } else {\n validator.focusInvalid();\n return false;\n }\n });\n }\n\n return validator;\n },\n // http://docs.jquery.com/Plugins/Validation/valid\n valid: function () {\n if ($(this[0]).is('form')) {\n return this.validate().form();\n } else {\n var valid = true;\n var validator = $(this[0].form).validate();\n this.each(function () {\n // cartegraph change - valid &= validator.element(this);\n // MAD - 3/13/2012 - the validator is undefined in several scenarios which was causing errors to show up\n // in the console. Wrapped the code to make certain we do not attempt to access an element from an undefined object\n if (validator !== undefined && validator != null) {\n valid &= validator.element(this);\n }\n\n });\n return valid;\n }\n },\n // attributes: space seperated list of attributes to retrieve and remove\n removeAttrs: function (attributes) {\n var result = {},\n\t\t\t$element = this;\n $.each(attributes.split(/\\s/), function (index, value) {\n result[value] = $element.attr(value);\n $element.removeAttr(value);\n });\n return result;\n },\n // http://docs.jquery.com/Plugins/Validation/rules\n rules: function (command, argument) {\n var element = this[0];\n\n if (command) {\n var settings = $.data(element.form, 'validator').settings;\n var staticRules = settings.rules;\n var existingRules = $.validator.staticRules(element);\n switch (command) {\n case \"add\":\n $.extend(existingRules, $.validator.normalizeRule(argument));\n staticRules[element.name] = existingRules;\n if (argument.messages)\n settings.messages[element.name] = $.extend(settings.messages[element.name], argument.messages);\n break;\n case \"remove\":\n if (!argument) {\n delete staticRules[element.name];\n return existingRules;\n }\n var filtered = {};\n $.each(argument.split(/\\s/), function (index, method) {\n filtered[method] = existingRules[method];\n delete existingRules[method];\n });\n return filtered;\n }\n }\n\n var data = $.validator.normalizeRules(\n\t\t$.extend(\n\t\t\t{},\n\t\t\t$.validator.metadataRules(element),\n\t\t\t$.validator.classRules(element),\n\t\t\t$.validator.attributeRules(element),\n\t\t\t$.validator.staticRules(element)\n\t\t), element);\n\n // make sure required is at front\n if (data.required) {\n var param = data.required;\n delete data.required;\n data = $.extend({ required: param }, data);\n }\n\n return data;\n }\n });\n\n // Custom selectors\n $.extend($.expr[\":\"], {\n // http://docs.jquery.com/Plugins/Validation/blank\n blank: function (a) { return !$.trim(\"\" + a.value); },\n // http://docs.jquery.com/Plugins/Validation/filled\n filled: function (a) { return !!$.trim(\"\" + a.value); },\n // http://docs.jquery.com/Plugins/Validation/unchecked\n unchecked: function (a) { return !a.checked; }\n });\n\n // constructor for validator\n $.validator = function (options, form) {\n this.settings = $.extend(true, {}, $.validator.defaults, options);\n this.currentForm = form;\n this.init();\n };\n\n $.validator.format = function (source, params) {\n if (arguments.length == 1)\n return function () {\n var args = $.makeArray(arguments);\n args.unshift(source);\n return $.validator.format.apply(this, args);\n };\n if (arguments.length > 2 && params.constructor != Array) {\n params = $.makeArray(arguments).slice(1);\n }\n if (params.constructor != Array) {\n params = [params];\n }\n $.each(params, function (i, n) {\n source = source.replace(new RegExp(\"\\\\{\" + i + \"\\\\}\", \"g\"), n);\n });\n return source;\n };\n\n $.extend($.validator, {\n\n defaults: {\n messages: {},\n groups: {},\n rules: {},\n errorClass: \"error\",\n validClass: \"valid\",\n errorElement: \"label\",\n focusInvalid: true,\n errorContainer: $([]),\n errorLabelContainer: $([]),\n onsubmit: true,\n ignore: [],\n ignoreTitle: false,\n onfocusin: function (element) {\n this.lastActive = element;\n\n // hide error label and remove error class on focus if enabled\n if (this.settings.focusCleanup && !this.blockFocusCleanup) {\n this.settings.unhighlight && this.settings.unhighlight.call(this, element, this.settings.errorClass, this.settings.validClass);\n this.addWrapper(this.errorsFor(element)).hide();\n }\n },\n onfocusout: function (element) {\n if (!this.checkable(element) && (element.name in this.submitted || !this.optional(element))) {\n this.element(element);\n }\n },\n onkeyup: function (element) {\n if (element.name in this.submitted || element == this.lastElement) {\n this.element(element);\n }\n },\n onclick: function (element) {\n // click on selects, radiobuttons and checkboxes\n if (element.name in this.submitted)\n this.element(element);\n // or option elements, check parent select in that case\n else if (element.parentNode.name in this.submitted)\n this.element(element.parentNode);\n },\n highlight: function (element, errorClass, validClass) {\n $(element).addClass(errorClass).removeClass(validClass);\n },\n unhighlight: function (element, errorClass, validClass) {\n $(element).removeClass(errorClass).addClass(validClass);\n }\n },\n\n // http://docs.jquery.com/Plugins/Validation/Validator/setDefaults\n setDefaults: function (settings) {\n $.extend($.validator.defaults, settings);\n },\n\n messages: {\n required: \"This field requires a value.\",\n remote: \"Please fix this field.\",\n email: \"Please enter a valid email address.\",\n url: \"Please enter a valid URL.\",\n date: \"Please enter a valid date.\",\n dateISO: \"Please enter a valid date (ISO).\",\n number: \"Please enter a valid number.\",\n digits: \"Please enter only digits.\",\n creditcard: \"Please enter a valid credit card number.\",\n equalTo: \"Please enter the same value again.\",\n accept: \"Please enter a value with a valid extension.\",\n maxlength: $.validator.format(\"Please enter no more than {0} characters.\"),\n minlength: $.validator.format(\"Please enter at least {0} characters.\"),\n rangelength: $.validator.format(\"Please enter a value between {0} and {1} characters long.\"),\n range: $.validator.format(\"Please enter a value between {0} and {1}.\"),\n max: $.validator.format(\"Please enter a value less than or equal to {0}.\"),\n min: $.validator.format(\"Please enter a value greater than or equal to {0}.\")\n },\n\n autoCreateRanges: false,\n\n prototype: {\n\n init: function () {\n this.labelContainer = $(this.settings.errorLabelContainer);\n this.errorContext = this.labelContainer.length && this.labelContainer || $(this.currentForm);\n this.containers = $(this.settings.errorContainer).add(this.settings.errorLabelContainer);\n this.submitted = {};\n this.valueCache = {};\n this.pendingRequest = 0;\n this.pending = {};\n this.invalid = {};\n this.reset();\n\n var groups = (this.groups = {});\n $.each(this.settings.groups, function (key, value) {\n $.each(value.split(/\\s/), function (index, name) {\n groups[name] = key;\n });\n });\n var rules = this.settings.rules;\n $.each(rules, function (key, value) {\n rules[key] = $.validator.normalizeRule(value);\n });\n\n function delegate(event) {\n if (!this[0].form)\n return;\n var validator = $.data(this[0].form, \"validator\"),\n\t\t\t\t\teventType = \"on\" + event.type.replace(/^validate/, \"\");\n validator.settings[eventType] && validator.settings[eventType].call(validator, this[0]);\n }\n $(this.currentForm)\n\t\t\t\t.validateDelegate(\":text, :password, :file, select, textarea\", \"focusin focusout keyup\", delegate)\n\t\t\t\t.validateDelegate(\":radio, :checkbox, select, option\", \"click\", delegate);\n\n if (this.settings.invalidHandler)\n $(this.currentForm).bind(\"invalid-form.validate\", this.settings.invalidHandler);\n },\n\n // http://docs.jquery.com/Plugins/Validation/Validator/form\n form: function () {\n this.checkForm();\n $.extend(this.submitted, this.errorMap);\n this.invalid = $.extend({}, this.errorMap);\n if (!this.valid())\n $(this.currentForm).triggerHandler(\"invalid-form\", [this]);\n this.showErrors();\n return this.valid();\n },\n\n checkForm: function () {\n this.prepareForm();\n for (var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++) {\n this.check(elements[i]);\n }\n return this.valid();\n },\n\n // http://docs.jquery.com/Plugins/Validation/Validator/element\n element: function (element) {\n element = this.clean(element);\n this.lastElement = element;\n this.prepareElement(element);\n this.currentElements = $(element);\n var result = this.check(element);\n if (result) {\n delete this.invalid[element.name];\n } else {\n this.invalid[element.name] = true;\n }\n if (!this.numberOfInvalids()) {\n // Hide error containers on last error\n this.toHide = this.toHide.add(this.containers);\n }\n this.showErrors();\n return result;\n },\n\n // http://docs.jquery.com/Plugins/Validation/Validator/showErrors\n showErrors: function (errors) {\n if (errors) {\n // add items to error list and map\n $.extend(this.errorMap, errors);\n this.errorList = [];\n for (var name in errors) {\n this.errorList.push({\n message: errors[name],\n element: this.findByName(name)[0]\n });\n }\n // remove items from success list\n this.successList = $.grep(this.successList, function (element) {\n return !(element.name in errors);\n });\n }\n this.settings.showErrors\n\t\t\t\t? this.settings.showErrors.call(this, this.errorMap, this.errorList)\n\t\t\t\t: this.defaultShowErrors();\n },\n\n // http://docs.jquery.com/Plugins/Validation/Validator/resetForm\n resetForm: function () {\n if ($.fn.resetForm)\n $(this.currentForm).resetForm();\n this.submitted = {};\n this.prepareForm();\n this.hideErrors();\n this.elements().removeClass(this.settings.errorClass);\n },\n\n numberOfInvalids: function () {\n return this.objectLength(this.invalid);\n },\n\n objectLength: function (obj) {\n var count = 0;\n for (var i in obj)\n count++;\n return count;\n },\n\n hideErrors: function () {\n this.addWrapper(this.toHide).hide();\n },\n\n valid: function () {\n return this.size() == 0;\n },\n\n size: function () {\n return this.errorList.length;\n },\n\n focusInvalid: function () {\n if (this.settings.focusInvalid) {\n try {\n $(this.findLastActive() || this.errorList.length && this.errorList[0].element || [])\n\t\t\t\t\t.filter(\":visible\")\n\t\t\t\t\t.focus()\n // manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find\n\t\t\t\t\t.trigger(\"focusin\");\n } catch (e) {\n // ignore IE throwing errors when focusing hidden elements\n }\n }\n },\n\n findLastActive: function () {\n var lastActive = this.lastActive;\n return lastActive && $.grep(this.errorList, function (n) {\n return n.element.name == lastActive.name;\n }).length == 1 && lastActive;\n },\n\n elements: function () {\n var validator = this,\n\t\t\t\trulesCache = {};\n\n // select all valid inputs inside the form (no submit or reset buttons)\n // workaround $Query([]).add until http://dev.jquery.com/ticket/2114 is solved\n return $([]).add(this.currentForm.elements)\n\t\t\t.filter(\":input\")\n\t\t\t.not(\":submit, :reset, :image, [disabled]\")\n\t\t\t.not(this.settings.ignore)\n\t\t\t.filter(function () {\n\t\t\t !this.name && validator.settings.debug && window.console && console.error(\"%o has no name assigned\", this);\n\n\t\t\t // select only the first element for each name, and only those with rules specified\n\t\t\t if (this.name in rulesCache || !validator.objectLength($(this).rules()))\n\t\t\t return false;\n\n\t\t\t rulesCache[this.name] = true;\n\t\t\t return true;\n\t\t\t});\n },\n\n clean: function (selector) {\n return $(selector)[0];\n },\n\n errors: function () {\n return $(this.settings.errorElement + \".\" + this.settings.errorClass, this.errorContext);\n },\n\n reset: function () {\n this.successList = [];\n this.errorList = [];\n this.errorMap = {};\n this.toShow = $([]);\n this.toHide = $([]);\n this.currentElements = $([]);\n },\n\n prepareForm: function () {\n this.reset();\n this.toHide = this.errors().add(this.containers);\n },\n\n prepareElement: function (element) {\n this.reset();\n this.toHide = this.errorsFor(element);\n },\n\n check: function (element) {\n element = this.clean(element);\n\n // if radio/checkbox, validate first element in group instead\n if (this.checkable(element)) {\n element = this.findByName(element.name).not(this.settings.ignore)[0];\n }\n\n var rules = $(element).rules();\n var dependencyMismatch = false;\n for (var method in rules) {\n var rule = { method: method, parameters: rules[method] };\n try {\n var result = $.validator.methods[method].call(this, element.value.replace(/\\r/g, \"\"), element, rule.parameters);\n\n // if a method indicates that the field is optional and therefore valid,\n // don't mark it as valid when there are no other rules\n if (result == \"dependency-mismatch\") {\n dependencyMismatch = true;\n continue;\n }\n dependencyMismatch = false;\n\n if (result == \"pending\") {\n this.toHide = this.toHide.not(this.errorsFor(element));\n return;\n }\n\n if (!result) {\n this.formatAndAdd(element, rule);\n return false;\n }\n } catch (e) {\n this.settings.debug && window.console && console.log(\"exception occured when checking element \" + element.id\n\t\t\t\t\t\t + \", check the '\" + rule.method + \"' method\", e);\n throw e;\n }\n }\n if (dependencyMismatch)\n return;\n if (this.objectLength(rules))\n this.successList.push(element);\n return true;\n },\n\n // return the custom message for the given element and validation method\n // specified in the element's \"messages\" metadata\n customMetaMessage: function (element, method) {\n if (!$.metadata)\n return;\n\n var meta = this.settings.meta\n\t\t\t\t? $(element).metadata()[this.settings.meta]\n\t\t\t\t: $(element).metadata();\n\n return meta && meta.messages && meta.messages[method];\n },\n\n // return the custom message for the given element name and validation method\n customMessage: function (name, method) {\n var m = this.settings.messages[name];\n return m && (m.constructor == String\n\t\t\t\t? m\n\t\t\t\t: m[method]);\n },\n\n // return the first defined argument, allowing empty strings\n findDefined: function () {\n for (var i = 0; i < arguments.length; i++) {\n if (arguments[i] !== undefined)\n return arguments[i];\n }\n return undefined;\n },\n\n defaultMessage: function (element, method) {\n return this.findDefined(\n\t\t\t\tthis.customMessage(element.name, method),\n\t\t\t\tthis.customMetaMessage(element, method),\n // title is never undefined, so handle empty string as undefined\n\t\t\t\t!this.settings.ignoreTitle && element.title || undefined,\n\t\t\t\t$.validator.messages[method],\n\t\t\t\t\"Warning: No message defined for \" + element.name + \"\"\n\t\t\t);\n },\n\n formatAndAdd: function (element, rule) {\n var message = this.defaultMessage(element, rule.method),\n\t\t\t\ttheregex = /\\$?\\{(\\d+)\\}/g;\n if (typeof message == \"function\") {\n message = message.call(this, rule.parameters, element);\n } else if (theregex.test(message)) {\n message = jQuery.format(message.replace(theregex, '{$1}'), rule.parameters);\n }\n this.errorList.push({\n message: message,\n element: element\n });\n\n this.errorMap[element.name] = message;\n this.submitted[element.name] = message;\n },\n\n addWrapper: function (toToggle) {\n if (this.settings.wrapper)\n toToggle = toToggle.add(toToggle.parent(this.settings.wrapper));\n return toToggle;\n },\n\n defaultShowErrors: function () {\n //Cartegraph Change\n //If there are any errors that came back but their elements no longer exist,\n // don't bother trying to show their errors (it will cause problems anyway)\n // This was added for the Advanced Filter Dialog... We were getting an error when\n // clicking on the prompt checkbox while focused on a ref enforced lookup with a\n // value that was not in the list\n // EDK\n var errorList = this.errorList;\n $.each(errorList, function (index) {\n if (!this.element)\n errorList.remove(index);\n });\n //End Cartegraph Change\n\n for (var i = 0; this.errorList[i]; i++) {\n var error = this.errorList[i];\n this.settings.highlight && this.settings.highlight.call(this, error.element, this.settings.errorClass, this.settings.validClass);\n this.showLabel(error.element, error.message);\n }\n if (this.errorList.length) {\n this.toShow = this.toShow.add(this.containers);\n }\n if (this.settings.success) {\n for (var i = 0; this.successList[i]; i++) {\n this.showLabel(this.successList[i]);\n }\n }\n if (this.settings.unhighlight) {\n for (var i = 0, elements = this.validElements(); elements[i]; i++) {\n this.settings.unhighlight.call(this, elements[i], this.settings.errorClass, this.settings.validClass);\n }\n }\n this.toHide = this.toHide.not(this.toShow);\n this.hideErrors();\n this.addWrapper(this.toShow).show();\n },\n\n validElements: function () {\n return this.currentElements.not(this.invalidElements());\n },\n\n invalidElements: function () {\n return $(this.errorList).map(function () {\n return this.element;\n });\n },\n\n showLabel: function (element, message) {\n var label = this.errorsFor(element);\n if (label.length) {\n // refresh error/success class\n label.removeAttr('class').addClass(this.settings.errorClass);\n\n // check if we have a generated label, replace the message then\n label.attr(\"generated\") && label.html(message);\n } else {\n // create label\n label = $(\"<\" + this.settings.errorElement + \"/>\")\n\t\t\t\t\t.attr({ \"for\": this.idOrName(element), generated: true })\n\t\t\t\t\t.addClass(this.settings.errorClass)\n\t\t\t\t\t.html(message || \"\");\n if (this.settings.wrapper) {\n // make sure the element is visible, even in IE\n // actually showing the wrapped element is handled elsewhere\n label = label.hide().show().wrap(\"<\" + this.settings.wrapper + \"/>\").parent();\n }\n if (!this.labelContainer.append(label).length)\n this.settings.errorPlacement\n\t\t\t\t\t\t? this.settings.errorPlacement(label, $(element))\n\t\t\t\t\t\t: label.insertAfter(element);\n }\n if (!message && this.settings.success) {\n label.text(\"\");\n typeof this.settings.success == \"string\"\n\t\t\t\t\t? label.addClass(this.settings.success)\n\t\t\t\t\t: this.settings.success(label);\n }\n this.toShow = this.toShow.add(label);\n },\n\n errorsFor: function (element) {\n var name = this.idOrName(element);\n return this.errors().filter(function () {\n return $(this).attr('for') == name;\n });\n },\n\n idOrName: function (element) {\n return this.groups[element.name] || (this.checkable(element) ? element.name : element.id || element.name);\n },\n\n checkable: function (element) {\n return /radio|checkbox/i.test(element.type);\n },\n\n findByName: function (name) {\n // select by name and filter by form for performance over form.find(\"[name=...]\")\n var form = this.currentForm;\n return $(document.getElementsByName(name)).map(function (index, element) {\n return element.form == form && element.name == name && element || null;\n });\n },\n\n getLength: function (value, element) {\n switch (element.nodeName.toLowerCase()) {\n case 'select':\n return $(\"option:selected\", element).length;\n case 'input':\n if (this.checkable(element))\n return this.findByName(element.name).filter(':checked').length;\n }\n return value.length;\n },\n\n depend: function (param, element) {\n return this.dependTypes[typeof param]\n\t\t\t\t? this.dependTypes[typeof param](param, element)\n\t\t\t\t: true;\n },\n\n dependTypes: {\n \"boolean\": function (param, element) {\n return param;\n },\n \"string\": function (param, element) {\n return !!$(param, element.form).length;\n },\n \"function\": function (param, element) {\n return param(element);\n }\n },\n\n optional: function (element) {\n return !$.validator.methods.required.call(this, $.trim(element.value), element) && \"dependency-mismatch\";\n },\n\n startRequest: function (element) {\n if (!this.pending[element.name]) {\n this.pendingRequest++;\n this.pending[element.name] = true;\n }\n },\n\n stopRequest: function (element, valid) {\n this.pendingRequest--;\n // sometimes synchronization fails, make sure pendingRequest is never < 0\n if (this.pendingRequest < 0)\n this.pendingRequest = 0;\n delete this.pending[element.name];\n if (valid && this.pendingRequest == 0 && this.formSubmitted && this.form()) {\n $(this.currentForm).submit();\n this.formSubmitted = false;\n } else if (!valid && this.pendingRequest == 0 && this.formSubmitted) {\n $(this.currentForm).triggerHandler(\"invalid-form\", [this]);\n this.formSubmitted = false;\n }\n },\n\n previousValue: function (element) {\n return $.data(element, \"previousValue\") || $.data(element, \"previousValue\", {\n old: null,\n valid: true,\n message: this.defaultMessage(element, \"remote\")\n });\n }\n\n },\n\n classRuleSettings: {\n required: { required: true },\n email: { email: true },\n url: { url: true },\n date: { date: true },\n dateISO: { dateISO: true },\n dateDE: { dateDE: true },\n number: { number: true },\n numberDE: { numberDE: true },\n digits: { digits: true },\n creditcard: { creditcard: true }\n },\n\n addClassRules: function (className, rules) {\n className.constructor == String ?\n\t\t\tthis.classRuleSettings[className] = rules :\n\t\t\t$.extend(this.classRuleSettings, className);\n },\n\n classRules: function (element) {\n var rules = {};\n var classes = $(element).attr('class');\n classes && $.each(classes.split(' '), function () {\n if (this in $.validator.classRuleSettings) {\n $.extend(rules, $.validator.classRuleSettings[this]);\n }\n });\n return rules;\n },\n\n attributeRules: function (element) {\n var rules = {};\n var $element = $(element);\n\n for (var method in $.validator.methods) {\n var value = $element.attr(method);\n if (value) {\n rules[method] = value;\n }\n }\n\n // maxlength may be returned as -1, 2147483647 (IE) and 524288 (safari) for text inputs\n if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) {\n delete rules.maxlength;\n }\n\n return rules;\n },\n\n metadataRules: function (element) {\n if (!$.metadata) return {};\n\n var meta = $.data(element.form, 'validator').settings.meta;\n return meta ?\n\t\t\t$(element).metadata()[meta] :\n\t\t\t$(element).metadata();\n },\n\n staticRules: function (element) {\n var rules = {};\n var validator = $.data(element.form, 'validator');\n if (validator.settings.rules) {\n rules = $.validator.normalizeRule(validator.settings.rules[element.name]) || {};\n }\n return rules;\n },\n\n normalizeRules: function (rules, element) {\n // handle dependency check\n $.each(rules, function (prop, val) {\n // ignore rule when param is explicitly false, eg. required:false\n if (val === false) {\n delete rules[prop];\n return;\n }\n if (val.param || val.depends) {\n var keepRule = true;\n switch (typeof val.depends) {\n case \"string\":\n keepRule = !!$(val.depends, element.form).length;\n break;\n case \"function\":\n keepRule = val.depends.call(element, element);\n break;\n }\n if (keepRule) {\n rules[prop] = val.param !== undefined ? val.param : true;\n } else {\n delete rules[prop];\n }\n }\n });\n\n // evaluate parameters\n $.each(rules, function (rule, parameter) {\n rules[rule] = $.isFunction(parameter) ? parameter(element) : parameter;\n });\n\n // clean number parameters\n $.each(['minlength', 'maxlength', 'min', 'max'], function () {\n if (rules[this]) {\n rules[this] = Number(rules[this]);\n }\n });\n $.each(['rangelength', 'range'], function () {\n if (rules[this]) {\n rules[this] = [Number(rules[this][0]), Number(rules[this][1])];\n }\n });\n\n if ($.validator.autoCreateRanges) {\n // auto-create ranges\n if (rules.min && rules.max) {\n rules.range = [rules.min, rules.max];\n delete rules.min;\n delete rules.max;\n }\n if (rules.minlength && rules.maxlength) {\n rules.rangelength = [rules.minlength, rules.maxlength];\n delete rules.minlength;\n delete rules.maxlength;\n }\n }\n\n // To support custom messages in metadata ignore rule methods titled \"messages\"\n if (rules.messages) {\n delete rules.messages;\n }\n\n return rules;\n },\n\n // Converts a simple string to a {string: true} rule, e.g., \"required\" to {required:true}\n normalizeRule: function (data) {\n if (typeof data == \"string\") {\n var transformed = {};\n $.each(data.split(/\\s/), function () {\n transformed[this] = true;\n });\n data = transformed;\n }\n return data;\n },\n\n // http://docs.jquery.com/Plugins/Validation/Validator/addMethod\n addMethod: function (name, method, message) {\n $.validator.methods[name] = method;\n $.validator.messages[name] = message != undefined ? message : $.validator.messages[name];\n if (method.length < 3) {\n $.validator.addClassRules(name, $.validator.normalizeRule(name));\n }\n },\n\n methods: {\n\n // http://docs.jquery.com/Plugins/Validation/Methods/required\n required: function (value, element, param) {\n // check if dependency is met\n if (!this.depend(param, element))\n return \"dependency-mismatch\";\n switch (element.nodeName.toLowerCase()) {\n case 'select':\n // could be an array for select-multiple or a string, both are fine this way\n var val = $(element).val();\n return val && val.length > 0;\n case 'input':\n if (this.checkable(element))\n return this.getLength(value, element) > 0;\n default:\n return $.trim(value).length > 0;\n }\n },\n\n // http://docs.jquery.com/Plugins/Validation/Methods/remote\n remote: function (value, element, param) {\n if (this.optional(element))\n return \"dependency-mismatch\";\n\n var previous = this.previousValue(element);\n if (!this.settings.messages[element.name])\n this.settings.messages[element.name] = {};\n previous.originalMessage = this.settings.messages[element.name].remote;\n this.settings.messages[element.name].remote = previous.message;\n\n param = typeof param == \"string\" && { url: param} || param;\n\n if (this.pending[element.name]) {\n return \"pending\";\n }\n if (previous.old === value) {\n return previous.valid;\n }\n\n previous.old = value;\n var validator = this;\n this.startRequest(element);\n var data = {};\n data[element.name] = value;\n $.ajax($.extend(true, {\n url: param,\n mode: \"abort\",\n port: \"validate\" + element.name,\n dataType: \"json\",\n data: data,\n success: function (response) {\n validator.settings.messages[element.name].remote = previous.originalMessage;\n var valid = response === true;\n if (valid) {\n var submitted = validator.formSubmitted;\n validator.prepareElement(element);\n validator.formSubmitted = submitted;\n validator.successList.push(element);\n validator.showErrors();\n } else {\n var errors = {};\n var message = response || validator.defaultMessage(element, \"remote\");\n errors[element.name] = previous.message = $.isFunction(message) ? message(value) : message;\n validator.showErrors(errors);\n }\n previous.valid = valid;\n validator.stopRequest(element, valid);\n }\n }, param));\n return \"pending\";\n },\n\n // http://docs.jquery.com/Plugins/Validation/Methods/minlength\n minlength: function (value, element, param) {\n return this.optional(element) || this.getLength($.trim(value), element) >= param;\n },\n\n // http://docs.jquery.com/Plugins/Validation/Methods/maxlength\n maxlength: function (value, element, param) {\n return this.optional(element) || this.getLength($.trim(value), element) <= param;\n },\n\n // http://docs.jquery.com/Plugins/Validation/Methods/rangelength\n rangelength: function (value, element, param) {\n var length = this.getLength($.trim(value), element);\n return this.optional(element) || (length >= param[0] && length <= param[1]);\n },\n\n // http://docs.jquery.com/Plugins/Validation/Methods/min\n min: function (value, element, param) {\n return this.optional(element) || value >= param;\n },\n\n // http://docs.jquery.com/Plugins/Validation/Methods/max\n max: function (value, element, param) {\n return this.optional(element) || value <= param;\n },\n\n // http://docs.jquery.com/Plugins/Validation/Methods/range\n range: function (value, element, param) {\n return this.optional(element) || (value >= param[0] && value <= param[1]);\n },\n\n // http://docs.jquery.com/Plugins/Validation/Methods/email\n email: function (value, element) {\n // contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/\n return this.optional(element) || /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?$/i.test(value);\n },\n\n // http://docs.jquery.com/Plugins/Validation/Methods/url\n url: function (value, element) {\n // contributed by Scott Gonzalez: http://projects.scottsplayground.com/iri/\n return this.optional(element) || /^(https?|ftp):\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i.test(value);\n },\n\n // http://docs.jquery.com/Plugins/Validation/Methods/date\n date: function (value, element) {\n return this.optional(element) || !/Invalid|NaN/.test(new Date(value));\n },\n\n // http://docs.jquery.com/Plugins/Validation/Methods/dateISO\n dateISO: function (value, element) {\n return this.optional(element) || /^\\d{4}[\\/-]\\d{1,2}[\\/-]\\d{1,2}$/.test(value);\n },\n\n // http://docs.jquery.com/Plugins/Validation/Methods/number\n number: function (value, element) {\n return this.optional(element) || /^-?(?:\\d+|\\d{1,3}(?:,\\d{3})+)(?:\\.\\d+)?$/.test(value);\n },\n\n // http://docs.jquery.com/Plugins/Validation/Methods/digits\n digits: function (value, element) {\n return this.optional(element) || /^\\d+$/.test(value);\n },\n\n // http://docs.jquery.com/Plugins/Validation/Methods/creditcard\n // based on http://en.wikipedia.org/wiki/Luhn\n creditcard: function (value, element) {\n if (this.optional(element))\n return \"dependency-mismatch\";\n // accept only digits and dashes\n if (/[^0-9-]+/.test(value))\n return false;\n var nCheck = 0,\n\t\t\t\tnDigit = 0,\n\t\t\t\tbEven = false;\n\n value = value.replace(/\\D/g, \"\");\n\n for (var n = value.length - 1; n >= 0; n--) {\n var cDigit = value.charAt(n);\n var nDigit = parseInt(cDigit, 10);\n if (bEven) {\n if ((nDigit *= 2) > 9)\n nDigit -= 9;\n }\n nCheck += nDigit;\n bEven = !bEven;\n }\n\n return (nCheck % 10) == 0;\n },\n\n // http://docs.jquery.com/Plugins/Validation/Methods/accept\n accept: function (value, element, param) {\n param = typeof param == \"string\" ? param.replace(/,/g, '|') : \"png|jpe?g|gif\";\n return this.optional(element) || value.match(new RegExp(\".(\" + param + \")$\", \"i\"));\n },\n\n // http://docs.jquery.com/Plugins/Validation/Methods/equalTo\n equalTo: function (value, element, param) {\n // bind to the blur event of the target in order to revalidate whenever the target field is updated\n // TODO find a way to bind the event just once, avoiding the unbind-rebind overhead\n var target = $(param).unbind(\".validate-equalTo\").bind(\"blur.validate-equalTo\", function () {\n $(element).valid();\n });\n return value == target.val();\n }\n\n }\n\n });\n\n // deprecated, use $.validator.format instead\n $.format = $.validator.format;\n\n})(jQuery);\n\n// ajax mode: abort\n// usage: $.ajax({ mode: \"abort\"[, port: \"uniqueport\"]});\n// if mode:\"abort\" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()\n;(function($) {\n\tvar pendingRequests = {};\n\t// Use a prefilter if available (1.5+)\n\tif ( $.ajaxPrefilter ) {\n\t\t$.ajaxPrefilter(function(settings, _, xhr) {\n\t\t\tvar port = settings.port;\n\t\t\tif (settings.mode == \"abort\") {\n\t\t\t\tif ( pendingRequests[port] ) {\n\t\t\t\t\tpendingRequests[port].abort();\n\t\t\t\t}\n\t\t\t\tpendingRequests[port] = xhr;\n\t\t\t}\n\t\t});\n\t} else {\n\t\t// Proxy ajax\n\t\tvar ajax = $.ajax;\n\t\t$.ajax = function(settings) {\n\t\t\tvar mode = ( \"mode\" in settings ? settings : $.ajaxSettings ).mode,\n\t\t\t\tport = ( \"port\" in settings ? settings : $.ajaxSettings ).port;\n\t\t\tif (mode == \"abort\") {\n\t\t\t\tif ( pendingRequests[port] ) {\n\t\t\t\t\tpendingRequests[port].abort();\n\t\t\t\t}\n\t\t\t\treturn (pendingRequests[port] = ajax.apply(this, arguments));\n\t\t\t}\n\t\t\treturn ajax.apply(this, arguments);\n\t\t};\n\t}\n})(jQuery);\n\n// provides cross-browser focusin and focusout events\n// IE has native support, in other browsers, use event caputuring (neither bubbles)\n\n// provides delegate(type: String, delegate: Selector, handler: Callback) plugin for easier event delegation\n// handler is only called when $(event.target).is(delegate), in the scope of the jquery-object for event.target\n;(function($) {\n\t// only implement if not provided by jQuery core (since 1.4)\n\t// TODO verify if jQuery 1.4's implementation is compatible with older jQuery special-event APIs\n\tif (!jQuery.event.special.focusin && !jQuery.event.special.focusout && document.addEventListener) {\n\t\t$.each({\n\t\t\tfocus: 'focusin',\n\t\t\tblur: 'focusout'\n\t\t}, function( original, fix ){\n\t\t\t$.event.special[fix] = {\n\t\t\t\tsetup:function() {\n\t\t\t\t\tthis.addEventListener( original, handler, true );\n\t\t\t\t},\n\t\t\t\tteardown:function() {\n\t\t\t\t\tthis.removeEventListener( original, handler, true );\n\t\t\t\t},\n\t\t\t\thandler: function(e) {\n\t\t\t\t\targuments[0] = $.event.fix(e);\n\t\t\t\t\targuments[0].type = fix;\n\t\t\t\t\treturn $.event.handle.apply(this, arguments);\n\t\t\t\t}\n\t\t\t};\n\t\t\tfunction handler(e) {\n\t\t\t\te = $.event.fix(e);\n\t\t\t\te.type = fix;\n\t\t\t\treturn $.event.handle.call(this, e);\n\t\t\t}\n\t\t});\n\t};\n\t$.extend($.fn, {\n\t\tvalidateDelegate: function(delegate, type, handler) {\n\t\t\treturn this.bind(type, function(event) {\n\t\t\t\tvar target = $(event.target);\n\t\t\t\tif (target.is(delegate)) {\n\t\t\t\t\treturn handler.apply(target, arguments);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n})(jQuery);\n","/*!\n** Unobtrusive validation support library for jQuery and jQuery Validate\n** Copyright (C) Microsoft Corporation. All rights reserved.\n*/\n\n/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */\n/*global document: false, jQuery: false */\n\n(function ($) {\n var $jQval = $.validator,\n adapters,\n data_validation = \"unobtrusiveValidation\";\n\n function setValidationValues(options, ruleName, value) {\n options.rules[ruleName] = value;\n if (options.message) {\n options.messages[ruleName] = options.message;\n }\n }\n\n function splitAndTrim(value) {\n return value.replace(/^\\s+|\\s+$/g, \"\").split(/\\s*,\\s*/g);\n }\n\n function getModelPrefix(fieldName) {\n return fieldName.substr(0, fieldName.lastIndexOf(\".\") + 1);\n }\n\n function appendModelPrefix(value, prefix) {\n if (value.indexOf(\"*.\") === 0) {\n value = value.replace(\"*.\", prefix);\n }\n return value;\n }\n\n function onError(error, inputElement) { // 'this' is the form element\n var container = $(this).find(\"[data-valmsg-for='\" + inputElement[0].name + \"']\"),\n replace = $.parseJSON(container.attr(\"data-valmsg-replace\")) !== false;\n\n container.removeClass(\"field-validation-valid\").addClass(\"field-validation-error\");\n error.data(\"unobtrusiveContainer\", container);\n\n if (replace) {\n container.empty();\n error.removeClass(\"input-validation-error\").appendTo(container);\n }\n else {\n error.hide();\n }\n }\n\n function onErrors(form, validator) { // 'this' is the form element\n var container = $(this).find(\"[data-valmsg-summary=true]\"),\n list = container.find(\"ul\");\n\n if (list && list.length && validator.errorList.length) {\n list.empty();\n container.addClass(\"validation-summary-errors\").removeClass(\"validation-summary-valid\");\n\n $.each(validator.errorList, function () {\n $(\"
  • \").html(this.message).appendTo(list);\n });\n }\n }\n\n function onSuccess(error) { // 'this' is the form element\n var container = error.data(\"unobtrusiveContainer\"),\n replace = $.parseJSON(container.attr(\"data-valmsg-replace\"));\n\n if (container) {\n container.addClass(\"field-validation-valid\").removeClass(\"field-validation-error\");\n error.removeData(\"unobtrusiveContainer\");\n\n if (replace) {\n container.empty();\n }\n }\n }\n\n function validationInfo(form) {\n var $form = $(form),\n result = $form.data(data_validation);\n\n if (!result) {\n result = {\n options: { // options structure passed to jQuery Validate's validate() method\n errorClass: \"input-validation-error\",\n errorElement: \"span\",\n errorPlacement: $.proxy(onError, form),\n invalidHandler: $.proxy(onErrors, form),\n messages: {},\n rules: {},\n success: $.proxy(onSuccess, form)\n },\n attachValidation: function () {\n $form.validate(this.options);\n },\n validate: function () { // a validation function that is called by unobtrusive Ajax\n $form.validate();\n return $form.valid();\n }\n };\n $form.data(data_validation, result);\n }\n\n return result;\n }\n\n $jQval.unobtrusive = {\n adapters: [],\n\n parseElement: function (element, skipAttach) {\n /// \n /// Parses a single HTML element for unobtrusive validation attributes.\n /// \n /// The HTML element to be parsed.\n /// [Optional] true to skip attaching the\n /// validation to the form. If parsing just this single element, you should specify true.\n /// If parsing several elements, you should specify false, and manually attach the validation\n /// to the form when you are finished. The default is false.\n var $element = $(element),\n form = $element.parents(\"form\")[0],\n valInfo, rules, messages;\n\n if (!form) { // Cannot do client-side validation without a form\n return;\n }\n\n valInfo = validationInfo(form);\n valInfo.options.rules[element.name] = rules = {};\n valInfo.options.messages[element.name] = messages = {};\n\n $.each(this.adapters, function () {\n var prefix = \"data-val-\" + this.name,\n message = $element.attr(prefix),\n paramValues = {};\n\n if (message !== undefined) { // Compare against undefined, because an empty message is legal (and falsy)\n prefix += \"-\";\n\n $.each(this.params, function () {\n paramValues[this] = $element.attr(prefix + this);\n });\n\n this.adapt({\n element: element,\n form: form,\n message: message,\n params: paramValues,\n rules: rules,\n messages: messages\n });\n }\n });\n\n jQuery.extend(rules, { \"__dummy__\": true });\n\n if (!skipAttach) {\n valInfo.attachValidation();\n }\n },\n\n parse: function (selector) {\n /// \n /// Parses all the HTML elements in the specified selector. It looks for input elements decorated\n /// with the [data-val=true] attribute value and enables validation according to the data-val-*\n /// attribute values.\n /// \n /// Any valid jQuery selector.\n $(selector).find(\":input[data-val=true]\").each(function () {\n $jQval.unobtrusive.parseElement(this, true);\n });\n\n $(\"form\").each(function () {\n var info = validationInfo(this);\n if (info) {\n info.attachValidation();\n }\n });\n }\n };\n\n adapters = $jQval.unobtrusive.adapters;\n\n adapters.add = function (adapterName, params, fn) {\n /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation.\n /// The name of the adapter to be added. This matches the name used\n /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).\n /// [Optional] An array of parameter names (strings) that will\n /// be extracted from the data-val-nnnn-mmmm HTML attributes (where nnnn is the adapter name, and\n /// mmmm is the parameter name).\n /// The function to call, which adapts the values from the HTML\n /// attributes into jQuery Validate rules and/or messages.\n /// \n if (!fn) { // Called with no params, just a function\n fn = params;\n params = [];\n }\n this.push({ name: adapterName, params: params, adapt: fn });\n return this;\n };\n\n adapters.addBool = function (adapterName, ruleName) {\n /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where\n /// the jQuery Validate validation rule has no parameter values.\n /// The name of the adapter to be added. This matches the name used\n /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).\n /// [Optional] The name of the jQuery Validate rule. If not provided, the value\n /// of adapterName will be used instead.\n /// \n return this.add(adapterName, function (options) {\n setValidationValues(options, ruleName || adapterName, true);\n });\n };\n\n adapters.addMinMax = function (adapterName, minRuleName, maxRuleName, minMaxRuleName, minAttribute, maxAttribute) {\n /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where\n /// the jQuery Validate validation has three potential rules (one for min-only, one for max-only, and\n /// one for min-and-max). The HTML parameters are expected to be named -min and -max.\n /// The name of the adapter to be added. This matches the name used\n /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).\n /// The name of the jQuery Validate rule to be used when you only\n /// have a minimum value.\n /// The name of the jQuery Validate rule to be used when you only\n /// have a maximum value.\n /// The name of the jQuery Validate rule to be used when you\n /// have both a minimum and maximum value.\n /// [Optional] The name of the HTML attribute that\n /// contains the minimum value. The default is \"min\".\n /// [Optional] The name of the HTML attribute that\n /// contains the maximum value. The default is \"max\".\n /// \n return this.add(adapterName, [minAttribute || \"min\", maxAttribute || \"max\"], function (options) {\n var min = options.params.min,\n max = options.params.max;\n\n if (min && max) {\n setValidationValues(options, minMaxRuleName, [min, max]);\n }\n else if (min) {\n setValidationValues(options, minRuleName, min);\n }\n else if (max) {\n setValidationValues(options, maxRuleName, max);\n }\n });\n };\n\n adapters.addSingleVal = function (adapterName, attribute, ruleName) {\n /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where\n /// the jQuery Validate validation rule has a single value.\n /// The name of the adapter to be added. This matches the name used\n /// in the data-val-nnnn HTML attribute(where nnnn is the adapter name).\n /// [Optional] The name of the HTML attribute that contains the value.\n /// The default is \"val\".\n /// [Optional] The name of the jQuery Validate rule. If not provided, the value\n /// of adapterName will be used instead.\n /// \n return this.add(adapterName, [attribute || \"val\"], function (options) {\n setValidationValues(options, ruleName || adapterName, options.params[attribute]);\n });\n };\n\n $jQval.addMethod(\"__dummy__\", function (value, element, params) {\n return true;\n });\n\n $jQval.addMethod(\"regex\", function (value, element, params) {\n var match;\n if (this.optional(element)) {\n return true;\n }\n\n match = new RegExp(params).exec(value);\n return (match && (match.index === 0) && (match[0].length === value.length));\n });\n\n adapters.addSingleVal(\"accept\", \"exts\").addSingleVal(\"regex\", \"pattern\");\n adapters.addBool(\"creditcard\").addBool(\"date\").addBool(\"digits\").addBool(\"email\").addBool(\"number\").addBool(\"url\");\n adapters.addMinMax(\"length\", \"minlength\", \"maxlength\", \"rangelength\").addMinMax(\"range\", \"min\", \"max\", \"range\");\n adapters.add(\"equalto\", [\"other\"], function (options) {\n var prefix = getModelPrefix(options.element.name),\n other = options.params.other,\n fullOtherName = appendModelPrefix(other, prefix),\n element = $(options.form).find(\":input[name=\" + fullOtherName + \"]\")[0];\n\n setValidationValues(options, \"equalTo\", element);\n });\n adapters.add(\"required\", function (options) {\n // jQuery Validate equates \"required\" with \"mandatory\" for checkbox elements\n if (options.element.tagName.toUpperCase() !== \"INPUT\" || options.element.type.toUpperCase() !== \"CHECKBOX\") {\n setValidationValues(options, \"required\", true);\n }\n });\n adapters.add(\"remote\", [\"url\", \"type\", \"additionalfields\"], function (options) {\n var value = {\n url: options.params.url,\n type: options.params.type || \"GET\",\n data: {}\n },\n prefix = getModelPrefix(options.element.name);\n\n $.each(splitAndTrim(options.params.additionalfields || options.element.name), function (i, fieldName) {\n var paramName = appendModelPrefix(fieldName, prefix);\n value.data[paramName] = function () {\n\n // cartegraph change: allow initial value for remote vaidation ---\n if (paramName == \"InitialValue\") {\n return $(options.element).attr('InitialValue');\n }\n else if (paramName == \"fieldname\") {\n return $(options.element).attr('fieldname');\n }\n else if (paramName == \"filter\") {\n var inst = $(options.element).data('autocompletegrid');\n if (inst)\n return $(options.element).autocompletegrid(\"getFilter\");\n else\n return $(options.element).attr(\"navfilter\");\n }\n else {\n return $(options.form).find(\":input[name='\" + paramName + \"']\").val();\n }\n // end cartegraph change ---\n };\n });\n\n setValidationValues(options, \"remote\", value);\n });\n\n $(function () {\n $jQval.unobtrusive.parse(document);\n });\n} (jQuery));","/*!\n* jQuery hashchange event - v1.3 - 7/21/2010\n* http://benalman.com/projects/jquery-hashchange-plugin/\n* \n* Copyright (c) 2010 \"Cowboy\" Ben Alman\n* Dual licensed under the MIT and GPL licenses.\n* http://benalman.com/about/license/\n*/\n\n// Script: jQuery hashchange event\n//\n// *Version: 1.3, Last updated: 7/21/2010*\n// \n// Project Home - http://benalman.com/projects/jquery-hashchange-plugin/\n// GitHub - http://github.com/cowboy/jquery-hashchange/\n// Source - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.js\n// (Minified) - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.min.js (0.8kb gzipped)\n// \n// About: License\n// \n// Copyright (c) 2010 \"Cowboy\" Ben Alman,\n// Dual licensed under the MIT and GPL licenses.\n// http://benalman.com/about/license/\n// \n// About: Examples\n// \n// These working examples, complete with fully commented code, illustrate a few\n// ways in which this plugin can be used.\n// \n// hashchange event - http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/\n// document.domain - http://benalman.com/code/projects/jquery-hashchange/examples/document_domain/\n// \n// About: Support and Testing\n// \n// Information about what version or versions of jQuery this plugin has been\n// tested with, what browsers it has been tested in, and where the unit tests\n// reside (so you can test it yourself).\n// \n// jQuery Versions - 1.2.6, 1.3.2, 1.4.1, 1.4.2\n// Browsers Tested - Internet Explorer 6-8, Firefox 2-4, Chrome 5-6, Safari 3.2-5,\n// Opera 9.6-10.60, iPhone 3.1, Android 1.6-2.2, BlackBerry 4.6-5.\n// Unit Tests - http://benalman.com/code/projects/jquery-hashchange/unit/\n// \n// About: Known issues\n// \n// While this jQuery hashchange event implementation is quite stable and\n// robust, there are a few unfortunate browser bugs surrounding expected\n// hashchange event-based behaviors, independent of any JavaScript\n// window.onhashchange abstraction. See the following examples for more\n// information:\n// \n// Chrome: Back Button - http://benalman.com/code/projects/jquery-hashchange/examples/bug-chrome-back-button/\n// Firefox: Remote XMLHttpRequest - http://benalman.com/code/projects/jquery-hashchange/examples/bug-firefox-remote-xhr/\n// WebKit: Back Button in an Iframe - http://benalman.com/code/projects/jquery-hashchange/examples/bug-webkit-hash-iframe/\n// Safari: Back Button from a different domain - http://benalman.com/code/projects/jquery-hashchange/examples/bug-safari-back-from-diff-domain/\n// \n// Also note that should a browser natively support the window.onhashchange \n// event, but not report that it does, the fallback polling loop will be used.\n// \n// About: Release History\n// \n// 1.3 - (7/21/2010) Reorganized IE6/7 Iframe code to make it more\n// \"removable\" for mobile-only development. Added IE6/7 document.title\n// support. Attempted to make Iframe as hidden as possible by using\n// techniques from http://www.paciellogroup.com/blog/?p=604. Added \n// support for the \"shortcut\" format $(window).hashchange( fn ) and\n// $(window).hashchange() like jQuery provides for built-in events.\n// Renamed jQuery.hashchangeDelay to and\n// lowered its default value to 50. Added \n// and properties plus document-domain.html\n// file to address access denied issues when setting document.domain in\n// IE6/7.\n// 1.2 - (2/11/2010) Fixed a bug where coming back to a page using this plugin\n// from a page on another domain would cause an error in Safari 4. Also,\n// IE6/7 Iframe is now inserted after the body (this actually works),\n// which prevents the page from scrolling when the event is first bound.\n// Event can also now be bound before DOM ready, but it won't be usable\n// before then in IE6/7.\n// 1.1 - (1/21/2010) Incorporated document.documentMode test to fix IE8 bug\n// where browser version is incorrectly reported as 8.0, despite\n// inclusion of the X-UA-Compatible IE=EmulateIE7 meta tag.\n// 1.0 - (1/9/2010) Initial Release. Broke out the jQuery BBQ event.special\n// window.onhashchange functionality into a separate plugin for users\n// who want just the basic event & back button support, without all the\n// extra awesomeness that BBQ provides. This plugin will be included as\n// part of jQuery BBQ, but also be available separately.\n\n(function ($, window, undefined) {\n '$:nomunge'; // Used by YUI compressor.\n\n // Reused string.\n var str_hashchange = 'hashchange',\n\n // Method / object references.\n doc = document,\n fake_onhashchange,\n special = $.event.special,\n\n // Does the browser support window.onhashchange? Note that IE8 running in\n // IE7 compatibility mode reports true for 'onhashchange' in window, even\n // though the event isn't supported, so also test document.documentMode.\n doc_mode = doc.documentMode,\n supports_onhashchange = 'on' + str_hashchange in window && (doc_mode === undefined || doc_mode > 7);\n\n // Get location.hash (or what you'd expect location.hash to be) sans any\n // leading #. Thanks for making this necessary, Firefox!\n function get_fragment(url) {\n url = url || location.href;\n return '#' + url.replace(/^[^#]*#?(.*)$/, '$1');\n };\n\n // Method: jQuery.fn.hashchange\n // \n // Bind a handler to the window.onhashchange event or trigger all bound\n // window.onhashchange event handlers. This behavior is consistent with\n // jQuery's built-in event handlers.\n // \n // Usage:\n // \n // > jQuery(window).hashchange( [ handler ] );\n // \n // Arguments:\n // \n // handler - (Function) Optional handler to be bound to the hashchange\n // event. This is a \"shortcut\" for the more verbose form:\n // jQuery(window).bind( 'hashchange', handler ). If handler is omitted,\n // all bound window.onhashchange event handlers will be triggered. This\n // is a shortcut for the more verbose\n // jQuery(window).trigger( 'hashchange' ). These forms are described in\n // the section.\n // \n // Returns:\n // \n // (jQuery) The initial jQuery collection of elements.\n\n // Allow the \"shortcut\" format $(elem).hashchange( fn ) for binding and\n // $(elem).hashchange() for triggering, like jQuery does for built-in events.\n $.fn[str_hashchange] = function (fn) {\n return fn ? this.bind(str_hashchange, fn) : this.trigger(str_hashchange);\n };\n\n // Property: jQuery.fn.hashchange.delay\n // \n // The numeric interval (in milliseconds) at which the \n // polling loop executes. Defaults to 50.\n\n // Property: jQuery.fn.hashchange.domain\n // \n // If you're setting document.domain in your JavaScript, and you want hash\n // history to work in IE6/7, not only must this property be set, but you must\n // also set document.domain BEFORE jQuery is loaded into the page. This\n // property is only applicable if you are supporting IE6/7 (or IE8 operating\n // in \"IE7 compatibility\" mode).\n // \n // In addition, the property must be set to the\n // path of the included \"document-domain.html\" file, which can be renamed or\n // modified if necessary (note that the document.domain specified must be the\n // same in both your main JavaScript as well as in this file).\n // \n // Usage:\n // \n // jQuery.fn.hashchange.domain = document.domain;\n\n // Property: jQuery.fn.hashchange.src\n // \n // If, for some reason, you need to specify an Iframe src file (for example,\n // when setting document.domain as in ), you can\n // do so using this property. Note that when using this property, history\n // won't be recorded in IE6/7 until the Iframe src file loads. This property\n // is only applicable if you are supporting IE6/7 (or IE8 operating in \"IE7\n // compatibility\" mode).\n // \n // Usage:\n // \n // jQuery.fn.hashchange.src = 'path/to/file.html';\n\n $.fn[str_hashchange].delay = 50;\n /*\n $.fn[ str_hashchange ].domain = null;\n $.fn[ str_hashchange ].src = null;\n */\n\n // Event: hashchange event\n // \n // Fired when location.hash changes. In browsers that support it, the native\n // HTML5 window.onhashchange event is used, otherwise a polling loop is\n // initialized, running every milliseconds to\n // see if the hash has changed. In IE6/7 (and IE8 operating in \"IE7\n // compatibility\" mode), a hidden Iframe is created to allow the back button\n // and hash-based history to work.\n // \n // Usage as described in :\n // \n // > // Bind an event handler.\n // > jQuery(window).hashchange( function(e) {\n // > var hash = location.hash;\n // > ...\n // > });\n // > \n // > // Manually trigger the event handler.\n // > jQuery(window).hashchange();\n // \n // A more verbose usage that allows for event namespacing:\n // \n // > // Bind an event handler.\n // > jQuery(window).bind( 'hashchange', function(e) {\n // > var hash = location.hash;\n // > ...\n // > });\n // > \n // > // Manually trigger the event handler.\n // > jQuery(window).trigger( 'hashchange' );\n // \n // Additional Notes:\n // \n // * The polling loop and Iframe are not created until at least one handler\n // is actually bound to the 'hashchange' event.\n // * If you need the bound handler(s) to execute immediately, in cases where\n // a location.hash exists on page load, via bookmark or page refresh for\n // example, use jQuery(window).hashchange() or the more verbose \n // jQuery(window).trigger( 'hashchange' ).\n // * The event can be bound before DOM ready, but since it won't be usable\n // before then in IE6/7 (due to the necessary Iframe), recommended usage is\n // to bind it inside a DOM ready handler.\n\n // Override existing $.event.special.hashchange methods (allowing this plugin\n // to be defined after jQuery BBQ in BBQ's source code).\n special[str_hashchange] = $.extend(special[str_hashchange], {\n\n // Called only when the first 'hashchange' event is bound to window.\n setup: function () {\n // If window.onhashchange is supported natively, there's nothing to do..\n if (supports_onhashchange) { return false; }\n\n // Otherwise, we need to create our own. And we don't want to call this\n // until the user binds to the event, just in case they never do, since it\n // will create a polling loop and possibly even a hidden Iframe.\n $(fake_onhashchange.start);\n },\n\n // Called only when the last 'hashchange' event is unbound from window.\n teardown: function () {\n // If window.onhashchange is supported natively, there's nothing to do..\n if (supports_onhashchange) { return false; }\n\n // Otherwise, we need to stop ours (if possible).\n $(fake_onhashchange.stop);\n }\n\n });\n\n // fake_onhashchange does all the work of triggering the window.onhashchange\n // event for browsers that don't natively support it, including creating a\n // polling loop to watch for hash changes and in IE 6/7 creating a hidden\n // Iframe to enable back and forward.\n fake_onhashchange = (function () {\n var self = {},\n timeout_id,\n\n // Remember the initial hash so it doesn't get triggered immediately.\n last_hash = get_fragment(),\n\n fn_retval = function (val) { return val; },\n history_set = fn_retval,\n history_get = fn_retval;\n\n // Start the polling loop.\n self.start = function () {\n timeout_id || poll();\n };\n\n // Stop the polling loop.\n self.stop = function () {\n timeout_id && clearTimeout(timeout_id);\n timeout_id = undefined;\n };\n\n // This polling loop checks every $.fn.hashchange.delay milliseconds to see\n // if location.hash has changed, and triggers the 'hashchange' event on\n // window when necessary.\n function poll() {\n var hash = get_fragment(),\n history_hash = history_get(last_hash);\n\n if (hash !== last_hash) {\n history_set(last_hash = hash, history_hash);\n\n $(window).trigger(str_hashchange);\n\n } else if (history_hash !== last_hash) {\n location.href = location.href.replace(/#.*/, '') + history_hash;\n }\n\n timeout_id = setTimeout(poll, $.fn[str_hashchange].delay);\n };\n\n // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n // vvvvvvvvvvvvvvvvvvv REMOVE IF NOT SUPPORTING IE6/7/8 vvvvvvvvvvvvvvvvvvv\n // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv\n $.browser.msie && !supports_onhashchange && (function () {\n // Not only do IE6/7 need the \"magical\" Iframe treatment, but so does IE8\n // when running in \"IE7 compatibility\" mode.\n\n var iframe,\n iframe_src;\n\n // When the event is bound and polling starts in IE 6/7, create a hidden\n // Iframe for history handling.\n self.start = function () {\n if (!iframe) {\n iframe_src = $.fn[str_hashchange].src;\n iframe_src = iframe_src && iframe_src + get_fragment();\n\n // Create hidden Iframe. Attempt to make Iframe as hidden as possible\n // by using techniques from http://www.paciellogroup.com/blog/?p=604.\n iframe = $('')\n\t\t: $('
    ');\n\n var lyr2 = opts.theme\n\t \t? $('
    ')\n\t \t: $('
    ');\n\n var lyr3, s;\n if (opts.theme && full) {\n s = '
    ' +\n\t\t\t\t'
    ' + (opts.title || ' ') + '
    ' +\n\t\t\t\t'
    ' +\n\t\t\t'
    ';\n }\n else if (opts.theme) {\n s = '
    ' +\n\t\t\t\t'
    ' + (opts.title || ' ') + '
    ' +\n\t\t\t\t'
    ' +\n\t\t\t'
    ';\n }\n else if (full) {\n s = '
    ';\n }\n else {\n s = '
    ';\n }\n lyr3 = $(s);\n\n // if we have a message, style it\n if (msg) {\n if (opts.theme) {\n lyr3.css(themedCSS);\n lyr3.addClass('ui-widget-content');\n }\n else\n lyr3.css(css);\n }\n\n // style the overlay\n if (!opts.theme && (!opts.applyPlatformOpacityRules || !($.browser.mozilla && /Linux/.test(navigator.platform))))\n lyr2.css(opts.overlayCSS);\n lyr2.css('position', full ? 'fixed' : 'absolute');\n\n // make iframe layer transparent in IE\n if ($.browser.msie || opts.forceIframe)\n lyr1.css('opacity', 0.0);\n\n //$([lyr1[0],lyr2[0],lyr3[0]]).appendTo(full ? 'body' : el);\n var layers = [lyr1, lyr2, lyr3], $par = full ? $('body') : $(el);\n $.each(layers, function () {\n this.appendTo($par);\n });\n\n if (opts.theme && opts.draggable && $.fn.draggable) {\n lyr3.draggable({\n handle: '.ui-dialog-titlebar',\n cancel: 'li'\n });\n }\n\n // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)\n var expr = setExpr && (!$.boxModel || $('object,embed', full ? null : el).length > 0);\n if (ie6 || expr) {\n // give body 100% height\n if (full && opts.allowBodyStretch && $.boxModel)\n $('html,body').css('height', '100%');\n\n // fix ie6 issue when blocked element has a border width\n if ((ie6 || !$.boxModel) && !full) {\n var t = sz(el, 'borderTopWidth'), l = sz(el, 'borderLeftWidth');\n var fixT = t ? '(0 - ' + t + ')' : 0;\n var fixL = l ? '(0 - ' + l + ')' : 0;\n }\n\n // simulate fixed position\n $.each([lyr1, lyr2, lyr3], function (i, o) {\n var s = o[0].style;\n s.position = 'absolute';\n if (i < 2) {\n full ? s.setExpression('height', 'Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.boxModel?0:' + opts.quirksmodeOffsetHack + ') + \"px\"')\n\t\t\t\t\t : s.setExpression('height', 'this.parentNode.offsetHeight + \"px\"');\n full ? s.setExpression('width', 'jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth + \"px\"')\n\t\t\t\t\t : s.setExpression('width', 'this.parentNode.offsetWidth + \"px\"');\n if (fixL) s.setExpression('left', fixL);\n if (fixT) s.setExpression('top', fixT);\n }\n else if (opts.centerY) {\n if (full) s.setExpression('top', '(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + \"px\"');\n s.marginTop = 0;\n }\n else if (!opts.centerY && full) {\n var top = (opts.css && opts.css.top) ? parseInt(opts.css.top) : 0;\n var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + ' + top + ') + \"px\"';\n s.setExpression('top', expression);\n }\n });\n }\n\n // show the message\n if (msg) {\n if (opts.theme)\n lyr3.find('.ui-widget-content').append(msg);\n else\n lyr3.append(msg);\n if (msg.jquery || msg.nodeType)\n $(msg).show();\n }\n\n if (($.browser.msie || opts.forceIframe) && opts.showOverlay)\n lyr1.show(); // opacity is zero\n if (opts.fadeIn) {\n var cb = opts.onBlock ? opts.onBlock : noOp;\n var cb1 = (opts.showOverlay && !msg) ? cb : noOp;\n var cb2 = msg ? cb : noOp;\n if (opts.showOverlay)\n lyr2._fadeIn(opts.fadeIn, cb1);\n if (msg)\n lyr3._fadeIn(opts.fadeIn, cb2);\n }\n else {\n if (opts.showOverlay)\n lyr2.show();\n if (msg)\n lyr3.show();\n if (opts.onBlock)\n opts.onBlock();\n }\n\n // bind key and mouse events\n bind(1, el, opts);\n\n if (full) {\n pageBlock = lyr3[0];\n pageBlockEls = $(':input:enabled:visible', pageBlock);\n if (opts.focusInput)\n setTimeout(focus, 20);\n }\n else\n center(lyr3[0], opts.centerX, opts.centerY);\n\n if (opts.timeout) {\n // auto-unblock\n var to = setTimeout(function () {\n full ? $.unblockUI(opts) : $(el).unblock(opts);\n }, opts.timeout);\n $(el).data('blockUI.timeout', to);\n }\n };\n\n // remove the block\n function remove(el, opts) {\n var full = (el == window);\n var $el = $(el);\n var data = $el.data('blockUI.history');\n var to = $el.data('blockUI.timeout');\n if (to) {\n clearTimeout(to);\n $el.removeData('blockUI.timeout');\n }\n opts = $.extend({}, $.blockUI.defaults, opts || {});\n bind(0, el, opts); // unbind events\n\n if (opts.onUnblock === null) {\n opts.onUnblock = $el.data('blockUI.onUnblock');\n $el.removeData('blockUI.onUnblock');\n }\n\n var els;\n if (full) // crazy selector to handle odd field errors in ie6/7\n els = $('body').children().filter('.blockUI').add('body > .blockUI');\n else\n els = $('.blockUI', el);\n\n if (full)\n pageBlock = pageBlockEls = null;\n\n if (opts.fadeOut) {\n els.fadeOut(opts.fadeOut);\n setTimeout(function () { reset(els, data, opts, el); }, opts.fadeOut);\n }\n else\n reset(els, data, opts, el);\n };\n\n // move blocking element back into the DOM where it started\n function reset(els, data, opts, el) {\n els.each(function (i, o) {\n // remove via DOM calls so we don't lose event handlers\n if (this.parentNode)\n this.parentNode.removeChild(this);\n });\n\n if (data && data.el) {\n data.el.style.display = data.display;\n data.el.style.position = data.position;\n if (data.parent)\n data.parent.appendChild(data.el);\n $(el).removeData('blockUI.history');\n }\n\n if (typeof opts.onUnblock == 'function')\n opts.onUnblock(el, opts);\n };\n\n // bind/unbind the handler\n function bind(b, el, opts) {\n var full = el == window, $el = $(el);\n\n // don't bother unbinding if there is nothing to unbind\n if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked')))\n return;\n if (!full)\n $el.data('blockUI.isBlocked', b);\n\n // don't bind events when overlay is not in use or if bindEvents is false\n if (!opts.bindEvents || (b && !opts.showOverlay))\n return;\n\n // bind anchors and inputs for mouse and key events\n var events = 'mousedown mouseup keydown keypress';\n b ? $(document).bind(events, opts, handler) : $(document).unbind(events, handler);\n\n // former impl...\n //\t var $e = $('a,:input');\n //\t b ? $e.bind(events, opts, handler) : $e.unbind(events, handler);\n };\n\n // event handler to suppress keyboard/mouse events when blocking\n function handler(e) {\n // allow tab navigation (conditionally)\n if (e.keyCode && e.keyCode == 9) {\n if (pageBlock && e.data.constrainTabKey) {\n var els = pageBlockEls;\n var fwd = !e.shiftKey && e.target === els[els.length - 1];\n var back = e.shiftKey && e.target === els[0];\n if (fwd || back) {\n setTimeout(function () { focus(back) }, 10);\n return false;\n }\n }\n }\n var opts = e.data;\n // allow events within the message content\n if ($(e.target).parents('div.' + opts.blockMsgClass).length > 0)\n return true;\n\n // allow events for content that is not being blocked\n return $(e.target).parents().children().filter('div.blockUI').length == 0;\n };\n\n function focus(back) {\n if (!pageBlockEls)\n return;\n var e = pageBlockEls[back === true ? pageBlockEls.length - 1 : 0];\n if (e)\n e.focus();\n };\n\n function center(el, x, y) {\n var p = el.parentNode, s = el.style;\n var l = ((p.offsetWidth - el.offsetWidth) / 2) - sz(p, 'borderLeftWidth');\n var t = ((p.offsetHeight - el.offsetHeight) / 2) - sz(p, 'borderTopWidth');\n if (x) s.left = l > 0 ? (l + 'px') : '0';\n if (y) s.top = t > 0 ? (t + 'px') : '0';\n };\n\n function sz(el, p) {\n return parseInt($.css(el, p)) || 0;\n };\n\n})(jQuery);\n","/**\n* jQuery Cookie plugin\n*\n* Copyright (c) 2010 Klaus Hartl (stilbuero.de)\n* Dual licensed under the MIT and GPL licenses:\n* http://www.opensource.org/licenses/mit-license.php\n* http://www.gnu.org/licenses/gpl.html\n*\n*/\njQuery.cookie = function (key, value, options) {\n\n // key and at least value given, set cookie...\n if (arguments.length > 1 && String(value) !== \"[object Object]\") {\n options = jQuery.extend({}, options);\n\n if (value === null || value === undefined) {\n options.expires = -1;\n }\n\n if (typeof options.expires === 'number') {\n var days = options.expires, t = options.expires = new Date();\n t.setDate(t.getDate() + days);\n }\n\n value = String(value);\n\n return (document.cookie = [\n encodeURIComponent(key), '=',\n options.raw ? value : encodeURIComponent(value),\n options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE\n options.path ? '; path=' + options.path : '',\n options.domain ? '; domain=' + options.domain : '',\n options.secure ? '; secure' : ''\n ].join(''));\n }\n\n // key and possibly options given, get cookie...\n options = value || {};\n var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;\n return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;\n};\n",";(function($){\n/*!\n * jqGrid English Translation\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n$.jgrid = {\n\tdefaults : {\n\t\trecordtext: \"{0} - {1} of {2}\",\n\t\temptyrecords: \"0 - 0 of 0\",\n\t\tloadtext: \"\",\n\t\tpgtext : \"Page {0} of {1}\"\n\t},\n\tsearch : {\n\t\tcaption: \"Search...\",\n\t\tFind: \"Find\",\n\t\tReset: \"Reset\",\n\t\todata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"all\" },\t{ op: \"OR\", text: \"any\" }\t],\n\t\tmatchText: \" match\",\n\t\trulesText: \" rules\"\n\t},\n\tedit : {\n\t\taddCaption: \"Add Record\",\n\t\teditCaption: \"Edit Record\",\n\t\tbSubmit: \"Submit\",\n\t\tbCancel: \"Cancel\",\n\t\tbClose: \"Close\",\n\t\tsaveData: \"Data has been changed! Save changes?\",\n\t\tbYes : \"Yes\",\n\t\tbNo : \"No\",\n\t\tbExit : \"Cancel\",\n\t\tmsg: {\n\t\t\trequired:\"Field is required\",\n\t\t\tnumber:\"Please, enter valid number\",\n\t\t\tminValue:\"value must be greater than or equal to \",\n\t\t\tmaxValue:\"value must be less than or equal to\",\n\t\t\temail: \"is not a valid e-mail\",\n\t\t\tinteger: \"Please, enter valid integer value\",\n\t\t\tdate: \"Please, enter valid date value\",\n\t\t\turl: \"is not a valid URL. Prefix required ('http://' or 'https://')\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"View Record\",\n\t\tbClose: \"Close\"\n\t},\n\tdel : {\n\t\tcaption: \"Delete\",\n\t\tmsg: \"Delete selected record(s)?\",\n\t\tbSubmit: \"Delete\",\n\t\tbCancel: \"Cancel\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Edit selected row\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Add new row\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Delete selected row\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Find records\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Reload Grid\",\n\t\talertcap: \"Warning\",\n\t\talerttext: \"Please, select row\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"View selected row\"\n\t},\n\tcol : {\n\t\tcaption: \"Select columns\",\n\t\tbSubmit: \"Ok\",\n\t\tbCancel: \"Cancel\"\n\t},\n\terrors : {\n\t\terrcap : \"Error\",\n\t\tnourl : \"No url is set\",\n\t\tnorecords: \"No records to process\",\n\t\tmodel : \"Length of colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \",\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames: [\n\t\t\t\t\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thr\", \"Fri\", \"Sat\",\n\t\t\t\t\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\",\n\t\t\t\t\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t}\n};\n})(jQuery);\n","// ==ClosureCompiler==\n// @compilation_level SIMPLE_OPTIMIZATIONS\n\n/*!\n* @license jqGrid 4.3.0 - jQuery Grid\n* Copyright (c) 2008, Tony Tomov, tony@trirand.com\n* Dual licensed under the MIT and GPL licenses\n* http://www.opensource.org/licenses/mit-license.php\n* http://www.gnu.org/licenses/gpl-2.0.html\n* Date: 2011-12-12\n*/\n//jsHint options\n/*global document, window, jQuery, DOMParser, ActiveXObject, $, alert */\n\n// ==== Cartegraph changes ====\n/**\n* 12/02/2011 - Glenn and Brian\n* jqGrid does not support multiple column sort or triple state sort. Created a new sortData\n* function to support multiple column and triple state sort.\n*/\n/**\n* 02/13/2011 - Glenn.removeWaitScreen\n* Auto stretch the last (non-frozen) column to take up the remaining space of the grid width.\n* new option: carte_stretchLastColumn = true | false [default]\n*/\n/**\n* 02/13/2011 - Glenn\n* Right frozen column capability.\n*\n* 03/02/2012 - Jerry\n* carte_RowSelection - option for row selection checkbox\n*\n* Originially, jqGrid did NOT support frozen columns for virtual grids. For paged grids, it would listen for the scroll event on the main grid\n* and move the corresponding frozen table. Pretty quickly you saw choppy scrolling and horizontal lines not lining up.\n*\n* This change was a major restructuring of the layout. New
    hierarchy was introduced so that one div had elements positioned for\n* vertical scrolling while another div had elements positioned for horizontal scrolling. In order to support multi-direction scrolling,\n* I had to abandon use the built-in overflow scrolling and create my own horizontal scrollbar.\n*\n* 02/04/2013 - Matt\n* reduce the number of redundant ajax requests sent out on the scroll event\n*\n* 02/04/2014 - Kevin\n* When inserting the stretch column, support the case of the stretch column already existing.\n* Also updated calls to the Cartegraph grid's persistGridSettings() to send the column names.\n*/\n// ==== Cartegraph changes ====\n\nvar keydownScrollLatency = 40;\nvar mouseScrollLatency = 300;\nvar scrollStopLatency = mouseScrollLatency;\n\n(function ($) {\n \"use strict\";\n\n var fireClick = true;\n var activeAjaxRequest;\n\n $.jgrid = $.jgrid || {};\n $.extend($.jgrid, {\n htmlDecode: function (value) {\n if (value && (value == ' ' || value == ' ' || (value.length === 1 && value.charCodeAt(0) === 160))) { return \"\"; }\n return !value ? value : String(value).replace(/>/g, \">\").replace(/</g, \"<\").replace(/"/g, '\"').replace(/&/g, \"&\");\n },\n htmlEncode: function (value) {\n return !value ? value : String(value).replace(/&/g, \"&\").replace(/\\\"/g, \""\").replace(//g, \">\");\n },\n format: function (format) { //jqgformat\n var args = $.makeArray(arguments).slice(1);\n if (format === undefined) { format = \"\"; }\n return format.replace(/\\{(\\d+)\\}/g, function (m, i) {\n return args[i];\n });\n },\n getCellIndex: function (cell) {\n var c = $(cell);\n if (c.is('tr')) { return -1; }\n c = (!c.is('td') && !c.is('th') ? c.closest(\"td,th\") : c)[0];\n if ($.browser.msie) { return $.inArray(c, c.parentNode.cells); }\n return c.cellIndex;\n },\n stripHtml: function (v) {\n v = v + \"\";\n var regexp = /<(\"[^\"]*\"|'[^']*'|[^'\">])*>/gi;\n if (v) {\n v = v.replace(regexp, \"\");\n // ==== Cartegraph change: trim value so quantities don't end up with a tooltip for a space ====\n // return (v && v !== ' ' && v !== ' ') ? v.replace(/\\\"/g, \"'\") : \"\";\n return (v && v !== ' ' && v !== ' ') ? $.trim(v.replace(/\\\"/g, \"'\")) : \"\";\n } else {\n return v;\n }\n },\n stripPref: function (pref, id) {\n var obj = Object.prototype.toString.call(pref).slice(8, -1);\n if (obj == \"String\" || obj == \"Number\") {\n pref = String(pref);\n id = pref !== \"\" ? String(id).replace(String(pref), \"\") : id;\n }\n return id;\n },\n stringToDoc: function (xmlString) {\n var xmlDoc;\n if (typeof xmlString !== 'string') { return xmlString; }\n try {\n var parser = new DOMParser();\n xmlDoc = parser.parseFromString(xmlString, \"text/xml\");\n }\n catch (e) {\n xmlDoc = new ActiveXObject(\"Microsoft.XMLDOM\");\n xmlDoc.async = false;\n xmlDoc.loadXML(xmlString);\n }\n return (xmlDoc && xmlDoc.documentElement && xmlDoc.documentElement.tagName != 'parsererror') ? xmlDoc : null;\n },\n parse: function (jsonString) {\n var js = jsonString;\n if (js.substr(0, 9) == \"while(1);\") { js = js.substr(9); }\n if (js.substr(0, 2) == \"/*\") { js = js.substr(2, js.length - 4); }\n if (!js) { js = \"{}\"; }\n return ($.jgrid.useJSON === true && typeof (JSON) === 'object' && typeof (JSON.parse) === 'function') ?\n\t\t JSON.parse(js) :\n\t\t eval('(' + js + ')');\n },\n parseDate: function (format, date) {\n var tsp = { m: 1, d: 1, y: 1970, h: 0, i: 0, s: 0, u: 0 }, k, hl, dM, regdate = /[\\\\\\/:_;.,\\t\\T\\s-]/;\n if (date && date !== null && date !== undefined) {\n date = $.trim(date);\n date = date.split(regdate);\n format = format.split(regdate);\n var dfmt = $.jgrid.formatter.date.monthNames;\n var afmt = $.jgrid.formatter.date.AmPm;\n var h12to24 = function (ampm, h) {\n if (ampm === 0) { if (h === 12) { h = 0; } }\n else { if (h !== 12) { h += 12; } }\n return h;\n };\n for (k = 0, hl = format.length; k < hl; k++) {\n if (format[k] == 'M') {\n dM = $.inArray(date[k], dfmt);\n if (dM !== -1 && dM < 12) { date[k] = dM + 1; }\n }\n if (format[k] == 'F') {\n dM = $.inArray(date[k], dfmt);\n if (dM !== -1 && dM > 11) { date[k] = dM + 1 - 12; }\n }\n if (format[k] == 'a') {\n dM = $.inArray(date[k], afmt);\n if (dM !== -1 && dM < 2 && date[k] == afmt[dM]) {\n date[k] = dM;\n tsp.h = h12to24(date[k], tsp.h);\n }\n }\n if (format[k] == 'A') {\n dM = $.inArray(date[k], afmt);\n if (dM !== -1 && dM > 1 && date[k] == afmt[dM]) {\n date[k] = dM - 2;\n tsp.h = h12to24(date[k], tsp.h);\n }\n }\n if (date[k] !== undefined) {\n tsp[format[k].toLowerCase()] = parseInt(date[k], 10);\n }\n }\n tsp.m = parseInt(tsp.m, 10) - 1;\n var ty = tsp.y;\n if (ty >= 70 && ty <= 99) { tsp.y = 1900 + tsp.y; }\n else if (ty >= 0 && ty <= 69) { tsp.y = 2000 + tsp.y; }\n }\n return new Date(tsp.y, tsp.m, tsp.d, tsp.h, tsp.i, tsp.s, tsp.u);\n },\n jqID: function (sid) {\n return String(sid).replace(/[!\"#$%&'()*+,.\\/:;<=>?@\\[\\\\\\]\\^`{|}~]/g, \"\\\\$&\");\n },\n guid: 1,\n uidPref: 'jqg',\n randId: function (prefix) {\n return (prefix ? prefix : $.jgrid.uidPref) + ($.jgrid.guid++);\n },\n getAccessor: function (obj, expr) {\n var ret, p, prm = [], i;\n if (typeof expr === 'function') { return expr(obj); }\n ret = obj[expr];\n if (ret === undefined) {\n try {\n if (typeof expr === 'string') {\n prm = expr.split('.');\n }\n i = prm.length;\n if (i) {\n ret = obj;\n while (ret && i--) {\n p = prm.shift();\n ret = ret[p];\n }\n }\n } catch (e) { }\n }\n return ret;\n },\n getXmlData: function (obj, expr, returnObj) {\n var ret, m = typeof (expr) === 'string' ? expr.match(/^(.*)\\[(\\w+)\\]$/) : null;\n if (typeof (expr) === 'function') { return expr(obj); }\n if (m && m[2]) {\n // m[2] is the attribute selector\n // m[1] is an optional element selector\n // examples: \"[id]\", \"rows[page]\"\n return m[1] ? $(m[1], obj).attr(m[2]) : $(obj).attr(m[2]);\n } else {\n ret = $(expr, obj);\n if (returnObj) { return ret; }\n //$(expr, obj).filter(':last'); // we use ':last' to be more compatible with old version of jqGrid\n return ret.length > 0 ? $(ret).text() : undefined;\n }\n },\n ajaxOptions: {},\n from: function (source, initalQuery) {\n // Original Author Hugo Bonacci\n // License MIT http://jlinq.codeplex.com/license\n var queryObject = function (d, q) {\n if (typeof (d) == \"string\") {\n d = $.data(d);\n }\n var self = this,\n\t\t_data = d,\n\t\t_usecase = true,\n\t\t_trim = false,\n\t\t_query = q,\n\t\t_stripNum = /[\\$,%]/g,\n\t\t_lastCommand = null,\n\t\t_lastField = null,\n\t\t_orDepth = 0,\n\t\t_negate = false,\n\t\t_queuedOperator = \"\",\n\t\t_sorting = [],\n\t\t_useProperties = true;\n if (typeof (d) == \"object\" && d.push) {\n if (d.length > 0) {\n if (typeof (d[0]) != \"object\") {\n _useProperties = false;\n } else {\n _useProperties = true;\n }\n }\n } else {\n throw \"data provides is not an array\";\n }\n this._hasData = function () {\n return _data === null ? false : _data.length === 0 ? false : true;\n };\n this._getStr = function (s) {\n var phrase = [];\n if (_trim) {\n phrase.push(\"jQuery.trim(\");\n }\n phrase.push(\"String(\" + s + \")\");\n if (_trim) {\n phrase.push(\")\");\n }\n if (!_usecase) {\n phrase.push(\".toLowerCase()\");\n }\n return phrase.join(\"\");\n };\n this._strComp = function (val) {\n if (typeof (val) == \"string\") {\n return \".toString()\";\n } else {\n return \"\";\n }\n };\n this._group = function (f, u) {\n return ({ field: f.toString(), unique: u, items: [] });\n };\n this._toStr = function (phrase) {\n if (_trim) {\n phrase = $.trim(phrase);\n }\n if (!_usecase) {\n phrase = phrase.toLowerCase();\n }\n phrase = phrase.toString().replace(/\\\\/g, '\\\\\\\\').replace(/\\\"/g, '\\\\\"');\n return phrase;\n };\n this._funcLoop = function (func) {\n var results = [];\n $.each(_data, function (i, v) {\n results.push(func(v));\n });\n return results;\n };\n this._append = function (s) {\n var i;\n if (_query === null) {\n _query = \"\";\n } else {\n _query += _queuedOperator === \"\" ? \" && \" : _queuedOperator;\n }\n for (i = 0; i < _orDepth; i++) {\n _query += \"(\";\n }\n if (_negate) {\n _query += \"!\";\n }\n _query += \"(\" + s + \")\";\n _negate = false;\n _queuedOperator = \"\";\n _orDepth = 0;\n };\n this._setCommand = function (f, c) {\n _lastCommand = f;\n _lastField = c;\n };\n this._resetNegate = function () {\n _negate = false;\n };\n this._repeatCommand = function (f, v) {\n if (_lastCommand === null) {\n return self;\n }\n if (f !== null && v !== null) {\n return _lastCommand(f, v);\n }\n if (_lastField === null) {\n return _lastCommand(f);\n }\n if (!_useProperties) {\n return _lastCommand(f);\n }\n return _lastCommand(_lastField, f);\n };\n this._equals = function (a, b) {\n return (self._compare(a, b, 1) === 0);\n };\n this._compare = function (a, b, d) {\n if (d === undefined) { d = 1; }\n if (a === undefined) { a = null; }\n if (b === undefined) { b = null; }\n if (a === null && b === null) {\n return 0;\n }\n if (a === null && b !== null) {\n return 1;\n }\n if (a !== null && b === null) {\n return -1;\n }\n if (!_usecase && typeof (a) !== \"number\" && typeof (b) !== \"number\") {\n a = String(a).toLowerCase();\n b = String(b).toLowerCase();\n }\n if (a < b) { return -d; }\n if (a > b) { return d; }\n return 0;\n };\n this._performSort = function () {\n if (_sorting.length === 0) { return; }\n _data = self._doSort(_data, 0);\n };\n this._doSort = function (d, q) {\n var by = _sorting[q].by,\n\t\t\tdir = _sorting[q].dir,\n\t\t\ttype = _sorting[q].type,\n\t\t\tdfmt = _sorting[q].datefmt;\n if (q == _sorting.length - 1) {\n return self._getOrder(d, by, dir, type, dfmt);\n }\n q++;\n var values = self._getGroup(d, by, dir, type, dfmt);\n var results = [];\n for (var i = 0; i < values.length; i++) {\n var sorted = self._doSort(values[i].items, q);\n for (var j = 0; j < sorted.length; j++) {\n results.push(sorted[j]);\n }\n }\n return results;\n };\n this._getOrder = function (data, by, dir, type, dfmt) {\n var sortData = [], _sortData = [], newDir = dir == \"a\" ? 1 : -1, i, ab, j,\n\t\t\tfindSortKey;\n\n if (type === undefined) { type = \"text\"; }\n if (type == 'float' || type == 'number' || type == 'currency' || type == 'numeric') {\n findSortKey = function ($cell, a) {\n var key = parseFloat(String($cell).replace(_stripNum, ''));\n return isNaN(key) ? 0.00 : key;\n };\n } else if (type == 'int' || type == 'integer') {\n findSortKey = function ($cell, a) {\n return $cell ? parseFloat(String($cell).replace(_stripNum, '')) : 0;\n };\n } else if (type == 'date' || type == 'datetime') {\n findSortKey = function ($cell, a) {\n return $.jgrid.parseDate(dfmt, $cell).getTime();\n };\n } else if ($.isFunction(type)) {\n findSortKey = type;\n } else {\n findSortKey = function ($cell, a) {\n if (!$cell) { $cell = \"\"; }\n return $.trim(String($cell).toUpperCase());\n };\n }\n $.each(data, function (i, v) {\n ab = by !== \"\" ? $.jgrid.getAccessor(v, by) : v;\n if (ab === undefined) { ab = \"\"; }\n ab = findSortKey(ab, v);\n _sortData.push({ 'vSort': ab, 'index': i });\n });\n\n _sortData.sort(function (a, b) {\n a = a.vSort;\n b = b.vSort;\n return self._compare(a, b, newDir);\n });\n j = 0;\n var nrec = data.length;\n // overhead, but we do not change the original data.\n while (j < nrec) {\n i = _sortData[j].index;\n sortData.push(data[i]);\n j++;\n }\n return sortData;\n };\n this._getGroup = function (data, by, dir, type, dfmt) {\n var results = [],\n\t\t\tgroup = null,\n\t\t\tlast = null, val;\n $.each(self._getOrder(data, by, dir, type, dfmt), function (i, v) {\n val = $.jgrid.getAccessor(v, by);\n if (val === undefined) { val = \"\"; }\n if (!self._equals(last, val)) {\n last = val;\n if (group !== null) {\n results.push(group);\n }\n group = self._group(by, val);\n }\n group.items.push(v);\n });\n if (group !== null) {\n results.push(group);\n }\n return results;\n };\n this.ignoreCase = function () {\n _usecase = false;\n return self;\n };\n this.useCase = function () {\n _usecase = true;\n return self;\n };\n this.trim = function () {\n _trim = true;\n return self;\n };\n this.noTrim = function () {\n _trim = false;\n return self;\n };\n this.execute = function () {\n var match = _query, results = [];\n if (match === null) {\n return self;\n }\n $.each(_data, function () {\n if (eval(match)) { results.push(this); }\n });\n _data = results;\n return self;\n };\n this.data = function () {\n return _data;\n };\n this.select = function (f) {\n self._performSort();\n if (!self._hasData()) { return []; }\n self.execute();\n if ($.isFunction(f)) {\n var results = [];\n $.each(_data, function (i, v) {\n results.push(f(v));\n });\n return results;\n }\n return _data;\n };\n this.hasMatch = function (f) {\n if (!self._hasData()) { return false; }\n self.execute();\n return _data.length > 0;\n };\n this.andNot = function (f, v, x) {\n _negate = !_negate;\n return self.and(f, v, x);\n };\n this.orNot = function (f, v, x) {\n _negate = !_negate;\n return self.or(f, v, x);\n };\n this.not = function (f, v, x) {\n return self.andNot(f, v, x);\n };\n this.and = function (f, v, x) {\n _queuedOperator = \" && \";\n if (f === undefined) {\n return self;\n }\n return self._repeatCommand(f, v, x);\n };\n this.or = function (f, v, x) {\n _queuedOperator = \" || \";\n if (f === undefined) { return self; }\n return self._repeatCommand(f, v, x);\n };\n this.orBegin = function () {\n _orDepth++;\n return self;\n };\n this.orEnd = function () {\n if (_query !== null) {\n _query += \")\";\n }\n return self;\n };\n this.isNot = function (f) {\n _negate = !_negate;\n return self.is(f);\n };\n this.is = function (f) {\n self._append('this.' + f);\n self._resetNegate();\n return self;\n };\n this._compareValues = function (func, f, v, how, t) {\n var fld;\n if (_useProperties) {\n fld = 'jQuery.jgrid.getAccessor(this,\\'' + f + '\\')';\n } else {\n fld = 'this';\n }\n if (v === undefined) { v = null; }\n //var val=v===null?f:v,\n var val = v,\n\t\t\tswst = t.stype === undefined ? \"text\" : t.stype;\n if (v !== null) {\n switch (swst) {\n case 'int':\n case 'integer':\n val = (isNaN(Number(val)) || val === \"\") ? '0' : val; // To be fixed with more inteligent code\n fld = 'parseInt(' + fld + ',10)';\n val = 'parseInt(' + val + ',10)';\n break;\n case 'float':\n case 'number':\n case 'numeric':\n val = String(val).replace(_stripNum, '');\n val = (isNaN(Number(val)) || val === \"\") ? '0' : val; // To be fixed with more inteligent code\n fld = 'parseFloat(' + fld + ')';\n val = 'parseFloat(' + val + ')';\n break;\n case 'date':\n case 'datetime':\n val = String($.jgrid.parseDate(t.newfmt || 'Y-m-d', val).getTime());\n fld = 'jQuery.jgrid.parseDate(\"' + t.srcfmt + '\",' + fld + ').getTime()';\n break;\n default:\n fld = self._getStr(fld);\n val = self._getStr('\"' + self._toStr(val) + '\"');\n }\n }\n self._append(fld + ' ' + how + ' ' + val);\n self._setCommand(func, f);\n self._resetNegate();\n return self;\n };\n this.equals = function (f, v, t) {\n return self._compareValues(self.equals, f, v, \"==\", t);\n };\n this.notEquals = function (f, v, t) {\n return self._compareValues(self.equals, f, v, \"!==\", t);\n };\n this.isNull = function (f, v, t) {\n return self._compareValues(self.equals, f, null, \"===\", t);\n };\n this.greater = function (f, v, t) {\n return self._compareValues(self.greater, f, v, \">\", t);\n };\n this.less = function (f, v, t) {\n return self._compareValues(self.less, f, v, \"<\", t);\n };\n this.greaterOrEquals = function (f, v, t) {\n return self._compareValues(self.greaterOrEquals, f, v, \">=\", t);\n };\n this.lessOrEquals = function (f, v, t) {\n return self._compareValues(self.lessOrEquals, f, v, \"<=\", t);\n };\n this.startsWith = function (f, v) {\n var val = (v === undefined || v === null) ? f : v,\n\t\t\tlength = _trim ? $.trim(val.toString()).length : val.toString().length;\n if (_useProperties) {\n self._append(self._getStr('jQuery.jgrid.getAccessor(this,\\'' + f + '\\')') + '.substr(0,' + length + ') == ' + self._getStr('\"' + self._toStr(v) + '\"'));\n } else {\n length = _trim ? $.trim(v.toString()).length : v.toString().length;\n self._append(self._getStr('this') + '.substr(0,' + length + ') == ' + self._getStr('\"' + self._toStr(f) + '\"'));\n }\n self._setCommand(self.startsWith, f);\n self._resetNegate();\n return self;\n };\n this.endsWith = function (f, v) {\n var val = (v === undefined || v === null) ? f : v,\n\t\t\tlength = _trim ? $.trim(val.toString()).length : val.toString().length;\n if (_useProperties) {\n self._append(self._getStr('jQuery.jgrid.getAccessor(this,\\'' + f + '\\')') + '.substr(' + self._getStr('jQuery.jgrid.getAccessor(this,\\'' + f + '\\')') + '.length-' + length + ',' + length + ') == \"' + self._toStr(v) + '\"');\n } else {\n self._append(self._getStr('this') + '.substr(' + self._getStr('this') + '.length-\"' + self._toStr(f) + '\".length,\"' + self._toStr(f) + '\".length) == \"' + self._toStr(f) + '\"');\n }\n self._setCommand(self.endsWith, f); self._resetNegate();\n return self;\n };\n this.contains = function (f, v) {\n if (_useProperties) {\n self._append(self._getStr('jQuery.jgrid.getAccessor(this,\\'' + f + '\\')') + '.indexOf(\"' + self._toStr(v) + '\",0) > -1');\n } else {\n self._append(self._getStr('this') + '.indexOf(\"' + self._toStr(f) + '\",0) > -1');\n }\n self._setCommand(self.contains, f);\n self._resetNegate();\n return self;\n };\n this.groupBy = function (by, dir, type, datefmt) {\n if (!self._hasData()) {\n return null;\n }\n return self._getGroup(_data, by, dir, type, datefmt);\n };\n this.orderBy = function (by, dir, stype, dfmt) {\n dir = dir === undefined || dir === null ? \"a\" : $.trim(dir.toString().toLowerCase());\n if (stype === null || stype === undefined) { stype = \"text\"; }\n if (dfmt === null || dfmt === undefined) { dfmt = \"Y-m-d\"; }\n if (dir == \"desc\" || dir == \"descending\") { dir = \"d\"; }\n if (dir == \"asc\" || dir == \"ascending\") { dir = \"a\"; }\n _sorting.push({ by: by, dir: dir, type: stype, datefmt: dfmt });\n return self;\n };\n return self;\n };\n return new queryObject(source, null);\n },\n extend: function (methods) {\n $.extend($.fn.jqGrid, methods);\n if (!this.no_legacy_api) {\n $.fn.extend(methods);\n }\n }\n });\n\n $.fn.jqGrid = function (pin) {\n if (typeof pin == 'string') {\n //var fn = $.fn.jqGrid[pin];\n var fn = $.jgrid.getAccessor($.fn.jqGrid, pin);\n if (!fn) {\n throw (\"jqGrid - No such method: \" + pin);\n }\n var args = $.makeArray(arguments).slice(1);\n return fn.apply(this, args);\n }\n\n return this.each(function () {\n if (this.grid) { return; }\n\n // ==== Cartegraph change: frozen columns ====\n\n /*\n * Helper function to determine the width of the OS scrollbar\n * http://stackoverflow.com/questions/986937/javascript-get-the-browsers-scrollbar-sizes\n */\n function getScrollBarWidth() {\n\n var inner = document.createElement('p');\n inner.style.width = \"100%\";\n inner.style.height = \"200px\";\n\n var outer = document.createElement('div');\n outer.style.position = \"absolute\";\n outer.style.top = \"0px\";\n outer.style.left = \"0px\";\n outer.style.visibility = \"hidden\";\n outer.style.width = \"200px\";\n outer.style.height = \"150px\";\n outer.style.overflow = \"hidden\";\n outer.appendChild(inner);\n\n document.body.appendChild(outer);\n var w1 = inner.offsetWidth;\n outer.style.overflow = 'scroll';\n var w2 = inner.offsetWidth;\n if (w1 == w2) w2 = outer.clientWidth;\n\n document.body.removeChild(outer);\n\n return (w1 - w2);\n };\n\n // ==== Cartegraph change: frozen columns ====\n\n var p = $.extend(true, {\n pageClassName: \"\",\n isChild: false,\n url: \"\",\n height: 150,\n page: 1,\n rowNum: 20,\n rowTotal: null,\n records: 0,\n pager: \"\",\n pgbuttons: true,\n pginput: true,\n colModel: [],\n rowList: [],\n colNames: [],\n sortorder: \"asc\",\n sortname: \"\",\n // ==== Cartegraph changes ====\n sortinfo: \"\",\n filter: \"\",\n // ==== Cartegraph changes ====\n datatype: \"xml\",\n mtype: \"GET\",\n altRows: false,\n selarrrow: [],\n savedRow: [],\n shrinkToFit: true,\n xmlReader: {},\n jsonReader: {},\n subGrid: false,\n subGridModel: [],\n reccount: 0,\n lastpage: 0,\n lastsort: 0,\n // ==== Cartegraph changes ====\n selFound: false, // indicates whether setSelection was able to find the id and select the row\n // ==== Cartegraph changes ====\n selrow: null,\n beforeSelectRow: null,\n onSelectRow: null,\n onSortCol: null,\n ondblClickRow: null,\n onRightClickRow: null,\n onPaging: null,\n onSelectAll: null,\n loadComplete: null,\n gridComplete: null,\n loadError: null,\n loadBeforeSend: null,\n afterInsertRow: null,\n beforeRequest: null,\n beforeProcessing: null,\n onHeaderClick: null,\n viewrecords: false,\n loadonce: false,\n multiselect: false,\n multikey: false,\n editurl: null,\n search: false,\n caption: \"\",\n hidegrid: true,\n hiddengrid: false,\n postData: {},\n userData: {},\n treeGrid: false,\n treeGridModel: 'nested',\n treeReader: {},\n treeANode: -1,\n ExpandColumn: null,\n tree_root_level: 0,\n // ==== Cartegraph changes ====\n //prmNames: { page: \"page\", rows: \"rows\", sort: \"sidx\", order: \"sord\", search: \"_search\", nd: \"nd\", id: \"id\", oper: \"oper\", editoper: \"edit\", addoper: \"add\", deloper: \"del\", subgridid: \"id\", npage: null, totalrows: \"totalrows\" },\n prmNames: { page: \"page\", rows: \"rows\", sort: \"sidx\", order: \"sord\", search: \"_search\", nd: \"nd\", id: \"id\", oper: \"oper\", editoper: \"edit\", addoper: \"add\", deloper: \"del\", subgridid: \"id\", npage: null, totalrows: \"totalrows\", sortinfo: \"sortinfo\" },\n // ==== Cartegraph changes ====\n forceFit: false,\n gridstate: \"visible\",\n cellEdit: false,\n cellsubmit: \"remote\",\n nv: 0,\n loadui: \"enable\",\n toolbar: [false, \"\"],\n scroll: false,\n multiboxonly: false,\n deselectAfterSort: true,\n scrollrows: false,\n autowidth: false,\n restoreScroll: 0,\n\n // ==== Cartegraph change: auto stretch last column ====\n carte_stretchLastColumn: false,\n carte_stretchLastColumnIndex: -1,\n // ==== Cartegraph change: auto stretch last column ====\n\n // ==== Cartegraph change: frozen columns ====\n //scrollOffset: 18,\n scrollOffset: getScrollBarWidth(),\n carte_frozenLeftLastIndex: -1,\n carte_frozenRightFirstIndex: -1,\n onHorizontalScrollbarVisibilityChange: null,\n // ==== Cartegraph change: frozen columns ====\n\n // ==== Cartegraph change: field chooser ====\n carte_showFieldChooser: false,\n carte_className: \"\",\n carte_qtipAPI: null,\n // ==== Cartegraph change: field chooser ====\n\n cellLayout: 4,\n subGridWidth: 20,\n multiselectWidth: 20,\n gridview: false,\n rownumWidth: 25,\n rownumbers: false,\n pagerpos: 'center',\n recordpos: 'right',\n footerrow: false,\n userDataOnFooter: false,\n hoverrows: true,\n altclass: 'ui-priority-secondary',\n viewsortcols: [false, 'vertical', true],\n resizeclass: '',\n autoencode: false,\n remapColumns: [],\n ajaxGridOptions: {},\n direction: \"ltr\",\n toppager: false,\n headertitles: true,\n scrollTimeout: scrollStopLatency,\n data: [],\n _index: {},\n grouping: false,\n groupingView: { groupField: [], groupOrder: [], groupText: [], groupColumnShow: [], groupSummary: [], showSummaryOnHide: false, sortitems: [], sortnames: [], groupDataSorted: false, summary: [], summaryval: [], plusicon: 'ui-icon-circlesmall-plus', minusicon: 'ui-icon-circlesmall-minus' },\n ignoreCase: false,\n cmTemplate: {},\n idPrefix: \"\",\n // ==== Cartegraph changes ====\n _sortedColumns: [], // array of SortInfo objects [column name and sort order]\n isLookup: false, // indicates the grid is in use as a lookup.\n isTimeControl: false, // indicates whether the grid is used for time control - applies correct CSS to selected row\n // ==== Cartegraph changes ====\n // ==== Cartegraph changes ====\n carte_RowSelection: false, // indicates whether the first column should contain a checkbox to indicate row selection\n carte_SelectedRows: [], // selected row data\n carte_DisabledSelectedRowsInView: [],\n carte_DisabledSelectedRows: [], // disabled row data\n // ==== Cartegraph changes ====\n\n // ==== Cartegraph change: FLEXI designer ====\n carte_IsInDesignMode: false,\n stopAjaxCalls: false\n // ==== Cartegraph change: FLEXI designer ====\n }, $.jgrid.defaults, pin || {});\n var grid = {\n headers: [],\n cols: [],\n footers: [],\n dragStart: function (i, x, y) {\n this.resizing = { idx: i, startX: x.clientX, sOL: y[0] };\n this.hDiv.style.cursor = \"col-resize\";\n this.curGbox = $(\"#rs_m\" + $.jgrid.jqID(p.id), \"#gbox_\" + $.jgrid.jqID(p.id));\n this.curGbox.css({ display: \"block\", left: y[0], top: y[1], height: y[2] });\n if ($.isFunction(p.resizeStart)) { p.resizeStart.call(this, x, i); }\n document.onselectstart = function () { return false; };\n },\n dragMove: function (x) {\n if (this.resizing) {\n var diff = x.clientX - this.resizing.startX,\n\t\t\t\t\th = this.headers[this.resizing.idx],\n\t\t\t\t\tnewWidth = p.direction === \"ltr\" ? h.width + diff : h.width - diff, hn, nWn;\n if (newWidth > 33) {\n this.curGbox.css({ left: this.resizing.sOL + diff });\n if (p.forceFit === true) {\n hn = this.headers[this.resizing.idx + p.nv];\n nWn = p.direction === \"ltr\" ? hn.width - diff : hn.width + diff;\n if (nWn > 33) {\n h.newWidth = newWidth;\n hn.newWidth = nWn;\n }\n } else {\n this.newWidth = p.direction === \"ltr\" ? p.tblwidth + diff : p.tblwidth - diff;\n h.newWidth = newWidth;\n }\n }\n }\n },\n dragEnd: function () {\n this.hDiv.style.cursor = \"default\";\n if (this.resizing) {\n var idx = this.resizing.idx,\n\t\t\t\t\tnw = this.headers[idx].newWidth || this.headers[idx].width;\n nw = parseInt(nw, 10);\n this.resizing = false;\n $(\"#rs_m\" + $.jgrid.jqID(p.id)).css(\"display\", \"none\");\n p.colModel[idx].width = nw;\n this.headers[idx].width = nw;\n this.headers[idx].el.style.width = nw + \"px\";\n this.cols[idx].style.width = nw + \"px\";\n if (this.footers.length > 0) { this.footers[idx].style.width = nw + \"px\"; }\n if (p.forceFit === true) {\n nw = this.headers[idx + p.nv].newWidth || this.headers[idx + p.nv].width;\n this.headers[idx + p.nv].width = nw;\n this.headers[idx + p.nv].el.style.width = nw + \"px\";\n this.cols[idx + p.nv].style.width = nw + \"px\";\n if (this.footers.length > 0) { this.footers[idx + p.nv].style.width = nw + \"px\"; }\n p.colModel[idx + p.nv].width = nw;\n } else {\n p.tblwidth = this.newWidth || p.tblwidth;\n $('table:first', this.bDiv).css(\"width\", p.tblwidth + \"px\");\n $('table:first', this.hDiv).css(\"width\", p.tblwidth + \"px\");\n // ==== Cartegraph change: frozen columns ====\n //this.hDiv.scrollLeft = this.bDiv.scrollLeft;\n this.hDiv.scrollLeft = this.horizontalScrollContainer.scrollLeft;\n // ==== Cartegraph change: frozen columns ====\n if (p.footerrow) {\n $('table:first', this.sDiv).css(\"width\", p.tblwidth + \"px\");\n // ==== Cartegraph change: frozen columns ====\n //this.sDiv.scrollLeft = this.bDiv.scrollLeft;\n this.sDiv.scrollLeft = this.horizontalScrollContainer.scrollLeft;\n // ==== Cartegraph change: frozen columns ====\n }\n }\n\n // ==== Cartegraph change: auto stretch last column ====\n if (p.carte_stretchLastColumnIndex > -1) {\n grid.resizeStretchColumn();\n }\n // ==== Cartegraph change: auto stretch last column ====\n\n // ==== Cartegraph change: frozen columns ====\n // frozen columns introduced horizontal scrollbar that must be manually manipulated\n $(ts).jqGrid('recalculateHorizontalScrollbar');\n // ==== Cartegraph change: frozen columns ====\n\n if ($.isFunction(p.resizeStop)) { p.resizeStop.call(this, nw, idx); }\n Cartegraph.FlexUI[p.id].persistGridSettings(p.colModel, p._sortedColumns, p.pageClassName, p.colNames);\n\n $('div.gridProgressBar').parent().each(function () {\n $(this).trigger('progressResize');\n });\n }\n this.curGbox = null;\n document.onselectstart = function () { return true; };\n },\n\n // ==== Cartegraph change: auto stretch last column ====\n resizeStretchColumn: function () {\n if (p.carte_stretchLastColumnIndex > -1) {\n var newStretchColumnWidth = grid.width - p.tblwidth - p.cellLayout;\n var stretchColumn = p.colModel[p.carte_stretchLastColumnIndex];\n\n if (newStretchColumnWidth > 0) { // table width is less than grid width so stretch column to fill space\n stretchColumn.width = newStretchColumnWidth;\n stretchColumn.widthOrg = newStretchColumnWidth;\n\n // resize the actual column header and data column\n this.headers[p.carte_stretchLastColumnIndex].el.style.width = newStretchColumnWidth + \"px\";\n this.cols[p.carte_stretchLastColumnIndex].style.width = newStretchColumnWidth + \"px\";\n\n // unhide column if it's currently hidden\n if (stretchColumn.hidden === true)\n $(ts).jqGrid(\"carte_showCol\", p.colModel[p.carte_stretchLastColumnIndex].name);\n }\n else if (stretchColumn.hidden === false) { // table width is greater than grid width so hide stretch column\n stretchColumn.width = 0;\n stretchColumn.widthOrg = 0;\n stretchColumn.uid = \"\";\n\n // hide the actual column header and data column\n this.headers[p.carte_stretchLastColumnIndex].el.style.width = 0 + \"px\";\n this.cols[p.carte_stretchLastColumnIndex].style.width = 0 + \"px\";\n\n $(ts).jqGrid(\"carte_hideCol\", p.colModel[p.carte_stretchLastColumnIndex].name);\n }\n }\n },\n // ==== Cartegraph change: auto stretch last column ====\n populateVisible: function () {\n if (grid.timer) { clearTimeout(grid.timer); }\n grid.timer = null;\n var dh = $(grid.bDiv).height();\n if (!dh) { return; }\n var table = $(\"table:first\", grid.bDiv);\n var rows, rh;\n var needToPopulate = true;\n if (table.length && table[0].rows.length) {\n try {\n rows = table[0].rows[1];\n if (rows) {\n if ($(rows).outerHeight() <= 0) {\n needToPopulate = false;\n }\n rh = $(rows).outerHeight() || grid.prevRowHeight;\n }\n else {\n rh = grid.prevRowHeight;\n }\n } catch (pv) {\n rh = grid.prevRowHeight;\n }\n }\n if (!rh) { return; }\n grid.prevRowHeight = rh;\n var rn = p.rowNum;\n var scrollTop = grid.scrollTop = grid.bDiv.scrollTop;\n\n // ==== Cartegraph change: frozen columns ====\n //var ttop = Math.round(table.position().top) - scrollTop;\n var ttop = Math.round(table.parent().parent().position().top) - scrollTop;\n // ==== Cartegraph change: frozen columns ====\n\n var tbot = ttop + table.height();\n var div = rh * rn;\n var page, npage, empty;\n if (tbot < dh && ttop <= 0 &&\n\t\t\t\t\t(p.lastpage === undefined || parseInt((tbot + scrollTop + div - 1) / div, 10) <= p.lastpage)) {\n npage = parseInt((dh - tbot + div - 1) / div, 10);\n if (tbot >= 0 || npage < 2 || p.scroll === true) {\n page = Math.round((tbot + scrollTop) / div) + 1;\n ttop = -1;\n } else {\n ttop = 1;\n }\n }\n if (ttop > 0) {\n page = parseInt(scrollTop / div, 10) + 1;\n npage = parseInt((scrollTop + dh) / div, 10) + 2 - page;\n empty = true;\n }\n if (npage && needToPopulate) {\n if ((!isNaN(p.lastpage) && p.lastpage !== null) && page > p.lastpage || p.lastpage == 1 || (page === p.page && page === p.lastpage)) {\n return;\n }\n if (grid.hDiv.loading) {\n grid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);\n } else {\n p.page = page;\n if (empty) {\n grid.selectionPreserver(table[0]);\n grid.emptyRows(grid.bDiv, false, false);\n }\n grid.populate(npage);\n }\n }\n },\n scrollGrid: function (e) {\n if (p.scroll) {\n var scrollTop = grid.bDiv.scrollTop;\n if (grid.scrollTop === undefined) { grid.scrollTop = 0; }\n if (scrollTop != grid.scrollTop) {\n //grid.scrollTop = scrollTop;\n if (grid.timer) { clearTimeout(grid.timer); }\n grid.timer = setTimeout(grid.populateVisible, scrollStopLatency);\n }\n }\n // ==== Cartegraph change: frozen columns ====\n //grid.hDiv.scrollLeft = grid.bDiv.scrollLeft;\n grid.horizontalScrollContainer.scrollLeft = grid.hDiv.scrollLeft;\n // ==== Cartegraph change: frozen columns ====\n if (p.footerrow) {\n // ==== Cartegraph change: frozen columns ====\n //grid.sDiv.scrollLeft = grid.bDiv.scrollLeft;\n grid.horizontalScrollContainer.scrollLeft = grid.sDiv.scrollLeft;\n // ==== Cartegraph change: frozen columns ====\n }\n if (e) { e.stopPropagation(); }\n },\n selectionPreserver: function (ts) {\n var p = ts.p;\n var sr = p.selrow, sra = p.selarrrow ? $.makeArray(p.selarrrow) : null;\n // ==== Cartegraph change: frozen columns ====\n //var left = ts.grid.bDiv.scrollLeft;\n var left = ts.grid.horizontalScrollContainer.scrollLeft;\n // ==== Cartegraph change: frozen columns ====\n var complete = p.gridComplete;\n p.gridComplete = function () {\n p.selrow = null;\n p.selarrrow = [];\n if (p.multiselect && sra && sra.length > 0) {\n for (var i = 0; i < sra.length; i++) {\n if (sra[i] != sr) {\n $(ts).jqGrid(\"setSelection\", sra[i], false);\n }\n }\n }\n if (sr) {\n $(ts).jqGrid(\"setSelection\", sr, false);\n }\n // ==== Cartegraph change: frozen columns ====\n //ts.grid.bDiv.scrollLeft = left;\n ts.grid.horizontalScrollContainer.scrollLeft = left;\n // ==== Cartegraph change: frozen columns ====\n p.gridComplete = complete;\n if (p.gridComplete) {\n complete();\n }\n };\n }\n };\n if (this.tagName.toUpperCase() != 'TABLE') {\n alert(\"Element is not a table\");\n return;\n }\n $(this).empty().attr(\"tabindex\", \"1\"); //Removing this line will break the ability to use \"arrow keys\" in the list\n this.p = p;\n this.p.useProp = !!$.fn.prop;\n var i, dir, ts;\n\n if (this.p.colNames.length === 0) {\n for (i = 0; i < this.p.colModel.length; i++) {\n this.p.colNames[i] = this.p.colModel[i].label || this.p.colModel[i].name;\n }\n }\n if (this.p.colNames.length !== this.p.colModel.length) {\n alert($.jgrid.errors.model);\n return;\n }\n\n // ==== Cartegraph change: auto stretch last column ====\n // if the last non-frozen column should stretch to fill grid width, find the index to insert the stretch column\n var hasExistingStretchLastColumn = false;\n if (this.p.carte_stretchLastColumn) {\n var colModel = this.p.colModel;\n for (var i = colModel.length - 1; i >= 0; i--) {\n if (colModel[i].frozen !== true) {\n if (colModel[i].name == 'cgStretchLastColumn') {\n this.p.carte_stretchLastColumnIndex = i;\n hasExistingStretchLastColumn = true;\n }\n else {\n this.p.carte_stretchLastColumnIndex = i + 1;\n }\n break;\n }\n }\n\n // insert the stretchable column into the colNames and colModel arrays\n if (this.p.carte_stretchLastColumnIndex > -1 && !hasExistingStretchLastColumn) {\n this.p.colNames.splice(this.p.carte_stretchLastColumnIndex, 0, \"\");\n this.p.colModel.splice(this.p.carte_stretchLastColumnIndex, 0, { name: 'cgStretchLastColumn', hidden: true, sortable: false, resizable: false, classes:'cgStretchLastColumn' });\n }\n }\n // ==== Cartegraph change: auto stretch last column ====\n\n var gv = $(\"
    \"), ii,\n\t\tisMSIE = $.browser.msie ? true : false,\n isSafari = Cartegraph.Browser.isSafari();\n ts = this;\n ts.p.direction = $.trim(ts.p.direction.toLowerCase());\n if ($.inArray(ts.p.direction, [\"ltr\", \"rtl\"]) == -1) { ts.p.direction = \"ltr\"; }\n dir = ts.p.direction;\n\n $(gv).insertBefore(this);\n $(this).appendTo(gv).removeClass(\"scroll\");\n var eg = $(\"
    \");\n $(eg).insertBefore(gv).attr({ \"id\": \"gbox_\" + this.id, \"dir\": dir });\n $(gv).appendTo(eg).attr(\"id\", \"gview_\" + this.id);\n if (isMSIE && $.browser.version <= 6) {\n ii = '';\n } else { ii = \"\"; }\n $(\"
    \").append(ii).insertBefore(gv);\n // ==== Cartegraph changes ====\n //Don't have text display when loading since we will be showing a spinner instead.\n //$(\"
    \" + this.p.loadtext + \"
    \").insertBefore(gv);\n // ==== Cartegraph changes ====\n $(\"
    \" + \"
    \").insertBefore(gv);\n $(this).attr({ cellspacing: \"0\", cellpadding: \"0\", border: \"0\", \"role\": \"grid\", \"aria-multiselectable\": !!this.p.multiselect, \"aria-labelledby\": \"gbox_\" + this.id });\n var sortkeys = [\"shiftKey\", \"altKey\", \"ctrlKey\"],\n\t\tintNum = function (val, defval) {\n\t\t val = parseInt(val, 10);\n\t\t if (isNaN(val)) { return defval ? defval : 0; }\n\t\t else { return val; }\n\t\t},\n\t\tformatCol = function (pos, rowInd, tv, rawObject, rowId, rdata) {\n\t\t var cm = ts.p.colModel[pos],\n\t\t\tral = cm.align, result = \"style=\\\"\", clas = cm.classes, nm = cm.name, celp, acp = [];\n\t\t if (ral) { result += \"text-align:\" + ral + \";\"; }\n\t\t if (cm.hidden === true) { result += \"display:none;\"; }\n\t\t if (rowInd === 0) {\n\t\t result += \"width: \" + grid.headers[pos].width + \"px;\";\n\t\t } else if (cm.cellattr && $.isFunction(cm.cellattr)) {\n\t\t celp = cm.cellattr.call(ts, rowId, tv, rawObject, cm, rdata);\n\t\t if (celp && typeof (celp) === \"string\") {\n\t\t celp = celp.replace(/style/i, 'style').replace(/title/i, 'title');\n\t\t if (celp.indexOf('title') > -1) { cm.title = false; }\n\t\t if (celp.indexOf('class') > -1) { clas = undefined; }\n\t\t acp = celp.split(\"style\");\n\t\t if (acp.length === 2) {\n\t\t acp[1] = $.trim(acp[1].replace(\"=\", \"\"));\n\t\t if (acp[1].indexOf(\"'\") === 0 || acp[1].indexOf('\"') === 0) {\n\t\t acp[1] = acp[1].substring(1);\n\t\t }\n\t\t result += acp[1].replace(/'/gi, '\"');\n\t\t } else {\n\t\t result += \"\\\"\";\n\t\t }\n\t\t }\n\t\t }\n\t\t if (!acp.length) { acp[0] = \"\"; result += \"\\\"\"; }\n\t\t result += (clas !== undefined ? (\" class=\\\"\" + clas + \"\\\"\") : \"\") + ((cm.title && tv) ? (\" title=\\\"\" + $.jgrid.stripHtml(tv) + \"\\\"\") : \"\");\n\t\t result += \" cg-col-for=\\\"\" + ts.p.id + \"_\" + nm + \"\\\"\";\n\t\t return result + acp[0];\n\t\t},\n\t\tcellVal = function (val) {\n\t\t return val === undefined || val === null || val === \"\" ? \" \" : (ts.p.autoencode ? $.jgrid.htmlEncode(val) : val + \"\");\n\t\t},\n\t\tformatter = function (rowId, cellval, colpos, rwdat, _act) {\n\t\t var cm = ts.p.colModel[colpos], v;\n\t\t if (typeof cm.formatter !== 'undefined') {\n\t\t var opts = { rowId: rowId, colModel: cm, gid: ts.p.id, pos: colpos };\n\t\t if ($.isFunction(cm.formatter)) {\n\t\t v = cm.formatter.call(ts, cellval, opts, rwdat, _act);\n\t\t } else if ($.fmatter) {\n\t\t v = $.fn.fmatter(cm.formatter, cellval, opts, rwdat, _act);\n\t\t } else {\n\t\t v = cellVal(cellval);\n\t\t }\n\t\t } else {\n\t\t v = cellVal(cellval);\n\t\t }\n\t\t return v;\n\t\t},\n\t\taddCell = function (rowId, cell, pos, irow, srvr) {\n\t\t var v, prp;\n\t\t v = formatter(rowId, cell, pos, srvr, 'add');\n\t\t prp = formatCol(pos, irow, v, srvr, rowId, true);\n\t\t return \"\" + v + \"\";\n\t\t},\n\t\taddMulti = function (rowid, pos, irow) {\n\t\t var v = \"\",\n\t\t\tprp = formatCol(pos, irow, '', null, rowid, true);\n\t\t return \"\" + v + \"\";\n\t\t},\n\t\taddRowNum = function (pos, irow, pG, rN) {\n\t\t var v = (parseInt(pG, 10) - 1) * parseInt(rN, 10) + 1 + irow,\n\t\t\tprp = formatCol(pos, irow, v, null, irow, true);\n\t\t return \"\" + v + \"\";\n\t\t},\n\t\treader = function (datatype) {\n\t\t var field, f = [], j = 0, i;\n\t\t for (i = 0; i < ts.p.colModel.length; i++) {\n\t\t field = ts.p.colModel[i];\n\t\t if (field.name !== 'cb' && field.name !== 'subgrid' && field.name !== 'rn') {\n\t\t f[j] = datatype == \"local\" ?\n\t\t\t\t\tfield.name :\n\t\t\t\t\t((datatype == \"xml\" || datatype === \"xmlstring\") ? field.xmlmap || field.name : field.jsonmap || field.name);\n\t\t j++;\n\t\t }\n\t\t }\n\t\t return f;\n\t\t},\n\t\torderedCols = function (offset) {\n\t\t var order = ts.p.remapColumns;\n\t\t if (!order || !order.length) {\n\t\t order = $.map(ts.p.colModel, function (v, i) { return i; });\n\t\t }\n\t\t if (offset) {\n\t\t order = $.map(order, function (v) { return v < offset ? null : v - offset; });\n\t\t }\n\t\t return order;\n\t\t},\n\t\temptyRows = function (parent, scroll, locdata) {\n\t\t if (ts.p.deepempty) {\n\t\t $(\"#\" + $.jgrid.jqID(ts.p.id) + \" tbody:first tr:gt(0)\").remove();\n\n\t\t // ==== Cartegraph change: frozen columns ====\n\n\t\t // set bdiv height for the left frozen table\n\t\t if (ts.p.carte_frozenLeftLastIndex > -1) {\n\t\t $(\"#\" + $.jgrid.jqID(ts.p.id) + \"_frozenLeft tbody:first tr:gt(0)\").remove();\n\t\t }\n\n\t\t // set bdiv height for the right frozen table\n\t\t if (ts.p.carte_frozenRightFirstIndex > -1) {\n\t\t $(\"#\" + $.jgrid.jqID(ts.p.id) + \"_frozenRight tbody:first tr:gt(0)\").remove();\n\t\t }\n\n\t\t // ==== Cartegraph change: frozen columns ====\n\t\t }\n\t\t else {\n\t\t var trf = $(\"#\" + $.jgrid.jqID(ts.p.id) + \" tbody:first tr:first\")[0];\n\t\t $(\"#\" + $.jgrid.jqID(ts.p.id) + \" tbody:first\").empty().append(trf);\n\t\t $(\"#gview_\" + $.jgrid.jqID(ts.p.id)).children('.blockUI').hide(); // hide the no records to display message\n\n\t\t // ==== Cartegraph change: frozen columns ====\n\n\t\t // set bdiv height for the left frozen table\n\t\t if (ts.p.carte_frozenLeftLastIndex > -1) {\n\t\t trf = $(\"#\" + $.jgrid.jqID(ts.p.id) + \"_frozenLeft tbody:first tr:first\")[0];\n\t\t $(\"#\" + $.jgrid.jqID(ts.p.id) + \"_frozenLeft tbody:first\").empty().append(trf);\n\t\t }\n\n\t\t // set bdiv height for the right frozen table\n\t\t if (ts.p.carte_frozenRightFirstIndex > -1) {\n\t\t trf = $(\"#\" + $.jgrid.jqID(ts.p.id) + \"_frozenRight tbody:first tr:first\")[0];\n\t\t $(\"#\" + $.jgrid.jqID(ts.p.id) + \"_frozenRight tbody:first\").empty().append(trf);\n\t\t }\n\n\t\t // ==== Cartegraph change: frozen columns ====\n\t\t }\n\t\t if (scroll && ts.p.scroll) {\n\t\t $(\">div:first\", parent).css({ height: \"auto\" }).children(\"div:first\").css({ height: 0, display: \"none\" });\n\t\t parent.scrollTop = 0;\n\t\t }\n\t\t if (locdata === true) {\n\t\t if (ts.p.treeGrid === true) {\n\t\t ts.p.data = []; ts.p._index = {};\n\t\t }\n\t\t }\n\t\t},\n\t\trefreshIndex = function () {\n\t\t var datalen = ts.p.data.length, idname, i, val,\n\t\t\tni = ts.p.rownumbers === true ? 1 : 0,\n\t\t\tgi = ts.p.multiselect === true ? 1 : 0,\n\t\t\tsi = ts.p.subGrid === true ? 1 : 0;\n\n\t\t if (ts.p.keyIndex === false || ts.p.loadonce === true) {\n\t\t idname = ts.p.localReader.id;\n\t\t } else {\n\t\t idname = ts.p.colModel[ts.p.keyIndex + gi + si + ni].name;\n\t\t }\n\t\t for (i = 0; i < datalen; i++) {\n\t\t val = $.jgrid.getAccessor(ts.p.data[i], idname);\n\t\t ts.p._index[val] = i;\n\t\t }\n\t\t},\n\t\taddXmlData = function (xml, t, rcnt, more, adjust) {\n\t\t var startReq = new Date(),\n\t\t\tlocdata = (ts.p.datatype != \"local\" && ts.p.loadonce) || ts.p.datatype == \"xmlstring\",\n\t\t\txmlid = \"_id_\", xmlRd = ts.p.xmlReader,\n\t\t\tfrd = ts.p.datatype == \"local\" ? \"local\" : \"xml\";\n\t\t if (locdata) {\n\t\t ts.p.data = [];\n\t\t ts.p._index = {};\n\t\t ts.p.localReader.id = xmlid;\n\t\t }\n\t\t ts.p.reccount = 0;\n\t\t if ($.isXMLDoc(xml)) {\n\t\t if (ts.p.treeANode === -1 && !ts.p.scroll) {\n\t\t emptyRows(t, false, true);\n\t\t rcnt = 1;\n\t\t } else { rcnt = rcnt > 1 ? rcnt : 1; }\n\t\t } else { return; }\n\t\t var i, fpos, ir = 0, v, row, gi = 0, si = 0, ni = 0, idn, getId, f = [], F, rd = {}, xmlr, rid, rowData = [], cn = (ts.p.altRows === true) ? \" \" + ts.p.altclass : \"\", cn1;\n\t\t if (!xmlRd.repeatitems) { f = reader(frd); }\n\t\t if (ts.p.keyIndex === false) {\n\t\t idn = xmlRd.id;\n\t\t } else {\n\t\t idn = ts.p.keyIndex;\n\t\t }\n\t\t if (f.length > 0 && !isNaN(idn)) {\n\t\t if (ts.p.remapColumns && ts.p.remapColumns.length) {\n\t\t idn = $.inArray(idn, ts.p.remapColumns);\n\t\t }\n\t\t idn = f[idn];\n\t\t }\n\t\t if ((idn + \"\").indexOf(\"[\") === -1) {\n\t\t if (f.length) {\n\t\t getId = function (trow, k) { return $(idn, trow).text() || k; };\n\t\t } else {\n\t\t getId = function (trow, k) { return $(xmlRd.cell, trow).eq(idn).text() || k; };\n\t\t }\n\t\t }\n\t\t else {\n\t\t getId = function (trow, k) { return trow.getAttribute(idn.replace(/[\\[\\]]/g, \"\")) || k; };\n\t\t }\n\t\t ts.p.userData = {};\n\t\t ts.p.page = $.jgrid.getXmlData(xml, xmlRd.page) || 0;\n\t\t ts.p.lastpage = $.jgrid.getXmlData(xml, xmlRd.total);\n\t\t if (ts.p.lastpage === undefined) { ts.p.lastpage = 1; }\n\t\t ts.p.records = $.jgrid.getXmlData(xml, xmlRd.records) || 0;\n\t\t if ($.isFunction(xmlRd.userdata)) {\n\t\t ts.p.userData = xmlRd.userdata.call(ts, xml) || {};\n\t\t } else {\n\t\t $.jgrid.getXmlData(xml, xmlRd.userdata, true).each(function () { ts.p.userData[this.getAttribute(\"name\")] = $(this).text(); });\n\t\t }\n\t\t var gxml = $.jgrid.getXmlData(xml, xmlRd.root, true);\n\t\t gxml = $.jgrid.getXmlData(gxml, xmlRd.row, true);\n\t\t if (!gxml) { gxml = []; }\n\t\t var gl = gxml.length, j = 0, grpdata = {}, rn = parseInt(ts.p.rowNum, 10);\n\t\t if (gl > 0 && ts.p.page <= 0) { ts.p.page = 1; }\n\t\t if (gxml && gl) {\n\t\t var br = ts.p.scroll ? $.jgrid.randId() : 1, altr;\n\t\t if (adjust) { rn *= adjust + 1; }\n\t\t var afterInsRow = $.isFunction(ts.p.afterInsertRow), hiderow = \"\";\n\t\t if (ts.p.grouping && ts.p.groupingView.groupCollapse === true) {\n\t\t hiderow = \" style=\\\"display:none;\\\"\";\n\t\t }\n\t\t while (j < gl) {\n\t\t xmlr = gxml[j];\n\t\t rid = getId(xmlr, br + j);\n\t\t rid = ts.p.idPrefix + rid;\n\t\t altr = rcnt === 0 ? 0 : rcnt + 1;\n\t\t cn1 = (altr + j) % 2 == 1 ? cn : '';\n\t\t rowData.push(\"\");\n\t\t if (ts.p.rownumbers === true) {\n\t\t rowData.push(addRowNum(0, j, ts.p.page, ts.p.rowNum));\n\t\t ni = 1;\n\t\t }\n\t\t if (ts.p.multiselect === true) {\n\t\t rowData.push(addMulti(rid, ni, j));\n\t\t gi = 1;\n\t\t }\n\t\t if (ts.p.subGrid === true) {\n\t\t rowData.push($(ts).jqGrid(\"addSubGridCell\", gi + ni, j + rcnt));\n\t\t si = 1;\n\t\t }\n\t\t if (xmlRd.repeatitems) {\n\t\t if (!F) { F = orderedCols(gi + si + ni); }\n\t\t var cells = $.jgrid.getXmlData(xmlr, xmlRd.cell, true);\n\t\t $.each(F, function (k) {\n\t\t var cell = cells[this];\n\t\t if (!cell) { return false; }\n\t\t v = cell.textContent || cell.text;\n\t\t rd[ts.p.colModel[k + gi + si + ni].name] = v;\n\t\t rowData.push(addCell(rid, v, k + gi + si + ni, j + rcnt, xmlr));\n\t\t });\n\t\t } else {\n\t\t for (i = 0; i < f.length; i++) {\n\t\t v = $.jgrid.getXmlData(xmlr, f[i]);\n\t\t rd[ts.p.colModel[i + gi + si + ni].name] = v;\n\t\t rowData.push(addCell(rid, v, i + gi + si + ni, j + rcnt, xmlr));\n\t\t }\n\t\t }\n\t\t rowData.push(\"\");\n\t\t if (ts.p.grouping) {\n\t\t var grlen = ts.p.groupingView.groupField.length, grpitem = [];\n\t\t for (var z = 0; z < grlen; z++) {\n\t\t grpitem.push(rd[ts.p.groupingView.groupField[z]]);\n\t\t }\n\t\t grpdata = $(ts).jqGrid('groupingPrepare', rowData, grpitem, grpdata, rd);\n\t\t rowData = [];\n\t\t }\n\t\t if (locdata || ts.p.treeGrid === true) {\n\t\t rd[xmlid] = rid;\n\t\t ts.p.data.push(rd);\n\t\t ts.p._index[rid] = ts.p.data.length - 1;\n\t\t }\n\t\t if (ts.p.gridview === false) {\n\t\t $(\"tbody:first\", t).append(rowData.join(''));\n\t\t if (afterInsRow) { ts.p.afterInsertRow.call(ts, rid, rd, xmlr); }\n\t\t rowData = [];\n\t\t }\n\t\t rd = {};\n\t\t ir++;\n\t\t j++;\n\t\t if (ir == rn) { break; }\n\t\t }\n\t\t }\n\t\t if (ts.p.gridview === true) {\n\t\t fpos = ts.p.treeANode > -1 ? ts.p.treeANode : 0;\n\t\t if (ts.p.grouping) {\n\t\t $(ts).jqGrid('groupingRender', grpdata, ts.p.colModel.length);\n\t\t grpdata = null;\n\t\t } else if (ts.p.treeGrid === true && fpos > 0) {\n\t\t $(ts.rows[fpos]).after(rowData.join(''));\n\t\t } else {\n\t\t $(\"tbody:first\", t).append(rowData.join(''));\n\t\t }\n\t\t }\n\t\t if (ts.p.subGrid === true) {\n\t\t try { $(ts).jqGrid(\"addSubGrid\", gi + ni); } catch (_) { }\n\t\t }\n\t\t ts.p.totaltime = new Date() - startReq;\n\t\t if (ir > 0) { if (ts.p.records === 0) { ts.p.records = gl; } }\n\t\t rowData = null;\n\t\t if (ts.p.treeGrid === true) {\n\t\t try { $(ts).jqGrid(\"setTreeNode\", fpos + 1, ir + fpos + 1); } catch (e) { }\n\t\t }\n\t\t if (!ts.p.treeGrid && !ts.p.scroll) { ts.grid.bDiv.scrollTop = 0; }\n\t\t ts.p.reccount = ir;\n\t\t ts.p.treeANode = -1;\n\t\t if (ts.p.userDataOnFooter) { $(ts).jqGrid(\"footerData\", \"set\", ts.p.userData, true); }\n\t\t if (locdata) {\n\t\t ts.p.records = gl;\n\t\t ts.p.lastpage = Math.min(ts.p.page, Math.ceil(gl / rn));\n\t\t }\n\t\t if (!more) { ts.updatepager(false, true); }\n\t\t if (locdata) {\n\t\t while (ir < gl) {\n\t\t xmlr = gxml[ir];\n\t\t rid = getId(xmlr, ir);\n\t\t rid = ts.p.idPrefix + rid;\n\t\t if (xmlRd.repeatitems) {\n\t\t if (!F) { F = orderedCols(gi + si + ni); }\n\t\t var cells2 = $.jgrid.getXmlData(xmlr, xmlRd.cell, true);\n\t\t $.each(F, function (k) {\n\t\t var cell = cells2[this];\n\t\t if (!cell) { return false; }\n\t\t v = cell.textContent || cell.text;\n\t\t rd[ts.p.colModel[k + gi + si + ni].name] = v;\n\t\t });\n\t\t } else {\n\t\t for (i = 0; i < f.length; i++) {\n\t\t v = $.jgrid.getXmlData(xmlr, f[i]);\n\t\t rd[ts.p.colModel[i + gi + si + ni].name] = v;\n\t\t }\n\t\t }\n\t\t rd[xmlid] = rid;\n\t\t ts.p.data.push(rd);\n\t\t ts.p._index[rid] = ts.p.data.length - 1;\n\t\t rd = {};\n\t\t ir++;\n\t\t }\n\t\t }\n\t\t},\n\t\taddJSONData = function (data, t, rcnt, more, adjust) {\n\t\t var startReq = new Date();\n\t\t if (data) {\n\t\t if (ts.p.treeANode === -1 && !ts.p.scroll) {\n\t\t emptyRows(t, false, true);\n\t\t rcnt = 1;\n\t\t } else { rcnt = rcnt > 1 ? rcnt : 1; }\n\t\t } else { return; }\n\n\t\t var dReader, locid = \"_id_\", frd,\n\t\t\tlocdata = (ts.p.datatype != \"local\" && ts.p.loadonce) || ts.p.datatype == \"jsonstring\";\n\t\t if (locdata) { ts.p.data = []; ts.p._index = {}; ts.p.localReader.id = locid; }\n\t\t ts.p.reccount = 0;\n\t\t if (ts.p.datatype == \"local\") {\n\t\t dReader = ts.p.localReader;\n\t\t frd = 'local';\n\t\t } else {\n\t\t dReader = ts.p.jsonReader;\n\t\t frd = 'json';\n\t\t }\n\t\t var ir = 0, v, i, j, f = [], F, cur, gi = 0, si = 0, ni = 0, len, drows, idn, rd = {}, fpos, idr, rowData = [], cn = (ts.p.altRows === true) ? \" \" + ts.p.altclass : \"\", cn1, lp;\n\n\t\t // ==== Cartegraph change: frozen columns ====\n\n\t\t var rowData_frozenLeft = [];\n\t\t var rowData_frozenRight = [];\n\n\t\t // ==== Cartegraph change: frozen columns ====\n\n\t\t ts.p.page = $.jgrid.getAccessor(data, dReader.page) || 0;\n\t\t lp = $.jgrid.getAccessor(data, dReader.total);\n\t\t ts.p.lastpage = lp === undefined ? 1 : lp;\n\t\t ts.p.records = $.jgrid.getAccessor(data, dReader.records) || 0;\n\t\t ts.p.userData = $.jgrid.getAccessor(data, dReader.userdata) || {};\n\t\t if (!dReader.repeatitems) {\n\t\t F = f = reader(frd);\n\t\t }\n\t\t if (ts.p.keyIndex === false) {\n\t\t idn = dReader.id;\n\t\t } else {\n\t\t idn = ts.p.keyIndex;\n\t\t }\n\t\t if (f.length > 0 && !isNaN(idn)) {\n\t\t if (ts.p.remapColumns && ts.p.remapColumns.length) {\n\t\t idn = $.inArray(idn, ts.p.remapColumns);\n\t\t }\n\t\t idn = f[idn];\n\t\t }\n\t\t drows = $.jgrid.getAccessor(data, dReader.root);\n\t\t if (!drows) { drows = []; }\n\t\t len = drows.length; i = 0;\n\t\t if (len > 0 && ts.p.page <= 0) { ts.p.page = 1; }\n\t\t var rn = parseInt(ts.p.rowNum, 10), br = ts.p.scroll ? $.jgrid.randId() : 1, altr;\n\t\t if (adjust) { rn *= adjust + 1; }\n\t\t var afterInsRow = $.isFunction(ts.p.afterInsertRow), grpdata = {}, hiderow = \"\";\n\t\t if (ts.p.grouping && ts.p.groupingView.groupCollapse === true) {\n\t\t hiderow = \" style=\\\"display:none;\\\"\";\n\t\t }\n\n\t\t // iterate through the rows of data fetched\n\t\t while (i < len) {\n\t\t cur = drows[i];\n\t\t idr = $.jgrid.getAccessor(cur, idn);\n\t\t if (idr === undefined) {\n\t\t idr = br + i;\n\t\t if (f.length === 0) {\n\t\t if (dReader.cell) {\n\t\t var ccur = $.jgrid.getAccessor(cur, dReader.cell);\n\t\t idr = ccur !== undefined ? ccur[idn] || idr : idr;\n\t\t ccur = null;\n\t\t }\n\t\t }\n\t\t }\n\n\t\t //for the linked asset grid - need to make id's unique when \"All\" relationships are displayed\n\t\t if (ts.p.id.startsWith('LinkedAssetsGrid_')) {\n\t\t idr = idr + \"_\" + i;\n\t\t }\n\n\t\t var classNameOidAttr = '';\n\t\t if (ts.p.id.contains('LookupControl')) {\n\t\t classNameOidAttr = \"data-classnameoid=\\\"\" + $.jgrid.getAccessor(cur, \"\") + \"\\\"\";\n\t\t }\n\n\t\t idr = ts.p.idPrefix + idr;\n\t\t altr = rcnt === 1 ? 0 : rcnt;\n\t\t cn1 = (altr + i) % 2 == 1 ? cn : '';\n\t\t rowData.push(\"\");\n\n\t\t // ==== Cartegraph change: frozen columns ====\n\n\t\t if (ts.p.carte_frozenLeftLastIndex > -1) {\n\t\t rowData_frozenLeft.push(\"\");\n\t\t }\n\t\t if (ts.p.carte_frozenRightFirstIndex > -1) {\n\t\t rowData_frozenRight.push(\"\");\n\t\t }\n\n\t\t // ==== Cartegraph change: frozen columns ====\n\n\t\t if (ts.p.rownumbers === true) {\n\t\t rowData.push(addRowNum(0, i, ts.p.page, ts.p.rowNum));\n\t\t ni = 1;\n\t\t }\n\t\t if (ts.p.multiselect) {\n\t\t rowData.push(addMulti(idr, ni, i));\n\t\t gi = 1;\n\t\t }\n\t\t if (ts.p.subGrid) {\n\t\t rowData.push($(ts).jqGrid(\"addSubGridCell\", gi + ni, i + rcnt));\n\t\t si = 1;\n\t\t }\n\t\t if (dReader.repeatitems) {\n\t\t if (dReader.cell) { cur = $.jgrid.getAccessor(cur, dReader.cell); }\n\t\t if (!F) { F = orderedCols(gi + si + ni); }\n\t\t }\n\n\t\t // build the table row\n\t\t for (j = 0; j < F.length; j++) {\n\t\t v = $.jgrid.getAccessor(cur, F[j]);\n\n\t\t // ==== Cartegraph change: frozen columns ====\n\n\t\t var cell = addCell(idr, v, j + gi + si + ni, i + rcnt, cur);\n\n\t\t // add cell to main table\n\t\t rowData.push(cell);\n\n\t\t // add cell to frozen left table\n\t\t if (ts.p.carte_frozenLeftLastIndex > -1 && j <= ts.p.carte_frozenLeftLastIndex) {\n\t\t rowData_frozenLeft.push(cell);\n\t\t }\n\n\t\t // add cell to frozen right table\n\t\t if (ts.p.carte_frozenRightFirstIndex > -1 && j >= ts.p.carte_frozenRightFirstIndex) {\n\t\t rowData_frozenRight.push(cell);\n\t\t }\n\n\t\t // ==== Cartegraph change: frozen columns ====\n\n\t\t rd[ts.p.colModel[j + gi + si + ni].name] = v;\n\t\t }\n\n\t\t rowData.push(\"\");\n\n\t\t // ==== Cartegraph change: frozen columns ====\n\n\t\t if (ts.p.carte_frozenLeftLastIndex > -1) {\n\t\t rowData_frozenLeft.push(\"\");\n\t\t }\n\t\t if (ts.p.carte_frozenRightFirstIndex > -1) {\n\t\t rowData_frozenRight.push(\"\");\n\t\t }\n\n\t\t // ==== Cartegraph change: frozen columns ====\n\n\t\t if (ts.p.grouping) {\n\t\t var grlen = ts.p.groupingView.groupField.length, grpitem = [];\n\t\t for (var z = 0; z < grlen; z++) {\n\t\t grpitem.push(rd[ts.p.groupingView.groupField[z]]);\n\t\t }\n\t\t grpdata = $(ts).jqGrid('groupingPrepare', rowData, grpitem, grpdata, rd);\n\t\t rowData = [];\n\t\t }\n\t\t if (locdata || ts.p.treeGrid === true) {\n\t\t rd[locid] = idr;\n\t\t ts.p.data.push(rd);\n\t\t ts.p._index[idr] = ts.p.data.length - 1;\n\t\t }\n\t\t if (ts.p.gridview === false) {\n\t\t $(\"#\" + $.jgrid.jqID(ts.p.id) + \" tbody:first\").append(rowData.join(''));\n\t\t if (afterInsRow) { ts.p.afterInsertRow.call(ts, idr, rd, cur); }\n\t\t rowData = []; //ari=0;\n\t\t }\n\t\t rd = {};\n\t\t ir++;\n\t\t i++;\n\t\t if (ir == rn) { break; }\n\t\t }\n\t\t if (ts.p.gridview === true) {\n\t\t fpos = ts.p.treeANode > -1 ? ts.p.treeANode : 0;\n\t\t if (ts.p.grouping) {\n\t\t $(ts).jqGrid('groupingRender', grpdata, ts.p.colModel.length);\n\t\t grpdata = null;\n\t\t } else if (ts.p.treeGrid === true && fpos > 0) {\n\t\t $(ts.rows[fpos]).after(rowData.join(''));\n\t\t } else {\n\t\t $(\"#\" + $.jgrid.jqID(ts.p.id) + \" tbody:first\").append(rowData.join(''));\n\n\t\t // ==== Cartegraph change: frozen columns ====\n\n\t\t // add html row to frozen left table\n\t\t if (ts.p.carte_frozenLeftLastIndex > -1) {\n\t\t $(\"#\" + $.jgrid.jqID(ts.p.id) + \"_frozenLeft tbody:first\").append(rowData_frozenLeft.join(''));\n\t\t }\n\n\t\t // add html row to frozen right table\n\t\t if (ts.p.carte_frozenRightFirstIndex > -1) {\n\t\t $(\"#\" + $.jgrid.jqID(ts.p.id) + \"_frozenRight tbody:first\").append(rowData_frozenRight.join(''));\n\t\t }\n\n\t\t // ==== Cartegraph change: frozen columns ====\n\t\t }\n\t\t }\n\t\t if (ts.p.subGrid === true) {\n\t\t try { $(ts).jqGrid(\"addSubGrid\", gi + ni); } catch (_) { }\n\t\t }\n\t\t ts.p.totaltime = new Date() - startReq;\n\t\t if (ir > 0) {\n\t\t if (ts.p.records === 0) { ts.p.records = len; }\n\t\t }\n\t\t rowData = null;\n\t\t if (ts.p.treeGrid === true) {\n\t\t try { $(ts).jqGrid(\"setTreeNode\", fpos + 1, ir + fpos + 1); } catch (e) { }\n\t\t }\n\t\t if (!ts.p.treeGrid && !ts.p.scroll) { ts.grid.bDiv.scrollTop = 0; }\n\t\t ts.p.reccount = ir;\n\t\t ts.p.treeANode = -1;\n\t\t if (ts.p.userDataOnFooter) { $(ts).jqGrid(\"footerData\", \"set\", ts.p.userData, true); }\n\t\t if (locdata) {\n\t\t ts.p.records = len;\n\t\t ts.p.lastpage = Math.min(ts.p.page, Math.ceil(len / rn));\n\t\t }\n\t\t if (!more) { ts.updatepager(false, true); }\n\t\t if (locdata) {\n\t\t while (ir < len && drows[ir]) {\n\t\t cur = drows[ir];\n\t\t idr = $.jgrid.getAccessor(cur, idn);\n\t\t if (idr === undefined) {\n\t\t idr = br + ir;\n\t\t if (f.length === 0) {\n\t\t if (dReader.cell) {\n\t\t var ccur2 = $.jgrid.getAccessor(cur, dReader.cell);\n\t\t idr = ccur2[idn] || idr;\n\t\t ccur2 = null;\n\t\t }\n\t\t }\n\t\t }\n\t\t if (cur) {\n\t\t idr = ts.p.idPrefix + idr;\n\t\t if (dReader.repeatitems) {\n\t\t if (dReader.cell) { cur = $.jgrid.getAccessor(cur, dReader.cell); }\n\t\t if (!F) { F = orderedCols(gi + si + ni); }\n\t\t }\n\n\t\t for (j = 0; j < F.length; j++) {\n\t\t v = $.jgrid.getAccessor(cur, F[j]);\n\t\t rd[ts.p.colModel[j + gi + si + ni].name] = v;\n\t\t }\n\t\t rd[locid] = idr;\n\t\t ts.p.data.push(rd);\n\t\t ts.p._index[idr] = ts.p.data.length - 1;\n\t\t rd = {};\n\t\t }\n\t\t ir++;\n\t\t }\n\t\t }\n\t\t},\n\t\taddLocalData = function () {\n\t\t var st, fndsort = false, cmtypes = {}, grtypes = [], grindexes = [], srcformat, sorttype, newformat;\n\t\t if (!$.isArray(ts.p.data)) {\n\t\t return;\n\t\t }\n\t\t var grpview = ts.p.grouping ? ts.p.groupingView : false;\n\t\t $.each(ts.p.colModel, function (i, v) {\n\t\t sorttype = this.sorttype || \"text\";\n\t\t if (sorttype == \"date\" || sorttype == \"datetime\") {\n\t\t if (this.formatter && typeof (this.formatter) === 'string' && this.formatter == 'date') {\n\t\t if (this.formatoptions && this.formatoptions.srcformat) {\n\t\t srcformat = this.formatoptions.srcformat;\n\t\t } else {\n\t\t srcformat = $.jgrid.formatter.date.srcformat;\n\t\t }\n\t\t if (this.formatoptions && this.formatoptions.newformat) {\n\t\t newformat = this.formatoptions.newformat;\n\t\t } else {\n\t\t newformat = $.jgrid.formatter.date.newformat;\n\t\t }\n\t\t } else {\n\t\t srcformat = newformat = this.datefmt || \"Y-m-d\";\n\t\t }\n\t\t cmtypes[this.name] = { \"stype\": sorttype, \"srcfmt\": srcformat, \"newfmt\": newformat };\n\t\t } else {\n\t\t cmtypes[this.name] = { \"stype\": sorttype, \"srcfmt\": '', \"newfmt\": '' };\n\t\t }\n\t\t if (ts.p.grouping && this.name == grpview.groupField[0]) {\n\t\t var grindex = this.name;\n\t\t if (typeof this.index != 'undefined') {\n\t\t grindex = this.index;\n\t\t }\n\t\t grtypes[0] = cmtypes[grindex];\n\t\t grindexes.push(grindex);\n\t\t }\n\t\t if (!fndsort && (this.index == ts.p.sortname || this.name == ts.p.sortname)) {\n\t\t st = this.name; // ???\n\t\t fndsort = true;\n\t\t }\n\t\t });\n\t\t if (ts.p.treeGrid) {\n\t\t $(ts).jqGrid(\"SortTree\", st, ts.p.sortorder, cmtypes[st].stype, cmtypes[st].srcfmt);\n\t\t return;\n\t\t }\n\t\t var compareFnMap = {\n\t\t 'eq': function (queryObj, op) { return queryObj.equals; },\n\t\t 'ne': function (queryObj, op) { return queryObj.notEquals; },\n\t\t 'lt': function (queryObj, op) { return queryObj.less; },\n\t\t 'le': function (queryObj, op) { return queryObj.lessOrEquals; },\n\t\t 'gt': function (queryObj, op) { return queryObj.greater; },\n\t\t 'ge': function (queryObj, op) { return queryObj.greaterOrEquals; },\n\t\t 'cn': function (queryObj, op) { return queryObj.contains; },\n\t\t 'nc': function (queryObj, op) { return op === \"OR\" ? queryObj.orNot().contains : queryObj.andNot().contains; },\n\t\t 'bw': function (queryObj, op) { return queryObj.startsWith; },\n\t\t 'bn': function (queryObj, op) { return op === \"OR\" ? queryObj.orNot().startsWith : queryObj.andNot().startsWith; },\n\t\t 'en': function (queryObj, op) { return op === \"OR\" ? queryObj.orNot().endsWith : queryObj.andNot().endsWith; },\n\t\t 'ew': function (queryObj, op) { return queryObj.endsWith; },\n\t\t 'ni': function (queryObj, op) { return op === \"OR\" ? queryObj.orNot().equals : queryObj.andNot().equals; },\n\t\t 'in': function (queryObj, op) { return queryObj.equals; },\n\t\t 'nu': function (queryObj, op) { return queryObj.isNull; },\n\t\t 'nn': function (queryObj, op) { return op === \"OR\" ? queryObj.orNot().isNull : queryObj.andNot().isNull; }\n\n\t\t },\n\t\t\tquery = $.jgrid.from(ts.p.data);\n\t\t if (ts.p.ignoreCase) { query = query.ignoreCase(); }\n\t\t function tojLinq(group) {\n\t\t var s = 0, index, gor, ror, opr, rule;\n\t\t if (group.groups !== undefined) {\n\t\t gor = group.groups.length && group.groupOp.toString().toUpperCase() === \"OR\";\n\t\t if (gor) {\n\t\t query.orBegin();\n\t\t }\n\t\t for (index = 0; index < group.groups.length; index++) {\n\t\t if (s > 0 && gor) {\n\t\t query.or();\n\t\t }\n\t\t try {\n\t\t tojLinq(group.groups[index]);\n\t\t } catch (e) { alert(e); }\n\t\t s++;\n\t\t }\n\t\t if (gor) {\n\t\t query.orEnd();\n\t\t }\n\t\t }\n\t\t if (group.rules !== undefined) {\n\t\t if (s > 0) {\n\t\t var result = query.select();\n\t\t query = $.jgrid.from(result);\n\t\t if (ts.p.ignoreCase) { query = query.ignoreCase(); }\n\t\t }\n\t\t try {\n\t\t ror = group.rules.length && group.groupOp.toString().toUpperCase() === \"OR\";\n\t\t if (ror) {\n\t\t query.orBegin();\n\t\t }\n\t\t for (index = 0; index < group.rules.length; index++) {\n\t\t rule = group.rules[index];\n\t\t opr = group.groupOp.toString().toUpperCase();\n\t\t if (compareFnMap[rule.op] && rule.field) {\n\t\t if (s > 0 && opr && opr === \"OR\") {\n\t\t query = query.or();\n\t\t }\n\t\t query = compareFnMap[rule.op](query, opr)(rule.field, rule.data, cmtypes[rule.field]);\n\t\t }\n\t\t s++;\n\t\t }\n\t\t if (ror) {\n\t\t query.orEnd();\n\t\t }\n\t\t } catch (g) { alert(g); }\n\t\t }\n\t\t }\n\n\t\t if (ts.p.search === true) {\n\t\t var srules = ts.p.postData.filters;\n\t\t if (srules) {\n\t\t if (typeof srules == \"string\") { srules = $.jgrid.parse(srules); }\n\t\t tojLinq(srules);\n\t\t } else {\n\t\t try {\n\t\t query = compareFnMap[ts.p.postData.searchOper](query)(ts.p.postData.searchField, ts.p.postData.searchString, cmtypes[ts.p.postData.searchField]);\n\t\t } catch (se) { }\n\t\t }\n\t\t }\n\t\t if (ts.p.grouping) {\n\t\t query.orderBy(grindexes, grpview.groupOrder[0], grtypes[0].stype, grtypes[0].srcfmt);\n\t\t grpview.groupDataSorted = true;\n\t\t }\n\t\t if (st && ts.p.sortorder && fndsort) {\n\t\t if (ts.p.sortorder.toUpperCase() == \"DESC\") {\n\t\t query.orderBy(ts.p.sortname, \"d\", cmtypes[st].stype, cmtypes[st].srcfmt);\n\t\t } else {\n\t\t query.orderBy(ts.p.sortname, \"a\", cmtypes[st].stype, cmtypes[st].srcfmt);\n\t\t }\n\t\t }\n\t\t var queryResults = query.select(),\n\t\t\trecordsperpage = parseInt(ts.p.rowNum, 10),\n\t\t\ttotal = queryResults.length,\n\t\t\tpage = parseInt(ts.p.page, 10),\n\t\t\ttotalpages = Math.ceil(total / recordsperpage),\n\t\t\tretresult = {};\n\t\t queryResults = queryResults.slice((page - 1) * recordsperpage, page * recordsperpage);\n\t\t query = null;\n\t\t cmtypes = null;\n\t\t retresult[ts.p.localReader.total] = totalpages;\n\t\t retresult[ts.p.localReader.page] = page;\n\t\t retresult[ts.p.localReader.records] = total;\n\t\t retresult[ts.p.localReader.root] = queryResults;\n\t\t retresult[ts.p.localReader.userdata] = ts.p.userData;\n\t\t queryResults = null;\n\t\t return retresult;\n\t\t},\n\t\tupdatepager = function (rn, dnd) {\n\t\t var cp, last, base, from, to, tot, fmt, pgboxes = \"\", sppg,\n\t\t\ttspg = ts.p.pager ? \"_\" + $.jgrid.jqID(ts.p.pager.substr(1)) : \"\",\n\t\t\ttspg_t = ts.p.toppager ? \"_\" + ts.p.toppager.substr(1) : \"\";\n\t\t base = parseInt(ts.p.page, 10) - 1;\n\t\t if (base < 0) { base = 0; }\n\t\t base = base * parseInt(ts.p.rowNum, 10);\n\t\t to = base + ts.p.reccount;\n\t\t if (ts.p.scroll) {\n\t\t var rows = $(\"tbody:first > tr:gt(0)\", ts.grid.bDiv);\n\t\t base = to - rows.length;\n\t\t ts.p.reccount = rows.length;\n\t\t var rh = rows.outerHeight() || ts.grid.prevRowHeight;\n\t\t if (rh) {\n\t\t var top = base * rh;\n\t\t var height = parseInt(ts.p.records, 10) * rh;\n\n\t\t /* All browsers have a max height a
    element can be - once that limit */\n\t\t /* is exceeded, most browsers fall back to the max height. However, the */\n\t\t /* following browsers have problems if you try to specify a height greater */\n\t\t /* IE 10,737,418px and Firefox 17,895,697 px */\n\t\t if ((Cartegraph.Browser.isIE() || Cartegraph.Browser.isIE11()) && height > 10000000)\n\t\t height = 10000000;\n\t\t else if (Cartegraph.Browser.isFirefox() && height > 17000000)\n\t\t height = 17000000;\n\n\t\t $(\">div:first\", ts.grid.bDiv).css({ height: height }).children(\"div:first\").css({ height: top, display: top ? \"\" : \"none\" });\n\n\t\t // ==== Cartegraph change: frozen columns ====\n\t\t // frozen columns introduced horizontal scrollbar that must be manually manipulated\n\t\t $(ts).jqGrid('recalculateHorizontalScrollbar');\n\t\t // ==== Cartegraph change: frozen columns ====\n\t\t }\n\t\t // ==== Cartegraph change: frozen columns ====\n\t\t //ts.grid.bDiv.scrollLeft = ts.grid.hDiv.scrollLeft;\n\t\t if (ts.grid.horizontalScrollContainer && ts.grid.hDiv)\n\t\t ts.grid.horizontalScrollContainer.scrollLeft = ts.grid.hDiv.scrollLeft;\n\t\t // ==== Cartegraph change: frozen columns ====\n\t\t }\n\t\t pgboxes = ts.p.pager ? ts.p.pager : \"\";\n\t\t pgboxes += ts.p.toppager ? (pgboxes ? \",\" + ts.p.toppager : ts.p.toppager) : \"\";\n\t\t if (pgboxes) {\n\t\t fmt = $.jgrid.formatter.integer || {};\n\t\t cp = intNum(ts.p.page);\n\t\t last = intNum(ts.p.lastpage);\n\t\t $(\".selbox\", pgboxes)[this.p.useProp ? 'prop' : 'attr'](\"disabled\", false);\n\t\t if (ts.p.pginput === true) {\n\t\t $('.ui-pg-input', pgboxes).val(ts.p.page);\n\t\t sppg = ts.p.toppager ? '#sp_1' + tspg + \",#sp_1\" + tspg_t : '#sp_1' + tspg;\n\t\t $(sppg).html($.fmatter ? $.fmatter.util.NumberFormat(ts.p.lastpage, fmt) : ts.p.lastpage);\n\n\t\t }\n\t\t // ==== Cartegraph change: record selection ====\n\t\t // When row selection is enabled, we do not want the selected row count text overridden by paging information\n\t\t // if (ts.p.viewrecords) {\n\t\t if (ts.p.viewrecords && !ts.p.carte_RowSelection) {\n\t\t // ==== End Cartegraph change: record selection ====\n\t\t if (ts.p.reccount === 0) {\n\t\t $(\".ui-paging-info\", pgboxes).html(ts.p.emptyrecords);\n\t\t } else {\n\t\t from = base + 1;\n\t\t tot = ts.p.records;\n\t\t if ($.fmatter) {\n\t\t from = $.fmatter.util.NumberFormat(from, fmt);\n\t\t to = $.fmatter.util.NumberFormat(to, fmt);\n\t\t tot = $.fmatter.util.NumberFormat(tot, fmt);\n\t\t }\n\t\t $(\".ui-paging-info\", pgboxes).html($.jgrid.format(ts.p.recordtext, from, to, tot));\n\t\t }\n\t\t }\n\t\t if (ts.p.pgbuttons === true) {\n\t\t if (cp <= 0) { cp = last = 0; }\n\t\t if (cp == 1 || cp === 0) {\n\t\t $(\"#first\" + tspg + \", #prev\" + tspg).addClass('ui-state-disabled').removeClass('ui-state-hover');\n\t\t if (ts.p.toppager) { $(\"#first_t\" + tspg_t + \", #prev_t\" + tspg_t).addClass('ui-state-disabled').removeClass('ui-state-hover'); }\n\t\t } else {\n\t\t $(\"#first\" + tspg + \", #prev\" + tspg).removeClass('ui-state-disabled');\n\t\t if (ts.p.toppager) { $(\"#first_t\" + tspg_t + \", #prev_t\" + tspg_t).removeClass('ui-state-disabled'); }\n\t\t }\n\t\t if (cp == last || cp === 0) {\n\t\t $(\"#next\" + tspg + \", #last\" + tspg).addClass('ui-state-disabled').removeClass('ui-state-hover');\n\t\t if (ts.p.toppager) { $(\"#next_t\" + tspg_t + \", #last_t\" + tspg_t).addClass('ui-state-disabled').removeClass('ui-state-hover'); }\n\t\t } else {\n\t\t $(\"#next\" + tspg + \", #last\" + tspg).removeClass('ui-state-disabled');\n\t\t if (ts.p.toppager) { $(\"#next_t\" + tspg_t + \", #last_t\" + tspg_t).removeClass('ui-state-disabled'); }\n\t\t }\n\t\t }\n\t\t }\n\t\t if (rn === true && ts.p.rownumbers === true) {\n\t\t $(\"td.jqgrid-rownum\", ts.rows).each(function (i) {\n\t\t $(this).html(base + 1 + i);\n\t\t });\n\t\t }\n\t\t if (dnd && ts.p.jqgdnd) { $(ts).jqGrid('gridDnD', 'updateDnD'); }\n\t\t if ($.isFunction(ts.p.gridComplete)) { ts.p.gridComplete.call(ts); }\n\t\t if ($.isFunction(ts.p._complete)) { ts.p._complete.call(ts); }\n\t\t},\n\t\tbeginReq = function () {\n\t\t ts.grid.hDiv.loading = true;\n\t\t if (ts.p.hiddengrid) { return; }\n\t\t switch (ts.p.loadui) {\n\t\t case \"disable\":\n\t\t break;\n\t\t case \"enable\":\n\t\t $(\"#load_\" + $.jgrid.jqID(ts.p.id)).show();\n\t\t break;\n\t\t case \"block\":\n\t\t $(\"#lui_\" + $.jgrid.jqID(ts.p.id)).show();\n\t\t $(\"#load_\" + $.jgrid.jqID(ts.p.id)).show();\n\t\t break;\n\t\t }\n\t\t},\n\t\tendReq = function () {\n\t\t ts.grid.hDiv.loading = false;\n\t\t switch (ts.p.loadui) {\n\t\t case \"disable\":\n\t\t break;\n\t\t case \"enable\":\n\t\t $(\"#load_\" + $.jgrid.jqID(ts.p.id)).hide();\n\t\t break;\n\t\t case \"block\":\n\t\t $(\"#lui_\" + $.jgrid.jqID(ts.p.id)).hide();\n\t\t $(\"#load_\" + $.jgrid.jqID(ts.p.id)).hide();\n\t\t break;\n\t\t }\n\t\t},\n\t\tpopulate = function (npage) {\n\t\t if (!ts.grid.hDiv.loading) {\n\t\t var pvis = ts.p.scroll && npage === false;\n\t\t var prm = {}, dt, dstr, pN = ts.p.prmNames;\n\t\t if (ts.p.page <= 0) { ts.p.page = 1; }\n\t\t if (pN.search !== null) { prm[pN.search] = ts.p.search; } if (pN.nd !== null) { prm[pN.nd] = new Date().getTime(); }\n\t\t if (pN.rows !== null) { prm[pN.rows] = ts.p.rowNum; } if (pN.page !== null) { prm[pN.page] = ts.p.page; }\n\t\t // ==== Cartegraph changes ====\n\t\t //if (pN.sort !== null) { prm[pN.sort] = ts.p.sortname; } if (pN.order !== null) { prm[pN.order] = ts.p.sortorder; }\n\t\t // ==== Cartegraph changes ====\n\t\t if (ts.p.rowTotal !== null && pN.totalrows !== null) { prm[pN.totalrows] = ts.p.rowTotal; }\n\n\t\t // ==== Cartegraph changes ====\n\t\t var sort = \"\"; // field:order,field:order,etc\n\n\n\t\t for (var i = 0; i <= ts.p._sortedColumns.length - 1; i++) {\n\t\t if (sort.length > 0)\n\t\t sort += \",\";\n\t\t sort += ts.p._sortedColumns[i].name + \":\" + ts.p._sortedColumns[i].order;\n\n\t\t if (ts.p._sortedColumns[i].altSortField && ts.p._sortedColumns[i].altSortField != \"\")\n\t\t sort += \":\" + ts.p._sortedColumns[i].altSortField;\n\t\t }\n\n\t\t // ==== Dashboard Gadget - New Records ====\n\t\t if (ts.id == \"Gadget_NewRecordsGrid\") {\n\t\t if (ts.p._sortedColumns.length > 1) {\n\t\t sort = sort.replace(\"EntryDateField:desc,\", \"\");\n\t\t }\n\t\t if (ts.p._sortedColumns.length == 0) {\n\t\t sort = \"EntryDateField:desc\";\n\t\t }\n\t\t }\n\t\t // ==== Dachboard Gadget - New Records ====\n\n\t\t if (pN.sortinfo !== null) { prm[pN.sortinfo] = sort; }\n\t\t // ==== Cartegraph changes ====\n\n\t\t var lc = ts.p.loadComplete;\n\t\t var lcf = $.isFunction(lc);\n\t\t if (!lcf) { lc = null; }\n\t\t var adjust = 0;\n\t\t npage = npage || 1;\n\t\t if (npage > 1) {\n\t\t if (pN.npage !== null) {\n\t\t prm[pN.npage] = npage;\n\t\t adjust = npage - 1;\n\t\t npage = 1;\n\t\t } else {\n\t\t lc = function (req) {\n\t\t ts.p.page++;\n\t\t ts.grid.hDiv.loading = false;\n\t\t if (lcf) {\n\t\t ts.p.loadComplete.call(ts, req);\n\t\t }\n\t\t populate(npage - 1);\n\t\t };\n\t\t }\n\t\t } else if (pN.npage !== null) {\n\t\t delete ts.p.postData[pN.npage];\n\t\t }\n\t\t if (ts.p.grouping) {\n\t\t $(ts).jqGrid('groupingSetup');\n\t\t if (ts.p.groupingView.groupDataSorted === true) {\n\t\t prm[pN.sort] = ts.p.groupingView.groupField[0] + \" \" + ts.p.groupingView.groupOrder[0] + \", \" + prm[pN.sort];\n\t\t }\n\t\t }\n\t\t $.extend(ts.p.postData, prm);\n\t\t var rcnt = !ts.p.scroll ? 1 : ts.rows.length - 1;\n\t\t if ($.isFunction(ts.p.datatype)) { ts.p.datatype.call(ts, ts.p.postData, \"load_\" + ts.p.id); return; }\n\t\t else if ($.isFunction(ts.p.beforeRequest)) {\n\t\t var bfr = ts.p.beforeRequest.call(ts);\n\t\t if (bfr === undefined) { bfr = true; }\n\t\t if (bfr === false) { return; }\n\t\t }\n\n\t\t //Cartegraph change add a nav filter\n\t\t if ($.isArray(ts.p.postData['filters']) !== true)\n\t\t ts.p.postData['filters'] = ts.p.filter;\n\t\t //End Cartegraph change\n\n\t\t //Cartegraph change - send grid id to controller\n\t\t ts.p.postData['gridId'] = ts.p.id;\n //End Cartegraph change\n\n\t\t dt = ts.p.datatype.toLowerCase();\n\t\t switch (dt) {\n\t\t case \"json\":\n\t\t case \"jsonp\":\n\t\t case \"xml\":\n\t\t case \"script\":\n\t\t if (activeAjaxRequest != undefined && activeAjaxRequest.readyState == 4) {\n\t\t activeAjaxRequest.abort();\n\t\t activeAjaxRequest = null;\n\t\t }\n\n\t\t activeAjaxRequest =\n\t\t $.ajax($.extend({\n\t\t url: ts.p.url,\n\t\t type: ts.p.mtype,\n\t\t dataType: dt,\n\t\t traditional: true,\n\t\t data: $.isFunction(ts.p.serializeGridData) ? ts.p.serializeGridData.call(ts, ts.p.postData) : ts.p.postData,\n\t\t success: function (data, st, xhr) {\n\n\t\t //Cartegraph Change - Bug 34841/35523: Ignore the request if we are leaving the page. $.abort() was causing UI issues with the Wait Spinner.\n\t\t if (ts.p.stopAjaxCalls)\n\t\t return;\n\t\t //End of Change\n\n\t\t if ($.isFunction(ts.p.beforeProcessing)) {\n\t\t ts.p.beforeProcessing.call(ts, data, st, xhr);\n\t\t }\n\t\t if (dt === \"xml\") { addXmlData(data, ts.grid.bDiv, rcnt, npage > 1, adjust); }\n\t\t else { addJSONData(data, ts.grid.bDiv, rcnt, npage > 1, adjust); }\n\t\t if (lc) { lc.call(ts, data); }\n\t\t if (pvis) { ts.grid.populateVisible(); }\n\t\t if (ts.p.loadonce || ts.p.treeGrid) { ts.p.datatype = \"local\"; }\n\t\t data = null;\n\t\t if (npage === 1) { endReq(); }\n\t\t },\n\t\t error: function (xhr, st, err) {\n\t\t if ($.isFunction(ts.p.loadError)) {\n\t\t ts.p.loadError.call(ts, xhr, st, err);\n\t\t // ==== Cartegraph changes ====\n\t\t // added the following line to display the emptyrecords message in the pager when there is a load error\n\t\t if (ts.p.pager) { $(\".ui-paging-info\", ts.p.pager).html(ts.p.emptyrecords); }\n\t\t }\n\t\t if (npage === 1) { endReq(); }\n\t\t xhr = null;\n\n\t\t setTimeout(function () {\n\t\t Cartegraph.Utilities.removeWaitScreen();\n\t\t }, ts.p.carte_SelectedRows.length * 3);\n\t\t },\n\t\t beforeSend: function (xhr, settings) {\n\t\t var gotoreq = true;\n\t\t if ($.isFunction(ts.p.loadBeforeSend)) {\n\t\t gotoreq = ts.p.loadBeforeSend.call(ts, xhr, settings);\n\t\t }\n\t\t if (gotoreq === undefined) { gotoreq = true; }\n\t\t if (gotoreq === false) {\n\t\t return false;\n\t\t } else {\n\t\t beginReq();\n\t\t }\n\t\t }\n\t\t }, $.jgrid.ajaxOptions, ts.p.ajaxGridOptions));\n\n\n\t\t //Cartegraph Change - Bug 34841/35523: Ignore the request if we are leaving the page. $.abort() was causing UI issues with the Wait Spinner.\n\t\t $(Cartegraph.Routing).unbind('leaveURI.jqGrid').one('leaveURI.jqGrid', function () {\n ts.p.stopAjaxCalls = true;\n\n // Destroy the field chooser on page leave. Fixes a memory leak where the old\n // qtips where hanging around on navigation.\n if (ts.p.carte_qtipAPI)\n ts.p.carte_qtipAPI.destroy();\n\t\t });\n\t\t //End of Change\n\n\t\t break;\n\t\t case \"xmlstring\":\n\t\t beginReq();\n\t\t dstr = $.jgrid.stringToDoc(ts.p.datastr);\n\t\t addXmlData(dstr, ts.grid.bDiv);\n\t\t if (lcf) { ts.p.loadComplete.call(ts, dstr); }\n\t\t ts.p.datatype = \"local\";\n\t\t ts.p.datastr = null;\n\t\t endReq();\n\t\t break;\n\t\t case \"jsonstring\":\n\t\t beginReq();\n\t\t if (typeof ts.p.datastr == 'string') { dstr = $.jgrid.parse(ts.p.datastr); }\n\t\t else { dstr = ts.p.datastr; }\n\t\t addJSONData(dstr, ts.grid.bDiv);\n\t\t if (lcf) { ts.p.loadComplete.call(ts, dstr); }\n\t\t ts.p.datatype = \"local\";\n\t\t ts.p.datastr = null;\n\t\t endReq();\n\t\t break;\n\t\t case \"local\":\n\t\t case \"clientside\":\n\t\t beginReq();\n\t\t ts.p.datatype = \"local\";\n\t\t var req = addLocalData();\n\t\t addJSONData(req, ts.grid.bDiv, rcnt, npage > 1, adjust);\n\t\t if (lc) { lc.call(ts, req); }\n\t\t if (pvis) { ts.grid.populateVisible(); }\n\t\t endReq();\n\t\t break;\n\t\t }\n\t\t }\n\t\t},\n\t\tsetHeadCheckBox = function (checked) {\n\t\t $('#cb_' + $.jgrid.jqID(ts.p.id), ts.grid.hDiv)[ts.p.useProp ? 'prop' : 'attr'](\"checked\", checked);\n\t\t var fid = ts.p.frozenColumns ? ts.p.id + \"_frozen\" : \"\";\n\t\t if (fid) {\n\t\t $('#cb_' + $.jgrid.jqID(ts.p.id), ts.grid.frozenHeaderLeftDiv)[ts.p.useProp ? 'prop' : 'attr'](\"checked\", checked);\n\t\t }\n\t\t},\n\t\tsetPager = function (pgid, tp) {\n\t\t // TBD - consider escaping pgid with pgid = $.jgrid.jqID(pgid);\n\t\t var sep = \"\",\n\t\t\tpginp = \"\",\n\t\t\tpgl = \"\",\n\t\t\tstr = \"\", pgcnt, lft, cent, rgt, twd, tdw, i,\n\t\t\tclearVals = function (onpaging) {\n\t\t\t var ret;\n\t\t\t if ($.isFunction(ts.p.onPaging)) { ret = ts.p.onPaging.call(ts, onpaging); }\n\t\t\t ts.p.selrow = null;\n\t\t\t if (ts.p.multiselect) { ts.p.selarrrow = []; setHeadCheckBox(false); }\n\t\t\t ts.p.savedRow = [];\n\t\t\t if (ret == 'stop') { return false; }\n\t\t\t return true;\n\t\t\t};\n\t\t pgid = pgid.substr(1);\n\t\t tp += \"_\" + pgid;\n\t\t pgcnt = \"pg_\" + pgid;\n\t\t lft = pgid + \"_left\"; cent = pgid + \"_center\"; rgt = pgid + \"_right\";\n\t\t $(\"#\" + $.jgrid.jqID(pgid))\n\t\t\t.append(\"
    \")\n\t\t\t.attr(\"dir\", \"ltr\"); //explicit setting\n\t\t if (ts.p.rowList.length > 0) {\n\t\t str = \"\";\n\t\t str += \"\";\n\t\t }\n\t\t if (dir == \"rtl\") { pgl += str; }\n\t\t if (ts.p.pginput === true) { pginp = \"\" + $.jgrid.format(ts.p.pgtext || \"\", \"\", \"\") + \"\"; }\n\t\t if (ts.p.pgbuttons === true) {\n\t\t var po = [\"first\" + tp, \"prev\" + tp, \"next\" + tp, \"last\" + tp]; if (dir == \"rtl\") { po.reverse(); }\n\t\t pgl += \"\";\n\t\t pgl += \"\";\n\t\t pgl += pginp !== \"\" ? sep + pginp + sep : \"\";\n\t\t pgl += \"\";\n\t\t pgl += \"\";\n\t\t } else if (pginp !== \"\") { pgl += pginp; }\n\t\t if (dir == \"ltr\") { pgl += str; }\n\t\t pgl += \"\";\n\t\t if (ts.p.viewrecords === true) { $(\"td#\" + pgid + \"_\" + ts.p.recordpos, \"#\" + pgcnt).append(\"
    \"); }\n\t\t $(\"td#\" + pgid + \"_\" + ts.p.pagerpos, \"#\" + pgcnt).append(pgl);\n\t\t tdw = $(\".ui-jqgrid\").css(\"font-size\") || \"11px\";\n\t\t $(document.body).append(\"\");\n\t\t twd = $(pgl).clone().appendTo(\"#testpg\").width();\n\t\t $(\"#testpg\").remove();\n\t\t if (twd > 0) {\n\t\t if (pginp !== \"\") { twd += 50; } //should be param\n\t\t $(\"td#\" + pgid + \"_\" + ts.p.pagerpos, \"#\" + pgcnt).width(twd);\n\t\t }\n\t\t ts.p._nvtd = [];\n\t\t ts.p._nvtd[0] = twd ? Math.floor((ts.p.width - twd) / 2) : Math.floor(ts.p.width / 3);\n\t\t ts.p._nvtd[1] = 0;\n\t\t pgl = null;\n\t\t $('.ui-pg-selbox', \"#\" + pgcnt).bind('change', function () {\n\t\t ts.p.page = Math.round(ts.p.rowNum * (ts.p.page - 1) / this.value - 0.5) + 1;\n\t\t ts.p.rowNum = this.value;\n\t\t if (tp) { $('.ui-pg-selbox', ts.p.pager).val(this.value); }\n\t\t else if (ts.p.toppager) { $('.ui-pg-selbox', ts.p.toppager).val(this.value); }\n\t\t if (!clearVals('records')) { return false; }\n\t\t populate();\n\t\t return false;\n\t\t });\n\t\t if (ts.p.pgbuttons === true) {\n\t\t $(\".ui-pg-button\", \"#\" + pgcnt).hover(function (e) {\n\t\t if ($(this).hasClass('ui-state-disabled')) {\n\t\t this.style.cursor = 'default';\n\t\t } else {\n\t\t $(this).addClass('ui-state-hover');\n\t\t this.style.cursor = 'pointer';\n\t\t }\n\t\t }, function (e) {\n\t\t if (!$(this).hasClass('ui-state-disabled')) {\n\t\t $(this).removeClass('ui-state-hover');\n\t\t this.style.cursor = \"default\";\n\t\t }\n\t\t });\n\t\t $(\"#first\" + $.jgrid.jqID(tp) + \", #prev\" + $.jgrid.jqID(tp) + \", #next\" + $.jgrid.jqID(tp) + \", #last\" + $.jgrid.jqID(tp)).click(function (e) {\n\t\t var cp = intNum(ts.p.page, 1),\n\t\t\t\tlast = intNum(ts.p.lastpage, 1), selclick = false,\n\t\t\t\tfp = true, pp = true, np = true, lp = true;\n\t\t if (last === 0 || last === 1) { fp = false; pp = false; np = false; lp = false; }\n\t\t else if (last > 1 && cp >= 1) {\n\t\t if (cp === 1) { fp = false; pp = false; }\n\t\t //else if( cp>1 && cp 1 && cp === 0) { np = false; lp = false; cp = last - 1; }\n\t\t if (this.id === 'first' + tp && fp) { ts.p.page = 1; selclick = true; }\n\t\t if (this.id === 'prev' + tp && pp) { ts.p.page = (cp - 1); selclick = true; }\n\t\t if (this.id === 'next' + tp && np) { ts.p.page = (cp + 1); selclick = true; }\n\t\t if (this.id === 'last' + tp && lp) { ts.p.page = last; selclick = true; }\n\t\t if (selclick) {\n\t\t if (!clearVals(this.id)) { return false; }\n\t\t populate();\n\t\t }\n\t\t return false;\n\t\t });\n\t\t }\n\t\t if (ts.p.pginput === true) {\n\t\t $('input.ui-pg-input', \"#\" + pgcnt).keypress(function (e) {\n\t\t var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;\n\t\t if (key == 13) {\n\t\t ts.p.page = ($(this).val() > 0) ? $(this).val() : ts.p.page;\n\t\t if (!clearVals('user')) { return false; }\n\t\t populate();\n\t\t return false;\n\t\t }\n\t\t return this;\n\t\t });\n\t\t }\n\t\t},\n\t\tsortData = function (index, idxcol, reload, sor) {\n\n\t\t // return if column is not sortable\n\t\t if (!ts.p.colModel[idxcol].sortable) { return; }\n\n\t\t if (ts.p.savedRow.length > 0) { return; }\n\n\t\t if (!reload) {\n\t\t ts.p.page = 1;\n\t\t }\n\n\t\t var newColumnSort = true;\n\t\t var newSelectedTh = ts.grid.headers[idxcol].el;\n\n\t\t // if column is already sorted, just toggle it's state\n\t\t for (var i = ts.p._sortedColumns.length - 1; i >= 0; i--) {\n\n\t\t var columnSort = ts.p._sortedColumns[i];\n\n\t\t if (columnSort.name == ts.p.colModel[idxcol].name) {\n\t\t if (columnSort.order == 'asc') {\n\t\t columnSort.order = 'desc'; // toggle sort order from ASC to DESC\n\n\t\t $(\"span.ui-icon-asc\", newSelectedTh).addClass('ui-state-disabled'); // remove ASC icon\n $(\"span.ui-icon-desc\", newSelectedTh).removeClass('ui-state-disabled'); // show DESC icon\n $(newSelectedTh).addClass(\"column-is-sorted\");\n\t\t }\n\t\t else if (columnSort.order == 'desc') {\n\t\t ts.p._sortedColumns.remove(i); // toggling sort order from DESC to OFF - remove column sort\n\n $(\"span.ui-icon-desc\", newSelectedTh).addClass('ui-state-disabled'); // remove DESC icon\n $(newSelectedTh).removeClass(\"column-is-sorted\");\n\t\t //$(\"span.s-ico\", newSelectedTh).hide(); // hide entire sort span\n\t\t }\n\n\t\t newColumnSort = false; // column already sorted, don't add to array\n\t\t break;\n\t\t }\n\t\t }\n\n\t\t // column is toggling between no sort and ASC\n\t\t if (newColumnSort) {\n\t\t ts.p._sortedColumns.push(new SortInfo(ts.p.colModel[idxcol].name, 'asc', ts.p.colModel[idxcol].altSortField));\n\n\t\t $(\"span.ui-icon-asc\", newSelectedTh).removeClass('ui-state-disabled'); // show ASC icon\n\t\t $(\"span.s-ico\", newSelectedTh).show(); // show entire sort span\n $(\"span.s-ico\", newSelectedTh).css(\"display\", \"inline\"); //restore the display in order to show arrow on the left of the column (CARTEGRAPH)\n $(newSelectedTh).addClass(\"column-is-sorted\");\n\t\t }\n\n\t\t Cartegraph.FlexUI[p.id].persistGridSettings(p.colModel, ts.p._sortedColumns, p.pageClassName, p.colNames);\n\n\t\t if ($.isFunction(ts.p.onSortCol)) { ts.p.onSortCol.call(); }\n\t\t if (ts.p.datatype == \"local\") {\n\t\t if (ts.p.deselectAfterSort) { $(ts).jqGrid(\"resetSelection\"); }\n\t\t } else {\n\t\t ts.p.selrow = null;\n\t\t if (ts.p.multiselect) { setHeadCheckBox(false); }\n\t\t ts.p.selarrrow = [];\n\t\t ts.p.savedRow = [];\n\t\t }\n\t\t if (ts.p.scroll) {\n\t\t // ==== Cartegraph change: frozen columns ====\n\t\t //var sscroll = ts.grid.bDiv.scrollLeft;\n\t\t var sscroll = ts.grid.horizontalScrollContainer.scrollLeft;\n\t\t // ==== Cartegraph change: frozen columns ====\n\t\t emptyRows(ts.grid.bDiv, true, false);\n\t\t // when emptying rows need to reset the grid top to 0 to prevent the getlist from being called multiple times\n\t\t ts.grid.scrollTop = 0;\n\t\t ts.grid.hDiv.scrollLeft = sscroll;\n\t\t }\n\t\t if (ts.p.subGrid && ts.p.datatype == 'local') {\n\t\t $(\"td.sgexpanded\", \"#\" + $.jgrid.jqID(ts.p.id)).each(function () {\n\t\t $(this).trigger(\"click\");\n\t\t });\n\t\t }\n\t\t populate();\n\n\t\t},\n // ==== Cartegraph changes ====\n\n\n\t\tsetColWidth = function () {\n\t\t var initwidth = 0, brd = isSafari ? 0 : ts.p.cellLayout, vc = 0, lvc, scw = ts.p.scrollOffset, cw, hs = false, aw, gw = 0,\n\t\t\tcl = 0, cr;\n\t\t $.each(ts.p.colModel, function (i) {\n\t\t if (typeof this.hidden === 'undefined') { this.hidden = false; }\n\t\t this.widthOrg = cw = intNum(this.width, 0);\n\t\t if (this.hidden === false) {\n\t\t initwidth += cw + brd;\n\t\t if (this.fixed) {\n\t\t gw += cw + brd;\n\t\t } else {\n\t\t vc++;\n\t\t }\n\t\t cl++;\n\t\t }\n\t\t });\n\t\t if (isNaN(ts.p.width)) { ts.p.width = grid.width = initwidth; }\n\t\t else { grid.width = ts.p.width; }\n\t\t ts.p.tblwidth = initwidth;\n\t\t if (ts.p.shrinkToFit === false && ts.p.forceFit === true) { ts.p.forceFit = false; }\n\t\t if (ts.p.shrinkToFit === true && vc > 0) {\n\t\t aw = grid.width - brd * vc - gw;\n\t\t if (!isNaN(ts.p.height)) {\n\t\t aw -= scw;\n\t\t hs = true;\n\t\t }\n\t\t initwidth = 0;\n\t\t $.each(ts.p.colModel, function (i) {\n\t\t if (this.hidden === false && !this.fixed) {\n\t\t cw = Math.round(aw * this.width / (ts.p.tblwidth - brd * vc - gw));\n\t\t this.width = cw;\n\t\t initwidth += cw;\n\t\t lvc = i;\n\t\t }\n\t\t });\n\t\t cr = 0;\n\t\t if (hs) {\n\t\t if (grid.width - gw - (initwidth + brd * vc) !== scw) {\n\t\t cr = grid.width - gw - (initwidth + brd * vc) - scw;\n\t\t }\n\t\t } else if (!hs && Math.abs(grid.width - gw - (initwidth + brd * vc)) !== 1) {\n\t\t cr = grid.width - gw - (initwidth + brd * vc);\n\t\t }\n\t\t ts.p.colModel[lvc].width += cr;\n\t\t ts.p.tblwidth = initwidth + cr + brd * vc + gw;\n\t\t if (ts.p.tblwidth > ts.p.width) {\n\t\t ts.p.colModel[lvc].width -= (ts.p.tblwidth - parseInt(ts.p.width, 10));\n\t\t ts.p.tblwidth = ts.p.width;\n\t\t }\n\t\t }\n\n\t\t // ==== Cartegraph change: auto stretch last column ====\n\t\t if (ts.p.carte_stretchLastColumnIndex > -1) {\n\t\t var stretchColumnWidth = grid.width - ts.p.tblwidth;\n\t\t if (stretchColumnWidth > 0) {\n\t\t var stretchColumn = ts.p.colModel[ts.p.carte_stretchLastColumnIndex];\n\t\t stretchColumn.width = stretchColumnWidth;\n\t\t stretchColumn.widthOrg = stretchColumnWidth;\n\t\t stretchColumn.hidden = false;\n\t\t }\n\t\t }\n\t\t // ==== Cartegraph change: auto stretch last column ====\n\t\t},\n\t\tnextVisible = function (iCol) {\n\t\t var ret = iCol, j = iCol, i;\n\t\t for (i = iCol + 1; i < ts.p.colModel.length; i++) {\n\t\t if (ts.p.colModel[i].hidden !== true) {\n\t\t j = i; break;\n\t\t }\n\t\t }\n\t\t return j - ret;\n\t\t},\n\t\tgetOffset = function (iCol) {\n\t\t var i, ret = {}, brd1 = isSafari ? 0 : ts.p.cellLayout;\n\t\t ret[0] = ret[1] = ret[2] = 0;\n\t\t var $headers = $(ts.grid.hDiv).find('th'); // Cartegraph change - retrieve table headers for offset calculation\n\t\t for (i = 0; i <= iCol; i++) {\n\t\t if (ts.p.colModel[i].hidden === false) {\n\t\t // Cartegraph change - use actual table header elements to calculate offset to eliminate cross-browser rendering snafus\n\t\t //ret[0] += ts.p.colModel[i].width + brd1;\n\t\t ret[0] += $($headers[i]).outerWidth();\n\t\t // End Cartegraph change\n\t\t }\n\t\t }\n\t\t if (ts.p.direction == \"rtl\") { ret[0] = ts.p.width - ret[0]; }\n\t\t // ==== Cartegraph change: frozen columns ====\n\t\t //ret[0] = ret[0] - ts.grid.bDiv.scrollLeft;\n\t\t ret[0] = ret[0] - ts.grid.horizontalScrollContainer.scrollLeft;\n\t\t // ==== Cartegraph change: frozen columns ====\n\t\t if ($(ts.grid.cDiv).is(\":visible\")) { ret[1] += $(ts.grid.cDiv).height() + parseInt($(ts.grid.cDiv).css(\"padding-top\"), 10) + parseInt($(ts.grid.cDiv).css(\"padding-bottom\"), 10); }\n\t\t if (ts.p.toolbar[0] === true && (ts.p.toolbar[1] == 'top' || ts.p.toolbar[1] == 'both')) { ret[1] += $(ts.grid.uDiv).height() + parseInt($(ts.grid.uDiv).css(\"border-top-width\"), 10) + parseInt($(ts.grid.uDiv).css(\"border-bottom-width\"), 10); }\n\t\t if (ts.p.toppager) { ret[1] += $(ts.grid.topDiv).height() + parseInt($(ts.grid.topDiv).css(\"border-bottom-width\"), 10); }\n\t\t ret[2] += $(ts.grid.bDiv).height() + $(ts.grid.hDiv).height();\n\t\t return ret;\n\t\t},\n\t\tgetColumnHeaderIndex = function (th) {\n\t\t var i, headers = ts.grid.headers, ci = $.jgrid.getCellIndex(th);\n\t\t for (i = 0; i < headers.length; i++) {\n\t\t if (th === headers[i].el) {\n\t\t ci = i;\n\t\t break;\n\t\t }\n\t\t }\n\t\t return ci;\n\t\t};\n this.p.id = this.id;\n if ($.inArray(ts.p.multikey, sortkeys) == -1) { ts.p.multikey = false; }\n ts.p.keyIndex = false;\n for (i = 0; i < ts.p.colModel.length; i++) {\n ts.p.colModel[i] = $.extend(true, {}, ts.p.cmTemplate, ts.p.colModel[i].template || {}, ts.p.colModel[i]);\n if (ts.p.keyIndex === false && ts.p.colModel[i].key === true) {\n ts.p.keyIndex = i;\n }\n }\n ts.p.sortorder = ts.p.sortorder.toLowerCase();\n if (ts.p.grouping === true) {\n ts.p.scroll = false;\n ts.p.rownumbers = false;\n ts.p.subGrid = false;\n ts.p.treeGrid = false;\n ts.p.gridview = true;\n }\n if (this.p.treeGrid === true) {\n try { $(this).jqGrid(\"setTreeGrid\"); } catch (_) { }\n if (ts.p.datatype != \"local\") { ts.p.localReader = { id: \"_id_\" }; }\n }\n if (this.p.subGrid) {\n try { $(ts).jqGrid(\"setSubGrid\"); } catch (s) { }\n }\n if (this.p.multiselect) {\n this.p.colNames.unshift(\"\");\n this.p.colModel.unshift({ name: 'cb', width: isSafari ? ts.p.multiselectWidth + ts.p.cellLayout : ts.p.multiselectWidth, sortable: false, resizable: false, hidedlg: true, search: false, align: 'center', fixed: true });\n }\n if (this.p.rownumbers) {\n this.p.colNames.unshift(\"\");\n this.p.colModel.unshift({ name: 'rn', width: ts.p.rownumWidth, sortable: false, resizable: false, hidedlg: true, search: false, align: 'center', fixed: true });\n }\n ts.p.xmlReader = $.extend(true, {\n root: \"rows\",\n row: \"row\",\n page: \"rows>page\",\n total: \"rows>total\",\n records: \"rows>records\",\n repeatitems: true,\n cell: \"cell\",\n id: \"[id]\",\n userdata: \"userdata\",\n subgrid: { root: \"rows\", row: \"row\", repeatitems: true, cell: \"cell\" }\n }, ts.p.xmlReader);\n ts.p.jsonReader = $.extend(true, {\n root: \"rows\",\n page: \"page\",\n total: \"total\",\n records: \"records\",\n repeatitems: true,\n cell: \"cell\",\n id: \"id\",\n userdata: \"userdata\",\n subgrid: { root: \"rows\", repeatitems: true, cell: \"cell\" }\n }, ts.p.jsonReader);\n ts.p.localReader = $.extend(true, {\n root: \"rows\",\n page: \"page\",\n total: \"total\",\n records: \"records\",\n repeatitems: false,\n cell: \"cell\",\n id: \"id\",\n userdata: \"userdata\",\n subgrid: { root: \"rows\", repeatitems: true, cell: \"cell\" }\n }, ts.p.localReader);\n if (ts.p.scroll) {\n ts.p.pgbuttons = false; ts.p.pginput = false; ts.p.rowList = [];\n }\n if (ts.p.data.length) { refreshIndex(); }\n var thead = \"\",\n\t\ttdc, idn, w, res, sort,\n\t\ttd, ptr, tbody, imgs, iac = \"\", idc = \"\";\n if (ts.p.shrinkToFit === true && ts.p.forceFit === true) {\n for (i = ts.p.colModel.length - 1; i >= 0; i--) {\n if (!ts.p.colModel[i].hidden) {\n ts.p.colModel[i].resizable = false;\n break;\n }\n }\n }\n\n // ==== Cartegraph changes ====\n // parse the initial sort string [field:order,field:order,etc] and build the _sortedColumns array of SortInfo's\n var initialSort = ts.p.sortinfo;\n if (initialSort != null) {\n if (initialSort.length > 0) {\n if (typeof initialSort == \"string\") {\n var splitArray = initialSort.split(\",\");\n $.each(splitArray, function (index, value) {\n var splitArrayOnValue = value.split(\":\");\n ts.p._sortedColumns.push(new SortInfo(splitArrayOnValue[0], splitArrayOnValue[1], splitArrayOnValue[2]));\n });\n }\n else {\n $.each(initialSort, function (index, sortItem) { ts.p._sortedColumns.push(sortItem); });\n }\n }\n }\n // ==== Cartegraph changes ====\n\n if (ts.p.viewsortcols[1] == 'horizontal') { iac = \" ui-i-asc\"; idc = \" ui-i-desc\"; }\n tdc = isMSIE ? \"class='ui-th-div-ie'\" : \"\";\n imgs = \"\";\n for (i = 0; i < this.p.colNames.length; i++) {\n\n // ==== Cartegraph changes ====\n // use the tooltip model property\n var tooltip = ts.p.headertitles && ts.p.colModel[i].toolTip ? (\" title=\\\"\" + ts.p.colModel[i].toolTip + \"\\\"\") : \"\";\n // ==== Cartegraph changes ====\n\n thead += \"\";\n idn = ts.p.colModel[i].index || ts.p.colModel[i].name;\n thead += \"
    \" + ts.p.colNames[i];\n if (!ts.p.colModel[i].width) { ts.p.colModel[i].width = 150; }\n else { ts.p.colModel[i].width = parseInt(ts.p.colModel[i].width, 10); }\n if (typeof (ts.p.colModel[i].title) !== \"boolean\") { ts.p.colModel[i].title = true; }\n if (idn == ts.p.sortname) {\n ts.p.lastsort = i;\n }\n\n if (i === 0 && ts.p.carte_RowSelection && !ts.p.colModel[i].supressCheckAll) {\n if (ts.p.colModel[i].width === 75) { // has sort by selection icon\n thead = thead.replace('ui-th-column', 'ui-th-column grid-selection-header');\n thead += \"
    \" + sortsvg() + \"
    \";\n } else {\n thead += \"
    \";\n }\n }\n else {\n thead += imgs + \"
    \";\n }\n }\n thead += \"\";\n imgs = null;\n $(this).append(thead);\n $(\"thead tr:first th\", this).hover(function () { $(this).addClass('ui-state-hover'); }, function () { $(this).removeClass('ui-state-hover'); });\n if (this.p.multiselect) {\n var emp = [], chk;\n $('#cb_' + $.jgrid.jqID(ts.p.id), this).bind('click touchend', function () {\n ts.p.selarrrow = [];\n var froz = ts.p.frozenColumns === true ? ts.p.id + \"_frozen\" : \"\";\n if (this.checked) {\n $(ts.rows).each(function (i) {\n if (i > 0) {\n if (!$(this).hasClass(\"ui-subgrid\") && !$(this).hasClass(\"jqgroup\") && !$(this).hasClass('ui-state-disabled')) {\n $(\"#jqg_\" + $.jgrid.jqID(ts.p.id) + \"_\" + $.jgrid.jqID(this.id))[ts.p.useProp ? 'prop' : 'attr'](\"checked\", true);\n $(this).addClass(\"ui-state-highlight\").attr(\"aria-selected\", \"true\");\n ts.p.selarrrow.push(this.id);\n ts.p.selrow = this.id;\n if (froz) {\n $(\"#jqg_\" + $.jgrid.jqID(ts.p.id) + \"_\" + $.jgrid.jqID(this.id), ts.grid.frozenLeftTable)[ts.p.useProp ? 'prop' : 'attr'](\"checked\", true);\n $(\"#\" + $.jgrid.jqID(this.id), ts.grid.frozenLeftTable).addClass(\"ui-state-highlight\");\n }\n }\n }\n });\n chk = true;\n emp = [];\n }\n else {\n $(ts.rows).each(function (i) {\n if (i > 0) {\n if (!$(this).hasClass(\"ui-subgrid\") && !$(this).hasClass('ui-state-disabled')) {\n $(\"#jqg_\" + $.jgrid.jqID(ts.p.id) + \"_\" + $.jgrid.jqID(this.id))[ts.p.useProp ? 'prop' : 'attr'](\"checked\", false);\n $(this).removeClass(\"ui-state-highlight\").attr(\"aria-selected\", \"false\");\n emp.push(this.id);\n if (froz) {\n $(\"#jqg_\" + $.jgrid.jqID(ts.p.id) + \"_\" + $.jgrid.jqID(this.id), ts.grid.frozenLeftTable)[ts.p.useProp ? 'prop' : 'attr'](\"checked\", false);\n $(\"#\" + $.jgrid.jqID(this.id), ts.grid.frozenLeftTable).removeClass(\"ui-state-highlight\");\n }\n }\n }\n });\n ts.p.selrow = null;\n chk = false;\n }\n if ($.isFunction(ts.p.onSelectAll)) { ts.p.onSelectAll.call(ts, chk ? ts.p.selarrrow : emp, chk); }\n });\n }\n\n if (ts.p.autowidth === true) {\n var pw = $(eg).innerWidth();\n ts.p.width = pw > 0 ? pw : 'nw';\n }\n setColWidth();\n $(eg).css(\"width\", grid.width + \"px\").append(\"
     
    \");\n $(gv).css(\"width\", grid.width + \"px\");\n thead = $(\"thead:first\", ts).get(0);\n var tfoot = \"\";\n if (ts.p.footerrow) { tfoot += \"\"; }\n var thr = $(\"tr:first\", thead),\n\t\tfirstr = \"\";\n ts.p.disableClick = false;\n\n // ==== Cartegraph change: frozen columns ====\n\n var frozenColumnsIDs = [];\n\n // 'setFrozenColumns' has not been called yet, so determine if any columns are frozen\n for (i = 0; i < ts.p.colModel.length; i++) {\n if (ts.p.colModel[i].frozen === true)\n frozenColumnsIDs.push(ts.p.colModel[i].name);\n }\n\n // ==== Cartegraph change: frozen columns ====\n\n $(\"th\", thr).each(function (j) {\n w = ts.p.colModel[j].width;\n if (typeof ts.p.colModel[j].resizable === 'undefined') { ts.p.colModel[j].resizable = true; }\n if (ts.p.colModel[j].resizable) {\n res = document.createElement(\"span\");\n $(res).html(\" \").addClass('ui-jqgrid-resize ui-jqgrid-resize-' + dir);\n if (!$.browser.opera) { $(res).css(\"cursor\", \"col-resize\"); }\n $(this).addClass(ts.p.resizeclass);\n } else {\n res = \"\";\n }\n $(this).css(\"width\", w + \"px\").prepend(res);\n var hdcol = \"\";\n if (ts.p.colModel[j].hidden) {\n $(this).css(\"display\", \"none\");\n hdcol = \"display:none;\";\n }\n firstr += \"\";\n grid.headers[j] = { width: w, el: this };\n sort = ts.p.colModel[j].sortable;\n if (typeof sort !== 'boolean') { ts.p.colModel[j].sortable = true; sort = true; }\n var nm = ts.p.colModel[j].name;\n // ==== Cartegraph change: auto stretch last column ====\n // ==== Cartegraph change: frozen columns ====\n // don't change cursor to select pointer (a hand with the index finger pointing) when column should not be sortable or reorderable\n if (!(nm == 'cb' || nm == 'subgrid' || nm == 'rn' || nm == 'cgStretchLastColumn' || (jQuery.inArray(nm, frozenColumnsIDs) != -1))) {\n // ==== Cartegraph change: auto stretch last column ====\n // ==== Cartegraph change: frozen columns ====\n if (ts.p.viewsortcols[2] && ts.p.colModel[j].sortable) {\n $(\">div\", this).addClass('ui-jqgrid-sortable');\n }\n }\n // ==== Cartegraph changes ====\n if (sort) {\n // if this column is sorted on initial display, show the appropriate sort order\n for (var k = 0; k <= ts.p._sortedColumns.length - 1; k++) {\n if (ts.p.colModel[j].name == ts.p._sortedColumns[k].name) {\n $(\"span.ui-icon-\" + ts.p._sortedColumns[k].order, this).removeClass('ui-state-disabled');\n $(this).addClass(\"column-is-sorted\") // show icon\n $(\"span.s-ico\", this).show(); // show entire sort span\n $(\"span.s-ico\").css(\"display\", \"inline\");\n $(\"span.s-ico\").css(\"position\", \"absolute\");\n }\n }\n }\n\n // ==== Cartegraph changes ====\n if (ts.p.footerrow) { tfoot += \"\"; }\n }).mousedown(function (e) {\n if ($(e.target).closest(\"th>span.ui-jqgrid-resize\").length != 1) { return; }\n var ci = getColumnHeaderIndex(this);\n if (ts.p.forceFit === true) { ts.p.nv = nextVisible(ci); }\n grid.dragStart(ci, e, getOffset(ci));\n return false;\n }).click(function (e) {\n if (ts.p.disableClick) {\n ts.p.disableClick = false;\n return false;\n }\n var ci = getColumnHeaderIndex(this);\n if (ci == 0 && ts.p.carte_RowSelection) {\n var selector = $('#' + ts.id + '_RowSelect div.selectall');\n if ($(e.target).hasClass(\"uncheckall\")) {\n\n var limit = Cartegraph.Limits.ItemSelectMax;\n\n // limit grid to max rows for select all\n if (ts.p.records && ts.p.records > limit) {\n var limitString = accounting.formatNumber(limit).replace(\".00\", \"\"); // strip decimals if it's an integer after rounding.\n Cartegraph.Utilities.errorDialog(Cartegraph.Resources.CannotSelectAll, String.Format(Cartegraph.Resources.ToManyRecordsInListFilterToLess, limitString));\n return false;\n }\n\n $(ts).jqGrid('selectAllItems', $(ts));\n selector.removeClass('uncheckall');\n selector.removeClass('checksome').addClass('checkall');\n }\n else if ($(e.target).hasClass(\"checkall\")) {\n $(ts).jqGrid('clearAllItems', $(ts));\n selector.removeClass('checkall');\n selector.removeClass('checksome').addClass('uncheckall');\n }\n else if ($(e.target).hasClass(\"checksome\")) {\n $(ts).jqGrid('clearAllItems', $(ts));\n selector.removeClass('checkall');\n selector.removeClass('checksome').addClass('uncheckall');\n }\n\n return false;\n }\n\n var s = \"th>div.ui-jqgrid-sortable\", r, d;\n if (!ts.p.viewsortcols[2]) { s = \"th>div>span>span.ui-grid-ico-sort\"; }\n var t = $(e.target).closest(s);\n if (t.length != 1) { return; }\n var ci = getColumnHeaderIndex(this);\n if (!ts.p.viewsortcols[2]) { r = true; d = t.attr(\"sort\"); }\n sortData($('div', this)[0].id, ci, r, d);\n return false;\n });\n\n if (ts.p.sortable && $.fn.sortable) {\n try {\n $(ts).jqGrid(\"sortableColumns\", thr);\n } catch (e) { }\n }\n if (ts.p.footerrow) { tfoot += \"
     
    \"; }\n firstr += \"\";\n tbody = document.createElement(\"tbody\");\n this.appendChild(tbody);\n $(this).addClass('ui-jqgrid-btable').append(firstr);\n firstr = null;\n var hTable = $(\"
    \").append(thead),\n\t\thg = (ts.p.caption && ts.p.hiddengrid === true) ? true : false,\n\t\thb = $(\"
    \");\n thead = null;\n grid.hDiv = document.createElement(\"div\");\n $(grid.hDiv)\n\t\t\t.css({ width: grid.width + \"px\" })\n\t\t\t.addClass(\"ui-state-default ui-jqgrid-hdiv\")\n\t\t\t.append(hb);\n $(hb).append(hTable);\n hTable = null;\n if (hg) { $(grid.hDiv).hide(); }\n if (ts.p.pager) {\n // TBD -- escape ts.p.pager here?\n if (typeof ts.p.pager == \"string\") { if (ts.p.pager.substr(0, 1) != \"#\") { ts.p.pager = \"#\" + ts.p.pager; } }\n else { ts.p.pager = \"#\" + $(ts.p.pager).attr(\"id\"); }\n $(ts.p.pager).css({ width: grid.width + \"px\" }).appendTo(eg).addClass('ui-state-default ui-jqgrid-pager ui-corner-bottom');\n if (hg) { $(ts.p.pager).hide(); }\n setPager(ts.p.pager, '');\n }\n\n // ==== Cartegraph change: frozen columns ====\n //if (ts.p.cellEdit === false && ts.p.hoverrows === true) {\n if (ts.p.cellEdit === false && ts.p.hoverrows === true && frozenColumnsIDs.length == 0) {\n // ==== Cartegraph change: frozen columns ====\n $(ts).bind('mouseover touchstart', function (e) {\n ptr = $(e.target, ts).closest(\"tr.jqgrow\");\n if ($(ptr).attr(\"class\") !== \"ui-subgrid\") {\n $(ptr).addClass(\"ui-state-hover\");\n }\n }).bind('mouseout', function (e) {\n ptr = $(e.target).closest(\"tr.jqgrow\");\n $(ptr).removeClass(\"ui-state-hover\");\n });\n }\n var ri, ci;\n $(ts).before(grid.hDiv).bind('click touchend', function (e) {\n td = e.target;\n ptr = $(td, ts.rows).closest(\"tr.jqgrow\");\n\n // ==== Cartegraph change: frozen columns ====\n\n //if ($(ptr).length === 0 || ptr[0].className.indexOf('ui-state-disabled') > -1 || $(td, ts).closest(\"table.ui-jqgrid-btable\")[0].id.replace(\"_frozen\", \"\") !== ts.id) {\n if ($(ptr).length === 0 || ptr[0].className.indexOf('ui-state-disabled') > -1 || $(td, ts).closest(\"table.ui-jqgrid-btable\")[0].id.replace(/_frozen.*/g, \"\") !== ts.id) {\n\n // ==== Cartegraph change: frozen columns ====\n\n return this;\n }\n var scb = $(td).hasClass(\"cbox\"),\n\t\t\tcSel = true;\n if ($.isFunction(ts.p.beforeSelectRow)) { cSel = ts.p.beforeSelectRow.call(ts, ptr[0].id, e); }\n if (td.tagName == 'A' || ((td.tagName == 'INPUT' || td.tagName == 'TEXTAREA' || td.tagName == 'OPTION' || td.tagName == 'SELECT') && !scb)) { return this; }\n if (cSel === true) {\n if (ts.p.cellEdit === true) {\n if (ts.p.multiselect && scb) {\n $(ts).jqGrid(\"setSelection\", ptr[0].id, true);\n } else {\n ri = ptr[0].rowIndex;\n ci = $.jgrid.getCellIndex(td);\n try { $(ts).jqGrid(\"editCell\", ri, ci, true); } catch (_) { }\n }\n } else if (!ts.p.multikey) {\n if (ts.p.multiselect && ts.p.multiboxonly) {\n if (scb) { $(ts).jqGrid(\"setSelection\", ptr[0].id, true); }\n else {\n var frz = ts.p.frozenColumns ? ts.p.id + \"_frozen\" : \"\";\n $(ts.p.selarrrow).each(function (i, n) {\n var ind = ts.rows.namedItem(n);\n $(ind).removeClass(\"ui-state-highlight\");\n $(\"#jqg_\" + $.jgrid.jqID(ts.p.id) + \"_\" + $.jgrid.jqID(n))[ts.p.useProp ? 'prop' : 'attr'](\"checked\", false);\n if (frz) {\n $(\"#\" + $.jgrid.jqID(n), \"#\" + $.jgrid.jqID(frz)).removeClass(\"ui-state-highlight\");\n $(\"#jqg_\" + $.jgrid.jqID(ts.p.id) + \"_\" + $.jgrid.jqID(n), \"#\" + $.jgrid.jqID(frz))[ts.p.useProp ? 'prop' : 'attr'](\"checked\", false);\n }\n });\n ts.p.selarrrow = [];\n $(ts).jqGrid(\"setSelection\", ptr[0].id, true);\n }\n } else {\n $(ts).jqGrid(\"setSelection\", ptr[0].id, true, e, $(ptr[0]).data('classnameoid'));\n }\n } else {\n if (e[ts.p.multikey]) {\n $(ts).jqGrid(\"setSelection\", ptr[0].id, true);\n } else if (ts.p.multiselect && scb) {\n scb = $(\"#jqg_\" + $.jgrid.jqID(ts.p.id) + \"_\" + ptr[0].id).is(\":checked\");\n $(\"#jqg_\" + $.jgrid.jqID(ts.p.id) + \"_\" + ptr[0].id)[ts.p.useProp ? 'prop' : 'attr'](\"checked\", scb);\n }\n }\n if ($.isFunction(ts.p.onCellSelect)) {\n ri = ptr[0].id;\n ci = $.jgrid.getCellIndex(td);\n ts.p.onCellSelect.call(ts, ri, ci, $(td).html(), e);\n }\n //e.stopPropagation();\n }\n //else {\n return this;\n //}\n }).bind('reloadGrid', function (e, opts) {\n if (ts.p.treeGrid === true) { ts.p.datatype = ts.p.treedatatype; }\n if (opts && opts.current) {\n ts.grid.selectionPreserver(ts);\n }\n if (ts.p.datatype == \"local\") { $(ts).jqGrid(\"resetSelection\"); if (ts.p.data.length) { refreshIndex(); } }\n else if (!ts.p.treeGrid) {\n ts.p.selrow = null;\n if (ts.p.multiselect) { ts.p.selarrrow = []; setHeadCheckBox(false); }\n ts.p.savedRow = [];\n }\n if (ts.p.scroll) {\n emptyRows(ts.grid.bDiv, true, false);\n // when emptying rows need to reset the grid top to 0 to prevent the getlist from being called multiple times\n ts.grid.scrollTop = 0;\n }\n if (opts && opts.page) {\n var page = opts.page;\n if (page > ts.p.lastpage) { page = ts.p.lastpage; }\n if (page < 1) { page = 1; }\n ts.p.page = page;\n if (ts.grid.prevRowHeight) {\n ts.grid.bDiv.scrollTop = (page - 1) * ts.grid.prevRowHeight * ts.p.rowNum;\n } else {\n ts.grid.bDiv.scrollTop = 0;\n }\n }\n\n if (opts && opts.forcePopulate) {\n ts.grid.populate(false);\n }\n else if (ts.grid.prevRowHeight && ts.p.scroll) {\n delete ts.p.lastpage;\n ts.grid.populateVisible();\n } else {\n ts.grid.populate();\n }\n\n return false;\n }).bind('selectAllGridRows', function () {\n ts.grid.selectionPreserver(ts);\n emptyRows(ts.grid.bDiv, true, false);\n ts.grid.populate();\n });\n if ($.isFunction(this.p.ondblClickRow)) {\n $(this).dblclick(function (e) {\n td = e.target;\n ptr = $(td, ts.rows).closest(\"tr.jqgrow\");\n if ($(ptr).length === 0) { return false; }\n ri = ptr[0].rowIndex;\n ci = $.jgrid.getCellIndex(td);\n ts.p.ondblClickRow.call(ts, $(ptr).attr(\"id\"), ri, ci, e);\n return false;\n });\n }\n if ($.isFunction(this.p.onRightClickRow)) {\n $(this).bind('contextmenu', function (e) {\n td = e.target;\n ptr = $(td, ts.rows).closest(\"tr.jqgrow\");\n if ($(ptr).length === 0) { return false; }\n if (!ts.p.multiselect) { $(ts).jqGrid(\"setSelection\", ptr[0].id, true); }\n ri = ptr[0].rowIndex;\n ci = $.jgrid.getCellIndex(td);\n ts.p.onRightClickRow.call(ts, $(ptr).attr(\"id\"), ri, ci, e);\n return false;\n });\n }\n grid.bDiv = document.createElement(\"div\");\n if (isMSIE) { if (String(ts.p.height).toLowerCase() === \"auto\") { ts.p.height = \"100%\"; } }\n\n\n // ==== Cartegraph change: frozen columns ====\n\n /*\n * Don't use the built-in overflow horizontal scrollbar - create
    's that will replace the scrollbar so frozen tables\n * can be positioned absolute during horizontal scrolling\n */\n grid.horizontalScrollbar = document.createElement(\"div\");\n\n $(grid.horizontalScrollbar)\n .attr({ id: 'carte_' + ts.p.id + '_horizontalScrollbar' })\n .addClass(\"ie10horizontalscroll\")\n .css({ width: '100%', 'overflow-x': 'scroll', 'overflow-y': 'hidden', position: 'absolute', bottom: '0px', visibility: 'hidden' })\n .append(this).append('
    ')\n .scroll(function () {\n $(grid.horizontalScrollContainer).scrollLeft(this.scrollLeft);\n $(grid.hDiv).scrollLeft(this.scrollLeft);\n });\n\n /*\n * Container that will allow scrollbars to be overlayed on top of the body div by using absolute positioning\n */\n var verticalContainer = document.createElement(\"div\");\n $(verticalContainer)\n .attr({ id: 'carte_' + ts.p.id + '_bDivAndScrollbars' })\n .css({ position: 'relative' })\n .append(grid.bDiv)\n .append(grid.horizontalScrollbar);\n $('#gview_' + ts.p.id).append(verticalContainer);\n\n /*\n * Frozen tables are positioned absolute so they overlay the main table, but all tables must\n * be contained within a
    that renders in the normal document flow [static] for smooth vertical scrolling.\n */\n var tablesContainer = document.createElement(\"div\");\n\n /*\n * Introduce a container that scrolls horizontally ONLY - thus we can position the main table and frozen tables\n * absolute so the frozen table overlay the main table and they will remain fixed during horizontal scrolling\n */\n grid.horizontalScrollContainer = document.createElement(\"div\");\n $(grid.horizontalScrollContainer)\n .attr({ id: 'carte_' + ts.p.id + '_horizontalScrollContainer' })\n .css({ width: '100%', 'overflow': 'hidden', position: 'absolute' })\n .append(this);\n $(tablesContainer).attr({ id: 'carte_' + ts.p.id + '_tablesContainer' }).css({ position: 'relative' }).append(grid.horizontalScrollContainer);\n\n $(grid.bDiv)\n //.append($('
    ').append('
    ').append(this))\n .append($('
    ').append('
    ').append(tablesContainer))\n // ==== Cartegraph change: frozen columns ====\n\n .addClass(\"ui-jqgrid-bdiv\")\n .css({ height: ts.p.height + (isNaN(ts.p.height) ? \"\" : \"px\"), width: (grid.width) + \"px\" })\n .bind('scrollstart', function() { })\n .bind('scrollstop', jq_grid_throttle(function(e) { grid.scrollGrid(e);}, 500));\n $(\"table:first\", grid.bDiv).css({ width: ts.p.tblwidth + \"px\" });\n if (isMSIE) {\n if ($(\"tbody\", this).size() == 2) { $(\"tbody:gt(0)\", this).remove(); }\n if (ts.p.multikey) { $(grid.bDiv).bind(\"selectstart\", function () { return false; }); }\n } else {\n if (ts.p.multikey) { $(grid.bDiv).bind(\"mousedown\", function () { return false; }); }\n }\n if (hg) { $(grid.bDiv).hide(); }\n grid.cDiv = document.createElement(\"div\");\n var arf = ts.p.hidegrid === true ? $(\"\").addClass('ui-jqgrid-titlebar-close HeaderButton').bind('hover touchstart',\n\t\t\tfunction (e) { arf.addClass('ui-state-hover'); /*e.preventDefault();*/ },\n\t\t\tfunction () { arf.removeClass('ui-state-hover'); })\n\t\t.append(\"\").css((dir == \"rtl\" ? \"left\" : \"right\"), \"0px\") : \"\";\n $(grid.cDiv).append(arf).append(\"\" + ts.p.caption + \"\")\n\t\t.addClass(\"ui-jqgrid-titlebar ui-widget-header ui-corner-top ui-helper-clearfix\");\n $(grid.cDiv).insertBefore(grid.hDiv);\n if (ts.p.toolbar[0]) {\n grid.uDiv = document.createElement(\"div\");\n if (ts.p.toolbar[1] == \"top\") { $(grid.uDiv).insertBefore(grid.hDiv); }\n else if (ts.p.toolbar[1] == \"bottom\") { $(grid.uDiv).insertAfter(grid.hDiv); }\n if (ts.p.toolbar[1] == \"both\") {\n grid.ubDiv = document.createElement(\"div\");\n $(grid.uDiv).insertBefore(grid.hDiv).addClass(\"ui-userdata ui-state-default\").attr(\"id\", \"t_\" + this.id);\n $(grid.ubDiv).insertAfter(grid.hDiv).addClass(\"ui-userdata ui-state-default\").attr(\"id\", \"tb_\" + this.id);\n if (hg) { $(grid.ubDiv).hide(); }\n } else {\n $(grid.uDiv).width(grid.width).addClass(\"ui-userdata ui-state-default\").attr(\"id\", \"t_\" + this.id);\n }\n if (hg) { $(grid.uDiv).hide(); }\n }\n if (ts.p.toppager) {\n ts.p.toppager = $.jgrid.jqID(ts.p.id) + \"_toppager\";\n grid.topDiv = $(\"
    \")[0];\n ts.p.toppager = \"#\" + ts.p.toppager;\n $(grid.topDiv).insertBefore(grid.hDiv).addClass('ui-state-default ui-jqgrid-toppager').width(grid.width);\n setPager(ts.p.toppager, '_t');\n }\n if (ts.p.footerrow) {\n grid.sDiv = $(\"
    \")[0];\n hb = $(\"
    \");\n $(grid.sDiv).append(hb).insertAfter(grid.hDiv).width(grid.width);\n $(hb).append(tfoot);\n grid.footers = $(\".ui-jqgrid-ftable\", grid.sDiv)[0].rows[0].cells;\n if (ts.p.rownumbers) { grid.footers[0].className = 'ui-state-default jqgrid-rownum'; }\n if (hg) { $(grid.sDiv).hide(); }\n }\n hb = null;\n if (ts.p.caption) {\n var tdt = ts.p.datatype;\n if (ts.p.hidegrid === true) {\n $(\".ui-jqgrid-titlebar-close\", grid.cDiv).click(function (e) {\n var onHdCl = $.isFunction(ts.p.onHeaderClick),\n\t\t\t\t\telems = \".ui-jqgrid-bdiv, .ui-jqgrid-hdiv, .ui-jqgrid-pager, .ui-jqgrid-sdiv\",\n\t\t\t\t\tcounter, self = this;\n if (ts.p.toolbar[0] === true) {\n if (ts.p.toolbar[1] == 'both') {\n elems += ', #' + $(grid.ubDiv).attr('id');\n }\n elems += ', #' + $(grid.uDiv).attr('id');\n }\n counter = $(elems, \"#gview_\" + $.jgrid.jqID(ts.p.id)).length;\n\n if (ts.p.gridstate == 'visible') {\n $(elems, \"#gbox_\" + $.jgrid.jqID(ts.p.id)).slideUp(\"fast\", function () {\n counter--;\n if (counter === 0) {\n $(\"span\", self).removeClass(\"ui-icon-circle-triangle-n\").addClass(\"ui-icon-circle-triangle-s\");\n ts.p.gridstate = 'hidden';\n if ($(\"#gbox_\" + $.jgrid.jqID(ts.p.id)).hasClass(\"ui-resizable\")) { $(\".ui-resizable-handle\", \"#gbox_\" + $.jgrid.jqID(ts.p.id)).hide(); }\n if (onHdCl) { if (!hg) { ts.p.onHeaderClick.call(ts, ts.p.gridstate, e); } }\n }\n });\n } else if (ts.p.gridstate == 'hidden') {\n $(elems, \"#gbox_\" + $.jgrid.jqID(ts.p.id)).slideDown(\"fast\", function () {\n counter--;\n if (counter === 0) {\n $(\"span\", self).removeClass(\"ui-icon-circle-triangle-s\").addClass(\"ui-icon-circle-triangle-n\");\n if (hg) { ts.p.datatype = tdt; populate(); hg = false; }\n ts.p.gridstate = 'visible';\n if ($(\"#gbox_\" + $.jgrid.jqID(ts.p.id)).hasClass(\"ui-resizable\")) { $(\".ui-resizable-handle\", \"#gbox_\" + $.jgrid.jqID(ts.p.id)).show(); }\n if (onHdCl) { if (!hg) { ts.p.onHeaderClick.call(ts, ts.p.gridstate, e); } }\n }\n });\n }\n return false;\n });\n if (hg) { ts.p.datatype = \"local\"; $(\".ui-jqgrid-titlebar-close\", grid.cDiv).trigger(\"click\"); }\n }\n } else { $(grid.cDiv).hide(); }\n // ==== Cartegraph change: frozen columns ====\n //$(grid.hDiv).after(grid.bDiv)\n $(grid.hDiv).after(verticalContainer)\n // ==== Cartegraph change: frozen columns ====\n\t\t.mousemove(function (e) {\n\t\t if (grid.resizing) { grid.dragMove(e); return false; }\n\t\t});\n $(\".ui-jqgrid-labels\", grid.hDiv).bind(\"selectstart\", function () { return false; });\n $(document).bind('mouseup.Cartegraph', handleMouseUp);\n $(grid.bDiv).bind('destroyed', function () {\n $(document).unbind('mouseup.Cartegraph', handleMouseUp);\n });\n\n function handleMouseUp() {\n if (grid.resizing) {\n grid.dragEnd();\n return false;\n }\n return true;\n }\n ts.formatCol = formatCol;\n ts.sortData = sortData;\n ts.updatepager = updatepager;\n ts.refreshIndex = refreshIndex;\n ts.setHeadCheckBox = setHeadCheckBox;\n\n ts.formatter = function (rowId, cellval, colpos, rwdat, act) { return formatter(rowId, cellval, colpos, rwdat, act); };\n $.extend(grid, { populate: populate, emptyRows: emptyRows });\n this.grid = grid;\n ts.addXmlData = function (d) { addXmlData(d, ts.grid.bDiv); };\n ts.addJSONData = function (d) { addJSONData(d, ts.grid.bDiv); };\n this.grid.cols = this.rows[0].cells;\n\n // ==== Cartegraph change: FLEXI designer ====\n // In FLEXI design mode don't fetch data from the server but allow you to horizontal scroll so you can resize columns\n if (ts.p.carte_IsInDesignMode) {\n $('#' + p.id).css({ width: $(grid.hDiv).width() + 'px', height: '1px' });\n $(ts).jqGrid('recalculateHorizontalScrollbar');\n }\n else\n populate();\n ts.p.hiddengrid = false;\n // ==== Cartegraph change: FLEXI designer ====\n // ==== Cartegraph changes ====\n //Removed because it was creating memory leaks. It was not clear that this was ever being called, except when you do a full page refresh... In that case the DOM would have been cleared out anyway\n // $(window).unload(function () {\n // ts = null;\n // });\n });\n };\n\n // ==== Cartegraph changes ====\n\n // object of sort info\n function SortInfo(name, order, altSortField) {\n\n this.name = name;\n this.order = order;\n this.altSortField = altSortField;\n }\n\n // Array Remove - By John Resig (MIT Licensed) http://ejohn.org/blog/javascript-array-remove/\n Array.prototype.remove = function (from, to) {\n var rest = this.slice((to || from) + 1 || this.length);\n this.length = from < 0 ? this.length + from : from;\n return this.push.apply(this, rest);\n };\n // ==== Cartegraph changes ====\n\n $.jgrid.extend({\n getGridParam: function (pName) {\n var $t = this[0];\n if (!$t || !$t.grid) { return; }\n if (!pName) { return $t.p; }\n else { return typeof ($t.p[pName]) != \"undefined\" ? $t.p[pName] : null; }\n },\n setGridParam: function (newParams) {\n return this.each(function () {\n if (this.grid && typeof (newParams) === 'object') { $.extend(true, this.p, newParams); }\n });\n },\n getDataIDs: function () {\n var ids = [], i = 0, len, j = 0;\n this.each(function () {\n len = this.rows.length;\n if (len && len > 0) {\n while (i < len) {\n if ($(this.rows[i]).hasClass('jqgrow')) {\n ids[j] = this.rows[i].id;\n j++;\n }\n i++;\n }\n }\n });\n return ids;\n },\n /*\n * Begin Cartegraph changes: row selection methods\n */\n //xxxMap\n selectAllItems: function (that) {\n require([\"Analytics/Insights\"], function (Insights) {\n var $t = that.jqGrid()[0]; // column 0 is the checkboxes\n if (!$t) return;\n\n if ($t.p.records > 200)\n Cartegraph.Utilities.showWaitScreen(Cartegraph.Resources.ProcessingSelectAll);\n\n var strBounds = Cartegraph.Map.Utilities.mapViewWithFilterBoundsAsString(that.parents(\"#content #indexContainer, #content #editContainer\"));\n if (strBounds != '')\n strBounds = '?bounds=' + strBounds;\n\n // check if the timesheetlist widget exists before using it's entrydate\n var timeSheetDate;\n if ($(':cg-timesheetList').length) {\n if (Cartegraph.Timesheet.entryDate) {\n timeSheetDate = $.datepicker.formatDate(Cartegraph.Resources.IsoDateFormat, Cartegraph.Timesheet.entryDate);\n }\n }\n\n var selectAllRowsEvent = new Insights.SelectAllRowsInsightsEvent();\n Cartegraph.AppInsightsService.startTrackingEvent(selectAllRowsEvent);\n selectAllRowsEvent.measurement.RecordCount = $t.p.records;\n that.jqGrid('setGridParam', { datatype: 'json', url: new Uri(Cartegraph.Utilities.getBaseURL() + 'FlexUI/SelectAllRows/' + strBounds).addQueryParam(\"timesheetEntryDate\", timeSheetDate) }).trigger(\"selectAllGridRows\");\n that.jqGrid('setGridParam', { url: Cartegraph.Utilities.getBaseURL() + 'FlexUI/GetListData/' + strBounds });\n\n that.jqGrid().one('flexGridLoadComplete', function () {\n Cartegraph.Utilities.removeWaitScreen();\n Cartegraph.AppInsightsService.stopTrackingEvent(selectAllRowsEvent);\n });\n\n if ($t.p.onSelectAll) {\n $t.p.onSelectAll(\"all\", {\n count: $t.p.records\n });\n }\n });\n },\n clearAllItems: function (that) {\n if (!that) return;\n var params = that[0].p;\n var $that = $(that);\n\n if (params.carte_SelectedRows.length > 200)\n Cartegraph.Utilities.showWaitScreen(Cartegraph.Resources.ProcessingClearAll, 50);\n\n if (params.onSelectAll) {\n params.onSelectAll(\"none\", {\n count: 0\n });\n }\n\n setTimeout(function () {\n // unselect the map elements for all the selections not just for this page\n var selectedRows = params.carte_SelectedRows;\n\n $that.trigger('UnselectAllAssets');\n\n var rows = $that.find('tr:not(.disabled-row) input[type=\"checkbox\"]:checked');\n rows.each(function () {\n this.checked = false;\n var $this = $(this);\n $this.removeClass('selected-checked-row');\n $this.closest('tr').removeClass('selected-checked-row');\n });\n\n var pendingRemoves = _.difference(params.carte_DisabledSelectedRows, selectedRows);\n params.carte_SelectedRows = _.difference(params.carte_DisabledSelectedRows, pendingRemoves);\n that.jqGrid('setSelectedItemsCountInfo');\n\n $that.trigger('ClearAssets');\n\n setTimeout(function () {\n Cartegraph.Utilities.removeWaitScreen();\n\n // update the action menu items\n var className = (params.carte_className.indexOf(\",\") != -1) ? params.carte_className.split(\",\")[0] : params.carte_className;\n\n var grid;\n if (Cartegraph.FlexUI.CGCrossAssetGrid) {\n grid = Cartegraph.FlexUI.CGCrossAssetGrid;\n } else if (Cartegraph.FlexUI.cgTimesheetsClassGrid) {\n grid = Cartegraph.FlexUI.cgTimesheetsClassGrid;\n } else if (Cartegraph.FlexUI.cgConditionGroupsClassGrid) {\n grid = Cartegraph.FlexUI.cgConditionGroupsClassGrid;\n } else if (Cartegraph.FlexUI.drill_DownGrid) {\n grid = Cartegraph.FlexUI.drill_DownGrid;\n } else {\n grid = Cartegraph.FlexUI[className + 'Grid'];\n }\n grid.enableMenus(className);\n }, 1000);\n\n }, 100);\n },\n toggleSelection: function (rowId, selected) {\n var $t = this.jqGrid()[0];\n\n if (!$t) return;\n\n var i;\n var row = $($t).find('#' + rowId);\n if (selected) {\n for (i = 0; i < $t.p.carte_SelectedRows.length; i++) {\n if ($t.p.carte_SelectedRows[i] == rowId) {\n break;\n }\n }\n if (i == $t.p.carte_SelectedRows.length) {\n $t.p.carte_SelectedRows.push(rowId);\n\n var oid = Cartegraph.Utilities.getOid(rowId);\n\n var className = Cartegraph.Utilities.getClassname(rowId);\n // If row is disabled, don't trigger selectasset event\n if (!row.hasClass('disabled-row'))\n $($t).trigger('SelectAsset', [className, oid]);\n\n // var className, oid;\n // for (i = 0; i < rowId.length; i++) {\n // if (!isNaN(parseInt(rowId[i]))) {\n // break;\n // }\n // }\n // if (i < rowId.length) {\n // className = rowId.substring(0, i);\n // oid = parseInt(rowId.substr(i));\n // $($t).trigger('SelectAsset', [className, oid]);\n // }\n }\n if (row) {\n row.addClass('selected-checked-row');\n if (_.contains($t.p.carte_DisabledSelectedRows, className + oid)) {\n $($t).trigger('ReselectComponentAsset', [className + oid]);\n }\n }\n }\n else {\n for (i = 0; i < $t.p.carte_SelectedRows.length; i++) {\n if ($t.p.carte_SelectedRows[i] == rowId) {\n break;\n }\n }\n if (i < $t.p.carte_SelectedRows.length) {\n $t.p.carte_SelectedRows.splice(i, 1);\n $($t).trigger('UnselectAsset', [rowId]);\n }\n if (row)\n row.removeClass('selected-checked-row');\n }\n this.setSelectedItemsCountInfo();\n\n if ($(this).parents('.ui-jqgrid-view').find('.sort-by-selection').hasClass('active')) {\n\n var strBounds = Cartegraph.Map.Utilities.mapViewWithFilterBoundsAsString();\n\n if (strBounds != '')\n $($t).jqGrid('setGridParam', { datatype: 'json', url: Cartegraph.AjaxURL.FlexUI(\"GetListData\", { bounds: strBounds, sortBySelectedItems: true }) }).trigger(\"reloadGrid\", { forcePopulate: true, page: 1 });\n else\n $($t).jqGrid('setGridParam', { datatype: 'json', url: Cartegraph.AjaxURL.FlexUI(\"GetListData\", { sortBySelectedItems: true }) }).trigger(\"reloadGrid\", { forcePopulate: true, page: 1 });\n }\n },\n setDisabledSelectedItemsInView: function(disabledSelectedItemsInView) {\n var $t = this.jqGrid()[0];\n if (!$t) return;\n\n $t.p.carte_DisabledSelectedRowsInView = disabledSelectedItemsInView;\n },\n getDisabledSelectedItems: function () {\n var $t = this.jqGrid()[0];\n if (!$t) return;\n\n return $t.p.carte_DisabledSelectedRows;\n },\n\n\n\n setDisabledSelectedItems: function (disabledSelectedItems) {\n var $t = this.jqGrid()[0];\n if (!$t) return;\n\n var allSelectedRows = _.difference($t.p.carte_SelectedRows, $t.p.carte_DisabledSelectedRows);\n\n $t.p.carte_DisabledSelectedRows = disabledSelectedItems;\n $t.p.carte_SelectedRows = _.union(allSelectedRows, disabledSelectedItems);\n },\n getSelectedItems: function () {\n var $t = this.jqGrid()[0];\n\n if (!$t) return;\n return $t.p.carte_SelectedRows;\n },\n setSelectedItems: function (selectedRows) {\n var $t = this.jqGrid()[0];\n if (!$t) return;\n // If any previously selected items are no longer selected, remove them from the map\n var removed;\n for (var k = 0; k < $t.p.carte_SelectedRows.length; k++) {\n removed = true;\n for (var l = 0; l < selectedRows.length; l++) {\n if ($t.p.carte_SelectedRows[k] == selectedRows[l]) {\n removed = false;\n break;\n }\n }\n if (removed) {\n $($t).trigger('UnselectAsset', [$t.p.carte_SelectedRows[k]]);\n }\n }\n\n var pendingRemoves = _.difference($t.p.carte_DisabledSelectedRows, $t.p.carte_SelectedRows);\n var disabledRows = _.difference($t.p.carte_DisabledSelectedRows, pendingRemoves);\n\n $t.p.carte_SelectedRows = _.union(selectedRows, disabledRows);\n this.setSelectedItemsCountInfo();\n\n var enabledSelectedRows = _.difference($t.p.carte_SelectedRows, $t.p.carte_DisabledSelectedRows);\n var rowsToDisable = _.intersection($t.p.carte_SelectedRows, pendingRemoves);\n var rowsToSelect = _.union(enabledSelectedRows, rowsToDisable); //not using selectedRows because there may not be any enabledSelectedRows i.e. everything being selected is disabled\n\n if (rowsToSelect && rowsToSelect.length > 0)\n $($t).trigger('SelectMultipleAssets', [rowsToSelect]);\n\n if (rowsToDisable && rowsToDisable.length > 0)\n $($t).trigger('ReselectComponentAsset', [rowsToDisable]);\n },\n clearSelectedItems: function () {\n var $t = this.jqGrid()[0];\n if (!$t) return;\n $t.p.carte_SelectedRows = [];\n this.setSelectedItemsCountInfo();\n },\n setSelectedItemsCountInfo: function () {\n var $t = this.jqGrid()[0];\n if (!$t) return;\n\n var enabledSelectedRowsInView = _.difference($t.p.carte_SelectedRows, $t.p.carte_DisabledSelectedRows);\n var pendingRemoves = _.difference($t.p.carte_DisabledSelectedRows, $t.p.carte_SelectedRows);\n\n // Only show the Selected count in the footer if the grid has checkboxes\n if ($t.p.carte_RowSelection) {\n $('#' + $t.id + '_pager_left').html('
    Selected ' + enabledSelectedRowsInView.length + '
    ');\n }\n\n var selector = $('#' + $t.id + '_RowSelect div.selectall');\n\n // swap out the checkbox images for the selectall\\selectnone of the grids\n if ($t.p.carte_SelectedRows.length == 0 || enabledSelectedRowsInView.length == 0) {\n // no rows selected\n selector.removeClass('checkall');\n selector.removeClass('checksome').addClass('uncheckall');\n }\n else if ($t.p.records == $t.p.carte_SelectedRows.length || ($t.p.records == $t.p.carte_DisabledSelectedRowsInView.length + enabledSelectedRowsInView.length && pendingRemoves.length == 0)) {\n // all rows selected\n selector.removeClass('uncheckall');\n selector.removeClass('checksome').addClass('checkall');\n }\n else {\n // at least one row but less than all rows selected\n selector.removeClass('uncheckall');\n selector.removeClass('checkall').addClass('checksome');\n }\n },\n isRowSelected: function (rowID) {\n var selectedItems = this.getSelectedItems();\n for (var i = 0; i < selectedItems.length; i++) {\n if (selectedItems[i] == rowID) {\n return true;\n }\n }\n return false;\n },\n /*\n * End Cartegraph changes: row selection methods\n */\n // ==== Cartegraph changes: setSelection keyboard navigation BEGIN ====\n // setSelection: function (selection, onsr)\n // Added event parameter to indicate the method/event that triggered the setSelection\n // to determine if the grid should be closed and text box value updated\n // ==== Cartegraph changes: setSelection keyboard navigation END ====\n setSelection: function (selection, onsr, event, classnameoid) {\n if (!fireClick) return;\n\n return this.each(function () {\n var $t = this, stat, pt, ner, ia, tpsr, fid;\n $t.p.selFound = false;\n\n if (selection === undefined) { return; }\n onsr = onsr === false ? false : true;\n\n // ==== Cartegraph changes: setSelection case insensitive search BEGIN ====\n // $t.rows.namedItem (namedItem on a collection) is a case sensitive search.\n // Manually loop through the rows and perform toUpperCase id compare for case insensitive search.\n //pt = $t.rows.namedItem(selection + \"\");\n var selectionUpperCase = selection.toUpperCase();\n $($t.rows).each(function (i) {\n if (i > 0) {\n if (this.id.toUpperCase() === selectionUpperCase) {\n pt = this;\n // ==== Cartegraph changes: setSelection return true if value is found BEGIN ====\n // Set selfound to true indicating that the id was found in the grid\n // return;\n $t.p.selFound = true;\n // ==== Cartegraph changes: setSelection return true if value is found END ====\n return;\n }\n }\n });\n // ==== Cartegraph changes: setSelection case insensitive search END ====\n\n if (!pt || !pt.className || pt.className.indexOf('ui-state-disabled') > -1) { return; }\n function scrGrid(iR) {\n var ch = $($t.grid.bDiv)[0].clientHeight,\n st = $($t.grid.bDiv)[0].scrollTop,\n rpos = $t.rows[iR].offsetTop,\n rh = $t.rows[iR].clientHeight;\n if (rpos + rh >= ch + st) { $($t.grid.bDiv)[0].scrollTop = rpos - (ch + st) + rh + st; }\n else if (rpos < ch + st) {\n if (rpos < st) {\n $($t.grid.bDiv)[0].scrollTop = rpos;\n }\n }\n }\n /* Cartegraph change begin\n * Added highlightClass variable to indicate the different CSS highlighting for time control and regular grid/lookups */\n var highlightClass = $t.p.isTimeControl ? 'ui-state-highlight-time' : 'ui-state-highlight';\n\n /* Scroll function for drop-down grid\n * This is to be called after the selected row has been set */\n function scrollCarteGrid(keyCode) {\n var clientHeight = $($t.grid.bDiv)[0].clientHeight;\n var scrollTop = $($t.grid.bDiv)[0].scrollTop;\n var scrollHeight = $($t.grid.bDiv)[0].scrollHeight;\n var selRow = $('#' + $t.id + ' .' + highlightClass);\n if (selRow.length > 0) {\n var rowHeight = selRow.outerHeight();\n var tableTop = $('#carte_' + $($t).attr('id') + '_tablesContainer').position().top; // this value is the top of the table in relation to the scrolling area's top\n var selRowTop = selRow.position().top + tableTop;\n var selRowBottom = selRowTop + rowHeight;\n var buffer = 2; // this value is to account for the prev/next page loading as they must enter the viewable area to load, and we cannot scroll to them until they load\n if (keyCode === 38) { // Up arrow key\n if (selRowTop > 0 || scrollTop > 0) {\n if (selRowTop < scrollTop || selRowBottom > scrollTop + clientHeight)\n $($t.grid.bDiv)[0].scrollTop = selRowTop > 0 ? selRowTop - buffer : 0;\n }\n }\n if (keyCode === 40) { // Down arrow key\n if (scrollTop + clientHeight < scrollHeight) {\n if (selRowTop < scrollTop || selRowBottom > scrollTop + clientHeight)\n $($t.grid.bDiv)[0].scrollTop = selRowTop - (clientHeight - rowHeight) + buffer;\n }\n }\n }\n }\n /* Cartegraph change end */\n\n if ($t.p.scrollrows === true) {\n ner = $t.rows.namedItem(selection).rowIndex;\n if (ner >= 0) {\n scrGrid(ner);\n }\n }\n if ($t.p.frozenColumns === true) {\n fid = $t.p.id + \"_frozen\";\n }\n if (!$t.p.multiselect) {\n if (pt.className !== \"ui-subgrid\") {\n if ($t.p.selrow != pt.id) {\n $($t.rows.namedItem($t.p.selrow)).removeClass(highlightClass).attr({ \"aria-selected\": \"false\", \"tabindex\": \"-1\" });\n $(pt).addClass(highlightClass).attr({ \"aria-selected\": \"true\", \"tabindex\": \"0\" }); //.focus();\n\n // ==== Cartegraph change: frozen columns ====\n\n //if (fid) {\n // $(\"#\" + $.jgrid.jqID($t.p.selrow), \"#\" + $.jgrid.jqID(fid)).removeClass(highlightClass);\n // $(\"#\" + $.jgrid.jqID(selection), \"#\" + $.jgrid.jqID(fid)).addClass(highlightClass);\n //}\n\n if ($t.p.carte_frozenLeftLastIndex > -1) {\n $(\"#\" + $.jgrid.jqID($t.p.selrow), \"#\" + $.jgrid.jqID($t.p.id + \"_frozenLeft\")).removeClass(highlightClass);\n $(\"#\" + $.jgrid.jqID(selection), \"#\" + $.jgrid.jqID($t.p.id + \"_frozenLeft\")).addClass(highlightClass);\n }\n\n if ($t.p.carte_frozenRightFirstIndex > -1) {\n $(\"#\" + $.jgrid.jqID($t.p.selrow), \"#\" + $.jgrid.jqID($t.p.id + \"_frozenRight\")).removeClass(highlightClass);\n $(\"#\" + $.jgrid.jqID(selection), \"#\" + $.jgrid.jqID($t.p.id + \"_frozenRight\")).addClass(highlightClass);\n }\n\n // ==== Cartegraph change: frozen columns ====\n\n stat = true;\n } else {\n stat = false;\n }\n $t.p.selrow = pt.id;\n // ==== Cartegraph changes: setSelection keyboard navigation BEGIN ====\n // if ($t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t, pt.id, stat); }\n if ($t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t, pt.id, stat, event, classnameoid); }\n // ==== Cartegraph changes: setSelection keyboard navigation END ====\n }\n } else {\n //unselect selectall checkbox when deselecting a specific row\n $t.setHeadCheckBox(false);\n $t.p.selrow = pt.id;\n ia = $.inArray($t.p.selrow, $t.p.selarrrow);\n if (ia === -1) {\n if (pt.className !== \"ui-subgrid\") { $(pt).addClass(highlightClass).attr(\"aria-selected\", \"true\"); }\n stat = true;\n $t.p.selarrrow.push($t.p.selrow);\n } else {\n if (pt.className !== \"ui-subgrid\") { $(pt).removeClass(highlightClass).attr(\"aria-selected\", \"false\"); }\n stat = false;\n $t.p.selarrrow.splice(ia, 1);\n tpsr = $t.p.selarrrow[0];\n $t.p.selrow = (tpsr === undefined) ? null : tpsr;\n }\n $(\"#jqg_\" + $.jgrid.jqID($t.p.id) + \"_\" + $.jgrid.jqID($t.p.selrow))[$t.p.useProp ? 'prop' : 'attr'](\"checked\", stat);\n if (fid) {\n if (ia === -1) {\n $(\"#\" + $.jgrid.jqID(selection), \"#\" + $.jgrid.jqID(fid)).addClass(highlightClass);\n } else {\n $(\"#\" + $.jgrid.jqID(selection), \"#\" + $.jgrid.jqID(fid)).removeClass(highlightClass);\n }\n $(\"#jqg_\" + $.jgrid.jqID($t.p.id) + \"_\" + $.jgrid.jqID(selection), \"#\" + $.jgrid.jqID(fid))[$t.p.useProp ? 'prop' : 'attr'](\"checked\", stat);\n }\n // ==== Cartegraph changes: setSelection keyboard navigation BEGIN ====\n // if ($t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t, pt.id, stat); }\n if ($t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t, pt.id, stat, event); }\n // ==== Cartegraph changes: setSelection keyboard navigation END ====\n }\n /* Cartegraph change begin\n * call Cartegraph scroll logic */\n if ($t.p.isLookup && event)\n scrollCarteGrid(event.keyCode);\n /* Cartegraph change end */\n });\n },\n // ==== Cartegraph changes ====\n /**\n * 04/19/2012 - Eben and Steve\n * Added this method to get the total record count from the grid\n */\n // ==== Cartegraph changes ====\n getTotalRecordCount: function () {\n var $t = this.jqGrid()[0];\n\n if ($t) {\n return $t.p.records;\n } else {\n return 0; // assume no records if the grid is null\n }\n },\n // ==== Cartegraph changes ====\n /**\n * 01/06/2012 - Eben and Jerry\n * Added this method so that the grid supports scrolling to a specific record\n */\n // ==== Cartegraph changes ====\n scrollToOidAndHighlight: function (rowID, className) {\n var oldUrl = this[0].p.url;\n\n this.jqGrid('setGridParam', { url: new Uri(oldUrl).addQueryParam(\"oidToSelect\", rowID).addQueryParam(\"classToSelect\", className).toString() }).trigger(\"reloadGrid\");\n this.jqGrid('setGridParam', { url: oldUrl });\n },\n abortActiveAjaxRequest: function () {\n if (activeAjaxRequest != undefined) {\n activeAjaxRequest.abort();\n activeAjaxRequest = null;\n }\n },\n // ==== Cartegraph changes ====\n /**\n * 11/26/2013 - Jenn\n * Added this method to determine if grid is currently re-loading\n */\n // ==== Cartegraph changes ====\n isReloading: function (){\n return this.get(0).grid.hDiv.loading;\n },\n restoreScrollTopAndHighlight: function () {\n var $t = this.jqGrid()[0];\n\n $t.p.restoreScroll = $('div#' + $t.p.id.replace(\"Grid\", \"\") + ' .ui-jqgrid-bdiv').scrollTop();\n $t.p.restoreHighlight = $('div#' + $t.p.id.replace(\"Grid\", \"\") + ' .ui-state-highlight').attr(\"id\");\n },\n resetSelection: function (rowid) {\n return this.each(function () {\n var t = this, ind, sr;\n if (typeof (rowid) !== \"undefined\") {\n sr = rowid === t.p.selrow ? t.p.selrow : rowid;\n $(\"#\" + $.jgrid.jqID(t.p.id) + \" tbody:first tr#\" + $.jgrid.jqID(sr)).removeClass(\"ui-state-highlight\").attr(\"aria-selected\", \"false\");\n\n // ==== Cartegraph change: frozen columns ====\n if (t.p.carte_frozenLeftLastIndex > -1)\n $(\"#\" + $.jgrid.jqID(t.p.id) + \"_frozenLeft tbody:first tr#\" + $.jgrid.jqID(sr)).removeClass(\"ui-state-highlight\").attr(\"aria-selected\", \"false\");\n if (t.p.carte_frozenRightFirstIndex > -1)\n $(\"#\" + $.jgrid.jqID(t.p.id) + \"_frozenRight tbody:first tr#\" + $.jgrid.jqID(sr)).removeClass(\"ui-state-highlight\").attr(\"aria-selected\", \"false\");\n // ==== Cartegraph change: frozen columns ====\n\n if (t.p.multiselect) {\n $(\"#jqg_\" + $.jgrid.jqID(t.p.id) + \"_\" + $.jgrid.jqID(sr))[t.p.useProp ? 'prop' : 'attr'](\"checked\", false);\n t.setHeadCheckBox(false);\n }\n sr = null;\n } else if (!t.p.multiselect) {\n if (t.p.selrow) {\n $(\"#\" + $.jgrid.jqID(t.p.id) + \" tbody:first tr#\" + $.jgrid.jqID(t.p.selrow)).removeClass(\"ui-state-highlight\").attr(\"aria-selected\", \"false\");\n\n // ==== Cartegraph change: frozen columns ====\n if (t.p.carte_frozenLeftLastIndex > -1)\n $(\"#\" + $.jgrid.jqID(t.p.id) + \"_frozenLeft tbody:first tr#\" + $.jgrid.jqID(t.p.selrow)).removeClass(\"ui-state-highlight\").attr(\"aria-selected\", \"false\");\n if (t.p.carte_frozenRightFirstIndex > -1)\n $(\"#\" + $.jgrid.jqID(t.p.id) + \"_frozenRight tbody:first tr#\" + $.jgrid.jqID(t.p.selrow)).removeClass(\"ui-state-highlight\").attr(\"aria-selected\", \"false\");\n // ==== Cartegraph change: frozen columns ====\n\n t.p.selrow = null;\n }\n } else {\n $(t.p.selarrrow).each(function (i, n) {\n ind = t.rows.namedItem(n);\n $(ind).removeClass(\"ui-state-highlight\").attr(\"aria-selected\", \"false\");\n $(\"#jqg_\" + $.jgrid.jqID(t.p.id) + \"_\" + $.jgrid.jqID(n))[t.p.useProp ? 'prop' : 'attr'](\"checked\", false);\n });\n t.setHeadCheckBox(false);\n t.p.selarrrow = [];\n }\n if (t.p.cellEdit === true) {\n if (parseInt(t.p.iCol, 10) >= 0 && parseInt(t.p.iRow, 10) >= 0) {\n $(\"td:eq(\" + t.p.iCol + \")\", t.rows[t.p.iRow]).removeClass(\"edit-cell ui-state-highlight\");\n $(t.rows[t.p.iRow]).removeClass(\"selected-row ui-state-hover\");\n }\n }\n t.p.savedRow = [];\n });\n },\n getRowData: function (rowid) {\n var res = {}, resall, getall = false, len, j = 0;\n this.each(function () {\n var $t = this, nm, ind;\n if (typeof (rowid) == 'undefined') {\n getall = true;\n resall = [];\n len = $t.rows.length;\n } else {\n ind = $t.rows.namedItem(rowid);\n if (!ind) { return res; }\n len = 2;\n }\n while (j < len) {\n if (getall) { ind = $t.rows[j]; }\n if ($(ind).hasClass('jqgrow')) {\n $('td', ind).each(function (i) {\n nm = $t.p.colModel[i].name;\n if (nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {\n if ($t.p.treeGrid === true && nm == $t.p.ExpandColumn) {\n res[nm] = $.jgrid.htmlDecode($(\"span:first\", this).html());\n } else {\n try {\n res[nm] = $.unformat(this, { rowId: ind.id, colModel: $t.p.colModel[i] }, i);\n } catch (e) {\n res[nm] = $.jgrid.htmlDecode($(this).html());\n }\n }\n }\n });\n if (getall) { resall.push(res); res = {}; }\n }\n j++;\n }\n });\n return resall ? resall : res;\n },\n delRowData: function (rowid) {\n var success = false, rowInd, ia, ri;\n this.each(function () {\n var $t = this;\n rowInd = $t.rows.namedItem(rowid);\n if (!rowInd) { return false; }\n else {\n ri = rowInd.rowIndex;\n $(rowInd).remove();\n $t.p.records--;\n $t.p.reccount--;\n $t.updatepager(true, false);\n success = true;\n if ($t.p.multiselect) {\n ia = $.inArray(rowid, $t.p.selarrrow);\n if (ia != -1) { $t.p.selarrrow.splice(ia, 1); }\n }\n if (rowid == $t.p.selrow) { $t.p.selrow = null; }\n }\n if ($t.p.datatype == 'local') {\n var pos = $t.p._index[rowid];\n if (typeof (pos) != 'undefined') {\n $t.p.data.splice(pos, 1);\n $t.refreshIndex();\n }\n }\n if ($t.p.altRows === true && success) {\n var cn = $t.p.altclass;\n $($t.rows).each(function (i) {\n if (i % 2 == 1) { $(this).addClass(cn); }\n else { $(this).removeClass(cn); }\n });\n }\n });\n return success;\n },\n setRowData: function (rowid, data, cssp) {\n var nm, success = true, title;\n this.each(function () {\n if (!this.grid) { return false; }\n var t = this, vl, ind, cp = typeof cssp, lcdata = {};\n ind = t.rows.namedItem(rowid);\n if (!ind) { return false; }\n if (data) {\n try {\n $(this.p.colModel).each(function (i) {\n nm = this.name;\n if (data[nm] !== undefined) {\n lcdata[nm] = this.formatter && typeof (this.formatter) === 'string' && this.formatter == 'date' ? $.unformat.date(data[nm], this) : data[nm];\n vl = t.formatter(rowid, data[nm], i, data, 'edit');\n title = this.title ? { \"title\": $.jgrid.stripHtml(vl)} : {};\n if (t.p.treeGrid === true && nm == t.p.ExpandColumn) {\n $(\"td:eq(\" + i + \") > span:first\", ind).html(vl).attr(title);\n } else {\n $(\"td:eq(\" + i + \")\", ind).html(vl).attr(title);\n }\n }\n });\n if (t.p.datatype == 'local') {\n var pos = t.p._index[rowid];\n if (t.p.treeGrid) {\n for (var key in t.p.treeReader) {\n if (lcdata.hasOwnProperty(t.p.treeReader[key])) {\n delete lcdata[t.p.treeReader[key]];\n }\n }\n }\n if (typeof (pos) != 'undefined') {\n t.p.data[pos] = $.extend(true, t.p.data[pos], lcdata);\n }\n lcdata = null;\n }\n } catch (e) {\n success = false;\n }\n }\n if (success) {\n if (cp === 'string') { $(ind).addClass(cssp); } else if (cp === 'object') { $(ind).css(cssp); }\n if ($.isFunction(t.p._complete)) { t.p._complete.call(t); }\n }\n });\n return success;\n },\n addRowData: function (rowid, rdata, pos, src) {\n if (!pos) { pos = \"last\"; }\n var success = false, nm, row, gi, si, ni, sind, i, v, prp = \"\", aradd, cnm, cn, data, cm;\n if (rdata) {\n if ($.isArray(rdata)) {\n aradd = true;\n pos = \"last\";\n cnm = rowid;\n } else {\n rdata = [rdata];\n aradd = false;\n }\n this.each(function () {\n var t = this, datalen = rdata.length;\n ni = t.p.rownumbers === true ? 1 : 0;\n gi = t.p.multiselect === true ? 1 : 0;\n si = t.p.subGrid === true ? 1 : 0;\n if (!aradd) {\n if (typeof (rowid) != 'undefined') { rowid = rowid + \"\"; }\n else {\n rowid = $.jgrid.randId();\n if (t.p.keyIndex !== false) {\n cnm = t.p.colModel[t.p.keyIndex + gi + si + ni].name;\n if (typeof rdata[0][cnm] != \"undefined\") { rowid = rdata[0][cnm]; }\n }\n }\n }\n cn = t.p.altclass;\n var k = 0, cna = \"\", lcdata = {},\n\t\t\t\tair = $.isFunction(t.p.afterInsertRow) ? true : false;\n while (k < datalen) {\n data = rdata[k];\n row = \"\";\n if (aradd) {\n try { rowid = data[cnm]; }\n catch (e) { rowid = $.jgrid.randId(); }\n cna = t.p.altRows === true ? (t.rows.length - 1) % 2 === 0 ? cn : \"\" : \"\";\n }\n rowid = t.p.idPrefix + rowid;\n if (ni) {\n prp = t.formatCol(0, 1, '', null, rowid, true);\n row += \"0\";\n }\n if (gi) {\n v = \"\";\n prp = t.formatCol(ni, 1, '', null, rowid, true);\n row += \"\" + v + \"\";\n }\n if (si) {\n row += $(t).jqGrid(\"addSubGridCell\", gi + ni, 1);\n }\n for (i = gi + si + ni; i < t.p.colModel.length; i++) {\n cm = t.p.colModel[i];\n nm = cm.name;\n lcdata[nm] = cm.formatter && typeof (cm.formatter) === 'string' && cm.formatter == 'date' ? $.unformat.date(data[nm], cm) : data[nm];\n v = t.formatter(rowid, $.jgrid.getAccessor(data, nm), i, data, 'edit');\n prp = t.formatCol(i, 1, v, data, rowid, true);\n row += \"\" + v + \"\";\n }\n row = \"\" + row + \"\";\n if (t.rows.length === 0) {\n $(\"table:first\", t.grid.bDiv).append(row);\n } else {\n switch (pos) {\n case 'last':\n $(t.rows[t.rows.length - 1]).after(row);\n sind = t.rows.length - 1;\n break;\n case 'first':\n $(t.rows[0]).after(row);\n sind = 1;\n break;\n case 'after':\n sind = t.rows.namedItem(src);\n if (sind) {\n if ($(t.rows[sind.rowIndex + 1]).hasClass(\"ui-subgrid\")) { $(t.rows[sind.rowIndex + 1]).after(row); }\n else { $(sind).after(row); }\n }\n sind++;\n break;\n case 'before':\n sind = t.rows.namedItem(src);\n if (sind) { $(sind).before(row); sind = sind.rowIndex; }\n sind--;\n break;\n }\n }\n if (t.p.subGrid === true) {\n $(t).jqGrid(\"addSubGrid\", gi + ni, sind);\n }\n t.p.records++;\n t.p.reccount++;\n if (air) { t.p.afterInsertRow.call(t, rowid, data, data); }\n k++;\n if (t.p.datatype == 'local') {\n lcdata[t.p.localReader.id] = rowid;\n t.p._index[rowid] = t.p.data.length;\n t.p.data.push(lcdata);\n lcdata = {};\n }\n }\n if (t.p.altRows === true && !aradd) {\n if (pos == \"last\") {\n if ((t.rows.length - 1) % 2 == 1) { $(t.rows[t.rows.length - 1]).addClass(cn); }\n } else {\n $(t.rows).each(function (i) {\n if (i % 2 == 1) { $(this).addClass(cn); }\n else { $(this).removeClass(cn); }\n });\n }\n }\n t.updatepager(true, true);\n success = true;\n });\n }\n return success;\n },\n footerData: function (action, data, format) {\n var nm, success = false, res = {}, title;\n function isEmpty(obj) {\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) { return false; }\n }\n return true;\n }\n if (typeof (action) == \"undefined\") { action = \"get\"; }\n if (typeof (format) != \"boolean\") { format = true; }\n action = action.toLowerCase();\n this.each(function () {\n var t = this, vl;\n if (!t.grid || !t.p.footerrow) { return false; }\n if (action == \"set\") { if (isEmpty(data)) { return false; } }\n success = true;\n $(this.p.colModel).each(function (i) {\n nm = this.name;\n if (action == \"set\") {\n if (data[nm] !== undefined) {\n vl = format ? t.formatter(\"\", data[nm], i, data, 'edit') : data[nm];\n title = this.title ? { \"title\": $.jgrid.stripHtml(vl)} : {};\n $(\"tr.footrow td:eq(\" + i + \")\", t.grid.sDiv).html(vl).attr(title);\n success = true;\n }\n } else if (action == \"get\") {\n res[nm] = $(\"tr.footrow td:eq(\" + i + \")\", t.grid.sDiv).html();\n }\n });\n });\n return action == \"get\" ? res : success;\n },\n showHideCol: function (colname, show) {\n return this.each(function () {\n var $t = this, fndh = false, brd = $.browser.webkit || $.browser.safari ? 0 : $t.p.cellLayout, cw;\n if (!$t.grid) { return; }\n if (typeof colname === 'string') { colname = [colname]; }\n show = show != \"none\" ? \"\" : \"none\";\n var sw = show === \"\" ? true : false,\n\t\t\tgh = $t.p.groupHeader && (typeof $t.p.groupHeader === 'object' || $.isFunction($t.p.groupHeader));\n if (gh) { $($t).jqGrid('destroyGroupHeader', false); }\n $(this.p.colModel).each(function (i) {\n if ($.inArray(this.name, colname) !== -1 && this.hidden === sw) {\n if ($t.p.frozenColumns === true && this.frozen === true) {\n return true;\n }\n $(\"tr\", $t.grid.hDiv).each(function () {\n $(this.cells[i]).css(\"display\", show);\n });\n $($t.rows).each(function (j) {\n $(this.cells[i]).css(\"display\", show);\n });\n if ($t.p.footerrow) { $(\"tr.footrow td:eq(\" + i + \")\", $t.grid.sDiv).css(\"display\", show); }\n cw = this.widthOrg ? this.widthOrg : parseInt(this.width, 10);\n if (show === \"none\") { $t.p.tblwidth -= cw + brd; } else { $t.p.tblwidth += cw + brd; }\n this.hidden = !sw;\n fndh = true;\n }\n });\n if (fndh === true) {\n $($t).jqGrid(\"setGridWidth\", $t.p.shrinkToFit === true ? $t.p.tblwidth : $t.p.width);\n }\n if (gh) {\n $($t).jqGrid('setGroupHeaders', $t.p.groupHeader);\n }\n });\n },\n hideCol: function (colname) {\n return this.each(function () { $(this).jqGrid(\"showHideCol\", colname, \"none\"); });\n },\n showCol: function (colname) {\n return this.each(function () { $(this).jqGrid(\"showHideCol\", colname, \"\"); });\n },\n\n // ==== Cartegraph change: auto stretch last column ====\n /*\n * Altered the original showHideCol.\n * Used by StretchLastColumn to show/hide columns but don't want the function to reset the grid width.\n */\n carte_showHideCol: function (colname, show) {\n return this.each(function () {\n var $t = this, fndh = false, brd = $.browser.webkit || $.browser.safari ? 0 : $t.p.cellLayout, cw;\n if (!$t.grid) { return; }\n if (typeof colname === 'string') { colname = [colname]; }\n show = show != \"none\" ? \"\" : \"none\";\n var sw = show === \"\" ? true : false;\n $(this.p.colModel).each(function (i) {\n if ($.inArray(this.name, colname) !== -1 && this.hidden === sw) {\n if ($t.p.frozenColumns === true && this.frozen === true) {\n return true;\n }\n $(\"tr\", $t.grid.hDiv).each(function () {\n $(this.cells[i]).css(\"display\", show);\n });\n $($t.rows).each(function (j) {\n $(this.cells[i]).css(\"display\", show);\n });\n this.hidden = !sw;\n }\n });\n });\n },\n carte_hideCol: function (colname) {\n return this.each(function () { $(this).jqGrid(\"carte_showHideCol\", colname, \"none\"); });\n },\n carte_showCol: function (colname) {\n return this.each(function () { $(this).jqGrid(\"carte_showHideCol\", colname, \"\"); });\n },\n carte_getColumns: function () {\n var $ts = this.get(0);\n return $ts.p.colModel;\n },\n // ==== Cartegraph change: auto stretch last column ====\n\n remapColumns: function (permutation, updateCells, keepHeader) {\n function resortArray(a) {\n var ac;\n if (a.length) {\n ac = $.makeArray(a);\n } else {\n ac = $.extend({}, a);\n }\n $.each(permutation, function (i) {\n a[i] = ac[this];\n });\n }\n var ts = this.get(0);\n function resortRows(parent, clobj) {\n $(\">tr\" + (clobj || \"\"), parent).each(function () {\n var row = this;\n var elems = $.makeArray(row.cells);\n $.each(permutation, function () {\n var e = elems[this];\n if (e) {\n row.appendChild(e);\n }\n });\n });\n }\n resortArray(ts.p.colModel);\n resortArray(ts.p.colNames);\n resortArray(ts.grid.headers);\n resortRows($(\"thead:first\", ts.grid.hDiv), keepHeader && \":not(.ui-jqgrid-labels)\");\n if (updateCells) {\n resortRows($(\"#\" + $.jgrid.jqID(ts.p.id) + \" tbody:first\"), \".jqgfirstrow, tr.jqgrow, tr.jqfoot\");\n }\n if (ts.p.footerrow) {\n resortRows($(\"tbody:first\", ts.grid.sDiv));\n }\n if (ts.p.remapColumns) {\n if (!ts.p.remapColumns.length) {\n ts.p.remapColumns = $.makeArray(permutation);\n } else {\n resortArray(ts.p.remapColumns);\n }\n }\n ts.p.lastsort = $.inArray(ts.p.lastsort, permutation);\n if (ts.p.treeGrid) { ts.p.expColInd = $.inArray(ts.p.expColInd, permutation); }\n },\n setGridWidth: function (nwidth, shrink) {\n return this.each(function () {\n if (!this.grid) { return; }\n var $t = this, cw,\n\t\t\tinitwidth = 0, brd = $.browser.webkit || $.browser.safari ? 0 : $t.p.cellLayout, lvc, vc = 0, hs = false, scw = $t.p.scrollOffset, aw, gw = 0,\n\t\t\tcl = 0, cr;\n if (typeof shrink != 'boolean') {\n shrink = $t.p.shrinkToFit;\n }\n if (isNaN(nwidth)) { return; }\n else { nwidth = parseInt(nwidth, 10); $t.grid.width = $t.p.width = nwidth; }\n $(\"#gbox_\" + $.jgrid.jqID($t.p.id)).css(\"width\", nwidth + \"px\");\n $(\"#gview_\" + $.jgrid.jqID($t.p.id)).css(\"width\", nwidth + \"px\");\n $($t.grid.bDiv).css(\"width\", nwidth + \"px\");\n $($t.grid.hDiv).css(\"width\", nwidth + \"px\");\n if ($t.p.pager) { $($t.p.pager).css(\"width\", nwidth + \"px\"); }\n if ($t.p.toppager) { $($t.p.toppager).css(\"width\", nwidth + \"px\"); }\n if ($t.p.toolbar[0] === true) {\n $($t.grid.uDiv).css(\"width\", nwidth + \"px\");\n if ($t.p.toolbar[1] == \"both\") { $($t.grid.ubDiv).css(\"width\", nwidth + \"px\"); }\n }\n if ($t.p.carte_qtipAPI) $t.p.carte_qtipAPI.hide();\n if ($t.p.footerrow) { $($t.grid.sDiv).css(\"width\", nwidth + \"px\"); }\n if (shrink === false && $t.p.forceFit === true) { $t.p.forceFit = false; }\n if (shrink === true) {\n $.each($t.p.colModel, function (i) {\n if (this.hidden === false) {\n cw = this.widthOrg ? this.widthOrg : parseInt(this.width, 10);\n initwidth += cw + brd;\n if (this.fixed) {\n gw += cw + brd;\n } else {\n vc++;\n }\n cl++;\n }\n });\n if (vc === 0) { return; }\n $t.p.tblwidth = initwidth;\n aw = nwidth - brd * vc - gw;\n if (!isNaN($t.p.height)) {\n if ($($t.grid.bDiv)[0].clientHeight < $($t.grid.bDiv)[0].scrollHeight || $t.rows.length === 1) {\n hs = true;\n aw -= scw;\n }\n }\n initwidth = 0;\n var cle = $t.grid.cols.length > 0;\n $.each($t.p.colModel, function (i) {\n if (this.hidden === false && !this.fixed) {\n cw = this.widthOrg ? this.widthOrg : parseInt(this.width, 10);\n cw = Math.round(aw * cw / ($t.p.tblwidth - brd * vc - gw));\n if (cw < 0) { return; }\n this.width = cw;\n initwidth += cw;\n $t.grid.headers[i].width = cw;\n $t.grid.headers[i].el.style.width = cw + \"px\";\n if ($t.p.footerrow) { $t.grid.footers[i].style.width = cw + \"px\"; }\n if (cle) { $t.grid.cols[i].style.width = cw + \"px\"; }\n lvc = i;\n }\n });\n\n if (!lvc) { return; }\n\n cr = 0;\n if (hs) {\n if (nwidth - gw - (initwidth + brd * vc) !== scw) {\n cr = nwidth - gw - (initwidth + brd * vc) - scw;\n }\n } else if (Math.abs(nwidth - gw - (initwidth + brd * vc)) !== 1) {\n cr = nwidth - gw - (initwidth + brd * vc);\n }\n $t.p.colModel[lvc].width += cr;\n $t.p.tblwidth = initwidth + cr + brd * vc + gw;\n if ($t.p.tblwidth > nwidth) {\n var delta = $t.p.tblwidth - parseInt(nwidth, 10);\n $t.p.tblwidth = nwidth;\n cw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width - delta;\n } else {\n cw = $t.p.colModel[lvc].width;\n }\n $t.grid.headers[lvc].width = cw;\n $t.grid.headers[lvc].el.style.width = cw + \"px\";\n if (cle) { $t.grid.cols[lvc].style.width = cw + \"px\"; }\n if ($t.p.footerrow) {\n $t.grid.footers[lvc].style.width = cw + \"px\";\n }\n }\n if ($t.p.tblwidth) {\n $('table:first', $t.grid.bDiv).css(\"width\", $t.p.tblwidth + \"px\");\n $('table:first', $t.grid.hDiv).css(\"width\", $t.p.tblwidth + \"px\");\n\n // ==== Cartegraph change: frozen columns ====\n // frozen columns introduced horizontal scrollbar that must be manually manipulated\n $($t).jqGrid('recalculateHorizontalScrollbar');\n //$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;\n $t.grid.hDiv.scrollLeft = $t.grid.horizontalScrollContainer.scrollLeft;\n // ==== Cartegraph change: frozen columns ====\n\n if ($t.p.footerrow) {\n $('table:first', $t.grid.sDiv).css(\"width\", $t.p.tblwidth + \"px\");\n }\n }\n\n // ==== Cartegraph change: auto stretch last column ====\n // window resizing - recalculate stretch last column\n if ($t.p.carte_stretchLastColumnIndex > -1) {\n var newStretchColumnWidth = nwidth - $t.p.tblwidth - $t.p.cellLayout;\n var stretchColumn = $t.p.colModel[$t.p.carte_stretchLastColumnIndex];\n\n if (newStretchColumnWidth > 0) { // table width is less than grid width so stretch column to fill space\n stretchColumn.width = newStretchColumnWidth;\n stretchColumn.widthOrg = newStretchColumnWidth;\n\n // resize the actual column header and data column\n $t.grid.headers[$t.p.carte_stretchLastColumnIndex].el.style.width = newStretchColumnWidth + \"px\";\n $t.grid.cols[$t.p.carte_stretchLastColumnIndex].style.width = newStretchColumnWidth + \"px\";\n\n // unhide column if it's currently hidden\n if (stretchColumn.hidden === true)\n $($t).jqGrid(\"carte_showCol\", $t.p.colModel[$t.p.carte_stretchLastColumnIndex].name);\n }\n else if (stretchColumn.hidden === false) { // table width is greater than grid width so hide stretch column\n stretchColumn.width = 0;\n stretchColumn.widthOrg = 0;\n\n // hide the actual column header and data column\n $t.grid.headers[$t.p.carte_stretchLastColumnIndex].el.style.width = 0 + \"px\";\n $t.grid.cols[$t.p.carte_stretchLastColumnIndex].style.width = 0 + \"px\";\n\n $($t).jqGrid(\"carte_hideCol\", $t.p.colModel[$t.p.carte_stretchLastColumnIndex].name);\n }\n }\n // ==== Cartegraph change: auto stretch last column ====\n });\n },\n setGridHeight: function (nh) {\n return this.each(function () {\n var $t = this;\n\n if (!$t.grid) { return; }\n\n // ==== Cartegraph change: frozen columns ====\n //$($t.grid.bDiv).css({ height: nh + (isNaN(nh) ? \"\" : \"px\") });\n var $bDiv = $($t.grid.bDiv);\n\n if ($($t.grid.horizontalScrollbar).css('visibility') == \"visible\")\n $bDiv.css({ height: (nh - $t.p.scrollOffset) + (isNaN(nh) ? \"\" : \"px\") });\n else\n $bDiv.css({ height: nh + (isNaN(nh) ? \"\" : \"px\") });\n\n if ($bDiv.parents('.gadget').length == 0)\n $bDiv.parent().css({ height: nh });\n // ==== Cartegraph change: frozen columns ====\n\n $t.p.height = nh;\n if ($t.p.scroll) { $t.grid.populateVisible(); }\n });\n },\n // ==== Cartegraph change: frozen columns ====\n // frozen columns introduced horizontal scrollbar that must be manually manipulated\n recalculateHorizontalScrollbar: function () {\n var $t = this[0];\n\n // if no data to show, hide both scrollbars (except in FLEXI design mode so you can horizontal scroll to resize columns)\n // ==== Cartegraph change: FLEXI designer ====\n if ($t.rows.length === 1 && !$t.p.carte_IsInDesignMode) {\n $($t.grid.horizontalScrollbar).css({ visibility: 'hidden' });\n return;\n }\n // ==== Cartegraph change: FLEXI designer ====\n\n var verticalScroll = false;\n var horizontalScroll = false;\n\n var $bDiv = $($t.grid.bDiv);\n var $horizontalScrollbar = $($t.grid.horizontalScrollbar);\n\n // determine if we can vertical scroll\n var scrollHeight = $('>div', $bDiv).height();\n if ($bDiv[0].clientHeight < scrollHeight) {\n verticalScroll = true;\n }\n\n // determine if we can horizontal scroll\n var scrollWidth = $bDiv[0].clientWidth + (verticalScroll ? 17 : 0);\n //Added 1 pixel to the scrollwidth to fix IE issue where width was getting calculated with a .5 on the end\n if ((scrollWidth + 1) < $t.p.tblwidth) {\n horizontalScroll = true;\n }\n\n var isHorizontalVisible = $horizontalScrollbar.css(\"visibility\") == \"visible\";\n var isLookup = $($t).closest('.ui-jqgrid-Lookup').length > 0;\n\n if ($t.p.carte_frozenRightFirstIndex > -1) {\n if (verticalScroll)\n $t.grid.frozenRightDiv.css({ right: ($t.p.scrollOffset * -1) + 'px' });\n else\n $t.grid.frozenRightDiv.css({ right: '0px' });\n }\n\n if (horizontalScroll) {\n // horizontal scrollbar partially covers up the last row - so add scrollbar offset to scroll height\n if (!isHorizontalVisible && verticalScroll) {\n if (isLookup) {\n $($bDiv.parent()).css({ height: ($bDiv.height() + $t.p.scrollOffset) + \"px\" }); // _bDivAndScrollbars container\n $($bDiv).css({ height: $bDiv.height() + \"px\" });\n }\n else {\n $($bDiv.parent()).css({ height: $bDiv.height() + \"px\" }); // _bDivAndScrollbars container\n $($bDiv).css({ height: ($bDiv.height() - $t.p.scrollOffset) + \"px\" });\n }\n\n if ($.isFunction($t.p.onHorizontalScrollbarVisibilityChange)) { $t.p.onHorizontalScrollbarVisibilityChange.call($t); } // flexGrid can re-calculate row x of x\n }\n\n if (verticalScroll) // don't overlap the two scrollbars\n $horizontalScrollbar.css({ width: ($bDiv.outerWidth() - $t.p.scrollOffset) + 'px' });\n else\n $horizontalScrollbar.css({ width: '100%' });\n\n $horizontalScrollbar.css({ visibility: 'visible', display: 'block' });\n\n\n $('>div:first', $t.grid.horizontalScrollbar).css({ width: ($t.p.tblwidth - (verticalScroll ? $t.p.scrollOffset : 0)) + \"px\" });\n }\n else {\n if (isHorizontalVisible && verticalScroll) {\n $($bDiv).css({ height: ($bDiv.height() + $t.p.scrollOffset) + \"px\" });\n $($bDiv.parent()).css({ height: '' }); // _bDivAndScrollbars container\n\n if ($.isFunction($t.p.onHorizontalScrollbarVisibilityChange)) { $t.p.onHorizontalScrollbarVisibilityChange.call($t); } // flexGrid can re-calculate row x of x\n }\n\n $($bDiv).parent().css({ height: 'auto' })\n $horizontalScrollbar.css({ visibility: 'hidden', display: 'none' });\n }\n },\n // ==== Cartegraph change: frozen columns ====\n setCaption: function (newcap) {\n return this.each(function () {\n this.p.caption = newcap;\n $(\"span.ui-jqgrid-title, span.ui-jqgrid-title-rtl\", this.grid.cDiv).html(newcap);\n $(this.grid.cDiv).show();\n });\n },\n setLabel: function (colname, nData, prop, attrp) {\n return this.each(function () {\n var $t = this, pos = -1;\n if (!$t.grid) { return; }\n if (typeof (colname) != \"undefined\") {\n $($t.p.colModel).each(function (i) {\n if (this.name == colname) {\n pos = i; return false;\n }\n });\n } else { return; }\n if (pos >= 0) {\n var thecol = $(\"tr.ui-jqgrid-labels th:eq(\" + pos + \")\", $t.grid.hDiv);\n if (nData) {\n var ico = $(\".s-ico\", thecol);\n $(\"[id^=jqgh_]\", thecol).empty().html(nData).append(ico);\n $t.p.colNames[pos] = nData;\n }\n if (prop) {\n if (typeof prop === 'string') { $(thecol).addClass(prop); } else { $(thecol).css(prop); }\n }\n if (typeof attrp === 'object') { $(thecol).attr(attrp); }\n }\n });\n },\n setCell: function (rowid, colname, nData, cssp, attrp, forceupd) {\n return this.each(function () {\n var $t = this, pos = -1, v, title;\n if (!$t.grid) { return; }\n if (isNaN(colname)) {\n $($t.p.colModel).each(function (i) {\n if (this.name == colname) {\n pos = i; return false;\n }\n });\n } else { pos = parseInt(colname, 10); }\n if (pos >= 0) {\n var ind = $t.rows.namedItem(rowid);\n if (ind) {\n var tcell = $(\"td:eq(\" + pos + \")\", ind);\n if (nData !== \"\" || forceupd === true) {\n v = $t.formatter(rowid, nData, pos, ind, 'edit');\n title = $t.p.colModel[pos].title ? { \"title\": $.jgrid.stripHtml(v)} : {};\n if ($t.p.treeGrid && $(\".tree-wrap\", $(tcell)).length > 0) {\n $(\"span\", $(tcell)).html(v).attr(title);\n } else {\n $(tcell).html(v).attr(title);\n }\n if ($t.p.datatype == \"local\") {\n var cm = $t.p.colModel[pos], index;\n nData = cm.formatter && typeof (cm.formatter) === 'string' && cm.formatter == 'date' ? $.unformat.date(nData, cm) : nData;\n index = $t.p._index[rowid];\n if (typeof index != \"undefined\") {\n $t.p.data[index][cm.name] = nData;\n }\n }\n }\n if (typeof cssp === 'string') {\n $(tcell).addClass(cssp);\n } else if (cssp) {\n $(tcell).css(cssp);\n }\n if (typeof attrp === 'object') { $(tcell).attr(attrp); }\n }\n }\n });\n },\n getCell: function (rowid, col) {\n var ret = false;\n this.each(function () {\n var $t = this, pos = -1;\n if (!$t.grid) { return; }\n if (isNaN(col)) {\n $($t.p.colModel).each(function (i) {\n if (this.name === col) {\n pos = i; return false;\n }\n });\n } else { pos = parseInt(col, 10); }\n if (pos >= 0) {\n var ind = $t.rows.namedItem(rowid);\n if (ind) {\n try {\n ret = $.unformat($(\"td:eq(\" + pos + \")\", ind), { rowId: ind.id, colModel: $t.p.colModel[pos] }, pos);\n } catch (e) {\n ret = $.jgrid.htmlDecode($(\"td:eq(\" + pos + \")\", ind).html());\n }\n }\n }\n });\n return ret;\n },\n getCol: function (col, obj, mathopr) {\n var ret = [], val, sum = 0, min, max, v;\n obj = typeof (obj) != 'boolean' ? false : obj;\n if (typeof mathopr == 'undefined') { mathopr = false; }\n this.each(function () {\n var $t = this, pos = -1;\n if (!$t.grid) { return; }\n if (isNaN(col)) {\n $($t.p.colModel).each(function (i) {\n if (this.name === col) {\n pos = i; return false;\n }\n });\n } else { pos = parseInt(col, 10); }\n if (pos >= 0) {\n var ln = $t.rows.length, i = 0;\n if (ln && ln > 0) {\n while (i < ln) {\n if ($($t.rows[i]).hasClass('jqgrow')) {\n try {\n val = $.unformat($($t.rows[i].cells[pos]), { rowId: $t.rows[i].id, colModel: $t.p.colModel[pos] }, pos);\n } catch (e) {\n val = $.jgrid.htmlDecode($t.rows[i].cells[pos].innerHTML);\n }\n if (mathopr) {\n v = parseFloat(val);\n sum += v;\n if (i === 0) {\n min = v;\n max = v;\n } else {\n min = Math.min(min, v);\n max = Math.max(max, v);\n }\n }\n else if (obj) { ret.push({ id: $t.rows[i].id, value: val }); }\n else { ret.push(val); }\n }\n i++;\n }\n if (mathopr) {\n switch (mathopr.toLowerCase()) {\n case 'sum': ret = sum; break;\n case 'avg': ret = sum / ln; break;\n case 'count': ret = ln; break;\n case 'min': ret = min; break;\n case 'max': ret = max; break;\n }\n }\n }\n }\n });\n return ret;\n },\n newSortInfo: function (name, order, altSortField) {\n // method that can expose SortInfo outside jqGrid (i.e. cartegraph-flexGrid.js)\n return new SortInfo(name, order, altSortField);\n },\n clearGridData: function (clearfooter) {\n return this.each(function () {\n var $t = this;\n if (!$t.grid) { return; }\n if (typeof clearfooter != 'boolean') { clearfooter = false; }\n if ($t.p.deepempty) {\n $(\"#\" + $.jgrid.jqID($t.p.id) + \" tbody:first tr:gt(0)\").remove();\n\n // ==== Cartegraph change: frozen columns ====\n\n // set bdiv height for the left frozen table\n if ($t.p.carte_frozenLeftLastIndex > -1) {\n $(\"#\" + $.jgrid.jqID($t.p.id) + \"_frozenLeft tbody:first tr:gt(0)\").remove();\n }\n\n // set bdiv height for the right frozen table\n if ($t.p.carte_frozenRightFirstIndex > -1) {\n $(\"#\" + $.jgrid.jqID($t.p.id) + \"_frozenRight tbody:first tr:gt(0)\").remove();\n }\n\n // ==== Cartegraph change: frozen columns ====\n }\n else {\n var trf = $(\"#\" + $.jgrid.jqID($t.p.id) + \" tbody:first tr:first\")[0];\n $(\"#\" + $.jgrid.jqID($t.p.id) + \" tbody:first\").empty().append(trf);\n\n // ==== Cartegraph change: frozen columns ====\n\n // set bdiv height for the left frozen table\n if ($t.p.carte_frozenLeftLastIndex > -1) {\n trf = $(\"#\" + $.jgrid.jqID($t.p.id) + \"_frozenLeft tbody:first tr:first\")[0];\n $(\"#\" + $.jgrid.jqID($t.p.id) + \"_frozenLeft tbody:first\").empty().append(trf);\n }\n\n // set bdiv height for the right frozen table\n if ($t.p.carte_frozenRightFirstIndex > -1) {\n trf = $(\"#\" + $.jgrid.jqID($t.p.id) + \"_frozenRight tbody:first tr:first\")[0];\n $(\"#\" + $.jgrid.jqID($t.p.id) + \"_frozenRight tbody:first\").empty().append(trf);\n }\n\n // ==== Cartegraph change: frozen columns ====\n }\n if ($t.p.footerrow && clearfooter) { $(\".ui-jqgrid-ftable td\", $t.grid.sDiv).html(\" \"); }\n $t.p.selrow = null; $t.p.selarrrow = []; $t.p.savedRow = [];\n $t.p.records = 0; $t.p.page = 1; $t.p.lastpage = 0; $t.p.reccount = 0;\n $t.p.data = []; $t.p._index = {};\n $t.updatepager(true, false);\n });\n },\n getInd: function (rowid, rc) {\n var ret = false, rw;\n this.each(function () {\n rw = this.rows.namedItem(rowid);\n if (rw) {\n ret = rc === true ? rw : rw.rowIndex;\n }\n });\n return ret;\n },\n bindKeys: function (settings) {\n var o = $.extend({\n // ==== Cartegraph changes: setSelection keyboard navigation BEGIN ====\n // Added Escape, tab and Alt+up navigation handlers\n onEscape: null,\n onTab: null,\n onAltUp: null,\n onBackspace: null,\n // ==== Cartegraph changes: setSelection keyboard navigation END ====\n onEnter: null,\n onSpace: null,\n onLeftKey: null,\n onRightKey: null,\n scrollingRows: true\n }, settings || {});\n return this.each(function () {\n var $t = this;\n if (!$('body').is('[role]')) { $('body').attr('role', 'application'); }\n $t.p.scrollrows = o.scrollingRows;\n $($t).keydown(function (event) {\n var target = $($t).find('tr[tabindex=0]')[0], id, r, mind,\n\t\t\t\texpanded = $t.p.treeReader.expanded_field;\n //check for arrow keys\n if (target) {\n /*\n * Cartegraph change begin\n * When using home/end keyboard navigation in index grids, focus can be lost inadvertently because if the\n * elements have focus rather than the table iself, when rows are discarded by the grid focus is lost.\n * This causes further key press events to not be caught\n * If we catch a key press and focus is not on the table, move it there\n * Also note that moving focus can cause undesired behavior in IE (but we have no choice other than to move focus)\n */\n if ($t.p.carte_RowSelection) {\n // If the key pressed was Page Up, Page Down, Home or End, stop event propagation\n if (event.keyCode === 33 || event.keyCode === 34 || event.keyCode === 35 || event.keyCode === 36) {\n event.preventDefault();\n return;\n }\n if (!$(event.currentTarget).is(':focus') && $(event.currentTarget).is('table')) {\n $(event.currentTarget).focus();\n }\n }\n /* Cartegraph change end */\n mind = $t.p._index[target.id];\n // ==== Cartegraph changes: setSelection keyboard navigation BEGIN ====\n // if (event.keyCode === 37 || event.keyCode === 38 || event.keyCode === 39 || event.keyCode === 40) {\n // Added guard to check if Alt key was pressed, it will be handled on onAltUp\n if (event.altKey == false && (event.keyCode === 37 || event.keyCode === 38 || event.keyCode === 39 || event.keyCode === 40)) {\n // ==== Cartegraph changes: setSelection keyboard navigation END ====\n // up key\n if (event.keyCode === 38) {\n r = target.previousSibling;\n id = \"\";\n if (r) {\n if ($(r).is(\":hidden\")) {\n while (r) {\n r = r.previousSibling;\n if (!$(r).is(\":hidden\") && $(r).hasClass('jqgrow')) { id = r.id; break; }\n }\n } else {\n id = r.id;\n }\n }\n // ==== Cartegraph changes: setSelection keyboard navigation BEGIN ====\n // $($t).jqGrid('setSelection', id);\n // Added event parameter to indicate the method/event that triggered the setSelection\n // to determine if the grid should be closed and text box value updated\n $($t).jqGrid('setSelection', id, true, event);\n // Prevent default event bubbling for lookup grids\n if ($t.p.isLookup) { event.preventDefault(); }\n // ==== Cartegraph changes: setSelection keyboard navigation END ====\n }\n //if key is down arrow\n if (event.keyCode === 40) {\n r = target.nextSibling;\n id = \"\";\n if (r) {\n if ($(r).is(\":hidden\")) {\n while (r) {\n r = r.nextSibling;\n if (!$(r).is(\":hidden\") && $(r).hasClass('jqgrow')) { id = r.id; break; }\n }\n } else {\n id = r.id;\n }\n }\n // ==== Cartegraph changes: setSelection keyboard navigation BEGIN ====\n // $($t).jqGrid('setSelection', id);\n // Added event parameter to indicate the method/event that triggered the setSelection\n // to determine if the grid should be closed and text box value updated\n $($t).jqGrid('setSelection', id, true, event);\n // Prevent default event bubbling for lookup grids\n if ($t.p.isLookup) { event.preventDefault(); }\n // ==== Cartegraph changes: setSelection keyboard navigation END ====\n }\n // left\n if (event.keyCode === 37) {\n if ($t.p.treeGrid && $t.p.data[mind][expanded]) {\n $(target).find(\"div.treeclick\").trigger('click');\n }\n if ($.isFunction(o.onLeftKey)) {\n o.onLeftKey.call($t, $t.p.selrow);\n }\n }\n // right\n if (event.keyCode === 39) {\n if ($t.p.treeGrid && !$t.p.data[mind][expanded]) {\n $(target).find(\"div.treeclick\").trigger('click');\n }\n if ($.isFunction(o.onRightKey)) {\n o.onRightKey.call($t, $t.p.selrow);\n }\n }\n //return false;\n }\n //check if enter was pressed on a grid or treegrid node\n else if (event.keyCode === 13) {\n if ($.isFunction(o.onEnter)) {\n o.onEnter.call($t, $t.p.selrow, event, $(target).data('classnameoid'));\n }\n //return false;\n } else if (event.keyCode === 32) {\n if ($.isFunction(o.onSpace)) {\n o.onSpace.call($t, $t.p.selrow);\n }\n // Cartegraph change\n // kill the event if row selection is turned on\n if ($t.p.carte_RowSelection)\n event.preventDefault();\n // End Cartegraph Change\n //return false;\n }\n // ==== Cartegraph changes: setSelection keyboard navigation BEGIN ====\n // Added handlers for onEscape, onTab and onAltUp\n // Escape key\n else if (event.keyCode == 27) {\n if ($.isFunction(o.onEscape)) {\n o.onEscape.call($t, $t.p.selrow);\n }\n }\n // Tab key\n else if (event.keyCode == 9) {\n if ($.isFunction(o.onTab)) {\n o.onTab.call($t, $t.p.selrow, event);\n }\n }\n // Alt + Up\n else if (event.altKey) {\n if (event.keyCode == 38) {\n if ($.isFunction(o.onAltUp)) {\n o.onAltUp.call($t, $t.p.selrow);\n }\n }\n }\n // Backspace\n else if (event.keyCode == 8) {\n if ($.isFunction(o.onBackspace)) {\n o.onBackspace.call($t, $t.p.selrow);\n }\n }\n // ==== Cartegraph changes: setSelection keyboard navigation END ====\n }\n });\n });\n },\n unbindKeys: function () {\n return this.each(function () {\n var $t = this;\n $($t).unbind('keydown');\n });\n },\n getLocalRow: function (rowid) {\n var ret = false, ind;\n this.each(function () {\n if (typeof (rowid) !== \"undefined\") {\n ind = this.p._index[rowid];\n if (ind >= 0) {\n ret = this.p.data[ind];\n }\n }\n });\n return ret;\n }\n });\n})(jQuery);\n(function ($) {\n /**\n * jqGrid extension for custom methods\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/\n *\n * Wildraid wildraid@mail.ru\n * Oleg Kiriljuk oleg.kiriljuk@ok-soft-gmbh.com\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n **/\n /*global jQuery, $ */\n\n $.jgrid.extend({\n getColProp: function (colname) {\n var ret = {}, $t = this[0];\n if (!$t.grid) { return false; }\n var cM = $t.p.colModel;\n for (var i = 0; i < cM.length; i++) {\n if (cM[i].name == colname) {\n ret = cM[i];\n break;\n }\n }\n return ret;\n },\n setColProp: function (colname, obj) {\n //do not set width will not work\n return this.each(function () {\n if (this.grid) {\n if (obj) {\n var cM = this.p.colModel;\n for (var i = 0; i < cM.length; i++) {\n if (cM[i].name == colname) {\n $.extend(this.p.colModel[i], obj);\n break;\n }\n }\n }\n }\n });\n },\n sortGrid: function (colname, reload, sor) {\n return this.each(function () {\n var $t = this, idx = -1;\n if (!$t.grid) { return; }\n if (!colname) { colname = $t.p.sortname; }\n for (var i = 0; i < $t.p.colModel.length; i++) {\n if ($t.p.colModel[i].index == colname || $t.p.colModel[i].name == colname) {\n idx = i;\n break;\n }\n }\n if (idx != -1) {\n var sort = $t.p.colModel[idx].sortable;\n if (typeof sort !== 'boolean') { sort = true; }\n if (typeof reload !== 'boolean') { reload = false; }\n if (sort) { $t.sortData(\"jqgh_\" + $t.p.id + \"_\" + colname, idx, reload, sor); }\n }\n });\n },\n GridDestroy: function () {\n return this.each(function () {\n if (this.grid) {\n if (this.p.pager) { // if not part of grid\n $(this.p.pager).remove();\n }\n var gid = this.id;\n try {\n $(\"#gbox_\" + gid).remove();\n } catch (_) { }\n }\n });\n },\n GridUnload: function () {\n return this.each(function () {\n if (!this.grid) { return; }\n var defgrid = { id: $(this).attr('id'), cl: $(this).attr('class') };\n if (this.p.pager) {\n $(this.p.pager).empty().removeClass(\"ui-state-default ui-jqgrid-pager corner-bottom\");\n }\n var newtable = document.createElement('table');\n $(newtable).attr({ id: defgrid.id });\n newtable.className = defgrid.cl;\n var gid = this.id;\n $(newtable).removeClass(\"ui-jqgrid-btable\");\n if ($(this.p.pager).parents(\"#gbox_\" + gid).length === 1) {\n $(newtable).insertBefore(\"#gbox_\" + gid).show();\n $(this.p.pager).insertBefore(\"#gbox_\" + gid);\n } else {\n $(newtable).insertBefore(\"#gbox_\" + gid).show();\n }\n $(\"#gbox_\" + gid).remove();\n\n // Destroy the field chooser, if there is one. This fixes a memory leak where the old\n // qtips were never being cleaned up. Since grids never get \"destroyed\", just re-created,\n // we'll do this here, since this is fired on re-creating the grid.\n if (this.p.carte_qtipAPI)\n this.p.carte_qtipAPI.destroy();\n });\n },\n setGridState: function (state) {\n return this.each(function () {\n if (!this.grid) { return; }\n var $t = this;\n if (state == 'hidden') {\n $(\".ui-jqgrid-bdiv, .ui-jqgrid-hdiv\", \"#gview_\" + $t.p.id).slideUp(\"fast\");\n if ($t.p.pager) { $($t.p.pager).slideUp(\"fast\"); }\n if ($t.p.toppager) { $($t.p.toppager).slideUp(\"fast\"); }\n if ($t.p.toolbar[0] === true) {\n if ($t.p.toolbar[1] == 'both') {\n $($t.grid.ubDiv).slideUp(\"fast\");\n }\n $($t.grid.uDiv).slideUp(\"fast\");\n }\n if ($t.p.footerrow) { $(\".ui-jqgrid-sdiv\", \"#gbox_\" + $t.p.id).slideUp(\"fast\"); }\n $(\".ui-jqgrid-titlebar-close span\", $t.grid.cDiv).removeClass(\"ui-icon-circle-triangle-n\").addClass(\"ui-icon-circle-triangle-s\");\n $t.p.gridstate = 'hidden';\n } else if (state == 'visible') {\n $(\".ui-jqgrid-hdiv, .ui-jqgrid-bdiv\", \"#gview_\" + $t.p.id).slideDown(\"fast\");\n if ($t.p.pager) { $($t.p.pager).slideDown(\"fast\"); }\n if ($t.p.toppager) { $($t.p.toppager).slideDown(\"fast\"); }\n if ($t.p.toolbar[0] === true) {\n if ($t.p.toolbar[1] == 'both') {\n $($t.grid.ubDiv).slideDown(\"fast\");\n }\n $($t.grid.uDiv).slideDown(\"fast\");\n }\n if ($t.p.footerrow) { $(\".ui-jqgrid-sdiv\", \"#gbox_\" + $t.p.id).slideDown(\"fast\"); }\n $(\".ui-jqgrid-titlebar-close span\", $t.grid.cDiv).removeClass(\"ui-icon-circle-triangle-s\").addClass(\"ui-icon-circle-triangle-n\");\n $t.p.gridstate = 'visible';\n }\n\n });\n },\n filterToolbar: function (p) {\n p = $.extend({\n autosearch: true,\n searchOnEnter: true,\n beforeSearch: null,\n afterSearch: null,\n beforeClear: null,\n afterClear: null,\n searchurl: '',\n stringResult: false,\n groupOp: 'AND',\n defaultSearch: \"bw\"\n }, p || {});\n return this.each(function () {\n var $t = this;\n if (this.ftoolbar) { return; }\n var triggerToolbar = function () {\n var sdata = {}, j = 0, v, nm, sopt = {}, so;\n $.each($t.p.colModel, function (i, n) {\n nm = this.index || this.name;\n so = (this.searchoptions && this.searchoptions.sopt) ? this.searchoptions.sopt[0] : this.stype == 'select' ? 'eq' : p.defaultSearch;\n v = $(\"#gs_\" + $.jgrid.jqID(this.name), (this.frozen === true && $t.p.frozenColumns === true) ? $t.grid.frozenHeaderLeftDiv : $t.grid.hDiv).val();\n if (v) {\n sdata[nm] = v;\n sopt[nm] = so;\n j++;\n } else {\n try {\n delete $t.p.postData[nm];\n } catch (z) { }\n }\n });\n var sd = j > 0 ? true : false;\n if (p.stringResult === true || $t.p.datatype == \"local\") {\n var ruleGroup = \"{\\\"groupOp\\\":\\\"\" + p.groupOp + \"\\\",\\\"rules\\\":[\";\n var gi = 0;\n $.each(sdata, function (i, n) {\n if (gi > 0) { ruleGroup += \",\"; }\n ruleGroup += \"{\\\"field\\\":\\\"\" + i + \"\\\",\";\n ruleGroup += \"\\\"op\\\":\\\"\" + sopt[i] + \"\\\",\";\n n += \"\";\n ruleGroup += \"\\\"data\\\":\\\"\" + n.replace(/\\\\/g, '\\\\\\\\').replace(/\\\"/g, '\\\\\"') + \"\\\"}\";\n gi++;\n });\n ruleGroup += \"]}\";\n $.extend($t.p.postData, { filters: ruleGroup });\n $.each(['searchField', 'searchString', 'searchOper'], function (i, n) {\n if ($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n]; }\n });\n } else {\n $.extend($t.p.postData, sdata);\n }\n var saveurl;\n if ($t.p.searchurl) {\n saveurl = $t.p.url;\n $($t).jqGrid(\"setGridParam\", { url: $t.p.searchurl });\n }\n var bsr = false;\n if ($.isFunction(p.beforeSearch)) { bsr = p.beforeSearch.call($t); }\n if (!bsr) { $($t).jqGrid(\"setGridParam\", { search: sd }).trigger(\"reloadGrid\", [{ page: 1}]); }\n if (saveurl) { $($t).jqGrid(\"setGridParam\", { url: saveurl }); }\n if ($.isFunction(p.afterSearch)) { p.afterSearch(); }\n };\n var clearToolbar = function (trigger) {\n var sdata = {}, v, j = 0, nm;\n trigger = (typeof trigger != 'boolean') ? true : trigger;\n $.each($t.p.colModel, function (i, n) {\n v = (this.searchoptions && this.searchoptions.defaultValue) ? this.searchoptions.defaultValue : \"\";\n nm = this.index || this.name;\n switch (this.stype) {\n case 'select':\n var v1;\n $(\"#gs_\" + $.jgrid.jqID(this.name) + \" option\", (this.frozen === true && $t.p.frozenColumns === true) ? $t.grid.frozenHeaderLeftDiv : $t.grid.hDiv).each(function (i) {\n if (i === 0) { this.selected = true; }\n if ($(this).text() == v) {\n this.selected = true;\n v1 = $(this).val();\n return false;\n }\n });\n if (v1) {\n // post the key and not the text\n sdata[nm] = v1;\n j++;\n } else {\n try {\n delete $t.p.postData[nm];\n } catch (e) { }\n }\n break;\n case 'text':\n $(\"#gs_\" + $.jgrid.jqID(this.name), (this.frozen === true && $t.p.frozenColumns === true) ? $t.grid.frozenHeaderLeftDiv : $t.grid.hDiv).val(v);\n if (v) {\n sdata[nm] = v;\n j++;\n } else {\n try {\n delete $t.p.postData[nm];\n } catch (y) { }\n }\n break;\n }\n });\n var sd = j > 0 ? true : false;\n if (p.stringResult === true || $t.p.datatype == \"local\") {\n var ruleGroup = \"{\\\"groupOp\\\":\\\"\" + p.groupOp + \"\\\",\\\"rules\\\":[\";\n var gi = 0;\n $.each(sdata, function (i, n) {\n if (gi > 0) { ruleGroup += \",\"; }\n ruleGroup += \"{\\\"field\\\":\\\"\" + i + \"\\\",\";\n ruleGroup += \"\\\"op\\\":\\\"\" + \"eq\" + \"\\\",\";\n n += \"\";\n ruleGroup += \"\\\"data\\\":\\\"\" + n.replace(/\\\\/g, '\\\\\\\\').replace(/\\\"/g, '\\\\\"') + \"\\\"}\";\n gi++;\n });\n ruleGroup += \"]}\";\n $.extend($t.p.postData, { filters: ruleGroup });\n $.each(['searchField', 'searchString', 'searchOper'], function (i, n) {\n if ($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n]; }\n });\n } else {\n $.extend($t.p.postData, sdata);\n }\n var saveurl;\n if ($t.p.searchurl) {\n saveurl = $t.p.url;\n $($t).jqGrid(\"setGridParam\", { url: $t.p.searchurl });\n }\n var bcv = false;\n if ($.isFunction(p.beforeClear)) { bcv = p.beforeClear.call($t); }\n if (!bcv) {\n if (trigger) {\n $($t).jqGrid(\"setGridParam\", { search: sd }).trigger(\"reloadGrid\", [{ page: 1}]);\n }\n }\n if (saveurl) { $($t).jqGrid(\"setGridParam\", { url: saveurl }); }\n if ($.isFunction(p.afterClear)) { p.afterClear(); }\n };\n var toggleToolbar = function () {\n var trow = $(\"tr.ui-search-toolbar\", $t.grid.hDiv),\n\t\t\t\ttrow2 = $t.p.frozenColumns === true ? $(\"tr.ui-search-toolbar\", $t.grid.hDiv) : false;\n if (trow.css(\"display\") == 'none') {\n trow.show();\n if (trow2) {\n trow2.show();\n }\n } else {\n trow.hide();\n if (trow2) {\n trow2.hide();\n }\n }\n };\n // create the row\n function bindEvents(selector, events) {\n var jElem = $(selector);\n if (jElem[0]) {\n jQuery.each(events, function () {\n if (this.data !== undefined) {\n jElem.bind(this.type, this.data, this.fn);\n } else {\n jElem.bind(this.type, this.fn);\n }\n });\n }\n }\n var tr = $(\"\");\n var timeoutHnd;\n $.each($t.p.colModel, function (i, n) {\n var cm = this, thd, th, soptions, surl, self;\n th = $(\"\");\n thd = $(\"
    \");\n if (this.hidden === true) { $(th).css(\"display\", \"none\"); }\n this.search = this.search === false ? false : true;\n if (typeof this.stype == 'undefined') { this.stype = 'text'; }\n soptions = $.extend({}, this.searchoptions || {});\n if (this.search) {\n switch (this.stype) {\n case \"select\":\n surl = this.surl || soptions.dataUrl;\n if (surl) {\n // data returned should have already constructed html select\n // primitive jQuery load\n self = thd;\n $.ajax($.extend({\n url: surl,\n dataType: \"html\",\n success: function (res, status) {\n if (soptions.buildSelect !== undefined) {\n var d = soptions.buildSelect(res);\n if (d) { $(self).append(d); }\n } else {\n $(self).append(res);\n }\n if (soptions.defaultValue) { $(\"select\", self).val(soptions.defaultValue); }\n $(\"select\", self).attr({ name: cm.index || cm.name, id: \"gs_\" + cm.name });\n if (soptions.attr) { $(\"select\", self).attr(soptions.attr); }\n $(\"select\", self).css({ width: \"100%\" });\n // preserve autoserch\n if (soptions.dataInit !== undefined) { soptions.dataInit($(\"select\", self)[0]); }\n if (soptions.dataEvents !== undefined) { bindEvents($(\"select\", self)[0], soptions.dataEvents); }\n if (p.autosearch === true) {\n $(\"select\", self).change(function (e) {\n triggerToolbar();\n return false;\n });\n }\n res = null;\n }\n }, $.jgrid.ajaxOptions, $t.p.ajaxSelectOptions || {}));\n } else {\n var oSv;\n if (cm.searchoptions && cm.searchoptions.value) {\n oSv = cm.searchoptions.value;\n } else if (cm.editoptions && cm.editoptions.value) {\n oSv = cm.editoptions.value;\n }\n if (oSv) {\n var elem = document.createElement(\"select\");\n elem.style.width = \"100%\";\n $(elem).attr({ name: cm.index || cm.name, id: \"gs_\" + cm.name });\n var so, sv, ov;\n if (typeof oSv === \"string\") {\n so = oSv.split(\";\");\n for (var k = 0; k < so.length; k++) {\n sv = so[k].split(\":\");\n ov = document.createElement(\"option\");\n ov.value = sv[0]; ov.innerHTML = sv[1];\n elem.appendChild(ov);\n }\n } else if (typeof oSv === \"object\") {\n for (var key in oSv) {\n if (oSv.hasOwnProperty(key)) {\n ov = document.createElement(\"option\");\n ov.value = key; ov.innerHTML = oSv[key];\n elem.appendChild(ov);\n }\n }\n }\n if (soptions.defaultValue) { $(elem).val(soptions.defaultValue); }\n if (soptions.attr) { $(elem).attr(soptions.attr); }\n if (soptions.dataInit !== undefined) { soptions.dataInit(elem); }\n if (soptions.dataEvents !== undefined) { bindEvents(elem, soptions.dataEvents); }\n $(thd).append(elem);\n if (p.autosearch === true) {\n $(elem).change(function (e) {\n triggerToolbar();\n return false;\n });\n }\n }\n }\n break;\n case 'text':\n var df = soptions.defaultValue ? soptions.defaultValue : \"\";\n $(thd).append(\"\");\n if (soptions.attr) { $(\"input\", thd).attr(soptions.attr); }\n if (soptions.dataInit !== undefined) { soptions.dataInit($(\"input\", thd)[0]); }\n if (soptions.dataEvents !== undefined) { bindEvents($(\"input\", thd)[0], soptions.dataEvents); }\n if (p.autosearch === true) {\n if (p.searchOnEnter) {\n $(\"input\", thd).keypress(function (e) {\n var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;\n if (key == 13) {\n triggerToolbar();\n return false;\n }\n return this;\n });\n } else {\n $(\"input\", thd).keydown(function (e) {\n var key = e.which;\n switch (key) {\n case 13:\n return false;\n case 9:\n case 16:\n case 37:\n case 38:\n case 39:\n case 40:\n case 27:\n break;\n default:\n if (timeoutHnd) { clearTimeout(timeoutHnd); }\n timeoutHnd = setTimeout(function () { triggerToolbar(); }, 500);\n }\n });\n }\n }\n break;\n }\n }\n $(th).append(thd);\n $(tr).append(th);\n });\n $(\"table thead\", $t.grid.hDiv).append(tr);\n this.ftoolbar = true;\n this.triggerToolbar = triggerToolbar;\n this.clearToolbar = clearToolbar;\n this.toggleToolbar = toggleToolbar;\n });\n },\n\n destroyGroupHeader: function (nullHeader) {\n if (typeof (nullHeader) == 'undefined') {\n nullHeader = true;\n }\n return this.each(function () {\n var $t = this, $tr, i, l, headers, $th, $resizing, grid = $t.grid,\n\t\t\tthead = $(\"table.ui-jqgrid-htable thead\", grid.hDiv), cm = $t.p.colModel, hc;\n if (!grid) return;\n\n $tr = $(\"\", { role: \"rowheader\" }).addClass(\"ui-jqgrid-labels\");\n headers = grid.headers;\n for (i = 0, l = headers.length; i < l; i++) {\n hc = cm[i].hidden ? \"none\" : \"\";\n $th = $(headers[i].el)\n\t\t\t\t\t.width(headers[i].width)\n\t\t\t\t\t.css('display', hc);\n try {\n $th.removeAttr(\"rowSpan\");\n } catch (rs) {\n //IE 6/7\n $th.attr(\"rowSpan\", 1);\n }\n $tr.append($th);\n $resizing = $th.children(\"span.ui-jqgrid-resize\");\n if ($resizing.length > 0) {// resizable column\n $resizing[0].style.height = \"\";\n }\n $th.children(\"div\")[0].style.top = \"\";\n }\n $(thead).children('tr.ui-jqgrid-labels').remove();\n $(thead).prepend($tr);\n\n if (nullHeader === true) {\n $($t).jqGrid('setGridParam', { 'groupHeader': null });\n }\n });\n },\n\n setGroupHeaders: function (o) {\n o = $.extend({\n useColSpanStyle: false,\n groupHeaders: []\n }, o || {});\n return this.each(function () {\n this.p.groupHeader = o;\n var ts = this,\n\t\t\ti, cmi, skip = 0, $tr, $colHeader, th, $th, thStyle,\n\t\t\tiCol,\n\t\t\tcghi,\n //startColumnName,\n\t\t\tnumberOfColumns,\n\t\t\ttitleText,\n\t\t\tcVisibleColumns,\n\t\t\tcolModel = ts.p.colModel,\n\t\t\tcml = colModel.length,\n\t\t\tths = ts.grid.headers,\n\t\t\t$htable = $(\"table.ui-jqgrid-htable\", ts.grid.hDiv),\n\t\t\t$trLabels = $htable.children(\"thead\").children(\"tr.ui-jqgrid-labels:last\").addClass(\"jqg-second-row-header\"),\n\t\t\t$thead = $htable.children(\"thead\"),\n\t\t\t$theadInTable,\n\t\t\toriginalResizeStop,\n\t\t\t$firstHeaderRow = $htable.find(\".jqg-first-row-header\");\n if ($firstHeaderRow.html() === null) {\n $firstHeaderRow = $('', { role: \"row\", \"aria-hidden\": \"true\" }).addClass(\"jqg-first-row-header\").css(\"height\", \"auto\");\n } else {\n $firstHeaderRow.empty();\n }\n var $firstRow,\n\t\t\tinColumnHeader = function (text, columnHeaders) {\n\t\t\t var i = 0, length = columnHeaders.length;\n\t\t\t for (; i < length; i++) {\n\t\t\t if (columnHeaders[i].startColumnName === text) {\n\t\t\t return i;\n\t\t\t }\n\t\t\t }\n\t\t\t return -1;\n\t\t\t};\n\n $(ts).prepend($thead);\n $tr = $('', { role: \"rowheader\" }).addClass(\"ui-jqgrid-labels jqg-third-row-header\");\n for (i = 0; i < cml; i++) {\n th = ths[i].el;\n $th = $(th);\n cmi = colModel[i];\n // build the next cell for the first header row\n thStyle = { height: '0px', width: ths[i].width + 'px', display: (cmi.hidden ? 'none' : '') };\n $(\"\", { role: 'gridcell' }).css(thStyle).addClass(\"ui-first-th-\" + ts.p.direction).appendTo($firstHeaderRow);\n\n th.style.width = \"\"; // remove unneeded style\n iCol = inColumnHeader(cmi.name, o.groupHeaders);\n if (iCol >= 0) {\n cghi = o.groupHeaders[iCol];\n numberOfColumns = cghi.numberOfColumns;\n titleText = cghi.titleText;\n\n // caclulate the number of visible columns from the next numberOfColumns columns\n for (cVisibleColumns = 0, iCol = 0; iCol < numberOfColumns && (i + iCol < cml); iCol++) {\n if (!colModel[i + iCol].hidden) {\n cVisibleColumns++;\n }\n }\n\n // The next numberOfColumns headers will be moved in the next row\n // in the current row will be placed the new column header with the titleText.\n // The text will be over the cVisibleColumns columns\n $colHeader = $('').attr({ role: \"columnheader\" })\n\t\t\t\t\t\t.addClass(\"ui-state-default ui-th-column-header ui-th-\" + ts.p.direction)\n\t\t\t\t\t\t.css({ 'height': '22px', 'border-top': '0px none' })\n\t\t\t\t\t\t.html(titleText);\n if (cVisibleColumns > 0) {\n $colHeader.attr(\"colspan\", String(cVisibleColumns));\n }\n if (ts.p.headertitles) {\n $colHeader.attr(\"title\", $colHeader.text());\n }\n // hide if not a visible cols\n if (cVisibleColumns === 0) {\n $colHeader.hide();\n }\n\n $th.before($colHeader); // insert new column header before the current\n $tr.append(th); // move the current header in the next row\n\n // set the coumter of headers which will be moved in the next row\n skip = numberOfColumns - 1;\n } else {\n if (skip === 0) {\n if (o.useColSpanStyle) {\n // expand the header height to two rows\n $th.attr(\"rowspan\", \"2\");\n } else {\n $('', { role: \"columnheader\" })\n\t\t\t\t\t\t\t\t.addClass(\"ui-state-default ui-th-column-header ui-th-\" + ts.p.direction)\n\t\t\t\t\t\t\t\t.css({ \"display\": cmi.hidden ? 'none' : '', 'border-top': '0px none' })\n\t\t\t\t\t\t\t\t.insertBefore($th);\n $tr.append(th);\n }\n } else {\n // move the header to the next row\n //$th.css({\"padding-top\": \"2px\", height: \"19px\"});\n $tr.append(th);\n skip--;\n }\n }\n }\n $theadInTable = $(ts).children(\"thead\");\n $theadInTable.prepend($firstHeaderRow);\n $tr.insertAfter($trLabels);\n $htable.append($theadInTable);\n\n if (o.useColSpanStyle) {\n // Increase the height of resizing span of visible headers\n $htable.find(\"span.ui-jqgrid-resize\").each(function () {\n var $parent = $(this).parent();\n if ($parent.is(\":visible\")) {\n this.style.cssText = 'height: ' + $parent.height() + 'px !important; cursor: col-resize;';\n }\n });\n\n // Set position of the sortable div (the main lable)\n // with the column header text to the middle of the cell.\n // One should not do this for hidden headers.\n $htable.find(\"div.ui-jqgrid-sortable\").each(function () {\n var $ts = $(this), $parent = $ts.parent();\n if ($parent.is(\":visible\") && $parent.is(\":has(span.ui-jqgrid-resize)\")) {\n $ts.css('top', ($parent.height() - $ts.outerHeight()) / 2 + 'px');\n }\n });\n }\n\n // Preserve original resizeStop event if any defined\n if ($.isFunction(ts.p.resizeStop)) {\n originalResizeStop = ts.p.resizeStop;\n }\n $firstRow = $theadInTable.find(\"tr.jqg-first-row-header\");\n ts.p.resizeStop = function (nw, idx) {\n $firstRow.find('th').eq(idx).width(nw);\n if ($.isFunction(originalResizeStop)) {\n originalResizeStop.call(ts, nw, idx);\n }\n };\n });\n },\n setFrozenColumns: function () {\n\n return this.each(function () {\n if (!this.grid) { return; }\n var $t = this, cm = $t.p.colModel, i = 0, len = cm.length, frozen = false;\n\n // allow frozen columns to work with virtual scrolling\n //if ($t.p.subGrid == true || $t.p.treeGrid === true || $t.p.cellEdit == true || $t.p.sortable || $t.p.scroll || $t.p.grouping) {\n if ($t.p.subGrid == true || $t.p.treeGrid === true || $t.p.cellEdit == true || $t.p.grouping) {\n return;\n }\n if ($t.p.rownumbers) { i++; }\n if ($t.p.multiselect) { i++; }\n\n // get the max index of frozen col\n while (i < len) {\n // from left, no breaking frozen\n if (cm[i].frozen === true) {\n frozen = true;\n if ($t.p.carte_frozenLeftLastIndex + 1 == i) {\n $t.p.carte_frozenLeftLastIndex = i;\n }\n else {\n $t.p.carte_frozenRightFirstIndex = i;\n break;\n }\n }\n i++;\n }\n\n if (!frozen)\n return;\n\n var top = $t.p.caption ? $($t.grid.cDiv).outerHeight() : 0;\n var hth = $(\".ui-jqgrid-htable\", \"#gview_\" + $.jgrid.jqID($t.p.id)).outerHeight();\n\n $t.p.orgEvents = {};\n\n //headers\n if ($t.p.toppager) {\n top = top + $($t.grid.topDiv).outerHeight();\n }\n if ($t.p.toolbar[0] == true) {\n if ($t.p.toolbar[1] != \"bottom\") {\n top = top + $($t.grid.uDiv).outerHeight();\n }\n }\n\n /** L E F T F R O Z E N **/\n\n if ($t.p.carte_frozenLeftLastIndex > -1) {\n\n /** H E A D E R **/\n\n // create header div by cloning the main header div and removing non-frozen columns\n $t.grid.frozenLeftHeaderDiv = $(\"#gview_\" + $t.p.id + \" .ui-jqgrid-hdiv:first\").clone(true);\n\n // remove all columns that are not frozen left\n $(\"tr\", $t.grid.frozenLeftHeaderDiv).each(function () {\n $(\"th:gt(\" + $t.p.carte_frozenLeftLastIndex + \")\", this).remove();\n });\n\n // th.ui-th-ltr:last-child hides the last column's border-right - add it back in so we get a nice 'edge' when horizontally scrolling\n $(\"tr:last\", $t.grid.frozenLeftHeaderDiv).each(function () {\n $(\"th:last\", this).addClass('frozenLeftLastColumn');\n });\n $('table:first', $t.grid.frozenLeftHeaderDiv).width(1); // shrink table width\n\n $(\"#gview_\" + $.jgrid.jqID($t.p.id)).append($t.grid.frozenLeftHeaderDiv);\n\n // NOTE: outerWidth() includes padding and border ONLY after the element has been added to the DOM - otherwise it doesn't include padding and border yet\n var totalOuterWidth = 0;\n $(\"tr\", $t.grid.frozenLeftHeaderDiv).each(function () {\n $(\"th\", this).each(function () {\n totalOuterWidth += $(this).outerWidth();\n });\n });\n\n $t.grid.frozenLeftHeaderDiv.css({ position: 'absolute', left: '0px', top: '0px', width: (totalOuterWidth + 1) + 'px' }); // add +1 to account for 1px right-most border\n\n /** B O D Y **/\n\n // create
    which will host the frozen left table\n $t.grid.frozenLeftDiv = $('
    '); // add +1 to account for ui-state-highlight 1px border\n\n // create frozen left table by cloning the main table and removing non-frozen columns\n $t.grid.frozenLeftTable = $(\"#\" + $t.p.id).clone(true);\n $($t.grid.frozenLeftTable).width(1); // shrink table width\n\n // remove all columns that are not frozen left\n $(\"tr\", $t.grid.frozenLeftTable).each(function () {\n $(\"td:gt(\" + $t.p.carte_frozenLeftLastIndex + \")\", this).remove();\n });\n\n // change the table id to be unique\n $t.grid.frozenLeftTable.attr('id', $t.p.id + \"_frozenLeft\");\n\n // append the elements in the DOM\n $(\"#carte_\" + $t.p.id + '_tablesContainer').append($t.grid.frozenLeftDiv);\n $(\"#carte_\" + $t.p.id + \"_frozenLeftContainer\").append($t.grid.frozenLeftTable);\n }\n\n\n /** R I G H T F R O Z E N **/\n\n if ($t.p.carte_frozenRightFirstIndex > -1) {\n\n /** H E A D E R **/\n\n // create header div by cloning the main header div and removing non-frozen columns\n $t.grid.frozenRightHeaderDiv = $(\"#gview_\" + $t.p.id + \" .ui-jqgrid-hdiv:first\").clone(true);\n\n // remove all columns that are not frozen right\n $(\"tr\", $t.grid.frozenRightHeaderDiv).each(function () {\n $(\"th:lt(\" + $t.p.carte_frozenRightFirstIndex + \")\", this).remove();\n });\n\n // add border-left to the first right frozen column so we get a nice 'edge' when horizontally scrolling\n $(\"tr:first\", $t.grid.frozenRightHeaderDiv).each(function () {\n $(\"th:first\", this).addClass('frozenRightFirstColumn');\n });\n\n $('table:first', $t.grid.frozenRightHeaderDiv).width(1); // shrink table width\n\n $(\"#gview_\" + $.jgrid.jqID($t.p.id)).append($t.grid.frozenRightHeaderDiv);\n\n var totalOuterWidth = 0;\n $(\"th:gt(\" + ($t.p.carte_frozenRightFirstIndex - 1) + \")\", $(\"#gview_\" + $t.p.id + \" .ui-jqgrid-hdiv:first\")).each(function () {\n // NOTE: outerWidth() includes padding and border ONLY after the element has been added to the DOM - otherwise it doesn't include padding and border yet\n totalOuterWidth += $(this).outerWidth();\n });\n\n $t.grid.frozenRightHeaderDiv.css({ position: 'absolute', right: '0px', top: '0px', width: totalOuterWidth + 'px' });\n\n // ==== Cartegraph change: field chooser ====\n $($t).jqGrid('addGridButtons');\n // ==== Cartegraph change: field chooser ====\n\n /** B O D Y **/\n\n // create
    which will host the frozen right table\n $t.grid.frozenRightDiv = $('
    ');\n\n // create frozen right table by cloning the main table and removing non-frozen columns\n $t.grid.frozenRightTable = $(\"#\" + $t.p.id).clone(true);\n $($t.grid.frozenRightTable).width(totalOuterWidth);\n\n // remove all columns that are not frozen right\n $(\"tr\", $t.grid.frozenRightTable).each(function () {\n $(\"td:lt(\" + $t.p.carte_frozenRightFirstIndex + \")\", this).remove();\n });\n\n // change the table id to be unique\n $t.grid.frozenRightTable.attr('id', $t.p.id + \"_frozenRight\");\n\n // append the elements in the DOM\n $(\"#carte_\" + $t.p.id + '_tablesContainer').append($t.grid.frozenRightDiv);\n $(\"#carte_\" + $t.p.id + \"_frozenRightContainer\").append($t.grid.frozenRightTable);\n }\n\n\n if ($.isFunction($t.p._complete)) {\n $t.p.orgEvents.complete = $t.p._complete;\n } else {\n $t.p.orgEvents.complete = null;\n }\n\n // _complete is taking control of hover event handlers so unbind main table's current hover events\n if ($t.p.hoverrows === true) {\n $(\"#\" + $.jgrid.jqID($t.p.id)).unbind('mouseover').unbind('mouseout');\n }\n\n\n /** H O V E R S T A T E S **/\n\n // called from updatepager after gridComplete event has been fired\n $t.p._complete = function () {\n\n if ($t.p && $t.p.restoreScroll > 0) {\n $('div#' + $t.p.id.replace(\"Grid\",\"\") + ' .ui-jqgrid-bdiv').scrollTop($t.p.restoreScroll);\n $t.p.restoreScroll = 0;\n }\n\n if ($t.p && $t.p.restoreHighlight != null) {\n $('div#' + $t.p.id.replace(\"Grid\", \"\") + ' #' + $t.p.restoreHighlight).click();\n $t.p.restoreHighlight = null;\n }\n\n if ($t.p.hoverrows === true) {\n\n /*\n * switched from mouseenter/mouseleave [hover] to mouseover/mouseout because mouseleave would not always fire - leaving mutiple rows with hover effect\n */\n\n // hover over\\out on the left frozen table should hover on the main and right frozen tables\n if ($t.p.carte_frozenLeftLastIndex > -1) {\n\n $(\"tr.jqgrow\", $t.grid.frozenLeftTable) // can't use die().live() because seems not to hook up the events if you call it and 'tr.jqgrow' returns no rows\n .unbind('mouseover mouseout')\n .bind('mouseover', function () {\n $(this).addClass(\"ui-state-hover\");\n $(\"#\" + $.jgrid.jqID(this.id), \"#\" + $.jgrid.jqID($t.p.id)).addClass(\"ui-state-hover\");\n\n if ($t.p.carte_frozenRightFirstIndex > -1)\n $(\"#\" + $.jgrid.jqID(this.id), \"#\" + $.jgrid.jqID($t.p.id) + \"_frozenLeft\").addClass(\"ui-state-hover\");\n })\n .bind('mouseout', function () {\n $(this).removeClass(\"ui-state-hover\");\n $(\"#\" + $.jgrid.jqID(this.id), \"#\" + $.jgrid.jqID($t.p.id)).removeClass(\"ui-state-hover\");\n\n if ($t.p.carte_frozenRightFirstIndex > -1)\n $(\"#\" + $.jgrid.jqID(this.id), \"#\" + $.jgrid.jqID($t.p.id) + \"_frozenLeft\").removeClass(\"ui-state-hover\");\n }\n )\n }\n\n // hover over\\out on the right frozen table should hover on the main and left frozen tables\n if ($t.p.carte_frozenRightFirstIndex > -1) {\n\n $(\"tr.jqgrow\", $t.grid.frozenRightTable) // can't use die().live() because seems not to hook up the events if you call it and 'tr.jqgrow' returns no rows\n .unbind('mouseover mouseout')\n .bind('mouseover', function () {\n $(this).addClass(\"ui-state-hover\");\n $(\"#\" + $.jgrid.jqID(this.id), \"#\" + $.jgrid.jqID($t.p.id)).addClass(\"ui-state-hover\");\n\n if ($t.p.carte_frozenLeftLastIndex > -1)\n $(\"#\" + $.jgrid.jqID(this.id), \"#\" + $.jgrid.jqID($t.p.id) + \"_frozenLeft\").addClass(\"ui-state-hover\");\n })\n .bind('mouseout', function () {\n $(this).removeClass(\"ui-state-hover\");\n $(\"#\" + $.jgrid.jqID(this.id), \"#\" + $.jgrid.jqID($t.p.id)).removeClass(\"ui-state-hover\");\n\n if ($t.p.carte_frozenLeftLastIndex > -1)\n $(\"#\" + $.jgrid.jqID(this.id), \"#\" + $.jgrid.jqID($t.p.id) + \"_frozenLeft\").removeClass(\"ui-state-hover\");\n }\n )\n }\n\n // hover over\\out on the main table should hover on the left and right frozen column tables\n $(\"tr.jqgrow\", \"#\" + $.jgrid.jqID($t.p.id)) // can't use die().live() because seems not to hook up the events if you call it and 'tr.jqgrow' returns no rows\n .unbind('mouseover mouseout')\n .bind('mouseover', function () {\n $(this).addClass(\"ui-state-hover\");\n $(\"#\" + $.jgrid.jqID(this.id), \"#\" + $.jgrid.jqID($t.p.id)).addClass(\"ui-state-hover\");\n\n if ($t.p.carte_frozenLeftLastIndex > -1)\n $(\"#\" + $.jgrid.jqID(this.id), \"#\" + $.jgrid.jqID($t.p.id) + \"_frozenLeft\").addClass(\"ui-state-hover\");\n\n if ($t.p.carte_frozenRightFirstIndex > -1)\n $(\"#\" + $.jgrid.jqID(this.id), \"#\" + $.jgrid.jqID($t.p.id) + \"_frozenRight\").addClass(\"ui-state-hover\");\n })\n .bind('mouseout', function () {\n $(this).removeClass(\"ui-state-hover\");\n if ($t.p.carte_frozenLeftLastIndex > -1)\n $(\"#\" + $.jgrid.jqID(this.id), \"#\" + $.jgrid.jqID($t.p.id) + \"_frozenLeft\").removeClass(\"ui-state-hover\");\n\n if ($t.p.carte_frozenRightFirstIndex > -1)\n $(\"#\" + $.jgrid.jqID(this.id), \"#\" + $.jgrid.jqID($t.p.id) + \"_frozenRight\").removeClass(\"ui-state-hover\");\n })\n }\n };\n\n $t.p.frozenColumns = true;\n });\n },\n // ==== Cartegraph change: field chooser ====\n addGridButtons: function () {\n return this.each(function() {\n var $t = this;\n\n //#region Task Calendar Button\n // List of task grids the calendar icon will display on\n var taskGridIDs = ['cgTasksClassGrid', 'cgWorkOrders_cgTasksClassGrid', 'cgLabor_cgAssignedTasksClassGrid'];\n var isOnContainerSummaryScreen = $t.p.id.endsWith('_cgTasksClassGrid') && $('#' + $t.p.id).parents('#containerAssetSummary').length;\n\n if ((_.contains(taskGridIDs, $t.p.id) || isOnContainerSummaryScreen) && !$t.p.carte_IsInDesignMode) {\n var $calendarButton = $(document.createElement(\"div\"));\n\n var uriMapper = Cartegraph.URIMapper;\n var calendarType = uriMapper.isOnIndex() ? (uriMapper.isOnWork() ? 0 : -1) // Task Index Screen\n : (uriMapper.isOnWork() ? 1 // Work Detail Screen\n : (uriMapper.isOnAssets() ? 2 // Container Asset Screen\n : (uriMapper.isOnResources() ? 3 : -1 ))) ; // Labor Detail Screen\n\n $calendarButton\n .attr({ id: 'btnCalendar_' + $t.p.id, title: 'Task Calendar' })\n .addClass('ui-jqgrid-cgButton')\n .css({ 'top': '1px' })\n .on('click', function () {\n var blockWidget = Cartegraph.Utilities.showBlockWidget({ cssClass: 'taskCalendarBlockScreen', blockTabs: true, bKeepScreenHidden: false, hideBlockOverlay: false });\n var filters = ($t.p.postData.filters && $t.p.postData.filters.length > 0) ? $t.p.postData.filters : '';\n blockWidget.TaskCalendar({\n calendarDivId: 'calendar',\n calendarType: calendarType,\n classNames: $t.p.postData.className,\n filters: filters,\n parentID: Cartegraph.CurrentAsset.getId()\n });\n });\n\n\n var cssClass = $t.p.isChild ? 'childGrid' : '';\n\n $('#calendar-icon-tmpl').tmpl({ cssClass: cssClass }).appendTo($calendarButton);\n\n $(\">div\", $(\"th:last\", $t.grid.frozenRightHeaderDiv)).append($calendarButton);\n }\n //#endregion\n\n //#region Export button\n //http://jsfiddle.net/rniemeyer/MFnHj/\n\n var stopApplyBindingsDiv = $(document.createElement(\"div\"));\n stopApplyBindingsDiv.attr('data-bind', 'stopApplyBindings');\n stopApplyBindingsDiv.addClass('export-button-stop-apply-bindings');\n\n var applyBindingsDiv = $(document.createElement(\"div\"));\n\n var exportButton = $(document.createElement(\"ko-grid-export-button-component\"));\n exportButton.attr(\"data-gridname\", $t.p.id);\n\n stopApplyBindingsDiv.append(applyBindingsDiv);\n applyBindingsDiv.append(exportButton);\n\n $(\">div\", $(\"th:last\", $t.grid.frozenRightHeaderDiv)).append(stopApplyBindingsDiv);\n\n ko.applyBindings(null, applyBindingsDiv[0]);\n\n //#endregion\n\n //#region Field Chooser\n if ($t.p.carte_showFieldChooser) {\n var $fieldChooser = $(document.createElement(\"div\"));\n // Hide the field chooser when scrolling in View/Edit or Flexi page, this allows the error dialog to show if all\n // the fields are unchecked\n if ($('#editContainer').length > 0 || $('#flexi').length > 0) {\n $('#editContainer,#flexi').bind('scroll.flexui', function() {\n if ($t.p.carte_qtipAPI)\n $t.p.carte_qtipAPI.hide();\n });\n }\n $fieldChooser\n .attr({ id: 'btnFieldChooser_' + $t.p.id, title: 'Column Selector' })\n .addClass('ui-jqgrid-cgButton')\n .bind('click.fieldchooser', function(e) {\n var $thisDiv = $(this);\n if ($t.p.carte_qtipAPI) {\n if ($('#ui-tooltip-' + $t.p.carte_qtipAPI.id).attr('aria-hidden') == \"true\") {\n /* Stop any hide animations that may be going on due to clicking on the column selector icon while the qTip was open */\n $t.p.carte_qtipAPI.elements.tooltip.stop(1, 1);\n $t.p.carte_qtipAPI.show();\n }\n }\n else {\n $t.p.carte_qtipAPI = $($t).jqGrid('buildFieldChooserQtip', $t, $thisDiv);\n }\n });\n\n var $canvas = null;\n if ($t.p.isChild || ['cgTimesheetsClass', 'cgGISAssociationsClass', 'cgSignConditionGroupsClass', 'cgScenariosClass', 'cgScheduledProcessLogClass'].indexOf($t.p.pageClassName) > -1)\n $canvas = $('
    ');\n else\n $canvas = $('
    ');\n\n $fieldChooser\n .append($canvas);\n\n $(\">div\", $(\"th:last\", $t.grid.frozenRightHeaderDiv))\n .append($fieldChooser);\n\n }\n //#endregion\n\n //#region Sort By Selection\n var $sortBySelection = $(this).parents('.ui-jqgrid-view').find('.sort-by-selection');\n\n $sortBySelection.on('click', function () {\n\n $sortBySelection.addClass('disabled');\n\n var isActive = $sortBySelection.hasClass('active');\n var grid = $($t);\n\n if (isActive)\n $sortBySelection.removeClass('active');\n else\n $sortBySelection.addClass('active');\n\n var strBounds = Cartegraph.Map.Utilities.mapViewWithFilterBoundsAsString();\n\n if(strBounds != '')\n grid.jqGrid('setGridParam', { datatype: 'json', url: Cartegraph.AjaxURL.FlexUI(\"GetListData\", { bounds: strBounds, sortBySelectedItems: !isActive }) }).trigger(\"reloadGrid\", { forcePopulate: true, page: 1 });\n else\n grid.jqGrid('setGridParam', { datatype: 'json', url: Cartegraph.AjaxURL.FlexUI(\"GetListData\", { sortBySelectedItems: !isActive }) }).trigger(\"reloadGrid\", { forcePopulate: true, page: 1 });\n\n });\n //#endregion\n });\n },\n buildFieldChooserQtip: function ($t, targetDiv) {\n var errorDialog = null;\n\n function getColumnID(index, replaceTrailingField, relativeToChooser) {\n var uid;\n if (relativeToChooser === undefined)\n relativeToChooser = true;\n\n if ($t.p.colModel[index].name.indexOf('_ref_') === -1 && $t.p.colModel[index].name.indexOf('_parent_') === -1) {\n uid = $t.p.colModel[index].uid;\n if (uid == null || uid.length === 0)\n return null;\n } else {\n uid = $t.p.colModel[index].name;\n\n if (uid == null || uid.length === 0)\n return null;\n\n if (relativeToChooser)\n uid = uid.replace(/Field_ref_/g, '/').replace(/Field$/g, '');\n else\n uid = uid.replace(/Field_ref_/g, '_ref_').replace(/Field$/g, '');\n }\n\n return uid;\n }\n\n var qtipChooser = $('
    ').qtip({\n content: $(\"
    Column Selector
    \"),\n position: {\n my: 'right center',\n at: 'left top',\n target: targetDiv,\n container: $('body'),\n adjust: {\n y: 9,\n method: \"none shift\"\n },\n viewport: $('body'),\n collision: 'fit'\n },\n events: {\n render: function (event, api) {\n var text = $(api.elements.content);\n text.children(\".ui-tooltip-content\");\n\n var isContainerSummaryGrid = (!Cartegraph.Utilities.isNullOrUndefined($t.p.postData.containerComponentData) && $t.p.postData.containerComponentData.ContainerSummaryGrid)\n\n text.find('.ui-tooltip-icon').unbind().bind('click', function () {\n qtipChooser.hide();\n });\n\n text.find('.ui-tooltip-grid-fieldchooser').unbind().bind('click', function () {\n return false;\n });\n\n $fieldChooser = text.fieldchooser({\n className: ($t.p.carte_className.indexOf(\",\") != -1) ? $t.p.carte_className.split(\",\")[0] : $t.p.carte_className,\n styles: {\n focused: \"nothing\",\n active: \"nothing\"\n },\n fieldsThroughLookup: true,\n multilevel: false,\n standAlone: true,\n keepOpen: true,\n multiselect: true,\n borderless: true,\n ddClass: 'grid-fieldchooser-dd',\n quantityAsSingleField: true,\n onLoadComplete: function (instance) {\n // data has been loaded - initially set setSelection on the grids current fields\n for (i = 0; i < $t.p.colModel.length; i++) {\n var key = getColumnID(i, true);\n if (key) {\n instance.setSelection(key, true);\n }\n }\n },\n fieldListType: isContainerSummaryGrid ? Cartegraph.Utilities.eFieldListType.AssetSummaryGridColumnSelector : Cartegraph.Utilities.eFieldListType.GridColumnSelector\n });\n },\n show: function (event, api) {\n\n api.options.position.target.children('.gridFieldChooser').addClass('enable');\n setTimeout(function () { $(api.elements.tip).css(\"position\", \"absolute\"); }, 1); //Hack for IE. Stops scrollbar teleportation\n\n },\n hide: function (event, api) {\n // the Cartegraph.Utilities.errorDialog doesn't play well with qTip. Clicking OK on the error dialog\n // fires hide on qTip.\n if (errorDialog == null) {\n api.options.position.target.children('.gridFieldChooser').removeClass('enable');\n var multiselectAssocAry = $fieldChooser.fieldchooser('getMultiSelection');\n\n var relativity = $fieldChooser.fieldchooser('IsRelative');\n\n if (Object.keys(multiselectAssocAry).length == 0) {\n Cartegraph.Utilities.removeWaitScreen();\n\n // need to implement my own error dialog instead of using the Utilities error dialog otherwise clicking anywhere\n // would close the dialog - it should only close on OK click and needs to null out itself.\n var buttons = {\n \"OK\": { text: Cartegraph.Resources.OK,\n click: function () {\n $(this).dialog(\"close\");\n errorDialog = null;\n api.options.position.target.children('.gridFieldChooser').addClass('enable');\n },\n defaultButton: true\n }\n };\n errorDialog = Cartegraph.Utilities.initDialog(Cartegraph.Resources.NoColumnsSelected, Cartegraph.Resources.LeastOneColumnBeSelectedDialog, buttons);\n event.preventDefault(); // keep the qTip open\n return;\n }\n\n $(api.elements.tip).css(\"position\", \"fixed\"); //Hack for IE. Stops scrollbar teleportation\n\n // convert colModel array into an associative array so it's easier to compare arrays\n var colModelAssocAry = {};\n for (i = 0; i < $t.p.colModel.length; i++) {\n var key = getColumnID(i, true, relativity);\n\n if (key) {\n colModelAssocAry[key] = null;\n }\n }\n\n // determine which columns have been newly added by comparing the selected columns with the current colModel\n var addedColumnsAry = [];\n for (key in multiselectAssocAry) {\n if (colModelAssocAry[key] === undefined)\n addedColumnsAry.push(multiselectAssocAry[key].data);\n }\n\n // determine which columns have been removed by comparing the current colModel with the selected columns\n var removedColumnsAry = [];\n for (key in colModelAssocAry) {\n if (multiselectAssocAry[key] === undefined) {\n\n for (i = 0; i < $t.p.colModel.length; i++) {\n var uid = getColumnID(i, false, relativity);\n if (uid && uid == key && $t.p.colModel[i].frozen == false) {\n removedColumnsAry.push({ colName: $t.p.colNames[i], colID: $t.p.colModel[i].name });\n continue;\n }\n }\n }\n }\n\n if (addedColumnsAry.length > 0 || removedColumnsAry.length > 0) {\n $.each(removedColumnsAry, function (index, item) {\n for (i = 0; i < $t.p._sortedColumns.length; i++) {\n if ($t.p._sortedColumns[i].name == item.colID) {\n $t.p._sortedColumns.remove(i);\n }\n }\n });\n\n var className = $t.p.carte_className.indexOf(\",\") != -1 ? $t.p.carte_className.split(\",\")[0] : $t.p.carte_className;\n Cartegraph.FlexUI[$t.p.id].applyColumnChooser(addedColumnsAry, removedColumnsAry, $t.p._sortedColumns, $t.p.colModel);\n }\n }\n else {\n event.preventDefault(); // keep the qTip open\n return;\n }\n }\n },\n show: {\n ready: true,\n event: \"click\",\n solo: false\n },\n hide: {\n event: \"mouseleave unfocus\"\n },\n style: {\n classes: 'ui-tooltip-grid-fieldchooser', // css styling\n tip: {\n corner: 'rightMiddle',\n border: 1,\n height: 24,\n width: 12\n },\n width: 267,\n height: 263\n }\n }).qtip('api');\n return qtipChooser;\n },\n\n // ==== Cartegraph change: field chooser ====\n\n destroyFrozenColumns: function () {\n return this.each(function () {\n if (!this.grid) { return; }\n if (this.p.frozenColumns === true) {\n var $t = this;\n\n // left frozen column(s)\n if ($t.p.carte_frozenLeftLastIndex > -1) {\n $($t.grid.frozenHeaderLeftDiv).remove();\n $($t.grid.frozenLeftTable).remove();\n $t.grid.frozenHeaderLeftDiv = null; $t.grid.frozenLeftTable = null;\n }\n\n // right frozen column(s)\n if ($t.p.carte_frozenRightFirstIndex > -1) {\n $($t.grid.frozenHeaderRightDiv).remove();\n $($t.grid.frozenRightBodyDiv).remove();\n $t.grid.frozenHeaderRightDiv = null; $t.grid.frozenRightBodyDiv = null;\n }\n\n $t.p._complete = $t.p.orgEvents.complete;\n $t.p.resizeStop = $t.p.orgEvents.resizeStop;\n $t.p.onSortCol = $t.p.orgEvents.onSortCol;\n $t.p.orgEvents = null;\n if ($t.p.hoverrows == true) {\n var ptr;\n $(\"#\" + $.jgrid.jqID($t.p.id)).bind('mouseover', function (e) {\n ptr = $(e.target).closest(\"tr.jqgrow\");\n if ($(ptr).attr(\"class\") !== \"ui-subgrid\") {\n $(ptr).addClass(\"ui-state-hover\");\n }\n }).bind('mouseout', function (e) {\n ptr = $(e.target).closest(\"tr.jqgrow\");\n $(ptr).removeClass(\"ui-state-hover\");\n });\n }\n this.p.frozenColumns = false;\n }\n });\n }\n\n // ==== Cartegraph change: frozen columns ====\n\n });\n})(jQuery); /*\n * jqModal - Minimalist Modaling with jQuery\n * (http://dev.iceburg.net/jquery/jqmodal/)\n *\n * Copyright (c) 2007,2008 Brice Burgess \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n *\n * $Version: 07/06/2008 +r13\n */\n(function ($) {\n $.fn.jqm = function (o) {\n var p = {\n overlay: 50,\n closeoverlay: true,\n overlayClass: 'jqmOverlay',\n closeClass: 'jqmClose',\n trigger: '.jqModal',\n ajax: F,\n ajaxText: '',\n target: F,\n modal: F,\n toTop: F,\n onShow: F,\n onHide: F,\n onLoad: F\n };\n return this.each(function () {\n if (this._jqm) return H[this._jqm].c = $.extend({}, H[this._jqm].c, o); s++; this._jqm = s;\n H[s] = { c: $.extend(p, $.jqm.params, o), a: F, w: $(this).addClass('jqmID' + s), s: s };\n if (p.trigger) $(this).jqmAddTrigger(p.trigger);\n });\n };\n\n $.fn.jqmAddClose = function (e) { return hs(this, e, 'jqmHide'); };\n $.fn.jqmAddTrigger = function (e) { return hs(this, e, 'jqmShow'); };\n $.fn.jqmShow = function (t) { return this.each(function () { $.jqm.open(this._jqm, t); }); };\n $.fn.jqmHide = function (t) { return this.each(function () { $.jqm.close(this._jqm, t) }); };\n\n $.jqm = {\n hash: {},\n open: function (s, t) {\n var h = H[s], c = h.c, cc = '.' + c.closeClass, z = (parseInt(h.w.css('z-index'))); z = (z > 0) ? z : 3000; var o = $('
    ').css({ height: '100%', width: '100%', position: 'fixed', left: 0, top: 0, 'z-index': z - 1, opacity: c.overlay / 100 }); if (h.a) return F; h.t = t; h.a = true; h.w.css('z-index', z);\n if (c.modal) { if (!A[0]) setTimeout(function () { L('bind'); }, 1); A.push(s); }\n else if (c.overlay > 0) { if (c.closeoverlay) h.w.jqmAddClose(o); }\n else o = F;\n\n h.o = (o) ? o.addClass(c.overlayClass).prependTo('body') : F;\n if (ie6) { $('html,body').css({ height: '100%', width: '100%' }); if (o) { o = o.css({ position: 'absolute' })[0]; for (var y in { Top: 1, Left: 1 }) o.style.setExpression(y.toLowerCase(), \"(_=(document.documentElement.scroll\" + y + \" || document.body.scroll\" + y + \"))+'px'\"); } }\n\n if (c.ajax) {\n var r = c.target || h.w, u = c.ajax; r = (typeof r == 'string') ? $(r, h.w) : $(r); u = (u.substr(0, 1) == '@') ? $(t).attr(u.substring(1)) : u;\n r.html(c.ajaxText).load(u, function () { if (c.onLoad) c.onLoad.call(this, h); if (cc) h.w.jqmAddClose($(cc, h.w)); e(h); });\n }\n else if (cc) h.w.jqmAddClose($(cc, h.w));\n\n if (c.toTop && h.o) h.w.before('').insertAfter(h.o);\n (c.onShow) ? c.onShow(h) : h.w.show(); e(h); return F;\n },\n close: function (s) {\n var h = H[s]; if (!h.a) return F; h.a = F;\n if (A[0]) { A.pop(); if (!A[0]) L('unbind'); }\n if (h.c.toTop && h.o) $('#jqmP' + h.w[0]._jqm).after(h.w).remove();\n if (h.c.onHide) h.c.onHide(h); else { h.w.hide(); if (h.o) h.o.remove(); } return F;\n },\n params: {}\n };\n var s = 0, H = $.jqm.hash, A = [], ie6 = $.browser.msie && ($.browser.version == \"6.0\"), F = false,\ne = function (h) { var i = $('').css({ opacity: 0 }); if (ie6) if (h.o) h.o.html('

    ').prepend(i); else if (!$('iframe.jqm', h.w)[0]) h.w.prepend(i); f(h); },\nf = function (h) { try { $(':input:visible', h.w)[0].focus(); } catch (_) { } },\nL = function (t) { $(document)[t](\"keypress\", m)[t](\"keydown\", m)[t](\"mousedown\", m); },\nm = function (e) { var h = H[A[A.length - 1]], r = (!$(e.target).parents('.jqmID' + h.s)[0]); if (r) f(h); return !r; },\nhs = function (w, t, c) {\n return w.each(function () {\n var s = this._jqm; $(t).each(function () {\n if (!this[c]) { this[c] = []; $(this).click(function () { for (var i in { jqmShow: 1, jqmHide: 1 }) for (var s in this[i]) if (H[this[i][s]]) H[this[i][s]].w[i](this); return F; }); } this[c].push(s);\n });\n });\n};\n})(jQuery); /*\n * jqDnR - Minimalistic Drag'n'Resize for jQuery.\n *\n * Copyright (c) 2007 Brice Burgess , http://www.iceburg.net\n * Licensed under the MIT License:\n * http://www.opensource.org/licenses/mit-license.php\n *\n * $Version: 2007.08.19 +r2\n */\n\n(function ($) {\n $.fn.jqDrag = function (h) { return i(this, h, 'd'); };\n $.fn.jqResize = function (h, ar) { return i(this, h, 'r', ar); };\n $.jqDnR = {\n dnr: {},\n e: 0,\n drag: function (v) {\n if (M.k == 'd') E.css({ left: M.X + v.pageX - M.pX, top: M.Y + v.pageY - M.pY });\n else {\n E.css({ width: Math.max(v.pageX - M.pX + M.W, 0), height: Math.max(v.pageY - M.pY + M.H, 0) });\n if (M1) { E1.css({ width: Math.max(v.pageX - M1.pX + M1.W, 0), height: Math.max(v.pageY - M1.pY + M1.H, 0) }); }\n }\n return false;\n },\n stop: function () {\n //E.css('opacity',M.o);\n $(document).unbind('mousemove', J.drag).unbind('mouseup', J.stop);\n }\n };\n var J = $.jqDnR, M = J.dnr, E = J.e, E1,\ni = function (e, h, k, aR) {\n return e.each(function () {\n h = (h) ? $(h, e) : e;\n h.bind('mousedown', { e: e, k: k }, function (v) {\n var d = v.data, p = {}; E = d.e; E1 = aR ? $(aR) : false;\n // attempt utilization of dimensions plugin to fix IE issues\n if (E.css('position') != 'relative') { try { E.position(p); } catch (e) { } }\n M = {\n X: p.left || f('left') || 0,\n Y: p.top || f('top') || 0,\n W: f('width') || E[0].scrollWidth || 0,\n H: f('height') || E[0].scrollHeight || 0,\n pX: v.pageX,\n pY: v.pageY,\n k: d.k\n //o:E.css('opacity')\n };\n // also resize\n if (E1 && d.k != 'd') {\n M1 = {\n X: p.left || f1('left') || 0,\n Y: p.top || f1('top') || 0,\n W: E1[0].offsetWidth || f1('width') || 0,\n H: E1[0].offsetHeight || f1('height') || 0,\n pX: v.pageX,\n pY: v.pageY,\n k: d.k\n };\n } else { M1 = false; }\n //E.css({opacity:0.8});\n if ($(\"input.hasDatepicker\", E[0])[0]) {\n try { $(\"input.hasDatepicker\", E[0]).datepicker('hide'); } catch (dpe) { }\n }\n $(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);\n return false;\n });\n });\n},\nf = function (k) { return parseInt(E.css(k)) || false; };\n f1 = function (k) { return parseInt(E1.css(k)) || false; };\n})(jQuery); /*\n\tThe below work is licensed under Creative Commons GNU LGPL License.\n\n\tOriginal work:\n\n\tLicense: http://creativecommons.org/licenses/LGPL/2.1/\n\tAuthor: Stefan Goessner/2006\n\tWeb: http://goessner.net/\n\n\tModifications made:\n\n\tVersion: 0.9-p5\n\tDescription: Restructured code, JSLint validated (no strict whitespaces),\n\t added handling of empty arrays, empty strings, and int/floats values.\n\tAuthor: Michael Schøler/2008-01-29\n\tWeb: http://michael.hinnerup.net/blog/2008/01/26/converting-json-to-xml-and-xml-to-json/\n\n\tDescription: json2xml added support to convert functions as CDATA\n\t so it will be easy to write characters that cause some problems when convert\n\tAuthor: Tony Tomov\n*/\n\n/*global alert */\nvar xmlJsonClass = {\n // Param \"xml\": Element or document DOM node.\n // Param \"tab\": Tab or indent string for pretty output formatting omit or use empty string \"\" to supress.\n // Returns: JSON string\n xml2json: function (xml, tab) {\n if (xml.nodeType === 9) {\n // document node\n xml = xml.documentElement;\n }\n var nws = this.removeWhite(xml);\n var obj = this.toObj(nws);\n var json = this.toJson(obj, xml.nodeName, \"\\t\");\n return \"{\\n\" + tab + (tab ? json.replace(/\\t/g, tab) : json.replace(/\\t|\\n/g, \"\")) + \"\\n}\";\n },\n\n // Param \"o\": JavaScript object\n // Param \"tab\": tab or indent string for pretty output formatting omit or use empty string \"\" to supress.\n // Returns: XML string\n json2xml: function (o, tab) {\n var toXml = function (v, name, ind) {\n var xml = \"\";\n var i, n;\n if (v instanceof Array) {\n if (v.length === 0) {\n xml += ind + \"<\" + name + \">__EMPTY_ARRAY_\\n\";\n }\n else {\n for (i = 0, n = v.length; i < n; i += 1) {\n var sXml = ind + toXml(v[i], name, ind + \"\\t\") + \"\\n\";\n xml += sXml;\n }\n }\n }\n else if (typeof (v) === \"object\") {\n var hasChild = false;\n xml += ind + \"<\" + name;\n var m;\n for (m in v) if (v.hasOwnProperty(m)) {\n if (m.charAt(0) === \"@\") {\n xml += \" \" + m.substr(1) + \"=\\\"\" + v[m].toString() + \"\\\"\";\n }\n else {\n hasChild = true;\n }\n }\n xml += hasChild ? \">\" : \"/>\";\n if (hasChild) {\n for (m in v) if (v.hasOwnProperty(m)) {\n if (m === \"#text\") {\n xml += v[m];\n }\n else if (m === \"#cdata\") {\n xml += \"\";\n }\n else if (m.charAt(0) !== \"@\") {\n xml += toXml(v[m], m, ind + \"\\t\");\n }\n }\n xml += (xml.charAt(xml.length - 1) === \"\\n\" ? ind : \"\") + \"\";\n }\n }\n else if (typeof (v) === \"function\") {\n xml += ind + \"<\" + name + \">\" + \"\" + \"\";\n }\n else {\n if (v === undefined) { v = \"\"; }\n if (v.toString() === \"\\\"\\\"\" || v.toString().length === 0) {\n xml += ind + \"<\" + name + \">__EMPTY_STRING_\";\n }\n else {\n xml += ind + \"<\" + name + \">\" + v.toString() + \"\";\n }\n }\n return xml;\n };\n var xml = \"\";\n var m;\n for (m in o) if (o.hasOwnProperty(m)) {\n xml += toXml(o[m], m, \"\");\n }\n return tab ? xml.replace(/\\t/g, tab) : xml.replace(/\\t|\\n/g, \"\");\n },\n // Internal methods\n toObj: function (xml) {\n var o = {};\n var FuncTest = /function/i;\n if (xml.nodeType === 1) {\n // element node ..\n if (xml.attributes.length) {\n // element with attributes ..\n var i;\n for (i = 0; i < xml.attributes.length; i += 1) {\n o[\"@\" + xml.attributes[i].nodeName] = (xml.attributes[i].nodeValue || \"\").toString();\n }\n }\n if (xml.firstChild) {\n // element has child nodes ..\n var textChild = 0, cdataChild = 0, hasElementChild = false;\n var n;\n for (n = xml.firstChild; n; n = n.nextSibling) {\n if (n.nodeType === 1) {\n hasElementChild = true;\n }\n else if (n.nodeType === 3 && n.nodeValue.match(/[^ \\f\\n\\r\\t\\v]/)) {\n // non-whitespace text\n textChild += 1;\n }\n else if (n.nodeType === 4) {\n // cdata section node\n cdataChild += 1;\n }\n }\n if (hasElementChild) {\n if (textChild < 2 && cdataChild < 2) {\n // structured element with evtl. a single text or/and cdata node ..\n this.removeWhite(xml);\n for (n = xml.firstChild; n; n = n.nextSibling) {\n if (n.nodeType === 3) {\n // text node\n o[\"#text\"] = this.escape(n.nodeValue);\n }\n else if (n.nodeType === 4) {\n // cdata node\n if (FuncTest.test(n.nodeValue)) {\n o[n.nodeName] = [o[n.nodeName], n.nodeValue];\n } else {\n o[\"#cdata\"] = this.escape(n.nodeValue);\n }\n }\n else if (o[n.nodeName]) {\n // multiple occurence of element ..\n if (o[n.nodeName] instanceof Array) {\n o[n.nodeName][o[n.nodeName].length] = this.toObj(n);\n }\n else {\n o[n.nodeName] = [o[n.nodeName], this.toObj(n)];\n }\n }\n else {\n // first occurence of element ..\n o[n.nodeName] = this.toObj(n);\n }\n }\n }\n else {\n // mixed content\n if (!xml.attributes.length) {\n o = this.escape(this.innerXml(xml));\n }\n else {\n o[\"#text\"] = this.escape(this.innerXml(xml));\n }\n }\n }\n else if (textChild) {\n // pure text\n if (!xml.attributes.length) {\n o = this.escape(this.innerXml(xml));\n if (o === \"__EMPTY_ARRAY_\") {\n o = \"[]\";\n } else if (o === \"__EMPTY_STRING_\") {\n o = \"\";\n }\n }\n else {\n o[\"#text\"] = this.escape(this.innerXml(xml));\n }\n }\n else if (cdataChild) {\n // cdata\n if (cdataChild > 1) {\n o = this.escape(this.innerXml(xml));\n }\n else {\n for (n = xml.firstChild; n; n = n.nextSibling) {\n if (FuncTest.test(xml.firstChild.nodeValue)) {\n o = xml.firstChild.nodeValue;\n break;\n } else {\n o[\"#cdata\"] = this.escape(n.nodeValue);\n }\n }\n }\n }\n }\n if (!xml.attributes.length && !xml.firstChild) {\n o = null;\n }\n }\n else if (xml.nodeType === 9) {\n // document.node\n o = this.toObj(xml.documentElement);\n }\n else {\n alert(\"unhandled node type: \" + xml.nodeType);\n }\n return o;\n },\n toJson: function (o, name, ind, wellform) {\n if (wellform === undefined) wellform = true;\n var json = name ? (\"\\\"\" + name + \"\\\"\") : \"\", tab = \"\\t\", newline = \"\\n\";\n if (!wellform) {\n tab = \"\"; newline = \"\";\n }\n\n if (o === \"[]\") {\n json += (name ? \":[]\" : \"[]\");\n }\n else if (o instanceof Array) {\n var n, i, ar = [];\n for (i = 0, n = o.length; i < n; i += 1) {\n ar[i] = this.toJson(o[i], \"\", ind + tab, wellform);\n }\n json += (name ? \":[\" : \"[\") + (ar.length > 1 ? (newline + ind + tab + ar.join(\",\" + newline + ind + tab) + newline + ind) : ar.join(\"\")) + \"]\";\n }\n else if (o === null) {\n json += (name && \":\") + \"null\";\n }\n else if (typeof (o) === \"object\") {\n var arr = [], m;\n for (m in o) {\n if (o.hasOwnProperty(m)) {\n arr[arr.length] = this.toJson(o[m], m, ind + tab, wellform);\n }\n }\n json += (name ? \":{\" : \"{\") + (arr.length > 1 ? (newline + ind + tab + arr.join(\",\" + newline + ind + tab) + newline + ind) : arr.join(\"\")) + \"}\";\n }\n else if (typeof (o) === \"string\") {\n /*\n var objRegExp = /(^-?\\d+\\.?\\d*$)/;\n var FuncTest = /function/i;\n var os = o.toString();\n if (objRegExp.test(os) || FuncTest.test(os) || os===\"false\" || os===\"true\") {\n // int or float\n json += (name && \":\") + \"\\\"\" +os + \"\\\"\";\n }\n else {\n */\n json += (name && \":\") + \"\\\"\" + o.replace(/\\\\/g, '\\\\\\\\').replace(/\\\"/g, '\\\\\"') + \"\\\"\";\n //}\n }\n else {\n json += (name && \":\") + \"\\\"\" + o.toString() + \"\\\"\";\n }\n return json;\n },\n innerXml: function (node) {\n var s = \"\";\n if (\"innerHTML\" in node) {\n s = node.innerHTML;\n }\n else {\n var asXml = function (n) {\n var s = \"\", i;\n if (n.nodeType === 1) {\n s += \"<\" + n.nodeName;\n for (i = 0; i < n.attributes.length; i += 1) {\n s += \" \" + n.attributes[i].nodeName + \"=\\\"\" + (n.attributes[i].nodeValue || \"\").toString() + \"\\\"\";\n }\n if (n.firstChild) {\n s += \">\";\n for (var c = n.firstChild; c; c = c.nextSibling) {\n s += asXml(c);\n }\n s += \"\";\n }\n else {\n s += \"/>\";\n }\n }\n else if (n.nodeType === 3) {\n s += n.nodeValue;\n }\n else if (n.nodeType === 4) {\n s += \"\";\n }\n return s;\n };\n for (var c = node.firstChild; c; c = c.nextSibling) {\n s += asXml(c);\n }\n }\n return s;\n },\n escape: function (txt) {\n return txt.replace(/[\\\\]/g, \"\\\\\\\\\").replace(/[\\\"]/g, '\\\\\"').replace(/[\\n]/g, '\\\\n').replace(/[\\r]/g, '\\\\r');\n },\n removeWhite: function (e) {\n e.normalize();\n var n;\n for (n = e.firstChild; n; ) {\n if (n.nodeType === 3) {\n // text node\n if (!n.nodeValue.match(/[^ \\f\\n\\r\\t\\v]/)) {\n // pure whitespace text node\n var nxt = n.nextSibling;\n e.removeChild(n);\n n = nxt;\n }\n else {\n n = n.nextSibling;\n }\n }\n else if (n.nodeType === 1) {\n // element node\n this.removeWhite(n);\n n = n.nextSibling;\n }\n else {\n // any other node\n n = n.nextSibling;\n }\n }\n return e;\n }\n}; /*\n**\n * formatter for values but most of the values if for jqGrid\n * Some of this was inspired and based on how YUI does the table datagrid but in jQuery fashion\n * we are trying to keep it as light as possible\n * Joshua Burnett josh@9ci.com\n * http://www.greenbill.com\n *\n * Changes from Tony Tomov tony@trirand.com\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n *\n**/\n\n; (function ($) {\n $.fmatter = {};\n //opts can be id:row id for the row, rowdata:the data for the row, colmodel:the column model for this column\n //example {id:1234,}\n $.extend($.fmatter, {\n isBoolean: function (o) {\n return typeof o === 'boolean';\n },\n isObject: function (o) {\n return (o && (typeof o === 'object' || $.isFunction(o))) || false;\n },\n isString: function (o) {\n return typeof o === 'string';\n },\n isNumber: function (o) {\n return typeof o === 'number' && isFinite(o);\n },\n isNull: function (o) {\n return o === null;\n },\n isUndefined: function (o) {\n return typeof o === 'undefined';\n },\n isValue: function (o) {\n return (this.isObject(o) || this.isString(o) || this.isNumber(o) || this.isBoolean(o));\n },\n isEmpty: function (o) {\n if (!this.isString(o) && this.isValue(o)) {\n return false;\n } else if (!this.isValue(o)) {\n return true;\n }\n o = $.trim(o).replace(/\\ \\;/ig, '').replace(/\\ \\;/ig, '');\n return o === \"\";\n }\n });\n $.fn.fmatter = function (formatType, cellval, opts, rwd, act) {\n // build main options before element iteration\n var v = cellval;\n opts = $.extend({}, $.jgrid.formatter, opts);\n\n if ($.fn.fmatter[formatType]) {\n v = $.fn.fmatter[formatType](cellval, opts, rwd, act);\n }\n return v;\n };\n $.fmatter.util = {\n // Taken from YAHOO utils\n NumberFormat: function (nData, opts) {\n if (!$.fmatter.isNumber(nData)) {\n nData *= 1;\n }\n if ($.fmatter.isNumber(nData)) {\n var bNegative = (nData < 0);\n var sOutput = nData + \"\";\n var sDecimalSeparator = (opts.decimalSeparator) ? opts.decimalSeparator : \".\";\n var nDotIndex;\n if ($.fmatter.isNumber(opts.decimalPlaces)) {\n // Round to the correct decimal place\n var nDecimalPlaces = opts.decimalPlaces;\n var nDecimal = Math.pow(10, nDecimalPlaces);\n sOutput = Math.round(nData * nDecimal) / nDecimal + \"\";\n nDotIndex = sOutput.lastIndexOf(\".\");\n if (nDecimalPlaces > 0) {\n // Add the decimal separator\n if (nDotIndex < 0) {\n sOutput += sDecimalSeparator;\n nDotIndex = sOutput.length - 1;\n }\n // Replace the \".\"\n else if (sDecimalSeparator !== \".\") {\n sOutput = sOutput.replace(\".\", sDecimalSeparator);\n }\n // Add missing zeros\n while ((sOutput.length - 1 - nDotIndex) < nDecimalPlaces) {\n sOutput += \"0\";\n }\n }\n }\n if (opts.thousandsSeparator) {\n var sThousandsSeparator = opts.thousandsSeparator;\n nDotIndex = sOutput.lastIndexOf(sDecimalSeparator);\n nDotIndex = (nDotIndex > -1) ? nDotIndex : sOutput.length;\n var sNewOutput = sOutput.substring(nDotIndex);\n var nCount = -1;\n for (var i = nDotIndex; i > 0; i--) {\n nCount++;\n if ((nCount % 3 === 0) && (i !== nDotIndex) && (!bNegative || (i > 1))) {\n sNewOutput = sThousandsSeparator + sNewOutput;\n }\n sNewOutput = sOutput.charAt(i - 1) + sNewOutput;\n }\n sOutput = sNewOutput;\n }\n // Prepend prefix\n sOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;\n // Append suffix\n sOutput = (opts.suffix) ? sOutput + opts.suffix : sOutput;\n return sOutput;\n\n } else {\n return nData;\n }\n },\n // Tony Tomov\n // PHP implementation. Sorry not all options are supported.\n // Feel free to add them if you want\n DateFormat: function (format, date, newformat, opts) {\n var token = /\\\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g,\n\t\t\ttimezone = /\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g,\n\t\t\ttimezoneClip = /[^-+\\dA-Z]/g,\n\t\t\tmsDateRegExp = new RegExp(\"^\\/Date\\\\((([-+])?[0-9]+)(([-+])([0-9]{2})([0-9]{2}))?\\\\)\\/$\"),\n\t\t\tmsMatch = ((typeof date === 'string') ? date.match(msDateRegExp) : null),\n\t\t\tpad = function (value, length) {\n\t\t\t value = String(value);\n\t\t\t length = parseInt(length, 10) || 2;\n\t\t\t while (value.length < length) { value = '0' + value; }\n\t\t\t return value;\n\t\t\t},\n\t\t\tts = { m: 1, d: 1, y: 1970, h: 0, i: 0, s: 0, u: 0 },\n\t\t\ttimestamp = 0, dM, k, hl,\n\t\t\tdateFormat = [\"i18n\"];\n // Internationalization strings\n dateFormat.i18n = {\n dayNames: opts.dayNames,\n monthNames: opts.monthNames\n };\n if (format in opts.masks) { format = opts.masks[format]; }\n if (!isNaN(date - 0) && String(format).toLowerCase() == \"u\") {\n //Unix timestamp\n timestamp = new Date(parseFloat(date) * 1000);\n } else if (date.constructor === Date) {\n timestamp = date;\n // Microsoft date format support\n } else if (msMatch !== null) {\n timestamp = new Date(parseInt(msMatch[1], 10));\n if (msMatch[3]) {\n var offset = Number(msMatch[5]) * 60 + Number(msMatch[6]);\n offset *= ((msMatch[4] == '-') ? 1 : -1);\n offset -= timestamp.getTimezoneOffset();\n timestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));\n }\n } else {\n date = String(date).split(/[\\\\\\/:_;.,\\t\\T\\s-]/);\n format = format.split(/[\\\\\\/:_;.,\\t\\T\\s-]/);\n // parsing for month names\n for (k = 0, hl = format.length; k < hl; k++) {\n if (format[k] == 'M') {\n dM = $.inArray(date[k], dateFormat.i18n.monthNames);\n if (dM !== -1 && dM < 12) { date[k] = dM + 1; }\n }\n if (format[k] == 'F') {\n dM = $.inArray(date[k], dateFormat.i18n.monthNames);\n if (dM !== -1 && dM > 11) { date[k] = dM + 1 - 12; }\n }\n if (date[k]) {\n ts[format[k].toLowerCase()] = parseInt(date[k], 10);\n }\n }\n if (ts.f) { ts.m = ts.f; }\n if (ts.m === 0 && ts.y === 0 && ts.d === 0) {\n return \" \";\n }\n ts.m = parseInt(ts.m, 10) - 1;\n var ty = ts.y;\n if (ty >= 70 && ty <= 99) { ts.y = 1900 + ts.y; }\n else if (ty >= 0 && ty <= 69) { ts.y = 2000 + ts.y; }\n timestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);\n }\n\n if (newformat in opts.masks) {\n newformat = opts.masks[newformat];\n } else if (!newformat) {\n newformat = 'Y-m-d';\n }\n var\n\t\t\t\tG = timestamp.getHours(),\n\t\t\t\ti = timestamp.getMinutes(),\n\t\t\t\tj = timestamp.getDate(),\n\t\t\t\tn = timestamp.getMonth() + 1,\n\t\t\t\to = timestamp.getTimezoneOffset(),\n\t\t\t\ts = timestamp.getSeconds(),\n\t\t\t\tu = timestamp.getMilliseconds(),\n\t\t\t\tw = timestamp.getDay(),\n\t\t\t\tY = timestamp.getFullYear(),\n\t\t\t\tN = (w + 6) % 7 + 1,\n\t\t\t\tz = (new Date(Y, n - 1, j) - new Date(Y, 0, 1)) / 86400000,\n\t\t\t\tflags = {\n\t\t\t\t // Day\n\t\t\t\t d: pad(j),\n\t\t\t\t D: dateFormat.i18n.dayNames[w],\n\t\t\t\t j: j,\n\t\t\t\t l: dateFormat.i18n.dayNames[w + 7],\n\t\t\t\t N: N,\n\t\t\t\t S: opts.S(j),\n\t\t\t\t //j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th',\n\t\t\t\t w: w,\n\t\t\t\t z: z,\n\t\t\t\t // Week\n\t\t\t\t W: N < 5 ? Math.floor((z + N - 1) / 7) + 1 : Math.floor((z + N - 1) / 7) || ((new Date(Y - 1, 0, 1).getDay() + 6) % 7 < 4 ? 53 : 52),\n\t\t\t\t // Month\n\t\t\t\t F: dateFormat.i18n.monthNames[n - 1 + 12],\n\t\t\t\t m: pad(n),\n\t\t\t\t M: dateFormat.i18n.monthNames[n - 1],\n\t\t\t\t n: n,\n\t\t\t\t t: '?',\n\t\t\t\t // Year\n\t\t\t\t L: '?',\n\t\t\t\t o: '?',\n\t\t\t\t Y: Y,\n\t\t\t\t y: String(Y).substring(2),\n\t\t\t\t // Time\n\t\t\t\t a: G < 12 ? opts.AmPm[0] : opts.AmPm[1],\n\t\t\t\t A: G < 12 ? opts.AmPm[2] : opts.AmPm[3],\n\t\t\t\t B: '?',\n\t\t\t\t g: G % 12 || 12,\n\t\t\t\t G: G,\n\t\t\t\t h: pad(G % 12 || 12),\n\t\t\t\t H: pad(G),\n\t\t\t\t i: pad(i),\n\t\t\t\t s: pad(s),\n\t\t\t\t u: u,\n\t\t\t\t // Timezone\n\t\t\t\t e: '?',\n\t\t\t\t I: '?',\n\t\t\t\t O: (o > 0 ? \"-\" : \"+\") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),\n\t\t\t\t P: '?',\n\t\t\t\t T: (String(timestamp).match(timezone) || [\"\"]).pop().replace(timezoneClip, \"\"),\n\t\t\t\t Z: '?',\n\t\t\t\t // Full Date/Time\n\t\t\t\t c: '?',\n\t\t\t\t r: '?',\n\t\t\t\t U: Math.floor(timestamp / 1000)\n\t\t\t\t};\n return newformat.replace(token, function ($0) {\n return $0 in flags ? flags[$0] : $0.substring(1);\n });\n }\n };\n $.fn.fmatter.defaultFormat = function (cellval, opts) {\n return ($.fmatter.isValue(cellval) && cellval !== \"\") ? cellval : opts.defaultValue ? opts.defaultValue : \" \";\n };\n $.fn.fmatter.email = function (cellval, opts) {\n if (!$.fmatter.isEmpty(cellval)) {\n return \"\" + cellval + \"\";\n } else {\n return $.fn.fmatter.defaultFormat(cellval, opts);\n }\n };\n $.fn.fmatter.checkbox = function (cval, opts) {\n var op = $.extend({}, opts.checkbox), ds;\n if (!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\n op = $.extend({}, op, opts.colModel.formatoptions);\n }\n if (op.disabled === true) { ds = \"disabled=\\\"disabled\\\"\"; } else { ds = \"\"; }\n if ($.fmatter.isEmpty(cval) || $.fmatter.isUndefined(cval)) { cval = $.fn.fmatter.defaultFormat(cval, op); }\n cval = cval + \"\"; cval = cval.toLowerCase();\n var bchk = cval.search(/(false|0|no|off)/i) < 0 ? \" checked='checked' \" : \"\";\n /*\n * Cartegraph change - added trailing div - this gives us the fancy styled checkbox\n * original code:\n * return \"\";\n * also needed to override the margin-left and margin-top(it was a bit too low)\n */\n if (opts.colModel.width === 75) { // has sort by selection icon\n return \"

    \";\n } else {\n return \"
    \";\n }\n\n };\n $.fn.fmatter.link = function (cellval, opts) {\n var op = { target: opts.target };\n var target = \"\";\n if (!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\n op = $.extend({}, op, opts.colModel.formatoptions);\n }\n if (op.target) { target = 'target=' + op.target; }\n if (!$.fmatter.isEmpty(cellval)) {\n return \"\" + cellval + \"\";\n } else {\n return $.fn.fmatter.defaultFormat(cellval, opts);\n }\n };\n $.fn.fmatter.showlink = function (cellval, opts) {\n var op = { baseLinkUrl: opts.baseLinkUrl, showAction: opts.showAction, addParam: opts.addParam || \"\", target: opts.target, idName: opts.idName },\n\t\ttarget = \"\", idUrl;\n if (!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\n op = $.extend({}, op, opts.colModel.formatoptions);\n }\n if (op.target) { target = 'target=' + op.target; }\n idUrl = op.baseLinkUrl + op.showAction + '?' + op.idName + '=' + opts.rowId + op.addParam;\n if ($.fmatter.isString(cellval) || $.fmatter.isNumber(cellval)) {\t//add this one even if its blank string\n return \"\" + cellval + \"\";\n } else {\n return $.fn.fmatter.defaultFormat(cellval, opts);\n }\n };\n $.fn.fmatter.integer = function (cellval, opts) {\n var op = $.extend({}, opts.integer);\n if (!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\n op = $.extend({}, op, opts.colModel.formatoptions);\n }\n if ($.fmatter.isEmpty(cellval)) {\n return op.defaultValue;\n }\n return $.fmatter.util.NumberFormat(cellval, op);\n };\n $.fn.fmatter.number = function (cellval, opts) {\n var op = $.extend({}, opts.number);\n if (!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\n op = $.extend({}, op, opts.colModel.formatoptions);\n }\n if ($.fmatter.isEmpty(cellval)) {\n return op.defaultValue;\n }\n return $.fmatter.util.NumberFormat(cellval, op);\n };\n $.fn.fmatter.currency = function (cellval, opts) {\n var op = $.extend({}, opts.currency);\n if (!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\n op = $.extend({}, op, opts.colModel.formatoptions);\n }\n if ($.fmatter.isEmpty(cellval)) {\n return op.defaultValue;\n }\n return $.fmatter.util.NumberFormat(cellval, op);\n };\n $.fn.fmatter.date = function (cellval, opts, rwd, act) {\n var op = $.extend({}, opts.date);\n if (!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\n op = $.extend({}, op, opts.colModel.formatoptions);\n }\n if (!op.reformatAfterEdit && act == 'edit') {\n return $.fn.fmatter.defaultFormat(cellval, opts);\n } else if (!$.fmatter.isEmpty(cellval)) {\n return $.fmatter.util.DateFormat(op.srcformat, cellval, op.newformat, op);\n } else {\n return $.fn.fmatter.defaultFormat(cellval, opts);\n }\n };\n $.fn.fmatter.select = function (cellval, opts, rwd, act) {\n // jqGrid specific\n cellval = cellval + \"\";\n var oSelect = false, ret = [], sep;\n if (!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\n oSelect = opts.colModel.formatoptions.value;\n sep = opts.colModel.formatoptions.separator === undefined ? \":\" : opts.colModel.formatoptions.separator;\n } else if (!$.fmatter.isUndefined(opts.colModel.editoptions)) {\n oSelect = opts.colModel.editoptions.value;\n sep = opts.colModel.editoptions.separator === undefined ? \":\" : opts.colModel.editoptions.separator;\n }\n if (oSelect) {\n var msl = opts.colModel.editoptions.multiple === true ? true : false,\n\t\t\tscell = [], sv;\n if (msl) { scell = cellval.split(\",\"); scell = $.map(scell, function (n) { return $.trim(n); }); }\n if ($.fmatter.isString(oSelect)) {\n // mybe here we can use some caching with care ????\n var so = oSelect.split(\";\"), j = 0;\n for (var i = 0; i < so.length; i++) {\n sv = so[i].split(sep);\n if (sv.length > 2) {\n sv[1] = jQuery.map(sv, function (n, i) { if (i > 0) { return n; } }).join(\":\");\n }\n if (msl) {\n if (jQuery.inArray(sv[0], scell) > -1) {\n ret[j] = sv[1];\n j++;\n }\n } else if ($.trim(sv[0]) == $.trim(cellval)) {\n ret[0] = sv[1];\n break;\n }\n }\n } else if ($.fmatter.isObject(oSelect)) {\n // this is quicker\n if (msl) {\n ret = jQuery.map(scell, function (n, i) {\n return oSelect[n];\n });\n } else {\n ret[0] = oSelect[cellval] || \"\";\n }\n }\n }\n cellval = ret.join(\", \");\n return cellval === \"\" ? $.fn.fmatter.defaultFormat(cellval, opts) : cellval;\n };\n $.fn.fmatter.rowactions = function (rid, gid, act, pos) {\n var op = {\n keys: false,\n onEdit: null,\n onSuccess: null,\n afterSave: null,\n onError: null,\n afterRestore: null,\n extraparam: {},\n url: null,\n delOptions: {},\n editOptions: {}\n };\n rid = $.jgrid.jqID(rid);\n gid = $.jgrid.jqID(gid);\n var cm = $('#' + gid)[0].p.colModel[pos];\n if (!$.fmatter.isUndefined(cm.formatoptions)) {\n op = $.extend(op, cm.formatoptions);\n }\n if (!$.fmatter.isUndefined($('#' + gid)[0].p.editOptions)) {\n op.editOptions = $('#' + gid)[0].p.editOptions;\n }\n if (!$.fmatter.isUndefined($('#' + gid)[0].p.delOptions)) {\n op.delOptions = $('#' + gid)[0].p.delOptions;\n }\n var saverow = function (rowid) {\n if (op.afterSave) op.afterSave(rowid);\n $(\"tr#\" + rid + \" div.ui-inline-edit, \" + \"tr#\" + rid + \" div.ui-inline-del\", \"#\" + gid + \".ui-jqgrid-btable:first\").show();\n $(\"tr#\" + rid + \" div.ui-inline-save, \" + \"tr#\" + rid + \" div.ui-inline-cancel\", \"#\" + gid + \".ui-jqgrid-btable:first\").hide();\n },\n\t\trestorerow = function (rowid) {\n\t\t if (op.afterRestore) op.afterRestore(rowid);\n\t\t $(\"tr#\" + rid + \" div.ui-inline-edit, \" + \"tr#\" + rid + \" div.ui-inline-del\", \"#\" + gid + \".ui-jqgrid-btable:first\").show();\n\t\t $(\"tr#\" + rid + \" div.ui-inline-save, \" + \"tr#\" + rid + \" div.ui-inline-cancel\", \"#\" + gid + \".ui-jqgrid-btable:first\").hide();\n\t\t};\n var $t = $(\"#\" + gid)[0];\n if ($(\"#\" + rid, \"#\" + gid).hasClass(\"jqgrid-new-row\")) {\n var opers = $t.p.prmNames,\n\t\t\toper = opers.oper;\n op.extraparam[oper] = opers.addoper;\n }\n switch (act) {\n case 'edit':\n $('#' + gid).jqGrid('editRow', rid, op.keys, op.onEdit, op.onSuccess, op.url, op.extraparam, saverow, op.onError, restorerow);\n $(\"tr#\" + rid + \" div.ui-inline-edit, \" + \"tr#\" + rid + \" div.ui-inline-del\", \"#\" + gid + \".ui-jqgrid-btable:first\").hide();\n $(\"tr#\" + rid + \" div.ui-inline-save, \" + \"tr#\" + rid + \" div.ui-inline-cancel\", \"#\" + gid + \".ui-jqgrid-btable:first\").show();\n if ($.isFunction($t.p._complete)) { $t.p._complete.call($t); }\n break;\n case 'save':\n if ($('#' + gid).jqGrid('saveRow', rid, op.onSuccess, op.url, op.extraparam, saverow, op.onError, restorerow)) {\n $(\"tr#\" + rid + \" div.ui-inline-edit, \" + \"tr#\" + rid + \" div.ui-inline-del\", \"#\" + gid + \".ui-jqgrid-btable:first\").show();\n $(\"tr#\" + rid + \" div.ui-inline-save, \" + \"tr#\" + rid + \" div.ui-inline-cancel\", \"#\" + gid + \".ui-jqgrid-btable:first\").hide();\n if ($.isFunction($t.p._complete)) { $t.p._complete.call($t); }\n }\n break;\n case 'cancel':\n $('#' + gid).jqGrid('restoreRow', rid, restorerow);\n $(\"tr#\" + rid + \" div.ui-inline-edit, \" + \"tr#\" + rid + \" div.ui-inline-del\", \"#\" + gid + \".ui-jqgrid-btable:first\").show();\n $(\"tr#\" + rid + \" div.ui-inline-save, \" + \"tr#\" + rid + \" div.ui-inline-cancel\", \"#\" + gid + \".ui-jqgrid-btable:first\").hide();\n if ($.isFunction($t.p._complete)) { $t.p._complete.call($t); }\n break;\n case 'del':\n $('#' + gid).jqGrid('delGridRow', rid, op.delOptions);\n break;\n case 'formedit':\n $('#' + gid).jqGrid('setSelection', rid);\n $('#' + gid).jqGrid('editGridRow', rid, op.editOptions);\n break;\n }\n };\n $.fn.fmatter.actions = function (cellval, opts, rwd) {\n var op = { keys: false, editbutton: true, delbutton: true, editformbutton: false };\n if (!$.fmatter.isUndefined(opts.colModel.formatoptions)) {\n op = $.extend(op, opts.colModel.formatoptions);\n }\n var rowid = opts.rowId, str = \"\", ocl;\n if (typeof (rowid) == 'undefined' || $.fmatter.isEmpty(rowid)) { return \"\"; }\n if (op.editformbutton) {\n ocl = \"onclick=jQuery.fn.fmatter.rowactions('\" + rowid + \"','\" + opts.gid + \"','formedit',\" + opts.pos + \"); onmouseover=jQuery(this).addClass('ui-state-hover'); onmouseout=jQuery(this).removeClass('ui-state-hover'); \"\n str = str + \"
    \";\n } else if (op.editbutton) {\n ocl = \"onclick=jQuery.fn.fmatter.rowactions('\" + rowid + \"','\" + opts.gid + \"','edit',\" + opts.pos + \"); onmouseover=jQuery(this).addClass('ui-state-hover'); onmouseout=jQuery(this).removeClass('ui-state-hover') \";\n str = str + \"
    \";\n }\n if (op.delbutton) {\n ocl = \"onclick=jQuery.fn.fmatter.rowactions('\" + rowid + \"','\" + opts.gid + \"','del',\" + opts.pos + \"); onmouseover=jQuery(this).addClass('ui-state-hover'); onmouseout=jQuery(this).removeClass('ui-state-hover'); \";\n str = str + \"
    \";\n }\n ocl = \"onclick=jQuery.fn.fmatter.rowactions('\" + rowid + \"','\" + opts.gid + \"','save',\" + opts.pos + \"); onmouseover=jQuery(this).addClass('ui-state-hover'); onmouseout=jQuery(this).removeClass('ui-state-hover'); \";\n str = str + \"\";\n ocl = \"onclick=jQuery.fn.fmatter.rowactions('\" + rowid + \"','\" + opts.gid + \"','cancel',\" + opts.pos + \"); onmouseover=jQuery(this).addClass('ui-state-hover'); onmouseout=jQuery(this).removeClass('ui-state-hover'); \";\n str = str + \"\";\n return \"
    \" + str + \"
    \";\n };\n $.unformat = function (cellval, options, pos, cnt) {\n // specific for jqGrid only\n var ret, formatType = options.colModel.formatter,\n\t\top = options.colModel.formatoptions || {}, sep,\n\t\tre = /([\\.\\*\\_\\'\\(\\)\\{\\}\\+\\?\\\\])/g,\n\t\tunformatFunc = options.colModel.unformat || ($.fn.fmatter[formatType] && $.fn.fmatter[formatType].unformat);\n if (typeof unformatFunc !== 'undefined' && $.isFunction(unformatFunc)) {\n ret = unformatFunc($(cellval).text(), options, cellval);\n } else if (!$.fmatter.isUndefined(formatType) && $.fmatter.isString(formatType)) {\n var opts = $.jgrid.formatter || {}, stripTag;\n switch (formatType) {\n case 'integer':\n op = $.extend({}, opts.integer, op);\n sep = op.thousandsSeparator.replace(re, \"\\\\$1\");\n stripTag = new RegExp(sep, \"g\");\n ret = $(cellval).text().replace(stripTag, '');\n break;\n case 'number':\n op = $.extend({}, opts.number, op);\n sep = op.thousandsSeparator.replace(re, \"\\\\$1\");\n stripTag = new RegExp(sep, \"g\");\n ret = $(cellval).text().replace(stripTag, \"\").replace(op.decimalSeparator, '.');\n break;\n case 'currency':\n op = $.extend({}, opts.currency, op);\n sep = op.thousandsSeparator.replace(re, \"\\\\$1\");\n stripTag = new RegExp(sep, \"g\");\n ret = $(cellval).text().replace(stripTag, '').replace(op.decimalSeparator, '.').replace(op.prefix, '').replace(op.suffix, '');\n break;\n case 'checkbox':\n var cbv = (options.colModel.editoptions) ? options.colModel.editoptions.value.split(\":\") : [\"Yes\", \"No\"];\n ret = $('input', cellval).is(\":checked\") ? cbv[0] : cbv[1];\n break;\n case 'select':\n ret = $.unformat.select(cellval, options, pos, cnt);\n break;\n case 'actions':\n return \"\";\n default:\n ret = $(cellval).text();\n }\n }\n return ret !== undefined ? ret : cnt === true ? $(cellval).text() : $.jgrid.htmlDecode($(cellval).html());\n };\n $.unformat.select = function (cellval, options, pos, cnt) {\n // Spacial case when we have local data and perform a sort\n // cnt is set to true only in sortDataArray\n var ret = [];\n var cell = $(cellval).text();\n if (cnt === true) { return cell; }\n var op = $.extend({}, options.colModel.editoptions);\n if (op.value) {\n var oSelect = op.value,\n\t\t\tmsl = op.multiple === true ? true : false,\n\t\t\tscell = [], sv;\n if (msl) { scell = cell.split(\",\"); scell = $.map(scell, function (n) { return $.trim(n); }); }\n if ($.fmatter.isString(oSelect)) {\n var so = oSelect.split(\";\"), j = 0;\n for (var i = 0; i < so.length; i++) {\n sv = so[i].split(\":\");\n if (sv.length > 2) {\n sv[1] = jQuery.map(sv, function (n, i) { if (i > 0) { return n; } }).join(\":\");\n }\n if (msl) {\n if (jQuery.inArray(sv[1], scell) > -1) {\n ret[j] = sv[0];\n j++;\n }\n } else if ($.trim(sv[1]) == $.trim(cell)) {\n ret[0] = sv[0];\n break;\n }\n }\n } else if ($.fmatter.isObject(oSelect) || $.isArray(oSelect)) {\n if (!msl) { scell[0] = cell; }\n ret = jQuery.map(scell, function (n) {\n var rv;\n $.each(oSelect, function (i, val) {\n if (val == n) {\n rv = i;\n return false;\n }\n });\n if (typeof (rv) != 'undefined') { return rv; }\n });\n }\n return ret.join(\", \");\n } else {\n return cell || \"\";\n }\n };\n $.unformat.date = function (cellval, opts) {\n var op = $.jgrid.formatter.date || {};\n if (!$.fmatter.isUndefined(opts.formatoptions)) {\n op = $.extend({}, op, opts.formatoptions);\n }\n if (!$.fmatter.isEmpty(cellval)) {\n return $.fmatter.util.DateFormat(op.newformat, cellval, op.srcformat, op);\n } else {\n return $.fn.fmatter.defaultFormat(cellval, opts);\n }\n };\n})(jQuery);\n; (function ($) {\n /*\n * jqGrid common function\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n */\n /*global jQuery, $ */\n\n $.extend($.jgrid, {\n // Modal functions\n showModal: function (h) {\n h.w.show();\n },\n closeModal: function (h) {\n h.w.hide().attr(\"aria-hidden\", \"true\");\n if (h.o) { h.o.remove(); }\n },\n hideModal: function (selector, o) {\n o = $.extend({ jqm: true, gb: '' }, o || {});\n if (o.onClose) {\n var oncret = o.onClose(selector);\n if (typeof oncret == 'boolean' && !oncret) { return; }\n }\n if ($.fn.jqm && o.jqm === true) {\n $(selector).attr(\"aria-hidden\", \"true\").jqmHide();\n } else {\n if (o.gb !== '') {\n try { $(\".jqgrid-overlay:first\", o.gb).hide(); } catch (e) { }\n }\n $(selector).hide().attr(\"aria-hidden\", \"true\");\n }\n },\n //Helper functions\n findPos: function (obj) {\n var curleft = 0, curtop = 0;\n if (obj.offsetParent) {\n do {\n curleft += obj.offsetLeft;\n curtop += obj.offsetTop;\n } while (obj = obj.offsetParent);\n //do not change obj == obj.offsetParent\n }\n return [curleft, curtop];\n },\n createModal: function (aIDs, content, p, insertSelector, posSelector, appendsel, css) {\n var mw = document.createElement('div'), rtlsup, self = this;\n css = $.extend({}, css || {});\n rtlsup = $(p.gbox).attr(\"dir\") == \"rtl\" ? true : false;\n mw.className = \"ui-widget ui-widget-content ui-corner-all ui-jqdialog\";\n mw.id = aIDs.themodal;\n var mh = document.createElement('div');\n mh.className = \"ui-jqdialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix\";\n mh.id = aIDs.modalhead;\n $(mh).append(\"\" + p.caption + \"\");\n var ahr = $(\"\")\n\t\t.hover(function () { ahr.addClass('ui-state-hover'); },\n\t\t\t function () { ahr.removeClass('ui-state-hover'); })\n\t\t.append(\"\");\n $(mh).append(ahr);\n if (rtlsup) {\n mw.dir = \"rtl\";\n $(\".ui-jqdialog-title\", mh).css(\"float\", \"right\");\n $(\".ui-jqdialog-titlebar-close\", mh).css(\"left\", 0.3 + \"em\");\n } else {\n mw.dir = \"ltr\";\n $(\".ui-jqdialog-title\", mh).css(\"float\", \"left\");\n $(\".ui-jqdialog-titlebar-close\", mh).css(\"right\", 0.3 + \"em\");\n }\n var mc = document.createElement('div');\n $(mc).addClass(\"ui-jqdialog-content ui-widget-content\").attr(\"id\", aIDs.modalcontent);\n $(mc).append(content);\n mw.appendChild(mc);\n $(mw).prepend(mh);\n if (appendsel === true) { $('body').append(mw); } //append as first child in body -for alert dialog\n else if (typeof appendsel == \"string\")\n $(appendsel).append(mw);\n else { $(mw).insertBefore(insertSelector); }\n $(mw).css(css);\n if (typeof p.jqModal === 'undefined') { p.jqModal = true; } // internal use\n var coord = {};\n if ($.fn.jqm && p.jqModal === true) {\n if (p.left === 0 && p.top === 0 && p.overlay) {\n var pos = [];\n pos = this.findPos(posSelector);\n p.left = pos[0] + 4;\n p.top = pos[1] + 4;\n }\n coord.top = p.top + \"px\";\n coord.left = p.left;\n } else if (p.left !== 0 || p.top !== 0) {\n coord.left = p.left;\n coord.top = p.top + \"px\";\n }\n $(\"a.ui-jqdialog-titlebar-close\", mh).click(function (e) {\n var oncm = $(\"#\" + aIDs.themodal).data(\"onClose\") || p.onClose;\n var gboxclose = $(\"#\" + aIDs.themodal).data(\"gbox\") || p.gbox;\n self.hideModal(\"#\" + aIDs.themodal, { gb: gboxclose, jqm: p.jqModal, onClose: oncm });\n return false;\n });\n if (p.width === 0 || !p.width) { p.width = 300; }\n if (p.height === 0 || !p.height) { p.height = 200; }\n if (!p.zIndex) {\n var parentZ = $(insertSelector).parents(\"*[role=dialog]\").filter(':first').css(\"z-index\");\n if (parentZ) {\n p.zIndex = parseInt(parentZ, 10) + 2;\n } else {\n p.zIndex = 950;\n }\n }\n var rtlt = 0;\n if (rtlsup && coord.left && !appendsel) {\n rtlt = $(p.gbox).width() - (!isNaN(p.width) ? parseInt(p.width, 10) : 0) - 8; // to do\n // just in case\n coord.left = parseInt(coord.left, 10) + parseInt(rtlt, 10);\n }\n if (coord.left) { coord.left += \"px\"; }\n $(mw).css($.extend({\n width: isNaN(p.width) ? \"auto\" : p.width + \"px\",\n height: isNaN(p.height) ? \"auto\" : p.height + \"px\",\n zIndex: p.zIndex,\n overflow: 'hidden'\n }, coord))\n\t\t.attr({ tabIndex: \"-1\", \"role\": \"dialog\", \"aria-labelledby\": aIDs.modalhead, \"aria-hidden\": \"true\" });\n if (typeof p.drag == 'undefined') { p.drag = true; }\n if (typeof p.resize == 'undefined') { p.resize = true; }\n if (p.drag) {\n $(mh).css('cursor', 'move');\n if ($.fn.jqDrag) {\n $(mw).jqDrag(mh);\n } else {\n try {\n $(mw).draggable({ handle: $(\"#\" + mh.id) });\n } catch (e) { }\n }\n }\n if (p.resize) {\n if ($.fn.jqResize) {\n $(mw).append(\"
    \");\n $(\"#\" + aIDs.themodal).jqResize(\".jqResize\", aIDs.scrollelm ? \"#\" + aIDs.scrollelm : false);\n } else {\n try {\n $(mw).resizable({ handles: 'se, sw', alsoResize: aIDs.scrollelm ? \"#\" + aIDs.scrollelm : false });\n } catch (r) { }\n }\n }\n if (p.closeOnEscape === true) {\n $(mw).keydown(function (e) {\n if (e.which == 27) {\n var cone = $(\"#\" + aIDs.themodal).data(\"onClose\") || p.onClose;\n self.hideModal(this, { gb: p.gbox, jqm: p.jqModal, onClose: cone });\n }\n });\n }\n },\n viewModal: function (selector, o) {\n o = $.extend({\n toTop: true,\n overlay: 10,\n modal: false,\n overlayClass: 'ui-widget-overlay',\n onShow: this.showModal,\n onHide: this.closeModal,\n gbox: '',\n jqm: true,\n jqM: true\n }, o || {});\n if ($.fn.jqm && o.jqm === true) {\n if (o.jqM) { $(selector).attr(\"aria-hidden\", \"false\").jqm(o).jqmShow(); }\n else { $(selector).attr(\"aria-hidden\", \"false\").jqmShow(); }\n } else {\n if (o.gbox !== '') {\n $(\".jqgrid-overlay:first\", o.gbox).show();\n $(selector).data(\"gbox\", o.gbox);\n }\n $(selector).show().attr(\"aria-hidden\", \"false\");\n try { $(':input:visible', selector)[0].focus(); } catch (_) { }\n }\n },\n\n info_dialog: function (caption, content, c_b, modalopt) {\n var mopt = {\n width: 290,\n height: 'auto',\n dataheight: 'auto',\n drag: true,\n resize: false,\n caption: \"\" + caption + \"\",\n left: 250,\n top: 170,\n zIndex: 1000,\n jqModal: true,\n modal: false,\n closeOnEscape: true,\n align: 'center',\n buttonalign: 'center',\n buttons: []\n // {text:'textbutt', id:\"buttid\", onClick : function(){...}}\n // if the id is not provided we set it like info_button_+ the index in the array - i.e info_button_0,info_button_1...\n };\n $.extend(mopt, modalopt || {});\n var jm = mopt.jqModal, self = this;\n if ($.fn.jqm && !jm) { jm = false; }\n // in case there is no jqModal\n var buttstr = \"\";\n if (mopt.buttons.length > 0) {\n for (var i = 0; i < mopt.buttons.length; i++) {\n if (typeof mopt.buttons[i].id == \"undefined\") { mopt.buttons[i].id = \"info_button_\" + i; }\n buttstr += \"\" + mopt.buttons[i].text + \"\";\n }\n }\n var dh = isNaN(mopt.dataheight) ? mopt.dataheight : mopt.dataheight + \"px\",\n\t\tcn = \"text-align:\" + mopt.align + \";\";\n var cnt = \"
    \";\n cnt += \"
    \" + content + \"
    \";\n cnt += c_b ? \"
    \" + c_b + \"\" + buttstr + \"
    \" :\n\t\t\tbuttstr !== \"\" ? \"
    \" + buttstr + \"
    \" : \"\";\n cnt += \"
    \";\n\n try {\n if ($(\"#info_dialog\").attr(\"aria-hidden\") == \"false\") {\n this.hideModal(\"#info_dialog\", { jqm: jm });\n }\n $(\"#info_dialog\").remove();\n } catch (e) { }\n this.createModal({\n themodal: 'info_dialog',\n modalhead: 'info_head',\n modalcontent: 'info_content',\n scrollelm: 'infocnt'\n },\n\t\t\tcnt,\n\t\t\tmopt,\n\t\t\t'', '', true\n\t\t);\n // attach onclick after inserting into the dom\n if (buttstr) {\n $.each(mopt.buttons, function (i) {\n $(\"#\" + this.id, \"#info_id\").bind('click', function () { mopt.buttons[i].onClick.call($(\"#info_dialog\")); return false; });\n });\n }\n $(\"#closedialog\", \"#info_id\").click(function (e) {\n self.hideModal(\"#info_dialog\", { jqm: jm });\n return false;\n });\n $(\".fm-button\", \"#info_dialog\").hover(\n\t\t\tfunction () { $(this).addClass('ui-state-hover'); },\n\t\t\tfunction () { $(this).removeClass('ui-state-hover'); }\n\t\t);\n if ($.isFunction(mopt.beforeOpen)) { mopt.beforeOpen(); }\n this.viewModal(\"#info_dialog\", {\n onHide: function (h) {\n h.w.hide().remove();\n if (h.o) { h.o.remove(); }\n },\n modal: mopt.modal,\n jqm: jm\n });\n if ($.isFunction(mopt.afterOpen)) { mopt.afterOpen(); }\n try { $(\"#info_dialog\").focus(); } catch (m) { }\n },\n // Form Functions\n createEl: function (eltype, options, vl, autowidth, ajaxso) {\n var elem = \"\";\n function bindEv(el, opt) {\n if ($.isFunction(opt.dataInit)) {\n opt.dataInit(el);\n }\n if (opt.dataEvents) {\n $.each(opt.dataEvents, function () {\n if (this.data !== undefined) {\n $(el).bind(this.type, this.data, this.fn);\n } else {\n $(el).bind(this.type, this.fn);\n }\n });\n }\n return opt;\n }\n function setAttributes(elm, atr, exl) {\n var exclude = ['dataInit', 'dataEvents', 'dataUrl', 'buildSelect', 'sopt', 'searchhidden', 'defaultValue', 'attr'];\n if (typeof (exl) != \"undefined\" && $.isArray(exl)) {\n exclude = $.extend(exclude, exl);\n }\n $.each(atr, function (key, value) {\n if ($.inArray(key, exclude) === -1) {\n $(elm).attr(key, value);\n }\n });\n if (!atr.hasOwnProperty('id')) {\n $(elm).attr('id', $.jgrid.randId());\n }\n }\n switch (eltype) {\n case \"textarea\":\n elem = document.createElement(\"textarea\");\n if (autowidth) {\n if (!options.cols) { $(elem).css({ width: \"98%\" }); }\n } else if (!options.cols) { options.cols = 20; }\n if (!options.rows) { options.rows = 2; }\n if (vl == ' ' || vl == ' ' || (vl.length == 1 && vl.charCodeAt(0) == 160)) { vl = \"\"; }\n elem.value = vl;\n setAttributes(elem, options);\n options = bindEv(elem, options);\n $(elem).attr({ \"role\": \"textbox\", \"multiline\": \"true\" });\n break;\n case \"checkbox\": //what code for simple checkbox\n elem = document.createElement(\"input\");\n elem.type = \"checkbox\";\n if (!options.value) {\n var vl1 = vl.toLowerCase();\n if (vl1.search(/(false|0|no|off|undefined)/i) < 0 && vl1 !== \"\") {\n elem.checked = true;\n elem.defaultChecked = true;\n elem.value = vl;\n } else {\n elem.value = \"on\";\n }\n $(elem).attr(\"offval\", \"off\");\n } else {\n var cbval = options.value.split(\":\");\n if (vl === cbval[0]) {\n elem.checked = true;\n elem.defaultChecked = true;\n }\n elem.value = cbval[0];\n $(elem).attr(\"offval\", cbval[1]);\n }\n setAttributes(elem, options, ['value']);\n options = bindEv(elem, options);\n $(elem).attr(\"role\", \"checkbox\");\n break;\n case \"select\":\n elem = document.createElement(\"select\");\n elem.setAttribute(\"role\", \"select\");\n var msl, ovm = [];\n if (options.multiple === true) {\n msl = true;\n elem.multiple = \"multiple\";\n $(elem).attr(\"aria-multiselectable\", \"true\");\n } else { msl = false; }\n if (typeof (options.dataUrl) != \"undefined\") {\n $.ajax($.extend({\n url: options.dataUrl,\n type: \"GET\",\n dataType: \"html\",\n context: { elem: elem, options: options, vl: vl },\n success: function (data, status) {\n var a, ovm = [], elem = this.elem, vl = this.vl,\n\t\t\t\t\t\t\toptions = $.extend({}, this.options),\n\t\t\t\t\t\t\tmsl = options.multiple === true;\n if (typeof (options.buildSelect) != \"undefined\") {\n var b = options.buildSelect(data);\n a = $(b).html();\n } else {\n a = $(data).html();\n }\n if (a) {\n $(elem).append(a);\n setAttributes(elem, options);\n options = bindEv(elem, options);\n if (typeof options.size === 'undefined') { options.size = msl ? 3 : 1; }\n if (msl) {\n ovm = vl.split(\",\");\n ovm = $.map(ovm, function (n) { return $.trim(n); });\n } else {\n ovm[0] = $.trim(vl);\n }\n //$(elem).attr(options);\n setTimeout(function () {\n $(\"option\", elem).each(function (i) {\n //if(i===0) { this.selected = \"\"; }\n $(this).attr(\"role\", \"option\");\n if ($.inArray($.trim($(this).text()), ovm) > -1 || $.inArray($.trim($(this).val()), ovm) > -1) {\n this.selected = \"selected\";\n }\n });\n }, 0);\n }\n }\n }, ajaxso || {}));\n } else if (options.value) {\n var i;\n if (typeof options.size === 'undefined') {\n options.size = msl ? 3 : 1;\n }\n if (msl) {\n ovm = vl.split(\",\");\n ovm = $.map(ovm, function (n) { return $.trim(n); });\n }\n if (typeof options.value === 'function') { options.value = options.value(); }\n var so, sv, ov,\n\t\t\t\t\tsep = options.separator === undefined ? \":\" : options.separator;\n if (typeof options.value === 'string') {\n so = options.value.split(\";\");\n for (i = 0; i < so.length; i++) {\n sv = so[i].split(sep);\n if (sv.length > 2) {\n sv[1] = $.map(sv, function (n, ii) { if (ii > 0) { return n; } }).join(\":\");\n }\n ov = document.createElement(\"option\");\n ov.setAttribute(\"role\", \"option\");\n ov.value = sv[0]; ov.innerHTML = sv[1];\n elem.appendChild(ov);\n if (!msl && ($.trim(sv[0]) == $.trim(vl) || $.trim(sv[1]) == $.trim(vl))) { ov.selected = \"selected\"; }\n if (msl && ($.inArray($.trim(sv[1]), ovm) > -1 || $.inArray($.trim(sv[0]), ovm) > -1)) { ov.selected = \"selected\"; }\n }\n } else if (typeof options.value === 'object') {\n var oSv = options.value;\n for (var key in oSv) {\n if (oSv.hasOwnProperty(key)) {\n ov = document.createElement(\"option\");\n ov.setAttribute(\"role\", \"option\");\n ov.value = key; ov.innerHTML = oSv[key];\n elem.appendChild(ov);\n if (!msl && ($.trim(key) == $.trim(vl) || $.trim(oSv[key]) == $.trim(vl))) { ov.selected = \"selected\"; }\n if (msl && ($.inArray($.trim(oSv[key]), ovm) > -1 || $.inArray($.trim(key), ovm) > -1)) { ov.selected = \"selected\"; }\n }\n }\n }\n setAttributes(elem, options, ['value']);\n options = bindEv(elem, options);\n }\n break;\n case \"text\":\n case \"password\":\n case \"button\":\n var role;\n if (eltype == \"button\") { role = \"button\"; }\n else { role = \"textbox\"; }\n elem = document.createElement(\"input\");\n elem.type = eltype;\n elem.value = vl;\n setAttributes(elem, options);\n options = bindEv(elem, options);\n if (eltype != \"button\") {\n if (autowidth) {\n if (!options.size) { $(elem).css({ width: \"98%\" }); }\n } else if (!options.size) { options.size = 20; }\n }\n $(elem).attr(\"role\", role);\n break;\n case \"image\":\n case \"file\":\n elem = document.createElement(\"input\");\n elem.type = eltype;\n setAttributes(elem, options);\n options = bindEv(elem, options);\n break;\n case \"custom\":\n elem = document.createElement(\"span\");\n try {\n if ($.isFunction(options.custom_element)) {\n var celm = options.custom_element.call(this, vl, options);\n if (celm) {\n celm = $(celm).addClass(\"customelement\").attr({ id: options.id, name: options.name });\n $(elem).empty().append(celm);\n } else {\n throw \"e2\";\n }\n } else {\n throw \"e1\";\n }\n } catch (e) {\n if (e == \"e1\") { this.info_dialog($.jgrid.errors.errcap, \"function 'custom_element' \" + $.jgrid.edit.msg.nodefined, $.jgrid.edit.bClose); }\n if (e == \"e2\") { this.info_dialog($.jgrid.errors.errcap, \"function 'custom_element' \" + $.jgrid.edit.msg.novalue, $.jgrid.edit.bClose); }\n else { this.info_dialog($.jgrid.errors.errcap, typeof (e) === \"string\" ? e : e.message, $.jgrid.edit.bClose); }\n }\n break;\n }\n return elem;\n },\n // Date Validation Javascript\n checkDate: function (format, date) {\n var daysInFebruary = function (year) {\n // February has 29 days in any year evenly divisible by four,\n // EXCEPT for centurial years which are not also divisible by 400.\n return (((year % 4 === 0) && (year % 100 !== 0 || (year % 400 === 0))) ? 29 : 28);\n },\n\t\tDaysArray = function (n) {\n\t\t for (var i = 1; i <= n; i++) {\n\t\t this[i] = 31;\n\t\t if (i == 4 || i == 6 || i == 9 || i == 11) { this[i] = 30; }\n\t\t if (i == 2) { this[i] = 29; }\n\t\t }\n\t\t return this;\n\t\t};\n\n var tsp = {}, sep;\n format = format.toLowerCase();\n //we search for /,-,. for the date separator\n if (format.indexOf(\"/\") != -1) {\n sep = \"/\";\n } else if (format.indexOf(\"-\") != -1) {\n sep = \"-\";\n } else if (format.indexOf(\".\") != -1) {\n sep = \".\";\n } else {\n sep = \"/\";\n }\n format = format.split(sep);\n date = date.split(sep);\n if (date.length != 3) { return false; }\n var j = -1, yln, dln = -1, mln = -1;\n for (var i = 0; i < format.length; i++) {\n var dv = isNaN(date[i]) ? 0 : parseInt(date[i], 10);\n tsp[format[i]] = dv;\n yln = format[i];\n if (yln.indexOf(\"y\") != -1) { j = i; }\n if (yln.indexOf(\"m\") != -1) { mln = i; }\n if (yln.indexOf(\"d\") != -1) { dln = i; }\n }\n if (format[j] == \"y\" || format[j] == \"yyyy\") {\n yln = 4;\n } else if (format[j] == \"yy\") {\n yln = 2;\n } else {\n yln = -1;\n }\n var daysInMonth = DaysArray(12),\n\t\tstrDate;\n if (j === -1) {\n return false;\n } else {\n strDate = tsp[format[j]].toString();\n if (yln == 2 && strDate.length == 1) { yln = 1; }\n if (strDate.length != yln || (tsp[format[j]] === 0 && date[j] != \"00\")) {\n return false;\n }\n }\n if (mln === -1) {\n return false;\n } else {\n strDate = tsp[format[mln]].toString();\n if (strDate.length < 1 || tsp[format[mln]] < 1 || tsp[format[mln]] > 12) {\n return false;\n }\n }\n if (dln === -1) {\n return false;\n } else {\n strDate = tsp[format[dln]].toString();\n if (strDate.length < 1 || tsp[format[dln]] < 1 || tsp[format[dln]] > 31 || (tsp[format[mln]] == 2 && tsp[format[dln]] > daysInFebruary(tsp[format[j]])) || tsp[format[dln]] > daysInMonth[tsp[format[mln]]]) {\n return false;\n }\n }\n return true;\n },\n isEmpty: function (val) {\n if (val.match(/^\\s+$/) || val === \"\") {\n return true;\n } else {\n return false;\n }\n },\n checkTime: function (time) {\n // checks only hh:ss (and optional am/pm)\n var re = /^(\\d{1,2}):(\\d{2})([ap]m)?$/, regs;\n if (!this.isEmpty(time)) {\n regs = time.match(re);\n if (regs) {\n if (regs[3]) {\n if (regs[1] < 1 || regs[1] > 12) { return false; }\n } else {\n if (regs[1] > 23) { return false; }\n }\n if (regs[2] > 59) {\n return false;\n }\n } else {\n return false;\n }\n }\n return true;\n },\n checkValues: function (val, valref, g, customobject, nam) {\n var edtrul, i, nm, dft, len;\n if (typeof (customobject) === \"undefined\") {\n if (typeof (valref) == 'string') {\n for (i = 0, len = g.p.colModel.length; i < len; i++) {\n if (g.p.colModel[i].name == valref) {\n edtrul = g.p.colModel[i].editrules;\n valref = i;\n try { nm = g.p.colModel[i].formoptions.label; } catch (e) { }\n break;\n }\n }\n } else if (valref >= 0) {\n edtrul = g.p.colModel[valref].editrules;\n }\n } else {\n edtrul = customobject;\n nm = nam === undefined ? \"_\" : nam;\n }\n if (edtrul) {\n if (!nm) { nm = g.p.colNames[valref]; }\n if (edtrul.required === true) {\n if (this.isEmpty(val)) { return [false, nm + \": \" + $.jgrid.edit.msg.required, \"\"]; }\n }\n // force required\n var rqfield = edtrul.required === false ? false : true;\n if (edtrul.number === true) {\n if (!(rqfield === false && this.isEmpty(val))) {\n if (isNaN(val)) { return [false, nm + \": \" + $.jgrid.edit.msg.number, \"\"]; }\n }\n }\n if (typeof edtrul.minValue != 'undefined' && !isNaN(edtrul.minValue)) {\n if (parseFloat(val) < parseFloat(edtrul.minValue)) { return [false, nm + \": \" + $.jgrid.edit.msg.minValue + \" \" + edtrul.minValue, \"\"]; }\n }\n if (typeof edtrul.maxValue != 'undefined' && !isNaN(edtrul.maxValue)) {\n if (parseFloat(val) > parseFloat(edtrul.maxValue)) { return [false, nm + \": \" + $.jgrid.edit.msg.maxValue + \" \" + edtrul.maxValue, \"\"]; }\n }\n var filter;\n if (edtrul.email === true) {\n if (!(rqfield === false && this.isEmpty(val))) {\n // taken from $ Validate plugin\n filter = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?$/i;\n if (!filter.test(val)) { return [false, nm + \": \" + $.jgrid.edit.msg.email, \"\"]; }\n }\n }\n if (edtrul.integer === true) {\n if (!(rqfield === false && this.isEmpty(val))) {\n if (isNaN(val)) { return [false, nm + \": \" + $.jgrid.edit.msg.integer, \"\"]; }\n if ((val % 1 !== 0) || (val.indexOf('.') != -1)) { return [false, nm + \": \" + $.jgrid.edit.msg.integer, \"\"]; }\n }\n }\n if (edtrul.date === true) {\n if (!(rqfield === false && this.isEmpty(val))) {\n if (g.p.colModel[valref].formatoptions && g.p.colModel[valref].formatoptions.newformat) {\n dft = g.p.colModel[valref].formatoptions.newformat;\n } else {\n dft = g.p.colModel[valref].datefmt || \"Y-m-d\";\n }\n if (!this.checkDate(dft, val)) { return [false, nm + \": \" + $.jgrid.edit.msg.date + \" - \" + dft, \"\"]; }\n }\n }\n if (edtrul.time === true) {\n if (!(rqfield === false && this.isEmpty(val))) {\n if (!this.checkTime(val)) { return [false, nm + \": \" + $.jgrid.edit.msg.date + \" - hh:mm (am/pm)\", \"\"]; }\n }\n }\n if (edtrul.url === true) {\n if (!(rqfield === false && this.isEmpty(val))) {\n filter = /^(((https?)|(ftp)):\\/\\/([\\-\\w]+\\.)+\\w{2,3}(\\/[%\\-\\w]+(\\.\\w{2,})?)*(([\\w\\-\\.\\?\\\\\\/+@&#;`~=%!]*)(\\.\\w{2,})?)*\\/?)/i;\n if (!filter.test(val)) { return [false, nm + \": \" + $.jgrid.edit.msg.url, \"\"]; }\n }\n }\n if (edtrul.custom === true) {\n if (!(rqfield === false && this.isEmpty(val))) {\n if ($.isFunction(edtrul.custom_func)) {\n var ret = edtrul.custom_func.call(g, val, nm);\n if ($.isArray(ret)) {\n return ret;\n } else {\n return [false, $.jgrid.edit.msg.customarray, \"\"];\n }\n } else {\n return [false, $.jgrid.edit.msg.customfcheck, \"\"];\n }\n }\n }\n }\n return [true, \"\", \"\"];\n }\n });\n})(jQuery); /*\n * jqFilter jQuery jqGrid filter addon.\n * Copyright (c) 2011, Tony Tomov, tony@trirand.com\n * Dual licensed under the MIT and GPL licenses\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n *\n * The work is inspired from this Stefan Pirvu\n * http://www.codeproject.com/KB/scripting/json-filtering.aspx\n *\n * The filter uses JSON entities to hold filter rules and groups. Here is an example of a filter:\n\n{ \"groupOp\": \"AND\",\n \"groups\" : [\n { \"groupOp\": \"OR\",\n \"rules\": [\n { \"field\": \"name\", \"op\": \"eq\", \"data\": \"England\" },\n { \"field\": \"id\", \"op\": \"le\", \"data\": \"5\"}\n ]\n }\n ],\n \"rules\": [\n { \"field\": \"name\", \"op\": \"eq\", \"data\": \"Romania\" },\n { \"field\": \"id\", \"op\": \"le\", \"data\": \"1\"}\n ]\n}\n*/\n/*global jQuery, $, window, navigator */\n\n(function ($) {\n\n $.fn.jqFilter = function (arg) {\n if (typeof arg === 'string') {\n\n var fn = $.fn.jqFilter[arg];\n if (!fn) {\n throw (\"jqFilter - No such method: \" + arg);\n }\n var args = $.makeArray(arguments).slice(1);\n return fn.apply(this, args);\n }\n\n var p = $.extend(true, {\n filter: null,\n columns: [],\n onChange: null,\n afterRedraw: null,\n checkValues: null,\n error: false,\n errmsg: \"\",\n errorcheck: true,\n showQuery: true,\n sopt: null,\n ops: [\n\t\t\t{ \"name\": \"eq\", \"description\": \"equal\", \"operator\": \"=\" },\n\t\t\t{ \"name\": \"ne\", \"description\": \"not equal\", \"operator\": \"<>\" },\n\t\t\t{ \"name\": \"lt\", \"description\": \"less\", \"operator\": \"<\" },\n\t\t\t{ \"name\": \"le\", \"description\": \"less or equal\", \"operator\": \"<=\" },\n\t\t\t{ \"name\": \"gt\", \"description\": \"greater\", \"operator\": \">\" },\n\t\t\t{ \"name\": \"ge\", \"description\": \"greater or equal\", \"operator\": \">=\" },\n\t\t\t{ \"name\": \"bw\", \"description\": \"begins with\", \"operator\": \"LIKE\" },\n\t\t\t{ \"name\": \"bn\", \"description\": \"does not begin with\", \"operator\": \"NOT LIKE\" },\n\t\t\t{ \"name\": \"in\", \"description\": \"in\", \"operator\": \"IN\" },\n\t\t\t{ \"name\": \"ni\", \"description\": \"not in\", \"operator\": \"NOT IN\" },\n\t\t\t{ \"name\": \"ew\", \"description\": \"ends with\", \"operator\": \"LIKE\" },\n\t\t\t{ \"name\": \"en\", \"description\": \"does not end with\", \"operator\": \"NOT LIKE\" },\n\t\t\t{ \"name\": \"cn\", \"description\": \"contains\", \"operator\": \"LIKE\" },\n\t\t\t{ \"name\": \"nc\", \"description\": \"does not contain\", \"operator\": \"NOT LIKE\" },\n\t\t\t{ \"name\": \"nu\", \"description\": \"is null\", \"operator\": \"IS NULL\" },\n\t\t\t{ \"name\": \"nn\", \"description\": \"is not null\", \"operator\": \"IS NOT NULL\" }\n\t\t],\n numopts: ['eq', 'ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'],\n stropts: ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'],\n _gridsopt: [], // grid translated strings, do not tuch\n groupOps: [{ op: \"AND\", text: \"AND\" }, { op: \"OR\", text: \"OR\"}],\n groupButton: true,\n ruleButtons: true,\n direction: \"ltr\"\n }, arg || {});\n return this.each(function () {\n if (this.filter) { return; }\n this.p = p;\n // setup filter in case if they is not defined\n if (this.p.filter === null || this.p.filter === undefined) {\n this.p.filter = {\n groupOp: this.p.groupOps[0].op,\n rules: [],\n groups: []\n };\n }\n var i, len = this.p.columns.length, cl,\n\t\tisIE = /msie/i.test(navigator.userAgent) && !window.opera;\n\n // translating the options\n if (this.p._gridsopt.length) {\n // ['eq','ne','lt','le','gt','ge','bw','bn','in','ni','ew','en','cn','nc']\n for (i = 0; i < this.p._gridsopt.length; i++) {\n this.p.ops[i].description = this.p._gridsopt[i];\n }\n }\n this.p.initFilter = $.extend(true, {}, this.p.filter);\n\n // set default values for the columns if they are not set\n if (!len) { return; }\n for (i = 0; i < len; i++) {\n cl = this.p.columns[i];\n if (cl.stype) {\n // grid compatibility\n cl.inputtype = cl.stype;\n } else if (!cl.inputtype) {\n cl.inputtype = 'text';\n }\n if (cl.sorttype) {\n // grid compatibility\n cl.searchtype = cl.sorttype;\n } else if (!cl.searchtype) {\n cl.searchtype = 'string';\n }\n if (cl.hidden === undefined) {\n // jqGrid compatibility\n cl.hidden = false;\n }\n if (!cl.label) {\n cl.label = cl.name;\n }\n if (cl.index) {\n cl.name = cl.index;\n }\n if (!cl.hasOwnProperty('searchoptions')) {\n cl.searchoptions = {};\n }\n if (!cl.hasOwnProperty('searchrules')) {\n cl.searchrules = {};\n }\n\n }\n if (this.p.showQuery) {\n $(this).append(\"
    \");\n }\n /*\n *Perform checking.\n *\n */\n var checkData = function (val, colModelItem) {\n var ret = [true, \"\"];\n if ($.isFunction(colModelItem.searchrules)) {\n ret = colModelItem.searchrules(val, colModelItem);\n } else if ($.jgrid && $.jgrid.checkValues) {\n try {\n ret = $.jgrid.checkValues(val, -1, null, colModelItem.searchrules, colModelItem.label);\n } catch (e) { }\n }\n if (ret && ret.length && ret[0] === false) {\n p.error = !ret[0];\n p.errmsg = ret[1];\n }\n };\n /* moving to common\n randId = function() {\n return Math.floor(Math.random()*10000).toString();\n };\n */\n\n this.onchange = function () {\n // clear any error\n this.p.error = false;\n this.p.errmsg = \"\";\n return $.isFunction(this.p.onChange) ? this.p.onChange.call(this, this.p) : false;\n };\n /*\n * Redraw the filter every time when new field is added/deleted\n * and field is changed\n */\n this.reDraw = function () {\n $(\"table.group:first\", this).remove();\n var t = this.createTableForGroup(p.filter, null);\n $(this).append(t);\n if ($.isFunction(this.p.afterRedraw)) {\n this.p.afterRedraw.call(this, this.p);\n }\n };\n /*\n * Creates a grouping data for the filter\n * @param group - object\n * @param parentgroup - object\n */\n this.createTableForGroup = function (group, parentgroup) {\n var that = this, i;\n // this table will hold all the group (tables) and rules (rows)\n var table = $(\"
    \"),\n // create error message row\n\t\t\talign = \"left\";\n if (this.p.direction == \"rtl\") {\n align = \"right\";\n table.attr(\"dir\", \"rtl\");\n }\n if (parentgroup === null) {\n table.append(\"\");\n }\n\n var tr = $(\"\");\n table.append(tr);\n // this header will hold the group operator type and group action buttons for\n // creating subgroup \"+ {}\", creating rule \"+\" or deleting the group \"-\"\n var th = $(\"\");\n tr.append(th);\n\n if (this.p.ruleButtons === true) {\n // dropdown for: choosing group operator type\n var groupOpSelect = $(\"\");\n th.append(groupOpSelect);\n // populate dropdown with all posible group operators: or, and\n var str = \"\", selected;\n for (i = 0; i < p.groupOps.length; i++) {\n selected = group.groupOp === that.p.groupOps[i].op ? \" selected='selected'\" : \"\";\n str += \"\";\n }\n\n groupOpSelect\n\t\t\t.append(str)\n\t\t\t.bind('change', function () {\n\t\t\t group.groupOp = $(groupOpSelect).val();\n\t\t\t that.onchange(); // signals that the filter has changed\n\t\t\t});\n }\n // button for adding a new subgroup\n var inputAddSubgroup = \"\";\n if (this.p.groupButton) {\n inputAddSubgroup = $(\"\");\n inputAddSubgroup.bind('click', function () {\n if (group.groups === undefined) {\n group.groups = [];\n }\n\n group.groups.push({\n groupOp: p.groupOps[0].op,\n rules: [],\n groups: []\n }); // adding a new group\n\n that.reDraw(); // the html has changed, force reDraw\n\n that.onchange(); // signals that the filter has changed\n return false;\n });\n }\n th.append(inputAddSubgroup);\n if (this.p.ruleButtons === true) {\n // button for adding a new rule\n var inputAddRule = $(\"\"), cm;\n inputAddRule.bind('click', function () {\n //if(!group) { group = {};}\n if (group.rules === undefined) {\n group.rules = [];\n }\n for (i = 0; i < that.p.columns.length; i++) {\n // but show only serchable and serchhidden = true fields\n var searchable = (typeof that.p.columns[i].search === 'undefined') ? true : that.p.columns[i].search,\n\t\t\t\t\thidden = (that.p.columns[i].hidden === true),\n\t\t\t\t\tignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);\n if ((ignoreHiding && searchable) || (searchable && !hidden)) {\n cm = that.p.columns[i];\n break;\n }\n }\n\n var opr;\n if (cm.searchoptions.sopt) { opr = cm.searchoptions.sopt; }\n else if (that.p.sopt) { opr = that.p.sopt; }\n else if (cm.searchtype === 'string') { opr = that.p.stropts; }\n else { opr = that.p.numopts; }\n\n group.rules.push({\n field: cm.name,\n op: opr[0],\n data: \"\"\n }); // adding a new rule\n\n that.reDraw(); // the html has changed, force reDraw\n // for the moment no change have been made to the rule, so\n // this will not trigger onchange event\n return false;\n });\n th.append(inputAddRule);\n }\n\n // button for delete the group\n if (parentgroup !== null) { // ignore the first group\n var inputDeleteGroup = $(\"\");\n th.append(inputDeleteGroup);\n inputDeleteGroup.bind('click', function () {\n // remove group from parent\n for (i = 0; i < parentgroup.groups.length; i++) {\n if (parentgroup.groups[i] === group) {\n parentgroup.groups.splice(i, 1);\n break;\n }\n }\n\n that.reDraw(); // the html has changed, force reDraw\n\n that.onchange(); // signals that the filter has changed\n return false;\n });\n }\n\n // append subgroup rows\n if (group.groups !== undefined) {\n for (i = 0; i < group.groups.length; i++) {\n var trHolderForSubgroup = $(\"\");\n table.append(trHolderForSubgroup);\n\n var tdFirstHolderForSubgroup = $(\"\");\n trHolderForSubgroup.append(tdFirstHolderForSubgroup);\n\n var tdMainHolderForSubgroup = $(\"\");\n tdMainHolderForSubgroup.append(this.createTableForGroup(group.groups[i], group));\n trHolderForSubgroup.append(tdMainHolderForSubgroup);\n }\n }\n if (group.groupOp === undefined) {\n group.groupOp = that.p.groupOps[0].op;\n }\n\n // append rules rows\n if (group.rules !== undefined) {\n for (i = 0; i < group.rules.length; i++) {\n table.append(\n this.createTableRowForRule(group.rules[i], group)\n\t\t\t\t\t);\n }\n }\n\n return table;\n };\n /*\n * Create the rule data for the filter\n */\n this.createTableRowForRule = function (rule, group) {\n // save current entity in a variable so that it could\n // be referenced in anonimous method calls\n\n var that = this, tr = $(\"\"),\n //document.createElement(\"tr\"),\n\n // first column used for padding\n //tdFirstHolderForRule = document.createElement(\"td\"),\n\t\t\ti, op, trpar, cm, str = \"\", selected;\n //tdFirstHolderForRule.setAttribute(\"class\", \"first\");\n tr.append(\"\");\n\n\n // create field container\n var ruleFieldTd = $(\"\");\n tr.append(ruleFieldTd);\n\n\n // dropdown for: choosing field\n var ruleFieldSelect = $(\"\"), ina, aoprs = [];\n ruleFieldTd.append(ruleFieldSelect);\n ruleFieldSelect.bind('change', function () {\n rule.field = $(ruleFieldSelect).val();\n\n trpar = $(this).parents(\"tr:first\");\n for (i = 0; i < that.p.columns.length; i++) {\n if (that.p.columns[i].name === rule.field) {\n cm = that.p.columns[i];\n break;\n }\n }\n if (!cm) { return; }\n cm.searchoptions.id = $.jgrid.randId();\n if (isIE && cm.inputtype === \"text\") {\n if (!cm.searchoptions.size) {\n cm.searchoptions.size = 10;\n }\n }\n var elm = $.jgrid.createEl(cm.inputtype, cm.searchoptions, \"\", true, that.p.ajaxSelectOptions, true);\n $(elm).addClass(\"input-elm\");\n //that.createElement(rule, \"\");\n\n if (cm.searchoptions.sopt) { op = cm.searchoptions.sopt; }\n else if (that.p.sopt) { op = that.p.sopt; }\n else if (cm.searchtype === 'string') { op = that.p.stropts; }\n else { op = that.p.numopts; }\n // operators\n var s = \"\", so = 0;\n aoprs = [];\n $.each(that.p.ops, function () { aoprs.push(this.name) });\n for (i = 0; i < op.length; i++) {\n ina = $.inArray(op[i], aoprs);\n if (ina !== -1) {\n if (so === 0) {\n rule.op = that.p.ops[ina].name;\n }\n s += \"\";\n so++;\n }\n }\n $(\".selectopts\", trpar).empty().append(s);\n $(\".selectopts\", trpar)[0].selectedIndex = 0;\n if ($.browser.msie && $.browser.version < 9) {\n var sw = parseInt($(\"select.selectopts\", trpar)[0].offsetWidth) + 1;\n $(\".selectopts\", trpar).width(sw);\n $(\".selectopts\", trpar).css(\"width\", \"auto\");\n }\n // data\n $(\".data\", trpar).empty().append(elm);\n $(\".input-elm\", trpar).bind('change', function () {\n rule.data = $(this).val();\n that.onchange(); // signals that the filter has changed\n });\n setTimeout(function () { //IE, Opera, Chrome\n rule.data = $(elm).val();\n that.onchange(); // signals that the filter has changed\n }, 0);\n });\n\n // populate drop down with user provided column definitions\n var j = 0;\n for (i = 0; i < that.p.columns.length; i++) {\n // but show only serchable and serchhidden = true fields\n var searchable = (typeof that.p.columns[i].search === 'undefined') ? true : that.p.columns[i].search,\n\t\t hidden = (that.p.columns[i].hidden === true),\n\t\t\t\tignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);\n if ((ignoreHiding && searchable) || (searchable && !hidden)) {\n selected = \"\";\n if (rule.field === that.p.columns[i].name) {\n selected = \" selected='selected'\";\n j = i;\n }\n str += \"\";\n }\n }\n ruleFieldSelect.append(str);\n\n\n // create operator container\n var ruleOperatorTd = $(\"\");\n tr.append(ruleOperatorTd);\n cm = p.columns[j];\n // create it here so it can be referentiated in the onchange event\n //var RD = that.createElement(rule, rule.data);\n cm.searchoptions.id = $.jgrid.randId();\n if (isIE && cm.inputtype === \"text\") {\n if (!cm.searchoptions.size) {\n cm.searchoptions.size = 10;\n }\n }\n var ruleDataInput = $.jgrid.createEl(cm.inputtype, cm.searchoptions, rule.data, true, that.p.ajaxSelectOptions, true);\n\n // dropdown for: choosing operator\n var ruleOperatorSelect = $(\"\");\n ruleOperatorTd.append(ruleOperatorSelect);\n ruleOperatorSelect.bind('change', function () {\n rule.op = $(ruleOperatorSelect).val();\n trpar = $(this).parents(\"tr:first\");\n var rd = $(\".input-elm\", trpar)[0];\n if (rule.op === \"nu\" || rule.op === \"nn\") { // disable for operator \"is null\" and \"is not null\"\n rule.data = \"\";\n rd.value = \"\";\n rd.setAttribute(\"readonly\", \"true\");\n rd.setAttribute(\"disabled\", \"true\");\n } else {\n rd.removeAttribute(\"readonly\");\n rd.removeAttribute(\"disabled\");\n }\n\n that.onchange(); // signals that the filter has changed\n });\n\n // populate drop down with all available operators\n if (cm.searchoptions.sopt) { op = cm.searchoptions.sopt; }\n else if (that.p.sopt) { op = that.p.sopt; }\n else if (cm.searchtype === 'string') { op = p.stropts; }\n else { op = that.p.numopts; }\n str = \"\";\n $.each(that.p.ops, function () { aoprs.push(this.name) });\n for (i = 0; i < op.length; i++) {\n ina = $.inArray(op[i], aoprs);\n if (ina !== -1) {\n selected = rule.op === that.p.ops[ina].name ? \" selected='selected'\" : \"\";\n str += \"\";\n }\n }\n ruleOperatorSelect.append(str);\n // create data container\n var ruleDataTd = $(\"\");\n tr.append(ruleDataTd);\n\n // textbox for: data\n // is created previously\n //ruleDataInput.setAttribute(\"type\", \"text\");\n ruleDataTd.append(ruleDataInput);\n\n $(ruleDataInput)\n\t\t\t.addClass(\"input-elm\")\n\t\t\t.bind('change', function () {\n\t\t\t rule.data = $(this).val();\n\t\t\t that.onchange(); // signals that the filter has changed\n\t\t\t});\n\n // create action container\n var ruleDeleteTd = $(\"\");\n tr.append(ruleDeleteTd);\n\n // create button for: delete rule\n if (this.p.ruleButtons === true) {\n var ruleDeleteInput = $(\"\");\n ruleDeleteTd.append(ruleDeleteInput);\n //$(ruleDeleteInput).html(\"\").height(20).width(30).button({icons: { primary: \"ui-icon-minus\", text:false}});\n ruleDeleteInput.bind('click', function () {\n // remove rule from group\n for (i = 0; i < group.rules.length; i++) {\n if (group.rules[i] === rule) {\n group.rules.splice(i, 1);\n break;\n }\n }\n\n that.reDraw(); // the html has changed, force reDraw\n\n that.onchange(); // signals that the filter has changed\n return false;\n });\n }\n return tr;\n };\n\n this.getStringForGroup = function (group) {\n var s = \"(\", index;\n if (group.groups !== undefined) {\n for (index = 0; index < group.groups.length; index++) {\n if (s.length > 1) {\n s += \" \" + group.groupOp + \" \";\n }\n try {\n s += this.getStringForGroup(group.groups[index]);\n } catch (eg) { alert(eg); }\n }\n }\n\n if (group.rules !== undefined) {\n try {\n for (index = 0; index < group.rules.length; index++) {\n if (s.length > 1) {\n s += \" \" + group.groupOp + \" \";\n }\n s += this.getStringForRule(group.rules[index]);\n }\n } catch (e) { alert(e); }\n }\n\n s += \")\";\n\n if (s === \"()\") {\n return \"\"; // ignore groups that don't have rules\n } else {\n return s;\n }\n };\n this.getStringForRule = function (rule) {\n var opUF = \"\", opC = \"\", i, cm, ret, val,\n\t\t\tnumtypes = ['int', 'integer', 'float', 'number', 'currency']; // jqGrid\n for (i = 0; i < this.p.ops.length; i++) {\n if (this.p.ops[i].name === rule.op) {\n opUF = this.p.ops[i].operator;\n opC = this.p.ops[i].name;\n break;\n }\n }\n for (i = 0; i < this.p.columns.length; i++) {\n if (this.p.columns[i].name === rule.field) {\n cm = this.p.columns[i];\n break;\n }\n }\n val = rule.data;\n if (opC === 'bw' || opC === 'bn') { val = val + \"%\"; }\n if (opC === 'ew' || opC === 'en') { val = \"%\" + val; }\n if (opC === 'cn' || opC === 'nc') { val = \"%\" + val + \"%\"; }\n if (opC === 'in' || opC === 'ni') { val = \" (\" + val + \")\"; }\n if (p.errorcheck) { checkData(rule.data, cm); }\n if ($.inArray(cm.searchtype, numtypes) !== -1 || opC === 'nn' || opC === 'nu') { ret = rule.field + \" \" + opUF + \" \" + val; }\n else { ret = rule.field + \" \" + opUF + \" \\\"\" + val + \"\\\"\"; }\n return ret;\n };\n this.resetFilter = function () {\n this.p.filter = $.extend(true, {}, this.p.initFilter);\n this.reDraw();\n this.onchange();\n };\n this.hideError = function () {\n $(\"th.ui-state-error\", this).html(\"\");\n $(\"tr.error\", this).hide();\n };\n this.showError = function () {\n $(\"th.ui-state-error\", this).html(this.p.errmsg);\n $(\"tr.error\", this).show();\n };\n this.toUserFriendlyString = function () {\n return this.getStringForGroup(p.filter);\n };\n this.toString = function () {\n // this will obtain a string that can be used to match an item.\n var that = this;\n function getStringRule(rule) {\n if (that.p.errorcheck) {\n var i, cm;\n for (i = 0; i < that.p.columns.length; i++) {\n if (that.p.columns[i].name === rule.field) {\n cm = that.p.columns[i];\n break;\n }\n }\n if (cm) { checkData(rule.data, cm); }\n }\n return rule.op + \"(item.\" + rule.field + \",'\" + rule.data + \"')\";\n }\n\n function getStringForGroup(group) {\n var s = \"(\", index;\n\n if (group.groups !== undefined) {\n for (index = 0; index < group.groups.length; index++) {\n if (s.length > 1) {\n if (group.groupOp === \"OR\") {\n s += \" || \";\n }\n else {\n s += \" && \";\n }\n }\n s += getStringForGroup(group.groups[index]);\n }\n }\n\n if (group.rules !== undefined) {\n for (index = 0; index < group.rules.length; index++) {\n if (s.length > 1) {\n if (group.groupOp === \"OR\") {\n s += \" || \";\n }\n else {\n s += \" && \";\n }\n }\n s += getStringRule(group.rules[index]);\n }\n }\n\n s += \")\";\n\n if (s === \"()\") {\n return \"\"; // ignore groups that don't have rules\n } else {\n return s;\n }\n }\n\n return getStringForGroup(this.p.filter);\n };\n\n // Here we init the filter\n this.reDraw();\n\n if (this.p.showQuery) {\n this.onchange();\n }\n // mark is as created so that it will not be created twice on this element\n this.filter = true;\n });\n };\n $.extend($.fn.jqFilter, {\n /*\n * Return SQL like string. Can be used directly\n */\n toSQLString: function () {\n var s = \"\";\n this.each(function () {\n s = this.toUserFriendlyString();\n });\n return s;\n },\n /*\n * Return filter data as object.\n */\n filterData: function () {\n var s;\n this.each(function () {\n s = this.p.filter;\n });\n return s;\n\n },\n getParameter: function (param) {\n if (param !== undefined) {\n if (this.p.hasOwnProperty(param)) {\n return this.p[param];\n }\n }\n return this.p;\n },\n resetFilter: function () {\n return this.each(function () {\n this.resetFilter();\n });\n },\n addFilter: function (pfilter) {\n if (typeof pfilter === \"string\") {\n pfilter = jQuery.jgrid.parse(pfilter);\n }\n this.each(function () {\n this.p.filter = pfilter;\n this.reDraw();\n this.onchange();\n });\n }\n\n });\n})(jQuery);\n\n(function ($) {\n /**\n * jqGrid extension for form editing Grid Data\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n **/\n \"use strict\";\n /*global xmlJsonClass, jQuery, $ */\n var rp_ge = {};\n $.jgrid.extend({\n searchGrid: function (p) {\n p = $.extend({\n recreateFilter: false,\n drag: true,\n sField: 'searchField',\n sValue: 'searchString',\n sOper: 'searchOper',\n sFilter: 'filters',\n loadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only.\n beforeShowSearch: null,\n afterShowSearch: null,\n onInitializeSearch: null,\n afterRedraw: null,\n closeAfterSearch: false,\n closeAfterReset: false,\n closeOnEscape: false,\n multipleSearch: false,\n multipleGroup: false,\n //cloneSearchRowOnAdd: true,\n top: 0,\n left: 0,\n jqModal: true,\n modal: false,\n resize: true,\n width: 450,\n height: 'auto',\n dataheight: 'auto',\n showQuery: false,\n errorcheck: true,\n // translation\n // if you want to change or remove the order change it in sopt\n // ['eq','ne','lt','le','gt','ge','bw','bn','in','ni','ew','en','cn','nc'],\n sopt: null,\n stringResult: undefined,\n onClose: null,\n onSearch: null,\n onReset: null,\n toTop: true,\n overlay: 30,\n columns: [],\n tmplNames: null,\n tmplFilters: null,\n // translations - later in lang file\n tmplLabel: ' Template: ',\n showOnLoad: false,\n layer: null\n }, $.jgrid.search, p || {});\n return this.each(function () {\n var $t = this;\n if (!$t.grid) { return; }\n var fid = \"fbox_\" + $t.p.id,\n\t\t\tshowFrm = true,\n\t\t\tIDs = { themodal: 'searchmod' + fid, modalhead: 'searchhd' + fid, modalcontent: 'searchcnt' + fid, scrollelm: fid },\n\t\t\tdefaultFilters = $t.p.postData[p.sFilter];\n if (typeof (defaultFilters) === \"string\") {\n defaultFilters = $.jgrid.parse(defaultFilters);\n }\n if (p.recreateFilter === true) {\n $(\"#\" + IDs.themodal).remove();\n }\n function showFilter() {\n if ($.isFunction(p.beforeShowSearch)) {\n showFrm = p.beforeShowSearch($(\"#\" + fid));\n if (typeof (showFrm) === \"undefined\") {\n showFrm = true;\n }\n }\n if (showFrm) {\n $.jgrid.viewModal(\"#\" + IDs.themodal, { gbox: \"#gbox_\" + fid, jqm: p.jqModal, modal: p.modal, overlay: p.overlay, toTop: p.toTop });\n if ($.isFunction(p.afterShowSearch)) {\n p.afterShowSearch($(\"#\" + fid));\n }\n }\n }\n if ($(\"#\" + IDs.themodal).html() !== null) {\n showFilter();\n } else {\n var fil = $(\"
    \").insertBefore(\"#gview_\" + $t.p.id),\n\t\t\t\talign = \"left\", butleft = \"\";\n if ($t.p.direction == \"rtl\") {\n align = \"right\";\n butleft = \" style='text-align:left'\";\n fil.attr(\"dir\", \"rtl\");\n }\n var columns = $.extend([], $t.p.colModel),\n\t\t\t\tbS = \"\" + p.Find + \"\",\n\t\t\t\tbC = \"\" + p.Reset + \"\",\n\t\t\t\tbQ = \"\", tmpl = \"\", colnm, found = false, bt, cmi = -1;\n if (p.showQuery) {\n bQ = \"Query\";\n }\n if (!p.columns.length) {\n $.each(columns, function (i, n) {\n if (!n.label) {\n n.label = $t.p.colNames[i];\n }\n // find first searchable column and set it if no default filter\n if (!found) {\n var searchable = (typeof n.search === 'undefined') ? true : n.search,\n\t\t\t\t\t\t\thidden = (n.hidden === true),\n\t\t\t\t\t\t\tignoreHiding = (n.searchoptions && n.searchoptions.searchhidden === true);\n if ((ignoreHiding && searchable) || (searchable && !hidden)) {\n found = true;\n colnm = n.index || n.name;\n cmi = i;\n }\n }\n });\n } else {\n columns = p.columns;\n }\n // old behaviour\n if ((!defaultFilters && colnm) || p.multipleSearch === false) {\n var cmop = \"eq\";\n if (cmi >= 0 && columns[cmi].searchoptions && columns[cmi].searchoptions.sopt) {\n cmop = columns[cmi].searchoptions.sopt[0];\n } else if (p.sopt && p.sopt.length) {\n cmop = p.sopt[0];\n }\n defaultFilters = { \"groupOp\": \"AND\", rules: [{ \"field\": colnm, \"op\": cmop, \"data\": \"\"}] };\n }\n found = false;\n if (p.tmplNames && p.tmplNames.length) {\n found = true;\n tmpl = p.tmplLabel;\n tmpl += \"\";\n }\n\n bt = \"

    \" + bC + tmpl + \"\" + bQ + bS + \"
    \";\n\n $(\"#\" + fid).jqFilter({\n columns: columns,\n filter: p.loadDefaults ? defaultFilters : null,\n showQuery: p.showQuery,\n errorcheck: p.errorcheck,\n sopt: p.sopt,\n groupButton: p.multipleGroup,\n ruleButtons: p.multipleSearch,\n afterRedraw: p.afterRedraw,\n _gridsopt: $.jgrid.search.odata,\n ajaxSelectOptions: $t.p.ajaxSelectOptions,\n onChange: function (sp) {\n if (this.p.showQuery) {\n $('.query', this).html(this.toUserFriendlyString());\n }\n },\n direction: $t.p.direction\n });\n fil.append(bt);\n if (found && p.tmplFilters && p.tmplFilters.length) {\n $(\".ui-template\", fil).bind('change', function (e) {\n var curtempl = $(this).val();\n if (curtempl == \"default\") {\n $(\"#\" + fid).jqFilter('addFilter', defaultFilters);\n } else {\n $(\"#\" + fid).jqFilter('addFilter', p.tmplFilters[parseInt(curtempl, 10)]);\n }\n return false;\n });\n }\n if (p.multipleGroup === true) { p.multipleSearch = true; }\n if ($.isFunction(p.onInitializeSearch)) {\n p.onInitializeSearch($(\"#\" + fid));\n }\n p.gbox = \"#gbox_\" + fid;\n if (p.layer) {\n $.jgrid.createModal(IDs, fil, p, \"#gview_\" + $t.p.id, $(\"#gbox_\" + $t.p.id)[0], \"#\" + p.layer, { position: \"relative\" });\n } else {\n $.jgrid.createModal(IDs, fil, p, \"#gview_\" + $t.p.id, $(\"#gbox_\" + $t.p.id)[0]);\n }\n if (bQ) {\n $(\"#\" + fid + \"_query\").bind('click', function (e) {\n $(\".queryresult\", fil).toggle();\n return false;\n });\n }\n if (p.stringResult === undefined) {\n // to provide backward compatibility, inferring stringResult value from multipleSearch\n p.stringResult = p.multipleSearch;\n }\n $(\"#\" + fid + \"_search\").bind('click', function () {\n var fl = $(\"#\" + fid),\n\t\t\t\t\tsdata = {}, res,\n\t\t\t\t\tfilters = fl.jqFilter('filterData');\n if (p.errorcheck) {\n fl[0].hideError();\n if (!p.showQuery) { fl.jqFilter('toSQLString'); }\n if (fl[0].p.error) {\n fl[0].showError();\n return false;\n }\n }\n\n if (p.stringResult) {\n try {\n // xmlJsonClass or JSON.stringify\n res = xmlJsonClass.toJson(filters, '', '', false);\n } catch (e) {\n try {\n res = JSON.stringify(filters);\n } catch (e2) { }\n }\n if (typeof (res) === \"string\") {\n sdata[p.sFilter] = res;\n $.each([p.sField, p.sValue, p.sOper], function () { sdata[this] = \"\"; });\n }\n } else {\n if (p.multipleSearch) {\n sdata[p.sFilter] = filters;\n $.each([p.sField, p.sValue, p.sOper], function () { sdata[this] = \"\"; });\n } else {\n sdata[p.sField] = filters.rules[0].field;\n sdata[p.sValue] = filters.rules[0].data;\n sdata[p.sOper] = filters.rules[0].op;\n sdata[p.sFilter] = \"\";\n }\n }\n $t.p.search = true;\n $.extend($t.p.postData, sdata);\n if ($.isFunction(p.onSearch)) {\n p.onSearch();\n }\n $($t).trigger(\"reloadGrid\", [{ page: 1}]);\n if (p.closeAfterSearch) {\n $.jgrid.hideModal(\"#\" + IDs.themodal, { gb: \"#gbox_\" + $t.p.id, jqm: p.jqModal, onClose: p.onClose });\n }\n return false;\n });\n $(\"#\" + fid + \"_reset\").bind('click', function () {\n var sdata = {},\n\t\t\t\t\tfl = $(\"#\" + fid);\n $t.p.search = false;\n if (p.multipleSearch === false) {\n sdata[p.sField] = sdata[p.sValue] = sdata[p.sOper] = \"\";\n } else {\n sdata[p.sFilter] = \"\";\n }\n fl[0].resetFilter();\n if (found) {\n $(\".ui-template\", fil).val(\"default\");\n }\n $.extend($t.p.postData, sdata);\n if ($.isFunction(p.onReset)) {\n p.onReset();\n }\n $($t).trigger(\"reloadGrid\", [{ page: 1}]);\n return false;\n });\n showFilter();\n $(\".fm-button:not(.ui-state-disabled)\", fil).hover(\n\t\t\t\t function () { $(this).addClass('ui-state-hover'); },\n\t\t\t\t function () { $(this).removeClass('ui-state-hover'); }\n\t\t\t\t);\n }\n });\n },\n editGridRow: function (rowid, p) {\n p = $.extend({\n top: 0,\n left: 0,\n width: 300,\n height: 'auto',\n dataheight: 'auto',\n modal: false,\n overlay: 30,\n drag: true,\n resize: true,\n url: null,\n mtype: \"POST\",\n clearAfterAdd: true,\n closeAfterEdit: false,\n reloadAfterSubmit: true,\n onInitializeForm: null,\n beforeInitData: null,\n beforeShowForm: null,\n afterShowForm: null,\n beforeSubmit: null,\n afterSubmit: null,\n onclickSubmit: null,\n afterComplete: null,\n onclickPgButtons: null,\n afterclickPgButtons: null,\n editData: {},\n recreateForm: false,\n jqModal: true,\n closeOnEscape: false,\n addedrow: \"first\",\n topinfo: '',\n bottominfo: '',\n saveicon: [],\n closeicon: [],\n savekey: [false, 13],\n navkeys: [false, 38, 40],\n checkOnSubmit: false,\n checkOnUpdate: false,\n _savedData: {},\n processing: false,\n onClose: null,\n ajaxEditOptions: {},\n serializeEditData: null,\n viewPagerButtons: true\n }, $.jgrid.edit, p || {});\n rp_ge[$(this)[0].p.id] = p;\n return this.each(function () {\n var $t = this;\n if (!$t.grid || !rowid) { return; }\n var gID = $t.p.id,\n\t\t\tfrmgr = \"FrmGrid_\" + gID, frmtb = \"TblGrid_\" + gID,\n\t\t\tIDs = { themodal: 'editmod' + gID, modalhead: 'edithd' + gID, modalcontent: 'editcnt' + gID, scrollelm: frmgr },\n\t\t\tonBeforeShow = $.isFunction(rp_ge[$t.p.id].beforeShowForm) ? rp_ge[$t.p.id].beforeShowForm : false,\n\t\t\tonAfterShow = $.isFunction(rp_ge[$t.p.id].afterShowForm) ? rp_ge[$t.p.id].afterShowForm : false,\n\t\t\tonBeforeInit = $.isFunction(rp_ge[$t.p.id].beforeInitData) ? rp_ge[$t.p.id].beforeInitData : false,\n\t\t\tonInitializeForm = $.isFunction(rp_ge[$t.p.id].onInitializeForm) ? rp_ge[$t.p.id].onInitializeForm : false,\n\t\t\tcopydata = null,\n\t\t\tshowFrm = true,\n\t\t\tmaxCols = 1, maxRows = 0, postdata, extpost, newData, diff;\n if (rowid === \"new\") {\n rowid = \"_empty\";\n p.caption = rp_ge[$t.p.id].addCaption;\n } else {\n p.caption = rp_ge[$t.p.id].editCaption;\n }\n if (p.recreateForm === true && $(\"#\" + IDs.themodal).html() !== null) {\n $(\"#\" + IDs.themodal).remove();\n }\n var closeovrl = true;\n if (p.checkOnUpdate && p.jqModal && !p.modal) {\n closeovrl = false;\n }\n function getFormData() {\n $(\"#\" + frmtb + \" > tbody > tr > td > .FormElement\").each(function (i) {\n var celm = $(\".customelement\", this);\n if (celm.length) {\n var elem = celm[0], nm = $(elem).attr('name');\n $.each($t.p.colModel, function (i, n) {\n if (this.name === nm && this.editoptions && $.isFunction(this.editoptions.custom_value)) {\n try {\n postdata[nm] = this.editoptions.custom_value($(\"#\" + $.jgrid.jqID(nm), \"#\" + frmtb), 'get');\n if (postdata[nm] === undefined) { throw \"e1\"; }\n } catch (e) {\n if (e === \"e1\") { $.jgrid.info_dialog(jQuery.jgrid.errors.errcap, \"function 'custom_value' \" + $.jgrid.edit.msg.novalue, jQuery.jgrid.edit.bClose); }\n else { $.jgrid.info_dialog(jQuery.jgrid.errors.errcap, e.message, jQuery.jgrid.edit.bClose); }\n }\n return true;\n }\n });\n } else {\n switch ($(this).get(0).type) {\n case \"checkbox\":\n if ($(this).is(\":checked\")) {\n postdata[this.name] = $(this).val();\n } else {\n var ofv = $(this).attr(\"offval\");\n postdata[this.name] = ofv;\n }\n break;\n case \"select-one\":\n postdata[this.name] = $(\"option:selected\", this).val();\n extpost[this.name] = $(\"option:selected\", this).text();\n break;\n case \"select-multiple\":\n postdata[this.name] = $(this).val();\n if (postdata[this.name]) { postdata[this.name] = postdata[this.name].join(\",\"); }\n else { postdata[this.name] = \"\"; }\n var selectedText = [];\n $(\"option:selected\", this).each(\n\t\t\t\t\t\t\t\tfunction (i, selected) {\n\t\t\t\t\t\t\t\t selectedText[i] = $(selected).text();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n extpost[this.name] = selectedText.join(\",\");\n break;\n case \"password\":\n case \"text\":\n case \"textarea\":\n case \"button\":\n postdata[this.name] = $(this).val();\n\n break;\n }\n if ($t.p.autoencode) { postdata[this.name] = $.jgrid.htmlEncode(postdata[this.name]); }\n }\n });\n return true;\n }\n function createData(rowid, obj, tb, maxcols) {\n var nm, hc, trdata, cnt = 0, tmp, dc, elc, retpos = [], ind = false,\n\t\t\t\ttdtmpl = \"  \", tmpl = \"\", i; //*2\n for (i = 1; i <= maxcols; i++) {\n tmpl += tdtmpl;\n }\n if (rowid != '_empty') {\n ind = $(obj).jqGrid(\"getInd\", rowid);\n }\n $(obj.p.colModel).each(function (i) {\n nm = this.name;\n // hidden fields are included in the form\n if (this.editrules && this.editrules.edithidden === true) {\n hc = false;\n } else {\n hc = this.hidden === true ? true : false;\n }\n dc = hc ? \"style='display:none'\" : \"\";\n if (nm !== 'cb' && nm !== 'subgrid' && this.editable === true && nm !== 'rn') {\n if (ind === false) {\n tmp = \"\";\n } else {\n if (nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {\n tmp = $(\"td:eq(\" + i + \")\", obj.rows[ind]).text();\n } else {\n try {\n tmp = $.unformat($(\"td:eq(\" + i + \")\", obj.rows[ind]), { rowId: rowid, colModel: this }, i);\n } catch (_) {\n tmp = (this.edittype && this.edittype == \"textarea\") ? $(\"td:eq(\" + i + \")\", obj.rows[ind]).text() : $(\"td:eq(\" + i + \")\", obj.rows[ind]).html();\n }\n if (!tmp || tmp == \" \" || tmp == \" \" || (tmp.length == 1 && tmp.charCodeAt(0) == 160)) { tmp = ''; }\n }\n }\n var opt = $.extend({}, this.editoptions || {}, { id: nm, name: nm }),\n\t\t\t\t\t\tfrmopt = $.extend({}, { elmprefix: '', elmsuffix: '', rowabove: false, rowcontent: '' }, this.formoptions || {}),\n\t\t\t\t\t\trp = parseInt(frmopt.rowpos, 10) || cnt + 1,\n\t\t\t\t\t\tcp = parseInt((parseInt(frmopt.colpos, 10) || 1) * 2, 10);\n if (rowid == \"_empty\" && opt.defaultValue) {\n tmp = $.isFunction(opt.defaultValue) ? opt.defaultValue() : opt.defaultValue;\n }\n if (!this.edittype) { this.edittype = \"text\"; }\n if ($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }\n elc = $.jgrid.createEl(this.edittype, opt, tmp, false, $.extend({}, $.jgrid.ajaxOptions, obj.p.ajaxSelectOptions || {}));\n if (tmp === \"\" && this.edittype == \"checkbox\") { tmp = $(elc).attr(\"offval\"); }\n if (tmp === \"\" && this.edittype == \"select\") { tmp = $(\"option:eq(0)\", elc).text(); }\n if (rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { rp_ge[$t.p.id]._savedData[nm] = tmp; }\n $(elc).addClass(\"FormElement\");\n if (this.edittype == 'text' || this.edittype == 'textarea') {\n $(elc).addClass(\"ui-widget-content ui-corner-all\");\n }\n trdata = $(tb).find(\"tr[rowpos=\" + rp + \"]\");\n if (frmopt.rowabove) {\n var newdata = $(\"\" + frmopt.rowcontent + \"\");\n $(tb).append(newdata);\n newdata[0].rp = rp;\n }\n if (trdata.length === 0) {\n trdata = $(\"\").addClass(\"FormData\").attr(\"id\", \"tr_\" + nm);\n $(trdata).append(tmpl);\n $(tb).append(trdata);\n trdata[0].rp = rp;\n }\n $(\"td:eq(\" + (cp - 2) + \")\", trdata[0]).html(typeof frmopt.label === 'undefined' ? obj.p.colNames[i] : frmopt.label);\n $(\"td:eq(\" + (cp - 1) + \")\", trdata[0]).append(frmopt.elmprefix).append(elc).append(frmopt.elmsuffix);\n retpos[cnt] = i;\n cnt++;\n }\n });\n if (cnt > 0) {\n var idrow = $(\"\");\n idrow[0].rp = cnt + 999;\n $(tb).append(idrow);\n if (rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { rp_ge[$t.p.id]._savedData[obj.p.id + \"_id\"] = rowid; }\n }\n return retpos;\n }\n function fillData(rowid, obj, fmid) {\n var nm, cnt = 0, tmp, fld, opt, vl, vlc;\n if (rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { rp_ge[$t.p.id]._savedData = {}; rp_ge[$t.p.id]._savedData[obj.p.id + \"_id\"] = rowid; }\n var cm = obj.p.colModel;\n if (rowid == '_empty') {\n $(cm).each(function (i) {\n nm = this.name;\n opt = $.extend({}, this.editoptions || {});\n fld = $(\"#\" + $.jgrid.jqID(nm), \"#\" + fmid);\n if (fld && fld.length && fld[0] !== null) {\n vl = \"\";\n if (opt.defaultValue) {\n vl = $.isFunction(opt.defaultValue) ? opt.defaultValue() : opt.defaultValue;\n if (fld[0].type == 'checkbox') {\n vlc = vl.toLowerCase();\n if (vlc.search(/(false|0|no|off|undefined)/i) < 0 && vlc !== \"\") {\n fld[0].checked = true;\n fld[0].defaultChecked = true;\n fld[0].value = vl;\n } else {\n fld[0].checked = false;\n fld[0].defaultChecked = false;\n }\n } else { fld.val(vl); }\n } else {\n if (fld[0].type == 'checkbox') {\n fld[0].checked = false;\n fld[0].defaultChecked = false;\n vl = $(fld).attr(\"offval\");\n } else if (fld[0].type && fld[0].type.substr(0, 6) == 'select') {\n fld[0].selectedIndex = 0;\n } else {\n fld.val(vl);\n }\n }\n if (rp_ge[$t.p.id].checkOnSubmit === true || rp_ge[$t.p.id].checkOnUpdate) { rp_ge[$t.p.id]._savedData[nm] = vl; }\n }\n });\n $(\"#id_g\", \"#\" + fmid).val(rowid);\n return;\n }\n var tre = $(obj).jqGrid(\"getInd\", rowid, true);\n if (!tre) { return; }\n $('td[role=\"gridcell\"]', tre).each(function (i) {\n nm = cm[i].name;\n // hidden fields are included in the form\n if (nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && cm[i].editable === true) {\n if (nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {\n tmp = $(this).text();\n } else {\n try {\n tmp = $.unformat($(this), { rowId: rowid, colModel: cm[i] }, i);\n } catch (_) {\n tmp = cm[i].edittype == \"textarea\" ? $(this).text() : $(this).html();\n }\n }\n if ($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }\n if (rp_ge[$t.p.id].checkOnSubmit === true || rp_ge[$t.p.id].checkOnUpdate) { rp_ge[$t.p.id]._savedData[nm] = tmp; }\n nm = $.jgrid.jqID(nm);\n switch (cm[i].edittype) {\n case \"password\":\n case \"text\":\n case \"button\":\n case \"image\":\n case \"textarea\":\n if (tmp == \" \" || tmp == \" \" || (tmp.length == 1 && tmp.charCodeAt(0) == 160)) { tmp = ''; }\n $(\"#\" + nm, \"#\" + fmid).val(tmp);\n break;\n case \"select\":\n var opv = tmp.split(\",\");\n opv = $.map(opv, function (n) { return $.trim(n); });\n $(\"#\" + nm + \" option\", \"#\" + fmid).each(function (j) {\n if (!cm[i].editoptions.multiple && ($.trim(tmp) == $.trim($(this).text()) || opv[0] == $.trim($(this).text()) || opv[0] == $.trim($(this).val()))) {\n this.selected = true;\n } else if (cm[i].editoptions.multiple) {\n if ($.inArray($.trim($(this).text()), opv) > -1 || $.inArray($.trim($(this).val()), opv) > -1) {\n this.selected = true;\n } else {\n this.selected = false;\n }\n } else {\n this.selected = false;\n }\n });\n break;\n case \"checkbox\":\n tmp = tmp + \"\";\n if (cm[i].editoptions && cm[i].editoptions.value) {\n var cb = cm[i].editoptions.value.split(\":\");\n if (cb[0] == tmp) {\n $(\"#\" + nm, \"#\" + fmid)[$t.p.useProp ? 'prop' : 'attr'](\"checked\", true);\n $(\"#\" + nm, \"#\" + fmid)[$t.p.useProp ? 'prop' : 'attr'](\"defaultChecked\", true); //ie\n } else {\n $(\"#\" + nm, \"#\" + fmid)[$t.p.useProp ? 'prop' : 'attr'](\"checked\", false);\n $(\"#\" + nm, \"#\" + fmid)[$t.p.useProp ? 'prop' : 'attr'](\"defaultChecked\", false); //ie\n }\n } else {\n tmp = tmp.toLowerCase();\n if (tmp.search(/(false|0|no|off|undefined)/i) < 0 && tmp !== \"\") {\n $(\"#\" + nm, \"#\" + fmid)[$t.p.useProp ? 'prop' : 'attr'](\"checked\", true);\n $(\"#\" + nm, \"#\" + fmid)[$t.p.useProp ? 'prop' : 'attr'](\"defaultChecked\", true); //ie\n } else {\n $(\"#\" + nm, \"#\" + fmid)[$t.p.useProp ? 'prop' : 'attr'](\"checked\", false);\n $(\"#\" + nm, \"#\" + fmid)[$t.p.useProp ? 'prop' : 'attr'](\"defaultChecked\", false); //ie\n }\n }\n break;\n case 'custom':\n try {\n if (cm[i].editoptions && $.isFunction(cm[i].editoptions.custom_value)) {\n cm[i].editoptions.custom_value($(\"#\" + nm, \"#\" + fmid), 'set', tmp);\n } else { throw \"e1\"; }\n } catch (e) {\n if (e == \"e1\") { $.jgrid.info_dialog(jQuery.jgrid.errors.errcap, \"function 'custom_value' \" + $.jgrid.edit.msg.nodefined, jQuery.jgrid.edit.bClose); }\n else { $.jgrid.info_dialog(jQuery.jgrid.errors.errcap, e.message, jQuery.jgrid.edit.bClose); }\n }\n break;\n }\n cnt++;\n }\n });\n if (cnt > 0) { $(\"#id_g\", \"#\" + frmtb).val(rowid); }\n }\n function setNulls() {\n $.each($t.p.colModel, function (i, n) {\n if (n.editoptions && n.editoptions.NullIfEmpty === true) {\n if (postdata.hasOwnProperty(n.name) && postdata[n.name] === \"\") {\n postdata[n.name] = 'null';\n }\n }\n });\n }\n function postIt() {\n var copydata, ret = [true, \"\", \"\"], onCS = {}, opers = $t.p.prmNames, idname, oper, key, selr, i;\n if ($.isFunction(rp_ge[$t.p.id].beforeCheckValues)) {\n var retvals = rp_ge[$t.p.id].beforeCheckValues(postdata, $(\"#\" + frmgr), postdata[$t.p.id + \"_id\"] == \"_empty\" ? opers.addoper : opers.editoper);\n if (retvals && typeof (retvals) === 'object') { postdata = retvals; }\n }\n for (key in postdata) {\n if (postdata.hasOwnProperty(key)) {\n ret = $.jgrid.checkValues(postdata[key], key, $t);\n if (ret[0] === false) { break; }\n }\n }\n setNulls();\n if (ret[0]) {\n if ($.isFunction(rp_ge[$t.p.id].onclickSubmit)) {\n onCS = rp_ge[$t.p.id].onclickSubmit(rp_ge[$t.p.id], postdata) || {};\n }\n if ($.isFunction(rp_ge[$t.p.id].beforeSubmit)) { ret = rp_ge[$t.p.id].beforeSubmit(postdata, $(\"#\" + frmgr)); }\n }\n\n if (ret[0] && !rp_ge[$t.p.id].processing) {\n rp_ge[$t.p.id].processing = true;\n $(\"#sData\", \"#\" + frmtb + \"_2\").addClass('ui-state-active');\n oper = opers.oper;\n idname = opers.id;\n // we add to pos data array the action - the name is oper\n postdata[oper] = ($.trim(postdata[$t.p.id + \"_id\"]) == \"_empty\") ? opers.addoper : opers.editoper;\n if (postdata[oper] != opers.addoper) {\n postdata[idname] = postdata[$t.p.id + \"_id\"];\n } else {\n // check to see if we have allredy this field in the form and if yes lieve it\n if (postdata[idname] === undefined) { postdata[idname] = postdata[$t.p.id + \"_id\"]; }\n }\n delete postdata[$t.p.id + \"_id\"];\n postdata = $.extend(postdata, rp_ge[$t.p.id].editData, onCS);\n if ($t.p.treeGrid === true) {\n if (postdata[oper] == opers.addoper) {\n selr = $($t).jqGrid(\"getGridParam\", 'selrow');\n var tr_par_id = $t.p.treeGridModel == 'adjacency' ? $t.p.treeReader.parent_id_field : 'parent_id';\n postdata[tr_par_id] = selr;\n }\n for (i in $t.p.treeReader) {\n if ($t.p.treeReader.hasOwnProperty(i)) {\n var itm = $t.p.treeReader[i];\n if (postdata.hasOwnProperty(itm)) {\n if (postdata[oper] == opers.addoper && i === 'parent_id_field') { continue; }\n delete postdata[itm];\n }\n }\n }\n }\n\n postdata[idname] = $.jgrid.stripPref($t.p.idPrefix, postdata[idname]);\n var ajaxOptions = $.extend({\n url: rp_ge[$t.p.id].url ? rp_ge[$t.p.id].url : $($t).jqGrid('getGridParam', 'editurl'),\n type: rp_ge[$t.p.id].mtype,\n data: $.isFunction(rp_ge[$t.p.id].serializeEditData) ? rp_ge[$t.p.id].serializeEditData(postdata) : postdata,\n complete: function (data, Status) {\n postdata[idname] = $t.p.idPrefix + postdata[idname];\n if (Status != \"success\") {\n ret[0] = false;\n if ($.isFunction(rp_ge[$t.p.id].errorTextFormat)) {\n ret[1] = rp_ge[$t.p.id].errorTextFormat(data);\n } else {\n ret[1] = Status + \" Status: '\" + data.statusText + \"'. Error code: \" + data.status;\n }\n } else {\n // data is posted successful\n // execute aftersubmit with the returned data from server\n if ($.isFunction(rp_ge[$t.p.id].afterSubmit)) {\n ret = rp_ge[$t.p.id].afterSubmit(data, postdata);\n }\n }\n if (ret[0] === false) {\n $(\"#FormError>td\", \"#\" + frmtb).html(ret[1]);\n $(\"#FormError\", \"#\" + frmtb).show();\n } else {\n // remove some values if formattaer select or checkbox\n $.each($t.p.colModel, function (i, n) {\n if (extpost[this.name] && this.formatter && this.formatter == 'select') {\n try { delete extpost[this.name]; } catch (e) { }\n }\n });\n postdata = $.extend(postdata, extpost);\n if ($t.p.autoencode) {\n $.each(postdata, function (n, v) {\n postdata[n] = $.jgrid.htmlDecode(v);\n });\n }\n //rp_ge[$t.p.id].reloadAfterSubmit = rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype != \"local\";\n // the action is add\n if (postdata[oper] == opers.addoper) {\n //id processing\n // user not set the id ret[2]\n if (!ret[2]) { ret[2] = $.jgrid.randId(); }\n postdata[idname] = ret[2];\n if (rp_ge[$t.p.id].closeAfterAdd) {\n if (rp_ge[$t.p.id].reloadAfterSubmit) { $($t).trigger(\"reloadGrid\"); }\n else {\n if ($t.p.treeGrid === true) {\n $($t).jqGrid(\"addChildNode\", ret[2], selr, postdata);\n } else {\n $($t).jqGrid(\"addRowData\", ret[2], postdata, p.addedrow);\n $($t).jqGrid(\"setSelection\", ret[2]);\n }\n }\n $.jgrid.hideModal(\"#\" + IDs.themodal, { gb: \"#gbox_\" + gID, jqm: p.jqModal, onClose: rp_ge[$t.p.id].onClose });\n } else if (rp_ge[$t.p.id].clearAfterAdd) {\n if (rp_ge[$t.p.id].reloadAfterSubmit) { $($t).trigger(\"reloadGrid\"); }\n else {\n if ($t.p.treeGrid === true) {\n $($t).jqGrid(\"addChildNode\", ret[2], selr, postdata);\n } else {\n $($t).jqGrid(\"addRowData\", ret[2], postdata, p.addedrow);\n }\n }\n fillData(\"_empty\", $t, frmgr);\n } else {\n if (rp_ge[$t.p.id].reloadAfterSubmit) { $($t).trigger(\"reloadGrid\"); }\n else {\n if ($t.p.treeGrid === true) {\n $($t).jqGrid(\"addChildNode\", ret[2], selr, postdata);\n } else {\n $($t).jqGrid(\"addRowData\", ret[2], postdata, p.addedrow);\n }\n }\n }\n } else {\n // the action is update\n if (rp_ge[$t.p.id].reloadAfterSubmit) {\n $($t).trigger(\"reloadGrid\");\n if (!rp_ge[$t.p.id].closeAfterEdit) { setTimeout(function () { $($t).jqGrid(\"setSelection\", postdata[idname]); }, 1000); }\n } else {\n if ($t.p.treeGrid === true) {\n $($t).jqGrid(\"setTreeRow\", postdata[idname], postdata);\n } else {\n $($t).jqGrid(\"setRowData\", postdata[idname], postdata);\n }\n }\n if (rp_ge[$t.p.id].closeAfterEdit) { $.jgrid.hideModal(\"#\" + IDs.themodal, { gb: \"#gbox_\" + gID, jqm: p.jqModal, onClose: rp_ge[$t.p.id].onClose }); }\n }\n if ($.isFunction(rp_ge[$t.p.id].afterComplete)) {\n copydata = data;\n setTimeout(function () { rp_ge[$t.p.id].afterComplete(copydata, postdata, $(\"#\" + frmgr)); copydata = null; }, 500);\n }\n if (rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n $(\"#\" + frmgr).data(\"disabled\", false);\n if (rp_ge[$t.p.id]._savedData[$t.p.id + \"_id\"] != \"_empty\") {\n for (var key in rp_ge[$t.p.id]._savedData) {\n if (postdata[key]) {\n rp_ge[$t.p.id]._savedData[key] = postdata[key];\n }\n }\n }\n }\n }\n rp_ge[$t.p.id].processing = false;\n $(\"#sData\", \"#\" + frmtb + \"_2\").removeClass('ui-state-active');\n try { $(':input:visible', \"#\" + frmgr)[0].focus(); } catch (e) { }\n }\n }, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxEditOptions);\n\n if (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) {\n if ($.isFunction($t.p.dataProxy)) {\n rp_ge[$t.p.id].useDataProxy = true;\n } else {\n ret[0] = false; ret[1] += \" \" + $.jgrid.errors.nourl;\n }\n }\n if (ret[0]) {\n if (rp_ge[$t.p.id].useDataProxy) {\n var dpret = $t.p.dataProxy.call($t, ajaxOptions, \"set_\" + $t.p.id);\n if (typeof (dpret) == \"undefined\") {\n dpret = [true, \"\"];\n }\n if (dpret[0] === false) {\n ret[0] = false;\n ret[1] = dpret[1] || \"Error deleting the selected row!\";\n } else {\n if (ajaxOptions.data.oper == opers.addoper && rp_ge[$t.p.id].closeAfterAdd) {\n $.jgrid.hideModal(\"#\" + IDs.themodal, { gb: \"#gbox_\" + gID, jqm: p.jqModal, onClose: rp_ge[$t.p.id].onClose });\n }\n if (ajaxOptions.data.oper == opers.editoper && rp_ge[$t.p.id].closeAfterEdit) {\n $.jgrid.hideModal(\"#\" + IDs.themodal, { gb: \"#gbox_\" + gID, jqm: p.jqModal, onClose: rp_ge[$t.p.id].onClose });\n }\n }\n } else {\n $.ajax(ajaxOptions);\n }\n }\n }\n if (ret[0] === false) {\n $(\"#FormError>td\", \"#\" + frmtb).html(ret[1]);\n $(\"#FormError\", \"#\" + frmtb).show();\n // return;\n }\n }\n function compareData(nObj, oObj) {\n var ret = false, key;\n for (key in nObj) {\n if (nObj[key] != oObj[key]) {\n ret = true;\n break;\n }\n }\n return ret;\n }\n function checkUpdates() {\n var stat = true;\n $(\"#FormError\", \"#\" + frmtb).hide();\n if (rp_ge[$t.p.id].checkOnUpdate) {\n postdata = {}; extpost = {};\n getFormData();\n newData = $.extend({}, postdata, extpost);\n diff = compareData(newData, rp_ge[$t.p.id]._savedData);\n if (diff) {\n $(\"#\" + frmgr).data(\"disabled\", true);\n $(\".confirm\", \"#\" + IDs.themodal).show();\n stat = false;\n }\n }\n return stat;\n }\n function restoreInline() {\n if (rowid !== \"_empty\" && typeof ($t.p.savedRow) !== \"undefined\" && $t.p.savedRow.length > 0 && $.isFunction($.fn.jqGrid.restoreRow)) {\n for (var i = 0; i < $t.p.savedRow.length; i++) {\n if ($t.p.savedRow[i].id == rowid) {\n $($t).jqGrid('restoreRow', rowid);\n break;\n }\n }\n }\n }\n function updateNav(cr, totr) {\n if (cr === 0) { $(\"#pData\", \"#\" + frmtb + \"_2\").addClass('ui-state-disabled'); } else { $(\"#pData\", \"#\" + frmtb + \"_2\").removeClass('ui-state-disabled'); }\n if (cr == totr) { $(\"#nData\", \"#\" + frmtb + \"_2\").addClass('ui-state-disabled'); } else { $(\"#nData\", \"#\" + frmtb + \"_2\").removeClass('ui-state-disabled'); }\n }\n function getCurrPos() {\n var rowsInGrid = $($t).jqGrid(\"getDataIDs\"),\n\t\t\t\tselrow = $(\"#id_g\", \"#\" + frmtb).val(),\n\t\t\t\tpos = $.inArray(selrow, rowsInGrid);\n return [pos, rowsInGrid];\n }\n\n if ($(\"#\" + IDs.themodal).html() !== null) {\n if (onBeforeInit) {\n showFrm = onBeforeInit($(\"#\" + frmgr));\n if (typeof (showFrm) == \"undefined\") {\n showFrm = true;\n }\n }\n if (showFrm === false) { return; }\n restoreInline();\n $(\".ui-jqdialog-title\", \"#\" + IDs.modalhead).html(p.caption);\n $(\"#FormError\", \"#\" + frmtb).hide();\n if (rp_ge[$t.p.id].topinfo) {\n $(\".topinfo\", \"#\" + frmtb).html(rp_ge[$t.p.id].topinfo);\n $(\".tinfo\", \"#\" + frmtb).show();\n } else {\n $(\".tinfo\", \"#\" + frmtb).hide();\n }\n if (rp_ge[$t.p.id].bottominfo) {\n $(\".bottominfo\", \"#\" + frmtb + \"_2\").html(rp_ge[$t.p.id].bottominfo);\n $(\".binfo\", \"#\" + frmtb + \"_2\").show();\n } else {\n $(\".binfo\", \"#\" + frmtb + \"_2\").hide();\n }\n // filldata\n fillData(rowid, $t, frmgr);\n ///\n if (rowid == \"_empty\" || !rp_ge[$t.p.id].viewPagerButtons) {\n $(\"#pData, #nData\", \"#\" + frmtb + \"_2\").hide();\n } else {\n $(\"#pData, #nData\", \"#\" + frmtb + \"_2\").show();\n }\n if (rp_ge[$t.p.id].processing === true) {\n rp_ge[$t.p.id].processing = false;\n $(\"#sData\", \"#\" + frmtb + \"_2\").removeClass('ui-state-active');\n }\n if ($(\"#\" + frmgr).data(\"disabled\") === true) {\n $(\".confirm\", \"#\" + IDs.themodal).hide();\n $(\"#\" + frmgr).data(\"disabled\", false);\n }\n if (onBeforeShow) { onBeforeShow($(\"#\" + frmgr)); }\n $(\"#\" + IDs.themodal).data(\"onClose\", rp_ge[$t.p.id].onClose);\n $.jgrid.viewModal(\"#\" + IDs.themodal, { gbox: \"#gbox_\" + gID, jqm: p.jqModal, jqM: false, overlay: p.overlay, modal: p.modal });\n if (!closeovrl) {\n $(\".jqmOverlay\").click(function () {\n if (!checkUpdates()) { return false; }\n $.jgrid.hideModal(\"#\" + IDs.themodal, { gb: \"#gbox_\" + gID, jqm: p.jqModal, onClose: rp_ge[$t.p.id].onClose });\n return false;\n });\n }\n if (onAfterShow) { onAfterShow($(\"#\" + frmgr)); }\n } else {\n var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight + \"px\",\n\t\t\t\tfrm = $(\"
    \").data(\"disabled\", false),\n\t\t\t\ttbl = $(\"
    \");\n if (onBeforeInit) {\n showFrm = onBeforeInit($(\"#\" + frmgr));\n if (typeof (showFrm) == \"undefined\") {\n showFrm = true;\n }\n }\n if (showFrm === false) { return; }\n restoreInline();\n $($t.p.colModel).each(function (i) {\n var fmto = this.formoptions;\n maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0);\n maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0);\n });\n $(frm).append(tbl);\n var flr = $(\"\");\n flr[0].rp = 0;\n $(tbl).append(flr);\n //topinfo\n flr = $(\"\" + rp_ge[$t.p.id].topinfo + \"\");\n flr[0].rp = 0;\n $(tbl).append(flr);\n // set the id.\n // use carefull only to change here colproperties.\n // create data\n var rtlb = $t.p.direction == \"rtl\" ? true : false,\n\t\t\t\tbp = rtlb ? \"nData\" : \"pData\",\n\t\t\t\tbn = rtlb ? \"pData\" : \"nData\";\n createData(rowid, $t, tbl, maxCols);\n // buttons at footer\n var bP = \"\",\n\t\t\t\tbN = \"\",\n\t\t\t\tbS = \"\" + p.bSubmit + \"\",\n\t\t\t\tbC = \"\" + p.bCancel + \"\";\n var bt = \"\";\n bt += \"\";\n bt += \"

    \" + bS + bC + \"
    \";\n if (maxRows > 0) {\n var sd = [];\n $.each($(tbl)[0].rows, function (i, r) {\n sd[i] = r;\n });\n sd.sort(function (a, b) {\n if (a.rp > b.rp) { return 1; }\n if (a.rp < b.rp) { return -1; }\n return 0;\n });\n $.each(sd, function (index, row) {\n $('tbody', tbl).append(row);\n });\n }\n p.gbox = \"#gbox_\" + gID;\n var cle = false;\n if (p.closeOnEscape === true) {\n p.closeOnEscape = false;\n cle = true;\n }\n var tms = $(\"\").append(frm).append(bt);\n $.jgrid.createModal(IDs, tms, p, \"#gview_\" + $t.p.id, $(\"#gbox_\" + $t.p.id)[0]);\n if (rtlb) {\n $(\"#pData, #nData\", \"#\" + frmtb + \"_2\").css(\"float\", \"right\");\n $(\".EditButton\", \"#\" + frmtb + \"_2\").css(\"text-align\", \"left\");\n }\n if (rp_ge[$t.p.id].topinfo) { $(\".tinfo\", \"#\" + frmtb).show(); }\n if (rp_ge[$t.p.id].bottominfo) { $(\".binfo\", \"#\" + frmtb + \"_2\").show(); }\n tms = null; bt = null;\n $(\"#\" + IDs.themodal).keydown(function (e) {\n var wkey = e.target;\n if ($(\"#\" + frmgr).data(\"disabled\") === true) { return false; } //??\n if (rp_ge[$t.p.id].savekey[0] === true && e.which == rp_ge[$t.p.id].savekey[1]) { // save\n if (wkey.tagName != \"TEXTAREA\") {\n $(\"#sData\", \"#\" + frmtb + \"_2\").trigger(\"click\");\n return false;\n }\n }\n if (e.which === 27) {\n if (!checkUpdates()) { return false; }\n if (cle) { $.jgrid.hideModal(this, { gb: p.gbox, jqm: p.jqModal, onClose: rp_ge[$t.p.id].onClose }); }\n return false;\n }\n if (rp_ge[$t.p.id].navkeys[0] === true) {\n if ($(\"#id_g\", \"#\" + frmtb).val() == \"_empty\") { return true; }\n if (e.which == rp_ge[$t.p.id].navkeys[1]) { //up\n $(\"#pData\", \"#\" + frmtb + \"_2\").trigger(\"click\");\n return false;\n }\n if (e.which == rp_ge[$t.p.id].navkeys[2]) { //down\n $(\"#nData\", \"#\" + frmtb + \"_2\").trigger(\"click\");\n return false;\n }\n }\n });\n if (p.checkOnUpdate) {\n $(\"a.ui-jqdialog-titlebar-close span\", \"#\" + IDs.themodal).removeClass(\"jqmClose\");\n $(\"a.ui-jqdialog-titlebar-close\", \"#\" + IDs.themodal).unbind(\"click\")\n\t\t\t\t\t.click(function () {\n\t\t\t\t\t if (!checkUpdates()) { return false; }\n\t\t\t\t\t $.jgrid.hideModal(\"#\" + IDs.themodal, { gb: \"#gbox_\" + gID, jqm: p.jqModal, onClose: rp_ge[$t.p.id].onClose });\n\t\t\t\t\t return false;\n\t\t\t\t\t});\n }\n p.saveicon = $.extend([true, \"left\", \"ui-icon-disk\"], p.saveicon);\n p.closeicon = $.extend([true, \"left\", \"ui-icon-close\"], p.closeicon);\n // beforeinitdata after creation of the form\n if (p.saveicon[0] === true) {\n $(\"#sData\", \"#\" + frmtb + \"_2\").addClass(p.saveicon[1] == \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"\");\n }\n if (p.closeicon[0] === true) {\n $(\"#cData\", \"#\" + frmtb + \"_2\").addClass(p.closeicon[1] == \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"\");\n }\n if (rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n bS = \"\" + p.bYes + \"\";\n bN = \"\" + p.bNo + \"\";\n bC = \"\" + p.bExit + \"\";\n var ii, zI = p.zIndex || 999; zI++;\n if ($.browser.msie && $.browser.version == 6) {\n ii = '';\n } else { ii = \"\"; }\n $(\"
    \" + p.saveData + \"

    \" + bS + bN + bC + \"
    \").insertAfter(\"#\" + frmgr);\n $(\"#sNew\", \"#\" + IDs.themodal).click(function () {\n postIt();\n $(\"#\" + frmgr).data(\"disabled\", false);\n $(\".confirm\", \"#\" + IDs.themodal).hide();\n return false;\n });\n $(\"#nNew\", \"#\" + IDs.themodal).click(function () {\n $(\".confirm\", \"#\" + IDs.themodal).hide();\n $(\"#\" + frmgr).data(\"disabled\", false);\n setTimeout(function () { $(\":input\", \"#\" + frmgr)[0].focus(); }, 0);\n return false;\n });\n $(\"#cNew\", \"#\" + IDs.themodal).click(function () {\n $(\".confirm\", \"#\" + IDs.themodal).hide();\n $(\"#\" + frmgr).data(\"disabled\", false);\n $.jgrid.hideModal(\"#\" + IDs.themodal, { gb: \"#gbox_\" + gID, jqm: p.jqModal, onClose: rp_ge[$t.p.id].onClose });\n return false;\n });\n }\n // here initform - only once\n if (onInitializeForm) { onInitializeForm($(\"#\" + frmgr)); }\n if (rowid == \"_empty\" || !rp_ge[$t.p.id].viewPagerButtons) { $(\"#pData,#nData\", \"#\" + frmtb + \"_2\").hide(); } else { $(\"#pData,#nData\", \"#\" + frmtb + \"_2\").show(); }\n if (onBeforeShow) { onBeforeShow($(\"#\" + frmgr)); }\n $(\"#\" + IDs.themodal).data(\"onClose\", rp_ge[$t.p.id].onClose);\n $.jgrid.viewModal(\"#\" + IDs.themodal, { gbox: \"#gbox_\" + gID, jqm: p.jqModal, overlay: p.overlay, modal: p.modal });\n if (!closeovrl) {\n $(\".jqmOverlay\").click(function () {\n if (!checkUpdates()) { return false; }\n $.jgrid.hideModal(\"#\" + IDs.themodal, { gb: \"#gbox_\" + gID, jqm: p.jqModal, onClose: rp_ge[$t.p.id].onClose });\n return false;\n });\n }\n if (onAfterShow) { onAfterShow($(\"#\" + frmgr)); }\n $(\".fm-button\", \"#\" + IDs.themodal).hover(\n\t\t\t\t function () { $(this).addClass('ui-state-hover'); },\n\t\t\t\t function () { $(this).removeClass('ui-state-hover'); }\n\t\t\t\t);\n $(\"#sData\", \"#\" + frmtb + \"_2\").click(function (e) {\n postdata = {}; extpost = {};\n $(\"#FormError\", \"#\" + frmtb).hide();\n // all depend on ret array\n //ret[0] - succes\n //ret[1] - msg if not succes\n //ret[2] - the id that will be set if reload after submit false\n getFormData();\n if (postdata[$t.p.id + \"_id\"] == \"_empty\") { postIt(); }\n else if (p.checkOnSubmit === true) {\n newData = $.extend({}, postdata, extpost);\n diff = compareData(newData, rp_ge[$t.p.id]._savedData);\n if (diff) {\n $(\"#\" + frmgr).data(\"disabled\", true);\n $(\".confirm\", \"#\" + IDs.themodal).show();\n } else {\n postIt();\n }\n } else {\n postIt();\n }\n return false;\n });\n $(\"#cData\", \"#\" + frmtb + \"_2\").click(function (e) {\n if (!checkUpdates()) { return false; }\n $.jgrid.hideModal(\"#\" + IDs.themodal, { gb: \"#gbox_\" + gID, jqm: p.jqModal, onClose: rp_ge[$t.p.id].onClose });\n return false;\n });\n $(\"#nData\", \"#\" + frmtb + \"_2\").click(function (e) {\n if (!checkUpdates()) { return false; }\n $(\"#FormError\", \"#\" + frmtb).hide();\n var npos = getCurrPos();\n npos[0] = parseInt(npos[0], 10);\n if (npos[0] != -1 && npos[1][npos[0] + 1]) {\n if ($.isFunction(p.onclickPgButtons)) {\n p.onclickPgButtons('next', $(\"#\" + frmgr), npos[1][npos[0]]);\n }\n fillData(npos[1][npos[0] + 1], $t, frmgr);\n $($t).jqGrid(\"setSelection\", npos[1][npos[0] + 1]);\n if ($.isFunction(p.afterclickPgButtons)) {\n p.afterclickPgButtons('next', $(\"#\" + frmgr), npos[1][npos[0] + 1]);\n }\n updateNav(npos[0] + 1, npos[1].length - 1);\n }\n return false;\n });\n $(\"#pData\", \"#\" + frmtb + \"_2\").click(function (e) {\n if (!checkUpdates()) { return false; }\n $(\"#FormError\", \"#\" + frmtb).hide();\n var ppos = getCurrPos();\n if (ppos[0] != -1 && ppos[1][ppos[0] - 1]) {\n if ($.isFunction(p.onclickPgButtons)) {\n p.onclickPgButtons('prev', $(\"#\" + frmgr), ppos[1][ppos[0]]);\n }\n fillData(ppos[1][ppos[0] - 1], $t, frmgr);\n $($t).jqGrid(\"setSelection\", ppos[1][ppos[0] - 1]);\n if ($.isFunction(p.afterclickPgButtons)) {\n p.afterclickPgButtons('prev', $(\"#\" + frmgr), ppos[1][ppos[0] - 1]);\n }\n updateNav(ppos[0] - 1, ppos[1].length - 1);\n }\n return false;\n });\n }\n var posInit = getCurrPos();\n updateNav(posInit[0], posInit[1].length - 1);\n\n });\n },\n viewGridRow: function (rowid, p) {\n p = $.extend({\n top: 0,\n left: 0,\n width: 0,\n height: 'auto',\n dataheight: 'auto',\n modal: false,\n overlay: 30,\n drag: true,\n resize: true,\n jqModal: true,\n closeOnEscape: false,\n labelswidth: '30%',\n closeicon: [],\n navkeys: [false, 38, 40],\n onClose: null,\n beforeShowForm: null,\n beforeInitData: null,\n viewPagerButtons: true\n }, $.jgrid.view, p || {});\n return this.each(function () {\n var $t = this;\n if (!$t.grid || !rowid) { return; }\n var gID = $t.p.id,\n\t\t\tfrmgr = \"ViewGrid_\" + gID, frmtb = \"ViewTbl_\" + gID,\n\t\t\tIDs = { themodal: 'viewmod' + gID, modalhead: 'viewhd' + gID, modalcontent: 'viewcnt' + gID, scrollelm: frmgr },\n\t\t\tonBeforeInit = $.isFunction(p.beforeInitData) ? p.beforeInitData : false,\n\t\t\tshowFrm = true,\n\t\t\tmaxCols = 1, maxRows = 0;\n function focusaref() { //Sfari 3 issues\n if (p.closeOnEscape === true || p.navkeys[0] === true) {\n setTimeout(function () { $(\".ui-jqdialog-titlebar-close\", \"#\" + IDs.modalhead).focus(); }, 0);\n }\n }\n function createData(rowid, obj, tb, maxcols) {\n var nm, hc, trdata, cnt = 0, tmp, dc, retpos = [], ind = false,\n\t\t\t\ttdtmpl = \"  \", tmpl = \"\",\n\t\t\t\ttdtmpl2 = \"  \",\n\t\t\t\tfmtnum = ['integer', 'number', 'currency'], max1 = 0, max2 = 0, maxw, setme, viewfld;\n for (var i = 1; i <= maxcols; i++) {\n tmpl += i == 1 ? tdtmpl : tdtmpl2;\n }\n // find max number align rigth with property formatter\n $(obj.p.colModel).each(function (i) {\n if (this.editrules && this.editrules.edithidden === true) {\n hc = false;\n } else {\n hc = this.hidden === true ? true : false;\n }\n if (!hc && this.align === 'right') {\n if (this.formatter && $.inArray(this.formatter, fmtnum) !== -1) {\n max1 = Math.max(max1, parseInt(this.width, 10));\n } else {\n max2 = Math.max(max2, parseInt(this.width, 10));\n }\n }\n });\n maxw = max1 !== 0 ? max1 : max2 !== 0 ? max2 : 0;\n ind = $(obj).jqGrid(\"getInd\", rowid);\n $(obj.p.colModel).each(function (i) {\n nm = this.name;\n setme = false;\n // hidden fields are included in the form\n if (this.editrules && this.editrules.edithidden === true) {\n hc = false;\n } else {\n hc = this.hidden === true ? true : false;\n }\n dc = hc ? \"style='display:none'\" : \"\";\n viewfld = (typeof this.viewable != 'boolean') ? true : this.viewable;\n if (nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && viewfld) {\n if (ind === false) {\n tmp = \"\";\n } else {\n if (nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {\n tmp = $(\"td:eq(\" + i + \")\", obj.rows[ind]).text();\n } else {\n tmp = $(\"td:eq(\" + i + \")\", obj.rows[ind]).html();\n }\n }\n setme = this.align === 'right' && maxw !== 0 ? true : false;\n var opt = $.extend({}, this.editoptions || {}, { id: nm, name: nm }),\n\t\t\t\t\t\tfrmopt = $.extend({}, { rowabove: false, rowcontent: '' }, this.formoptions || {}),\n\t\t\t\t\t\trp = parseInt(frmopt.rowpos, 10) || cnt + 1,\n\t\t\t\t\t\tcp = parseInt((parseInt(frmopt.colpos, 10) || 1) * 2, 10);\n if (frmopt.rowabove) {\n var newdata = $(\"\" + frmopt.rowcontent + \"\");\n $(tb).append(newdata);\n newdata[0].rp = rp;\n }\n trdata = $(tb).find(\"tr[rowpos=\" + rp + \"]\");\n if (trdata.length === 0) {\n trdata = $(\"\").addClass(\"FormData\").attr(\"id\", \"trv_\" + nm);\n $(trdata).append(tmpl);\n $(tb).append(trdata);\n trdata[0].rp = rp;\n }\n $(\"td:eq(\" + (cp - 2) + \")\", trdata[0]).html('' + (typeof frmopt.label === 'undefined' ? obj.p.colNames[i] : frmopt.label) + '');\n $(\"td:eq(\" + (cp - 1) + \")\", trdata[0]).append(\"\" + tmp + \"\").attr(\"id\", \"v_\" + nm);\n if (setme) {\n $(\"td:eq(\" + (cp - 1) + \") span\", trdata[0]).css({ 'text-align': 'right', width: maxw + \"px\" });\n }\n retpos[cnt] = i;\n cnt++;\n }\n });\n if (cnt > 0) {\n var idrow = $(\"\");\n idrow[0].rp = cnt + 99;\n $(tb).append(idrow);\n }\n return retpos;\n }\n function fillData(rowid, obj) {\n var nm, hc, cnt = 0, tmp, opt, trv;\n trv = $(obj).jqGrid(\"getInd\", rowid, true);\n if (!trv) { return; }\n $('td', trv).each(function (i) {\n nm = obj.p.colModel[i].name;\n // hidden fields are included in the form\n if (obj.p.colModel[i].editrules && obj.p.colModel[i].editrules.edithidden === true) {\n hc = false;\n } else {\n hc = obj.p.colModel[i].hidden === true ? true : false;\n }\n if (nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {\n if (nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {\n tmp = $(this).text();\n } else {\n tmp = $(this).html();\n }\n opt = $.extend({}, obj.p.colModel[i].editoptions || {});\n nm = $.jgrid.jqID(\"v_\" + nm);\n $(\"#\" + nm + \" span\", \"#\" + frmtb).html(tmp);\n if (hc) { $(\"#\" + nm, \"#\" + frmtb).parents(\"tr:first\").hide(); }\n cnt++;\n }\n });\n if (cnt > 0) { $(\"#id_g\", \"#\" + frmtb).val(rowid); }\n }\n function updateNav(cr, totr) {\n if (cr === 0) { $(\"#pData\", \"#\" + frmtb + \"_2\").addClass('ui-state-disabled'); } else { $(\"#pData\", \"#\" + frmtb + \"_2\").removeClass('ui-state-disabled'); }\n if (cr == totr) { $(\"#nData\", \"#\" + frmtb + \"_2\").addClass('ui-state-disabled'); } else { $(\"#nData\", \"#\" + frmtb + \"_2\").removeClass('ui-state-disabled'); }\n }\n function getCurrPos() {\n var rowsInGrid = $($t).jqGrid(\"getDataIDs\"),\n\t\t\t\tselrow = $(\"#id_g\", \"#\" + frmtb).val(),\n\t\t\t\tpos = $.inArray(selrow, rowsInGrid);\n return [pos, rowsInGrid];\n }\n\n if ($(\"#\" + IDs.themodal).html() !== null) {\n if (onBeforeInit) {\n showFrm = onBeforeInit($(\"#\" + frmgr));\n if (typeof (showFrm) == \"undefined\") {\n showFrm = true;\n }\n }\n if (showFrm === false) { return; }\n $(\".ui-jqdialog-title\", \"#\" + IDs.modalhead).html(p.caption);\n $(\"#FormError\", \"#\" + frmtb).hide();\n fillData(rowid, $t);\n if ($.isFunction(p.beforeShowForm)) { p.beforeShowForm($(\"#\" + frmgr)); }\n $.jgrid.viewModal(\"#\" + IDs.themodal, { gbox: \"#gbox_\" + gID, jqm: p.jqModal, jqM: false, overlay: p.overlay, modal: p.modal });\n focusaref();\n } else {\n var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight + \"px\";\n var frm = $(\"
    \"),\n\t\t\t\ttbl = $(\"
    \");\n if (onBeforeInit) {\n showFrm = onBeforeInit($(\"#\" + frmgr));\n if (typeof (showFrm) == \"undefined\") {\n showFrm = true;\n }\n }\n if (showFrm === false) { return; }\n $($t.p.colModel).each(function (i) {\n var fmto = this.formoptions;\n maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0);\n maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0);\n });\n // set the id.\n $(frm).append(tbl);\n createData(rowid, $t, tbl, maxCols);\n var rtlb = $t.p.direction == \"rtl\" ? true : false,\n\t\t\t\tbp = rtlb ? \"nData\" : \"pData\",\n\t\t\t\tbn = rtlb ? \"pData\" : \"nData\",\n\n // buttons at footer\n\t\t\t\tbP = \"\",\n\t\t\t\tbN = \"\",\n\t\t\t\tbC = \"\" + p.bClose + \"\";\n if (maxRows > 0) {\n var sd = [];\n $.each($(tbl)[0].rows, function (i, r) {\n sd[i] = r;\n });\n sd.sort(function (a, b) {\n if (a.rp > b.rp) { return 1; }\n if (a.rp < b.rp) { return -1; }\n return 0;\n });\n $.each(sd, function (index, row) {\n $('tbody', tbl).append(row);\n });\n }\n p.gbox = \"#gbox_\" + gID;\n var cle = false;\n if (p.closeOnEscape === true) {\n p.closeOnEscape = false;\n cle = true;\n }\n var bt = $(\"\").append(frm).append(\"
    \" + bC + \"
    \");\n $.jgrid.createModal(IDs, bt, p, \"#gview_\" + $t.p.id, $(\"#gview_\" + $t.p.id)[0]);\n if (rtlb) {\n $(\"#pData, #nData\", \"#\" + frmtb + \"_2\").css(\"float\", \"right\");\n $(\".EditButton\", \"#\" + frmtb + \"_2\").css(\"text-align\", \"left\");\n }\n if (!p.viewPagerButtons) { $(\"#pData, #nData\", \"#\" + frmtb + \"_2\").hide(); }\n bt = null;\n $(\"#\" + IDs.themodal).keydown(function (e) {\n if (e.which === 27) {\n if (cle) { $.jgrid.hideModal(this, { gb: p.gbox, jqm: p.jqModal, onClose: p.onClose }); }\n return false;\n }\n if (p.navkeys[0] === true) {\n if (e.which === p.navkeys[1]) { //up\n $(\"#pData\", \"#\" + frmtb + \"_2\").trigger(\"click\");\n return false;\n }\n if (e.which === p.navkeys[2]) { //down\n $(\"#nData\", \"#\" + frmtb + \"_2\").trigger(\"click\");\n return false;\n }\n }\n });\n p.closeicon = $.extend([true, \"left\", \"ui-icon-close\"], p.closeicon);\n if (p.closeicon[0] === true) {\n $(\"#cData\", \"#\" + frmtb + \"_2\").addClass(p.closeicon[1] == \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"\");\n }\n if ($.isFunction(p.beforeShowForm)) { p.beforeShowForm($(\"#\" + frmgr)); }\n $.jgrid.viewModal(\"#\" + IDs.themodal, { gbox: \"#gbox_\" + gID, jqm: p.jqModal, modal: p.modal });\n $(\".fm-button:not(.ui-state-disabled)\", \"#\" + frmtb + \"_2\").hover(\n\t\t\t\t function () { $(this).addClass('ui-state-hover'); },\n\t\t\t\t function () { $(this).removeClass('ui-state-hover'); }\n\t\t\t\t);\n focusaref();\n $(\"#cData\", \"#\" + frmtb + \"_2\").click(function (e) {\n $.jgrid.hideModal(\"#\" + IDs.themodal, { gb: \"#gbox_\" + gID, jqm: p.jqModal, onClose: p.onClose });\n return false;\n });\n $(\"#nData\", \"#\" + frmtb + \"_2\").click(function (e) {\n $(\"#FormError\", \"#\" + frmtb).hide();\n var npos = getCurrPos();\n npos[0] = parseInt(npos[0], 10);\n if (npos[0] != -1 && npos[1][npos[0] + 1]) {\n if ($.isFunction(p.onclickPgButtons)) {\n p.onclickPgButtons('next', $(\"#\" + frmgr), npos[1][npos[0]]);\n }\n fillData(npos[1][npos[0] + 1], $t);\n $($t).jqGrid(\"setSelection\", npos[1][npos[0] + 1]);\n if ($.isFunction(p.afterclickPgButtons)) {\n p.afterclickPgButtons('next', $(\"#\" + frmgr), npos[1][npos[0] + 1]);\n }\n updateNav(npos[0] + 1, npos[1].length - 1);\n }\n focusaref();\n return false;\n });\n $(\"#pData\", \"#\" + frmtb + \"_2\").click(function (e) {\n $(\"#FormError\", \"#\" + frmtb).hide();\n var ppos = getCurrPos();\n if (ppos[0] != -1 && ppos[1][ppos[0] - 1]) {\n if ($.isFunction(p.onclickPgButtons)) {\n p.onclickPgButtons('prev', $(\"#\" + frmgr), ppos[1][ppos[0]]);\n }\n fillData(ppos[1][ppos[0] - 1], $t);\n $($t).jqGrid(\"setSelection\", ppos[1][ppos[0] - 1]);\n if ($.isFunction(p.afterclickPgButtons)) {\n p.afterclickPgButtons('prev', $(\"#\" + frmgr), ppos[1][ppos[0] - 1]);\n }\n updateNav(ppos[0] - 1, ppos[1].length - 1);\n }\n focusaref();\n return false;\n });\n }\n var posInit = getCurrPos();\n updateNav(posInit[0], posInit[1].length - 1);\n });\n },\n delGridRow: function (rowids, p) {\n p = $.extend({\n top: 0,\n left: 0,\n width: 240,\n height: 'auto',\n dataheight: 'auto',\n modal: false,\n overlay: 30,\n drag: true,\n resize: true,\n url: '',\n mtype: \"POST\",\n reloadAfterSubmit: true,\n beforeShowForm: null,\n beforeInitData: null,\n afterShowForm: null,\n beforeSubmit: null,\n onclickSubmit: null,\n afterSubmit: null,\n jqModal: true,\n closeOnEscape: false,\n delData: {},\n delicon: [],\n cancelicon: [],\n onClose: null,\n ajaxDelOptions: {},\n processing: false,\n serializeDelData: null,\n useDataProxy: false\n }, $.jgrid.del, p || {});\n rp_ge[$(this)[0].p.id] = p;\n return this.each(function () {\n var $t = this;\n if (!$t.grid) { return; }\n if (!rowids) { return; }\n var onBeforeShow = $.isFunction(rp_ge[$t.p.id].beforeShowForm),\n\t\t\tonAfterShow = $.isFunction(rp_ge[$t.p.id].afterShowForm),\n\t\t\tonBeforeInit = $.isFunction(rp_ge[$t.p.id].beforeInitData) ? rp_ge[$t.p.id].beforeInitData : false,\n\t\t\tgID = $t.p.id, onCS = {},\n\t\t\tshowFrm = true,\n\t\t\tdtbl = \"DelTbl_\" + gID, postd, idname, opers, oper,\n\t\t\tIDs = { themodal: 'delmod' + gID, modalhead: 'delhd' + gID, modalcontent: 'delcnt' + gID, scrollelm: dtbl };\n if (jQuery.isArray(rowids)) { rowids = rowids.join(); }\n if ($(\"#\" + IDs.themodal).html() !== null) {\n if (onBeforeInit) {\n showFrm = onBeforeInit($(\"#\" + dtbl));\n if (typeof (showFrm) == \"undefined\") {\n showFrm = true;\n }\n }\n if (showFrm === false) { return; }\n $(\"#DelData>td\", \"#\" + dtbl).text(rowids);\n $(\"#DelError\", \"#\" + dtbl).hide();\n if (rp_ge[$t.p.id].processing === true) {\n rp_ge[$t.p.id].processing = false;\n $(\"#dData\", \"#\" + dtbl).removeClass('ui-state-active');\n }\n if (onBeforeShow) { rp_ge[$t.p.id].beforeShowForm($(\"#\" + dtbl)); }\n $.jgrid.viewModal(\"#\" + IDs.themodal, { gbox: \"#gbox_\" + gID, jqm: rp_ge[$t.p.id].jqModal, jqM: false, overlay: rp_ge[$t.p.id].overlay, modal: rp_ge[$t.p.id].modal });\n if (onAfterShow) { rp_ge[$t.p.id].afterShowForm($(\"#\" + dtbl)); }\n } else {\n var dh = isNaN(rp_ge[$t.p.id].dataheight) ? rp_ge[$t.p.id].dataheight : rp_ge[$t.p.id].dataheight + \"px\";\n var tbl = \"
    \";\n tbl += \"\";\n // error data\n tbl += \"\";\n tbl += \"\";\n tbl += \"\";\n // buttons at footer\n tbl += \"
    \" + rp_ge[$t.p.id].msg + \"
     
    \";\n var bS = \"\" + p.bSubmit + \"\",\n\t\t\t\tbC = \"\" + p.bCancel + \"\";\n tbl += \"

    \" + bS + \" \" + bC + \"
    \";\n p.gbox = \"#gbox_\" + gID;\n $.jgrid.createModal(IDs, tbl, p, \"#gview_\" + $t.p.id, $(\"#gview_\" + $t.p.id)[0]);\n\n if (onBeforeInit) {\n showFrm = onBeforeInit($(\"#\" + dtbl));\n if (typeof (showFrm) == \"undefined\") {\n showFrm = true;\n }\n }\n if (showFrm === false) { return; }\n\n $(\".fm-button\", \"#\" + dtbl + \"_2\").hover(\n\t\t\t\t function () { $(this).addClass('ui-state-hover'); },\n\t\t\t\t function () { $(this).removeClass('ui-state-hover'); }\n\t\t\t\t);\n p.delicon = $.extend([true, \"left\", \"ui-icon-scissors\"], rp_ge[$t.p.id].delicon);\n p.cancelicon = $.extend([true, \"left\", \"ui-icon-cancel\"], rp_ge[$t.p.id].cancelicon);\n if (p.delicon[0] === true) {\n $(\"#dData\", \"#\" + dtbl + \"_2\").addClass(p.delicon[1] == \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"\");\n }\n if (p.cancelicon[0] === true) {\n $(\"#eData\", \"#\" + dtbl + \"_2\").addClass(p.cancelicon[1] == \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"\");\n }\n $(\"#dData\", \"#\" + dtbl + \"_2\").click(function (e) {\n var ret = [true, \"\"]; onCS = {};\n var postdata = $(\"#DelData>td\", \"#\" + dtbl).text(); //the pair is name=val1,val2,...\n if ($.isFunction(rp_ge[$t.p.id].onclickSubmit)) { onCS = rp_ge[$t.p.id].onclickSubmit(rp_ge[$t.p.id], postdata) || {}; }\n if ($.isFunction(rp_ge[$t.p.id].beforeSubmit)) { ret = rp_ge[$t.p.id].beforeSubmit(postdata); }\n if (ret[0] && !rp_ge[$t.p.id].processing) {\n rp_ge[$t.p.id].processing = true;\n $(this).addClass('ui-state-active');\n opers = $t.p.prmNames;\n postd = $.extend({}, rp_ge[$t.p.id].delData, onCS);\n oper = opers.oper;\n postd[oper] = opers.deloper;\n idname = opers.id;\n postdata = postdata.split(\",\");\n for (var pk in postdata) {\n if (postdata.hasOwnProperty(pk)) {\n postdata[pk] = $.jgrid.stripPref($t.p.idPrefix, postdata[pk]);\n }\n }\n postd[idname] = postdata.join();\n\n var ajaxOptions = $.extend({\n url: rp_ge[$t.p.id].url ? rp_ge[$t.p.id].url : $($t).jqGrid('getGridParam', 'editurl'),\n type: rp_ge[$t.p.id].mtype,\n data: $.isFunction(rp_ge[$t.p.id].serializeDelData) ? rp_ge[$t.p.id].serializeDelData(postd) : postd,\n complete: function (data, Status) {\n if (Status != \"success\") {\n ret[0] = false;\n if ($.isFunction(rp_ge[$t.p.id].errorTextFormat)) {\n ret[1] = rp_ge[$t.p.id].errorTextFormat(data);\n } else {\n ret[1] = Status + \" Status: '\" + data.statusText + \"'. Error code: \" + data.status;\n }\n } else {\n // data is posted successful\n // execute aftersubmit with the returned data from server\n if ($.isFunction(rp_ge[$t.p.id].afterSubmit)) {\n ret = rp_ge[$t.p.id].afterSubmit(data, postd);\n }\n }\n if (ret[0] === false) {\n $(\"#DelError>td\", \"#\" + dtbl).html(ret[1]);\n $(\"#DelError\", \"#\" + dtbl).show();\n } else {\n if (rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype != \"local\") {\n $($t).trigger(\"reloadGrid\");\n } else {\n var toarr = [];\n toarr = postdata.split(\",\");\n if ($t.p.treeGrid === true) {\n try { $($t).jqGrid(\"delTreeNode\", $t.p.idPrefix + toarr[0]); } catch (e) { }\n } else {\n for (var i = 0; i < toarr.length; i++) {\n $($t).jqGrid(\"delRowData\", $t.p.idPrefix + toarr[i]);\n }\n }\n $t.p.selrow = null;\n $t.p.selarrrow = [];\n }\n if ($.isFunction(rp_ge[$t.p.id].afterComplete)) {\n setTimeout(function () { rp_ge[$t.p.id].afterComplete(data, postdata); }, 500);\n }\n }\n rp_ge[$t.p.id].processing = false;\n $(\"#dData\", \"#\" + dtbl + \"_2\").removeClass('ui-state-active');\n if (ret[0]) { $.jgrid.hideModal(\"#\" + IDs.themodal, { gb: \"#gbox_\" + gID, jqm: p.jqModal, onClose: rp_ge[$t.p.id].onClose }); }\n }\n }, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxDelOptions);\n\n\n if (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) {\n if ($.isFunction($t.p.dataProxy)) {\n rp_ge[$t.p.id].useDataProxy = true;\n } else {\n ret[0] = false; ret[1] += \" \" + $.jgrid.errors.nourl;\n }\n }\n if (ret[0]) {\n if (rp_ge[$t.p.id].useDataProxy) {\n var dpret = $t.p.dataProxy.call($t, ajaxOptions, \"del_\" + $t.p.id);\n if (typeof (dpret) == \"undefined\") {\n dpret = [true, \"\"];\n }\n if (dpret[0] === false) {\n ret[0] = false;\n ret[1] = dpret[1] || \"Error deleting the selected row!\";\n } else {\n $.jgrid.hideModal(\"#\" + IDs.themodal, { gb: \"#gbox_\" + gID, jqm: p.jqModal, onClose: rp_ge[$t.p.id].onClose });\n }\n }\n else { $.ajax(ajaxOptions); }\n }\n }\n\n if (ret[0] === false) {\n $(\"#DelError>td\", \"#\" + dtbl).html(ret[1]);\n $(\"#DelError\", \"#\" + dtbl).show();\n }\n return false;\n });\n $(\"#eData\", \"#\" + dtbl + \"_2\").click(function (e) {\n $.jgrid.hideModal(\"#\" + IDs.themodal, { gb: \"#gbox_\" + gID, jqm: rp_ge[$t.p.id].jqModal, onClose: rp_ge[$t.p.id].onClose });\n return false;\n });\n if (onBeforeShow) { rp_ge[$t.p.id].beforeShowForm($(\"#\" + dtbl)); }\n $.jgrid.viewModal(\"#\" + IDs.themodal, { gbox: \"#gbox_\" + gID, jqm: rp_ge[$t.p.id].jqModal, overlay: rp_ge[$t.p.id].overlay, modal: rp_ge[$t.p.id].modal });\n if (onAfterShow) { rp_ge[$t.p.id].afterShowForm($(\"#\" + dtbl)); }\n }\n if (rp_ge[$t.p.id].closeOnEscape === true) {\n setTimeout(function () { $(\".ui-jqdialog-titlebar-close\", \"#\" + IDs.modalhead).focus(); }, 0);\n }\n });\n },\n navGrid: function (elem, o, pEdit, pAdd, pDel, pSearch, pView) {\n o = $.extend({\n edit: true,\n editicon: \"ui-icon-pencil\",\n add: true,\n addicon: \"ui-icon-plus\",\n del: true,\n delicon: \"ui-icon-trash\",\n search: true,\n searchicon: \"ui-icon-search\",\n refresh: true,\n refreshicon: \"ui-icon-refresh\",\n refreshstate: 'firstpage',\n view: false,\n viewicon: \"ui-icon-document\",\n position: \"left\",\n closeOnEscape: true,\n beforeRefresh: null,\n afterRefresh: null,\n cloneToTop: false,\n alertwidth: 200,\n alertheight: 'auto',\n alerttop: null,\n alertleft: null,\n alertzIndex: null\n }, $.jgrid.nav, o || {});\n return this.each(function () {\n if (this.nav) { return; }\n var alertIDs = { themodal: 'alertmod', modalhead: 'alerthd', modalcontent: 'alertcnt' },\n\t\t\t$t = this, twd, tdw;\n if (!$t.grid || typeof elem != 'string') { return; }\n if ($(\"#\" + alertIDs.themodal).html() === null) {\n if (!o.alerttop && !o.alertleft) {\n if (typeof window.innerWidth != 'undefined') {\n o.alertleft = window.innerWidth;\n o.alerttop = window.innerHeight;\n } else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth !== 0) {\n o.alertleft = document.documentElement.clientWidth;\n o.alerttop = document.documentElement.clientHeight;\n } else {\n o.alertleft = 1024;\n o.alerttop = 768;\n }\n o.alertleft = o.alertleft / 2 - parseInt(o.alertwidth, 10) / 2;\n o.alerttop = o.alerttop / 2 - 25;\n }\n $.jgrid.createModal(alertIDs, \"
    \" + o.alerttext + \"
    \", { gbox: \"#gbox_\" + $t.p.id, jqModal: true, drag: true, resize: true, caption: o.alertcap, top: o.alerttop, left: o.alertleft, width: o.alertwidth, height: o.alertheight, closeOnEscape: o.closeOnEscape, zIndex: o.alertzIndex }, \"\", \"\", true);\n }\n var clone = 1;\n if (o.cloneToTop && $t.p.toppager) { clone = 2; }\n for (var i = 0; i < clone; i++) {\n var tbd,\n\t\t\t\tnavtbl = $(\"\"),\n\t\t\t\tsep = \"\",\n\t\t\t\tpgid, elemids;\n if (i === 0) {\n pgid = elem;\n elemids = $t.p.id;\n if (pgid == $t.p.toppager) {\n elemids += \"_top\";\n clone = 1;\n }\n } else {\n pgid = $t.p.toppager;\n elemids = $t.p.id + \"_top\";\n }\n if ($t.p.direction == \"rtl\") { $(navtbl).attr(\"dir\", \"rtl\").css(\"float\", \"right\"); }\n if (o.add) {\n pAdd = pAdd || {};\n tbd = $(\"\");\n $(tbd).append(\"
    \" + o.addtext + \"
    \");\n $(\"tr\", navtbl).append(tbd);\n $(tbd, navtbl)\n\t\t\t\t\t.attr({ \"title\": o.addtitle || \"\", id: pAdd.id || \"add_\" + elemids })\n\t\t\t\t\t.click(function () {\n\t\t\t\t\t if (!$(this).hasClass('ui-state-disabled')) {\n\t\t\t\t\t if ($.isFunction(o.addfunc)) {\n\t\t\t\t\t o.addfunc();\n\t\t\t\t\t } else {\n\t\t\t\t\t $($t).jqGrid(\"editGridRow\", \"new\", pAdd);\n\t\t\t\t\t }\n\t\t\t\t\t }\n\t\t\t\t\t return false;\n\t\t\t\t\t}).hover(\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t if (!$(this).hasClass('ui-state-disabled')) {\n\t\t\t\t\t\t $(this).addClass(\"ui-state-hover\");\n\t\t\t\t\t\t }\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction () { $(this).removeClass(\"ui-state-hover\"); }\n\t\t\t\t\t);\n tbd = null;\n }\n if (o.edit) {\n tbd = $(\"\");\n pEdit = pEdit || {};\n $(tbd).append(\"
    \" + o.edittext + \"
    \");\n $(\"tr\", navtbl).append(tbd);\n $(tbd, navtbl)\n\t\t\t\t\t.attr({ \"title\": o.edittitle || \"\", id: pEdit.id || \"edit_\" + elemids })\n\t\t\t\t\t.click(function () {\n\t\t\t\t\t if (!$(this).hasClass('ui-state-disabled')) {\n\t\t\t\t\t var sr = $t.p.selrow;\n\t\t\t\t\t if (sr) {\n\t\t\t\t\t if ($.isFunction(o.editfunc)) {\n\t\t\t\t\t o.editfunc(sr);\n\t\t\t\t\t } else {\n\t\t\t\t\t $($t).jqGrid(\"editGridRow\", sr, pEdit);\n\t\t\t\t\t }\n\t\t\t\t\t } else {\n\t\t\t\t\t $.jgrid.viewModal(\"#\" + alertIDs.themodal, { gbox: \"#gbox_\" + $t.p.id, jqm: true });\n\t\t\t\t\t $(\"#jqg_alrt\").focus();\n\t\t\t\t\t }\n\t\t\t\t\t }\n\t\t\t\t\t return false;\n\t\t\t\t\t}).hover(\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t if (!$(this).hasClass('ui-state-disabled')) {\n\t\t\t\t\t\t $(this).addClass(\"ui-state-hover\");\n\t\t\t\t\t\t }\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction () { $(this).removeClass(\"ui-state-hover\"); }\n\t\t\t\t\t);\n tbd = null;\n }\n if (o.view) {\n tbd = $(\"\");\n pView = pView || {};\n $(tbd).append(\"
    \" + o.viewtext + \"
    \");\n $(\"tr\", navtbl).append(tbd);\n $(tbd, navtbl)\n\t\t\t\t\t.attr({ \"title\": o.viewtitle || \"\", id: pView.id || \"view_\" + elemids })\n\t\t\t\t\t.click(function () {\n\t\t\t\t\t if (!$(this).hasClass('ui-state-disabled')) {\n\t\t\t\t\t var sr = $t.p.selrow;\n\t\t\t\t\t if (sr) {\n\t\t\t\t\t if ($.isFunction(o.viewfunc)) {\n\t\t\t\t\t o.viewfunc(sr);\n\t\t\t\t\t } else {\n\t\t\t\t\t $($t).jqGrid(\"viewGridRow\", sr, pView);\n\t\t\t\t\t }\n\t\t\t\t\t } else {\n\t\t\t\t\t $.jgrid.viewModal(\"#\" + alertIDs.themodal, { gbox: \"#gbox_\" + $t.p.id, jqm: true });\n\t\t\t\t\t $(\"#jqg_alrt\").focus();\n\t\t\t\t\t }\n\t\t\t\t\t }\n\t\t\t\t\t return false;\n\t\t\t\t\t}).hover(\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t if (!$(this).hasClass('ui-state-disabled')) {\n\t\t\t\t\t\t $(this).addClass(\"ui-state-hover\");\n\t\t\t\t\t\t }\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction () { $(this).removeClass(\"ui-state-hover\"); }\n\t\t\t\t\t);\n tbd = null;\n }\n if (o.del) {\n tbd = $(\"\");\n pDel = pDel || {};\n $(tbd).append(\"
    \" + o.deltext + \"
    \");\n $(\"tr\", navtbl).append(tbd);\n $(tbd, navtbl)\n\t\t\t\t\t.attr({ \"title\": o.deltitle || \"\", id: pDel.id || \"del_\" + elemids })\n\t\t\t\t\t.click(function () {\n\t\t\t\t\t if (!$(this).hasClass('ui-state-disabled')) {\n\t\t\t\t\t var dr;\n\t\t\t\t\t if ($t.p.multiselect) {\n\t\t\t\t\t dr = $t.p.selarrrow;\n\t\t\t\t\t if (dr.length === 0) { dr = null; }\n\t\t\t\t\t } else {\n\t\t\t\t\t dr = $t.p.selrow;\n\t\t\t\t\t }\n\t\t\t\t\t if (dr) {\n\t\t\t\t\t if (\"function\" == typeof o.delfunc) {\n\t\t\t\t\t o.delfunc(dr);\n\t\t\t\t\t } else {\n\t\t\t\t\t $($t).jqGrid(\"delGridRow\", dr, pDel);\n\t\t\t\t\t }\n\t\t\t\t\t } else {\n\t\t\t\t\t $.jgrid.viewModal(\"#\" + alertIDs.themodal, { gbox: \"#gbox_\" + $t.p.id, jqm: true }); $(\"#jqg_alrt\").focus();\n\t\t\t\t\t }\n\t\t\t\t\t }\n\t\t\t\t\t return false;\n\t\t\t\t\t}).hover(\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t if (!$(this).hasClass('ui-state-disabled')) {\n\t\t\t\t\t\t $(this).addClass(\"ui-state-hover\");\n\t\t\t\t\t\t }\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction () { $(this).removeClass(\"ui-state-hover\"); }\n\t\t\t\t\t);\n tbd = null;\n }\n if (o.add || o.edit || o.del || o.view) { $(\"tr\", navtbl).append(sep); }\n if (o.search) {\n tbd = $(\"\");\n pSearch = pSearch || {};\n $(tbd).append(\"
    \" + o.searchtext + \"
    \");\n $(\"tr\", navtbl).append(tbd);\n $(tbd, navtbl)\n\t\t\t\t\t.attr({ \"title\": o.searchtitle || \"\", id: pSearch.id || \"search_\" + elemids })\n\t\t\t\t\t.click(function () {\n\t\t\t\t\t if (!$(this).hasClass('ui-state-disabled')) {\n\t\t\t\t\t $($t).jqGrid(\"searchGrid\", pSearch);\n\t\t\t\t\t }\n\t\t\t\t\t return false;\n\t\t\t\t\t}).hover(\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t if (!$(this).hasClass('ui-state-disabled')) {\n\t\t\t\t\t\t $(this).addClass(\"ui-state-hover\");\n\t\t\t\t\t\t }\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction () { $(this).removeClass(\"ui-state-hover\"); }\n\t\t\t\t\t);\n if (pSearch.showOnLoad && pSearch.showOnLoad === true) {\n $(tbd, navtbl).click();\n }\n tbd = null;\n }\n if (o.refresh) {\n tbd = $(\"\");\n $(tbd).append(\"
    \" + o.refreshtext + \"
    \");\n $(\"tr\", navtbl).append(tbd);\n $(tbd, navtbl)\n\t\t\t\t\t.attr({ \"title\": o.refreshtitle || \"\", id: \"refresh_\" + elemids })\n\t\t\t\t\t.click(function () {\n\t\t\t\t\t if (!$(this).hasClass('ui-state-disabled')) {\n\t\t\t\t\t if ($.isFunction(o.beforeRefresh)) { o.beforeRefresh(); }\n\t\t\t\t\t $t.p.search = false;\n\t\t\t\t\t try {\n\t\t\t\t\t var gID = $t.p.id;\n\t\t\t\t\t $t.p.postData.filters = \"\";\n\t\t\t\t\t $(\"#fbox_\" + gID).jqFilter('resetFilter');\n\t\t\t\t\t if ($.isFunction($t.clearToolbar)) { $t.clearToolbar(false); }\n\t\t\t\t\t } catch (e) { }\n\t\t\t\t\t switch (o.refreshstate) {\n\t\t\t\t\t case 'firstpage':\n\t\t\t\t\t $($t).trigger(\"reloadGrid\", [{ page: 1}]);\n\t\t\t\t\t break;\n\t\t\t\t\t case 'current':\n\t\t\t\t\t $($t).trigger(\"reloadGrid\", [{ current: true}]);\n\t\t\t\t\t break;\n\t\t\t\t\t }\n\t\t\t\t\t if ($.isFunction(o.afterRefresh)) { o.afterRefresh(); }\n\t\t\t\t\t }\n\t\t\t\t\t return false;\n\t\t\t\t\t}).hover(\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t if (!$(this).hasClass('ui-state-disabled')) {\n\t\t\t\t\t\t $(this).addClass(\"ui-state-hover\");\n\t\t\t\t\t\t }\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction () { $(this).removeClass(\"ui-state-hover\"); }\n\t\t\t\t\t);\n tbd = null;\n }\n tdw = $(\".ui-jqgrid\").css(\"font-size\") || \"11px\";\n $('body').append(\"\");\n twd = $(navtbl).clone().appendTo(\"#testpg2\").width();\n $(\"#testpg2\").remove();\n $(pgid + \"_\" + o.position, pgid).append(navtbl);\n if ($t.p._nvtd) {\n if (twd > $t.p._nvtd[0]) {\n $(pgid + \"_\" + o.position, pgid).width(twd);\n $t.p._nvtd[0] = twd;\n }\n $t.p._nvtd[1] = twd;\n }\n tdw = null; twd = null; navtbl = null;\n this.nav = true;\n }\n });\n },\n navButtonAdd: function (elem, p) {\n p = $.extend({\n caption: \"newButton\",\n title: '',\n buttonicon: 'ui-icon-newwin',\n onClickButton: null,\n position: \"last\",\n cursor: 'pointer'\n }, p || {});\n return this.each(function () {\n if (!this.grid) { return; }\n if (elem.indexOf(\"#\") !== 0) { elem = \"#\" + elem; }\n var findnav = $(\".navtable\", elem)[0], $t = this;\n if (findnav) {\n if (p.id && $(\"#\" + p.id, findnav).html() !== null) { return; }\n var tbd = $(\"\");\n if (p.buttonicon.toString().toUpperCase() == \"NONE\") {\n $(tbd).addClass('ui-pg-button ui-corner-all').append(\"
    \" + p.caption + \"
    \");\n } else {\n $(tbd).addClass('ui-pg-button ui-corner-all').append(\"
    \" + p.caption + \"
    \");\n }\n if (p.id) { $(tbd).attr(\"id\", p.id); }\n if (p.position == 'first') {\n if (findnav.rows[0].cells.length === 0) {\n $(\"tr\", findnav).append(tbd);\n } else {\n $(\"tr td:eq(0)\", findnav).before(tbd);\n }\n } else {\n $(\"tr\", findnav).append(tbd);\n }\n $(tbd, findnav)\n\t\t\t\t.attr(\"title\", p.title || \"\")\n\t\t\t\t.click(function (e) {\n\t\t\t\t if (!$(this).hasClass('ui-state-disabled')) {\n\t\t\t\t if ($.isFunction(p.onClickButton)) { p.onClickButton.call($t, e); }\n\t\t\t\t }\n\t\t\t\t return false;\n\t\t\t\t})\n\t\t\t\t.hover(\n\t\t\t\t\tfunction () {\n\t\t\t\t\t if (!$(this).hasClass('ui-state-disabled')) {\n\t\t\t\t\t $(this).addClass('ui-state-hover');\n\t\t\t\t\t }\n\t\t\t\t\t},\n\t\t\t\t\tfunction () { $(this).removeClass(\"ui-state-hover\"); }\n\t\t\t\t);\n }\n });\n },\n navSeparatorAdd: function (elem, p) {\n p = $.extend({\n sepclass: \"ui-separator\",\n sepcontent: ''\n }, p || {});\n return this.each(function () {\n if (!this.grid) { return; }\n if (elem.indexOf(\"#\") !== 0) { elem = \"#\" + elem; }\n var findnav = $(\".navtable\", elem)[0];\n if (findnav) {\n var sep = \"\" + p.sepcontent + \"\";\n $(\"tr\", findnav).append(sep);\n }\n });\n },\n GridToForm: function (rowid, formid) {\n return this.each(function () {\n var $t = this;\n if (!$t.grid) { return; }\n var rowdata = $($t).jqGrid(\"getRowData\", rowid);\n if (rowdata) {\n for (var i in rowdata) {\n if ($(\"[name=\" + $.jgrid.jqID(i) + \"]\", formid).is(\"input:radio\") || $(\"[name=\" + $.jgrid.jqID(i) + \"]\", formid).is(\"input:checkbox\")) {\n $(\"[name=\" + $.jgrid.jqID(i) + \"]\", formid).each(function () {\n if ($(this).val() == rowdata[i]) {\n $(this)[$t.p.useProp ? 'prop' : 'attr'](\"checked\", true);\n } else {\n $(this)[$t.p.useProp ? 'prop' : 'attr'](\"checked\", false);\n }\n });\n } else {\n // this is very slow on big table and form.\n $(\"[name=\" + $.jgrid.jqID(i) + \"]\", formid).val(rowdata[i]);\n }\n }\n }\n });\n },\n FormToGrid: function (rowid, formid, mode, position) {\n return this.each(function () {\n var $t = this;\n if (!$t.grid) { return; }\n if (!mode) { mode = 'set'; }\n if (!position) { position = 'first'; }\n var fields = $(formid).serializeArray();\n var griddata = {};\n $.each(fields, function (i, field) {\n griddata[field.name] = field.value;\n });\n if (mode == 'add') { $($t).jqGrid(\"addRowData\", rowid, griddata, position); }\n else if (mode == 'set') { $($t).jqGrid(\"setRowData\", rowid, griddata); }\n });\n }\n });\n})(jQuery);\n; (function ($) {\n /**\n * jqGrid extension for manipulating Grid Data\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n **/\n //jsHint options\n /*global alert */\n \"use strict\";\n $.jgrid.inlineEdit = $.jgrid.inlineEdit || {};\n $.jgrid.extend({\n //Editing\n editRow: function (rowid, keys, oneditfunc, successfunc, url, extraparam, aftersavefunc, errorfunc, afterrestorefunc) {\n // Compatible mode old versions\n var settings = {\n \"keys\": keys || false,\n \"oneditfunc\": oneditfunc || null,\n \"successfunc\": successfunc || null,\n \"url\": url || null,\n \"extraparam\": extraparam || {},\n \"aftersavefunc\": aftersavefunc || null,\n \"errorfunc\": errorfunc || null,\n \"afterrestorefunc\": afterrestorefunc || null,\n \"restoreAfterError\": true,\n \"mtype\": \"POST\"\n },\n\t\targs = $.makeArray(arguments).slice(1), o;\n\n if (args[0] && typeof (args[0]) == \"object\" && !$.isFunction(args[0])) {\n o = $.extend($.jgrid.inlineEdit, settings, args[0]);\n } else {\n o = settings;\n }\n // End compatible\n return this.each(function () {\n var $t = this, nm, tmp, editable, cnt = 0, focus = null, svr = {}, ind, cm;\n if (!$t.grid) { return; }\n ind = $($t).jqGrid(\"getInd\", rowid, true);\n if (ind === false) { return; }\n editable = $(ind).attr(\"editable\") || \"0\";\n if (editable == \"0\" && !$(ind).hasClass(\"not-editable-row\")) {\n cm = $t.p.colModel;\n $('td[role=\"gridcell\"]', ind).each(function (i) {\n nm = cm[i].name;\n var treeg = $t.p.treeGrid === true && nm == $t.p.ExpandColumn;\n if (treeg) { tmp = $(\"span:first\", this).html(); }\n else {\n try {\n tmp = $.unformat(this, { rowId: rowid, colModel: cm[i] }, i);\n } catch (_) {\n tmp = (cm[i].edittype && cm[i].edittype == 'textarea') ? $(this).text() : $(this).html();\n }\n }\n if (nm != 'cb' && nm != 'subgrid' && nm != 'rn') {\n if ($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }\n svr[nm] = tmp;\n if (cm[i].editable === true) {\n if (focus === null) { focus = i; }\n if (treeg) { $(\"span:first\", this).html(\"\"); }\n else { $(this).html(\"\"); }\n var opt = $.extend({}, cm[i].editoptions || {}, { id: rowid + \"_\" + nm, name: nm });\n if (!cm[i].edittype) { cm[i].edittype = \"text\"; }\n if (tmp == \" \" || tmp == \" \" || (tmp.length == 1 && tmp.charCodeAt(0) == 160)) { tmp = ''; }\n var elc = $.jgrid.createEl(cm[i].edittype, opt, tmp, true, $.extend({}, $.jgrid.ajaxOptions, $t.p.ajaxSelectOptions || {}));\n $(elc).addClass(\"editable\");\n if (treeg) { $(\"span:first\", this).append(elc); }\n else { $(this).append(elc); }\n //Again IE\n if (cm[i].edittype == \"select\" && typeof (cm[i].editoptions) !== \"undefined\" && cm[i].editoptions.multiple === true && typeof (cm[i].editoptions.dataUrl) === \"undefined\" && $.browser.msie) {\n $(elc).width($(elc).width());\n }\n cnt++;\n }\n }\n });\n if (cnt > 0) {\n svr.id = rowid; $t.p.savedRow.push(svr);\n $(ind).attr(\"editable\", \"1\");\n $(\"td:eq(\" + focus + \") input\", ind).focus();\n if (o.keys === true) {\n $(ind).bind(\"keydown\", function (e) {\n if (e.keyCode === 27) {\n $($t).jqGrid(\"restoreRow\", rowid, afterrestorefunc);\n return false;\n }\n if (e.keyCode === 13) {\n var ta = e.target;\n if (ta.tagName == 'TEXTAREA') { return true; }\n $($t).jqGrid(\"saveRow\", rowid, o);\n return false;\n }\n });\n }\n if ($.isFunction(o.oneditfunc)) { o.oneditfunc.call($t, rowid); }\n }\n }\n });\n },\n saveRow: function (rowid, successfunc, url, extraparam, aftersavefunc, errorfunc, afterrestorefunc) {\n // Compatible mode old versions\n var settings = {\n \"successfunc\": successfunc || null,\n \"url\": url || null,\n \"extraparam\": extraparam || {},\n \"aftersavefunc\": aftersavefunc || null,\n \"errorfunc\": errorfunc || null,\n \"afterrestorefunc\": afterrestorefunc || null,\n \"restoreAfterError\": true,\n \"mtype\": \"POST\"\n },\n\t\targs = $.makeArray(arguments).slice(1), o;\n\n if (args[0] && typeof (args[0]) == \"object\" && !$.isFunction(args[0])) {\n o = $.extend($.jgrid.inlineEdit, settings, args[0]);\n } else {\n o = settings;\n }\n // End compatible\n var success = false;\n var $t = this[0], nm, tmp = {}, tmp2 = {}, tmp3 = {}, editable, fr, cv, ind;\n if (!$t.grid) { return success; }\n ind = $($t).jqGrid(\"getInd\", rowid, true);\n if (ind === false) { return success; }\n editable = $(ind).attr(\"editable\");\n o.url = o.url ? o.url : $t.p.editurl;\n if (editable === \"1\") {\n var cm;\n $('td[role=\"gridcell\"]', ind).each(function (i) {\n cm = $t.p.colModel[i];\n nm = cm.name;\n if (nm != 'cb' && nm != 'subgrid' && cm.editable === true && nm != 'rn' && !$(this).hasClass('not-editable-cell')) {\n switch (cm.edittype) {\n case \"checkbox\":\n var cbv = [\"Yes\", \"No\"];\n if (cm.editoptions) {\n cbv = cm.editoptions.value.split(\":\");\n }\n tmp[nm] = $(\"input\", this).is(\":checked\") ? cbv[0] : cbv[1];\n break;\n case 'text':\n case 'password':\n case 'textarea':\n case \"button\":\n tmp[nm] = $(\"input, textarea\", this).val();\n break;\n case 'select':\n if (!cm.editoptions.multiple) {\n tmp[nm] = $(\"select option:selected\", this).val();\n tmp2[nm] = $(\"select option:selected\", this).text();\n } else {\n var sel = $(\"select\", this), selectedText = [];\n tmp[nm] = $(sel).val();\n if (tmp[nm]) { tmp[nm] = tmp[nm].join(\",\"); } else { tmp[nm] = \"\"; }\n $(\"select option:selected\", this).each(\n\t\t\t\t\t\t\t\t\tfunction (i, selected) {\n\t\t\t\t\t\t\t\t\t selectedText[i] = $(selected).text();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n tmp2[nm] = selectedText.join(\",\");\n }\n if (cm.formatter && cm.formatter == 'select') { tmp2 = {}; }\n break;\n case 'custom':\n try {\n if (cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {\n tmp[nm] = cm.editoptions.custom_value.call($t, $(\".customelement\", this), 'get');\n if (tmp[nm] === undefined) { throw \"e2\"; }\n } else { throw \"e1\"; }\n } catch (e) {\n if (e == \"e1\") { $.jgrid.info_dialog(jQuery.jgrid.errors.errcap, \"function 'custom_value' \" + $.jgrid.edit.msg.nodefined, jQuery.jgrid.edit.bClose); }\n if (e == \"e2\") { $.jgrid.info_dialog(jQuery.jgrid.errors.errcap, \"function 'custom_value' \" + $.jgrid.edit.msg.novalue, jQuery.jgrid.edit.bClose); }\n else { $.jgrid.info_dialog(jQuery.jgrid.errors.errcap, e.message, jQuery.jgrid.edit.bClose); }\n }\n break;\n }\n cv = $.jgrid.checkValues(tmp[nm], i, $t);\n if (cv[0] === false) {\n cv[1] = tmp[nm] + \" \" + cv[1];\n return false;\n }\n if ($t.p.autoencode) { tmp[nm] = $.jgrid.htmlEncode(tmp[nm]); }\n if (o.url !== 'clientArray' && cm.editoptions && cm.editoptions.NullIfEmpty === true) {\n if (tmp[nm] === \"\") {\n tmp3[nm] = 'null';\n }\n }\n }\n });\n if (cv[0] === false) {\n try {\n var positions = $.jgrid.findPos($(\"#\" + $.jgrid.jqID(rowid), $t.grid.bDiv)[0]);\n $.jgrid.info_dialog($.jgrid.errors.errcap, cv[1], $.jgrid.edit.bClose, { left: positions[0], top: positions[1] });\n } catch (e) {\n alert(cv[1]);\n }\n return success;\n }\n var idname, opers, oper;\n opers = $t.p.prmNames;\n oper = opers.oper;\n idname = opers.id;\n if (tmp) {\n tmp[oper] = opers.editoper;\n tmp[idname] = rowid;\n if (typeof ($t.p.inlineData) == 'undefined') { $t.p.inlineData = {}; }\n tmp = $.extend({}, tmp, $t.p.inlineData, o.extraparam);\n }\n if (o.url == 'clientArray') {\n tmp = $.extend({}, tmp, tmp2);\n if ($t.p.autoencode) {\n $.each(tmp, function (n, v) {\n tmp[n] = $.jgrid.htmlDecode(v);\n });\n }\n var resp = $($t).jqGrid(\"setRowData\", rowid, tmp);\n $(ind).attr(\"editable\", \"0\");\n for (var k = 0; k < $t.p.savedRow.length; k++) {\n if ($t.p.savedRow[k].id == rowid) { fr = k; break; }\n }\n if (fr >= 0) { $t.p.savedRow.splice(fr, 1); }\n if ($.isFunction(o.aftersavefunc)) { o.aftersavefunc.call($t, rowid, resp); }\n success = true;\n $(ind).unbind(\"keydown\");\n } else {\n $(\"#lui_\" + $t.p.id).show();\n tmp3 = $.extend({}, tmp, tmp3);\n tmp3[idname] = $.jgrid.stripPref($t.p.idPrefix, tmp3[idname]);\n $.ajax($.extend({\n url: o.url,\n data: $.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp3) : tmp3,\n type: o.mtype,\n async: false, //?!?\n complete: function (res, stat) {\n $(\"#lui_\" + $t.p.id).hide();\n if (stat === \"success\") {\n var ret = true, sucret;\n if ($.isFunction(o.successfunc)) {\n sucret = o.successfunc.call($t, res);\n if ($.isArray(sucret)) {\n // expect array - status, data, rowid\n ret = sucret[0];\n tmp = sucret[1] ? sucret[1] : tmp;\n } else {\n ret = sucret;\n }\n }\n if (ret === true) {\n if ($t.p.autoencode) {\n $.each(tmp, function (n, v) {\n tmp[n] = $.jgrid.htmlDecode(v);\n });\n }\n tmp = $.extend({}, tmp, tmp2);\n $($t).jqGrid(\"setRowData\", rowid, tmp);\n $(ind).attr(\"editable\", \"0\");\n for (var k = 0; k < $t.p.savedRow.length; k++) {\n if ($t.p.savedRow[k].id == rowid) { fr = k; break; }\n }\n if (fr >= 0) { $t.p.savedRow.splice(fr, 1); }\n if ($.isFunction(o.aftersavefunc)) { o.aftersavefunc.call($t, rowid, res); }\n success = true;\n $(ind).unbind(\"keydown\");\n } else {\n if ($.isFunction(o.errorfunc)) {\n o.errorfunc.call($t, rowid, res, stat);\n }\n if (o.restoreAfterError === true) {\n $($t).jqGrid(\"restoreRow\", rowid, o.afterrestorefunc);\n }\n }\n }\n },\n error: function (res, stat) {\n $(\"#lui_\" + $t.p.id).hide();\n if ($.isFunction(o.errorfunc)) {\n o.errorfunc.call($t, rowid, res, stat);\n } else {\n try {\n jQuery.jgrid.info_dialog(jQuery.jgrid.errors.errcap, '
    ' + res.responseText + '
    ', jQuery.jgrid.edit.bClose, { buttonalign: 'right' });\n } catch (e) {\n alert(res.responseText);\n }\n }\n if (o.restoreAfterError === true) {\n $($t).jqGrid(\"restoreRow\", rowid, o.afterrestorefunc);\n }\n }\n }, $.jgrid.ajaxOptions, $t.p.ajaxRowOptions || {}));\n }\n }\n return success;\n },\n restoreRow: function (rowid, afterrestorefunc) {\n // Compatible mode old versions\n var settings = {\n \"afterrestorefunc\": afterrestorefunc || null\n },\n\t\targs = $.makeArray(arguments).slice(1), o;\n\n if (args[0] && typeof (args[0]) == \"object\" && !$.isFunction(args[0])) {\n o = $.extend($.jgrid.inlineEdit, settings, args[0]);\n } else {\n o = settings;\n }\n // End compatible\n\n return this.each(function () {\n var $t = this, fr, ind, ares = {};\n if (!$t.grid) { return; }\n ind = $($t).jqGrid(\"getInd\", rowid, true);\n if (ind === false) { return; }\n for (var k = 0; k < $t.p.savedRow.length; k++) {\n if ($t.p.savedRow[k].id == rowid) { fr = k; break; }\n }\n if (fr >= 0) {\n if ($.isFunction($.fn.datepicker)) {\n try {\n $(\"input.hasDatepicker\", \"#\" + $.jgrid.jqID(ind.id)).datepicker('hide');\n } catch (e) { }\n }\n $.each($t.p.colModel, function (i, n) {\n if (this.editable === true && this.name in $t.p.savedRow[fr] && !$(this).hasClass('not-editable-cell')) {\n ares[this.name] = $t.p.savedRow[fr][this.name];\n }\n });\n $($t).jqGrid(\"setRowData\", rowid, ares);\n $(ind).attr(\"editable\", \"0\").unbind(\"keydown\");\n $t.p.savedRow.splice(fr, 1);\n if ($(\"#\" + $.jgrid.jqID(rowid), \"#\" + $.jgrid.jqID($t.p.id)).hasClass(\"jqgrid-new-row\")) {\n setTimeout(function () { $($t).jqGrid(\"delRowData\", rowid); }, 0);\n }\n }\n if ($.isFunction(o.afterrestorefunc)) {\n o.afterrestorefunc.call($t, rowid);\n }\n });\n },\n addRow: function (p) {\n p = $.extend({\n rowID: \"new_row\",\n initdata: {},\n position: \"first\",\n useDefValues: false,\n useFormatter: false,\n addRowParams: { extraparam: {} }\n }, p || {});\n return this.each(function () {\n if (!this.grid) { return; }\n var $t = this;\n if (p.useDefValues === true) {\n $($t.p.colModel).each(function (i) {\n if (this.edioptions && this.editoptions.defaultValue) {\n var opt = this.editoptions.defaultValue,\n\t\t\t\t\t\ttmp = $.isFunction(opt) ? opt.call($t) : opt;\n p.initdata[this.name] = tmp;\n }\n });\n }\n $($t).jqGrid('addRowData', p.rowID, p.initdata, p.position);\n $(\"#\" + $.jgrid.jqID(p.rowID), \"#\" + $.jgrid.jqID($t.p.id)).addClass(\"jqgrid-new-row\");\n if (p.useFormatter) {\n $(\"#\" + $.jgrid.jqID(p.rowID) + \" .ui-inline-edit\", \"#\" + $.jgrid.jqID($t.p.id)).click();\n } else {\n var opers = $t.p.prmNames,\n\t\t\t\toper = opers.oper;\n p.addRowParams.extraparam[oper] = opers.addoper;\n $($t).jqGrid('editRow', p.rowID, p.addRowParams);\n $($t).jqGrid('setSelection', p.rowID);\n }\n });\n },\n inlineNav: function (elem, o) {\n o = $.extend({\n edit: true,\n editicon: \"ui-icon-pencil\",\n add: true,\n addicon: \"ui-icon-plus\",\n save: true,\n saveicon: \"ui-icon-disk\",\n cancel: true,\n cancelicon: \"ui-icon-cancel\",\n addParams: { useFormatter: false },\n editParams: {}\n }, $.jgrid.nav, o || {});\n return this.each(function () {\n if (!this.grid) { return; }\n var $t = this;\n // detect the formatactions column\n if (o.addParams.useFormatter === true) {\n var cm = $t.p.colModel, i;\n for (i = 0; i < cm.length; i++) {\n if (cm[i].formatter && cm[i].formatter === \"actions\") {\n if (cm[i].formatoptions) {\n var defaults = {\n keys: false,\n onEdit: null,\n onSuccess: null,\n afterSave: null,\n onError: null,\n afterRestore: null,\n extraparam: {},\n url: null\n },\n\t\t\t\t\t\t\tap = $.extend(defaults, cm[i].formatoptions);\n o.addParams.addRowParams = {\n \"keys\": ap.keys,\n \"oneditfunc\": ap.onEdit,\n \"successfunc\": ap.onSuccess,\n \"url\": ap.url,\n \"extraparam\": ap.extraparam,\n \"aftersavefunc\": ap.afterSavef,\n \"errorfunc\": ap.onError,\n \"afterrestorefunc\": ap.afterRestore\n };\n }\n break;\n }\n }\n }\n if (o.add) {\n $($t).jqGrid('navButtonAdd', elem, {\n caption: o.addtext,\n title: o.addtitle,\n buttonicon: o.addicon,\n id: $t.p.id + \"_iladd\",\n onClickButton: function (e) {\n $($t).jqGrid('addRow', o.addParams);\n if (!o.addParams.useFormatter) {\n $(\"#\" + $t.p.id + \"_ilsave\").removeClass('ui-state-disabled');\n $(\"#\" + $t.p.id + \"_ilcancel\").removeClass('ui-state-disabled');\n $(\"#\" + $t.p.id + \"_iladd\").addClass('ui-state-disabled');\n $(\"#\" + $t.p.id + \"_iledit\").addClass('ui-state-disabled');\n }\n }\n });\n }\n if (o.edit) {\n $($t).jqGrid('navButtonAdd', elem, {\n caption: o.edittext,\n title: o.edittitle,\n buttonicon: o.editicon,\n id: $t.p.id + \"_iledit\",\n onClickButton: function (e) {\n var sr = $($t).jqGrid('getGridParam', 'selrow');\n if (sr) {\n $($t).jqGrid('editRow', sr, o.editParams);\n $(\"#\" + $t.p.id + \"_ilsave\").removeClass('ui-state-disabled');\n $(\"#\" + $t.p.id + \"_ilcancel\").removeClass('ui-state-disabled');\n $(\"#\" + $t.p.id + \"_iladd\").addClass('ui-state-disabled');\n $(\"#\" + $t.p.id + \"_iledit\").addClass('ui-state-disabled');\n } else {\n $.jgrid.viewModal(\"#alertmod\", { gbox: \"#gbox_\" + $t.p.id, jqm: true }); $(\"#jqg_alrt\").focus();\n }\n }\n });\n }\n if (o.save) {\n $($t).jqGrid('navButtonAdd', elem, {\n caption: o.savetext || '',\n title: o.savetitle || 'Save row',\n buttonicon: o.saveicon,\n id: $t.p.id + \"_ilsave\",\n onClickButton: function (e) {\n var sr = $($t).jqGrid('getGridParam', 'selrow');\n if (sr) {\n if ($(\"#\" + $.jgrid.jqID(sr), \"#\" + $.jgrid.jqID($t.p.id)).hasClass(\"jqgrid-new-row\")) {\n var opers = $t.p.prmNames,\n\t\t\t\t\t\t\t\toper = opers.oper;\n if (!o.editParams.extraparam) {\n o.editParams.extraparam = {};\n }\n o.editParams.extraparam[oper] = opers.addoper;\n }\n $($t).jqGrid('saveRow', sr, o.editParams);\n $(\"#\" + $t.p.id + \"_ilsave\").addClass('ui-state-disabled');\n $(\"#\" + $t.p.id + \"_ilcancel\").addClass('ui-state-disabled');\n $(\"#\" + $t.p.id + \"_iladd\").removeClass('ui-state-disabled');\n $(\"#\" + $t.p.id + \"_iledit\").removeClass('ui-state-disabled');\n } else {\n $.jgrid.viewModal(\"#alertmod\", { gbox: \"#gbox_\" + $t.p.id, jqm: true }); $(\"#jqg_alrt\").focus();\n }\n }\n });\n $(\"#\" + $t.p.id + \"_ilsave\").addClass('ui-state-disabled');\n }\n if (o.cancel) {\n $($t).jqGrid('navButtonAdd', elem, {\n caption: o.canceltext || '',\n title: o.canceltitle || 'Cancel row editing',\n buttonicon: o.cancelicon,\n id: $t.p.id + \"_ilcancel\",\n onClickButton: function (e) {\n var sr = $($t).jqGrid('getGridParam', 'selrow');\n if (sr) {\n $($t).jqGrid('restoreRow', sr, o.editParams);\n $(\"#\" + $t.p.id + \"_ilsave\").addClass('ui-state-disabled');\n $(\"#\" + $t.p.id + \"_ilcancel\").addClass('ui-state-disabled');\n $(\"#\" + $t.p.id + \"_iladd\").removeClass('ui-state-disabled');\n $(\"#\" + $t.p.id + \"_iledit\").removeClass('ui-state-disabled');\n } else {\n $.jgrid.viewModal(\"#alertmod\", { gbox: \"#gbox_\" + $t.p.id, jqm: true }); $(\"#jqg_alrt\").focus();\n }\n }\n });\n $(\"#\" + $t.p.id + \"_ilcancel\").addClass('ui-state-disabled');\n }\n });\n }\n //end inline edit\n });\n})(jQuery);\n; (function ($) {\n /*\n **\n * jqGrid extension for cellediting Grid Data\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n **/\n /**\n * all events and options here are aded anonynous and not in the base grid\n * since the array is to big. Here is the order of execution.\n * From this point we use jQuery isFunction\n * formatCell\n * beforeEditCell,\n * onSelectCell (used only for noneditable cels)\n * afterEditCell,\n * beforeSaveCell, (called before validation of values if any)\n * beforeSubmitCell (if cellsubmit remote (ajax))\n * afterSubmitCell(if cellsubmit remote (ajax)),\n * afterSaveCell,\n * errorCell,\n * serializeCellData - new\n * Options\n * cellsubmit (remote,clientArray) (added in grid options)\n * cellurl\n * ajaxCellOptions\n * */\n $.jgrid.extend({\n editCell: function (iRow, iCol, ed) {\n return this.each(function () {\n var $t = this, nm, tmp, cc, cm;\n if (!$t.grid || $t.p.cellEdit !== true) { return; }\n iCol = parseInt(iCol, 10);\n // select the row that can be used for other methods\n $t.p.selrow = $t.rows[iRow].id;\n if (!$t.p.knv) { $($t).jqGrid(\"GridNav\"); }\n // check to see if we have already edited cell\n if ($t.p.savedRow.length > 0) {\n // prevent second click on that field and enable selects\n if (ed === true) {\n if (iRow == $t.p.iRow && iCol == $t.p.iCol) {\n return;\n }\n }\n // save the cell\n $($t).jqGrid(\"saveCell\", $t.p.savedRow[0].id, $t.p.savedRow[0].ic);\n } else {\n window.setTimeout(function () { $(\"#\" + $t.p.knv).attr(\"tabindex\", \"-1\").focus(); }, 0);\n }\n cm = $t.p.colModel[iCol];\n nm = cm.name;\n if (nm == 'subgrid' || nm == 'cb' || nm == 'rn') { return; }\n cc = $(\"td:eq(\" + iCol + \")\", $t.rows[iRow]);\n if (cm.editable === true && ed === true && !cc.hasClass(\"not-editable-cell\")) {\n if (parseInt($t.p.iCol, 10) >= 0 && parseInt($t.p.iRow, 10) >= 0) {\n $(\"td:eq(\" + $t.p.iCol + \")\", $t.rows[$t.p.iRow]).removeClass(\"edit-cell ui-state-highlight\");\n $($t.rows[$t.p.iRow]).removeClass(\"selected-row ui-state-hover\");\n }\n $(cc).addClass(\"edit-cell ui-state-highlight\");\n $($t.rows[iRow]).addClass(\"selected-row ui-state-hover\");\n try {\n tmp = $.unformat(cc, { rowId: $t.rows[iRow].id, colModel: cm }, iCol);\n } catch (_) {\n tmp = (cm.edittype && cm.edittype == 'textarea') ? $(cc).text() : $(cc).html();\n }\n if ($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }\n if (!cm.edittype) { cm.edittype = \"text\"; }\n $t.p.savedRow.push({ id: iRow, ic: iCol, name: nm, v: tmp });\n if (tmp == \" \" || tmp == \" \" || (tmp.length == 1 && tmp.charCodeAt(0) == 160)) { tmp = ''; }\n if ($.isFunction($t.p.formatCell)) {\n var tmp2 = $t.p.formatCell.call($t, $t.rows[iRow].id, nm, tmp, iRow, iCol);\n if (tmp2 !== undefined) { tmp = tmp2; }\n }\n var opt = $.extend({}, cm.editoptions || {}, { id: iRow + \"_\" + nm, name: nm });\n var elc = $.jgrid.createEl(cm.edittype, opt, tmp, true, $.extend({}, $.jgrid.ajaxOptions, $t.p.ajaxSelectOptions || {}));\n if ($.isFunction($t.p.beforeEditCell)) {\n $t.p.beforeEditCell.call($t, $t.rows[iRow].id, nm, tmp, iRow, iCol);\n }\n $(cc).html(\"\").append(elc).attr(\"tabindex\", \"0\");\n window.setTimeout(function () { $(elc).focus(); }, 0);\n $(\"input, select, textarea\", cc).bind(\"keydown\", function (e) {\n if (e.keyCode === 27) {\n if ($(\"input.hasDatepicker\", cc).length > 0) {\n if ($(\".ui-datepicker\").is(\":hidden\")) { $($t).jqGrid(\"restoreCell\", iRow, iCol); }\n else { $(\"input.hasDatepicker\", cc).datepicker('hide'); }\n } else {\n $($t).jqGrid(\"restoreCell\", iRow, iCol);\n }\n } //ESC\n if (e.keyCode === 13) { $($t).jqGrid(\"saveCell\", iRow, iCol); } //Enter\n if (e.keyCode == 9) {\n if (!$t.grid.hDiv.loading) {\n if (e.shiftKey) { $($t).jqGrid(\"prevCell\", iRow, iCol); } //Shift TAb\n else { $($t).jqGrid(\"nextCell\", iRow, iCol); } //Tab\n } else {\n return false;\n }\n }\n e.stopPropagation();\n });\n if ($.isFunction($t.p.afterEditCell)) {\n $t.p.afterEditCell.call($t, $t.rows[iRow].id, nm, tmp, iRow, iCol);\n }\n } else {\n if (parseInt($t.p.iCol, 10) >= 0 && parseInt($t.p.iRow, 10) >= 0) {\n $(\"td:eq(\" + $t.p.iCol + \")\", $t.rows[$t.p.iRow]).removeClass(\"edit-cell ui-state-highlight\");\n $($t.rows[$t.p.iRow]).removeClass(\"selected-row ui-state-hover\");\n }\n cc.addClass(\"edit-cell ui-state-highlight\");\n $($t.rows[iRow]).addClass(\"selected-row ui-state-hover\");\n if ($.isFunction($t.p.onSelectCell)) {\n tmp = cc.html().replace(/\\ \\;/ig, '');\n $t.p.onSelectCell.call($t, $t.rows[iRow].id, nm, tmp, iRow, iCol);\n }\n }\n $t.p.iCol = iCol; $t.p.iRow = iRow;\n });\n },\n saveCell: function (iRow, iCol) {\n return this.each(function () {\n var $t = this, fr;\n if (!$t.grid || $t.p.cellEdit !== true) { return; }\n if ($t.p.savedRow.length >= 1) { fr = 0; } else { fr = null; }\n if (fr !== null) {\n var cc = $(\"td:eq(\" + iCol + \")\", $t.rows[iRow]), v, v2,\n\t\t\t\tcm = $t.p.colModel[iCol], nm = cm.name, nmjq = $.jgrid.jqID(nm);\n switch (cm.edittype) {\n case \"select\":\n if (!cm.editoptions.multiple) {\n v = $(\"#\" + iRow + \"_\" + nmjq + \">option:selected\", $t.rows[iRow]).val();\n v2 = $(\"#\" + iRow + \"_\" + nmjq + \">option:selected\", $t.rows[iRow]).text();\n } else {\n var sel = $(\"#\" + iRow + \"_\" + nmjq, $t.rows[iRow]), selectedText = [];\n v = $(sel).val();\n if (v) { v.join(\",\"); } else { v = \"\"; }\n $(\"option:selected\", sel).each(\n\t\t\t\t\t\t\t\tfunction (i, selected) {\n\t\t\t\t\t\t\t\t selectedText[i] = $(selected).text();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n v2 = selectedText.join(\",\");\n }\n if (cm.formatter) { v2 = v; }\n break;\n case \"checkbox\":\n var cbv = [\"Yes\", \"No\"];\n if (cm.editoptions) {\n cbv = cm.editoptions.value.split(\":\");\n }\n v = $(\"#\" + iRow + \"_\" + nmjq, $t.rows[iRow]).is(\":checked\") ? cbv[0] : cbv[1];\n v2 = v;\n break;\n case \"password\":\n case \"text\":\n case \"textarea\":\n case \"button\":\n v = $(\"#\" + iRow + \"_\" + nmjq, $t.rows[iRow]).val();\n v2 = v;\n break;\n case 'custom':\n try {\n if (cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {\n v = cm.editoptions.custom_value.call($t, $(\".customelement\", cc), 'get');\n if (v === undefined) { throw \"e2\"; } else { v2 = v; }\n } else { throw \"e1\"; }\n } catch (e) {\n if (e == \"e1\") { $.jgrid.info_dialog(jQuery.jgrid.errors.errcap, \"function 'custom_value' \" + $.jgrid.edit.msg.nodefined, jQuery.jgrid.edit.bClose); }\n if (e == \"e2\") { $.jgrid.info_dialog(jQuery.jgrid.errors.errcap, \"function 'custom_value' \" + $.jgrid.edit.msg.novalue, jQuery.jgrid.edit.bClose); }\n else { $.jgrid.info_dialog(jQuery.jgrid.errors.errcap, e.message, jQuery.jgrid.edit.bClose); }\n }\n break;\n }\n // The common approach is if nothing changed do not do anything\n if (v2 !== $t.p.savedRow[fr].v) {\n if ($.isFunction($t.p.beforeSaveCell)) {\n var vv = $t.p.beforeSaveCell.call($t, $t.rows[iRow].id, nm, v, iRow, iCol);\n if (vv) { v = vv; v2 = vv; }\n }\n var cv = $.jgrid.checkValues(v, iCol, $t);\n if (cv[0] === true) {\n var addpost = {};\n if ($.isFunction($t.p.beforeSubmitCell)) {\n addpost = $t.p.beforeSubmitCell.call($t, $t.rows[iRow].id, nm, v, iRow, iCol);\n if (!addpost) { addpost = {}; }\n }\n if ($(\"input.hasDatepicker\", cc).length > 0) { $(\"input.hasDatepicker\", cc).datepicker('hide'); }\n if ($t.p.cellsubmit == 'remote') {\n if ($t.p.cellurl) {\n var postdata = {};\n if ($t.p.autoencode) { v = $.jgrid.htmlEncode(v); }\n postdata[nm] = v;\n var idname, oper, opers;\n opers = $t.p.prmNames;\n idname = opers.id;\n oper = opers.oper;\n postdata[idname] = $.jgrid.stripPref($t.p.idPrefix, $t.rows[iRow].id);\n postdata[oper] = opers.editoper;\n postdata = $.extend(addpost, postdata);\n $(\"#lui_\" + $t.p.id).show();\n $t.grid.hDiv.loading = true;\n $.ajax($.extend({\n url: $t.p.cellurl,\n data: $.isFunction($t.p.serializeCellData) ? $t.p.serializeCellData.call($t, postdata) : postdata,\n type: \"POST\",\n complete: function (result, stat) {\n $(\"#lui_\" + $t.p.id).hide();\n $t.grid.hDiv.loading = false;\n if (stat == 'success') {\n if ($.isFunction($t.p.afterSubmitCell)) {\n var ret = $t.p.afterSubmitCell.call($t, result, postdata.id, nm, v, iRow, iCol);\n if (ret[0] === true) {\n $(cc).empty();\n $($t).jqGrid(\"setCell\", $t.rows[iRow].id, iCol, v2, false, false, true);\n $(cc).addClass(\"dirty-cell\");\n $($t.rows[iRow]).addClass(\"edited\");\n if ($.isFunction($t.p.afterSaveCell)) {\n $t.p.afterSaveCell.call($t, $t.rows[iRow].id, nm, v, iRow, iCol);\n }\n $t.p.savedRow.splice(0, 1);\n } else {\n $.jgrid.info_dialog($.jgrid.errors.errcap, ret[1], $.jgrid.edit.bClose);\n $($t).jqGrid(\"restoreCell\", iRow, iCol);\n }\n } else {\n $(cc).empty();\n $($t).jqGrid(\"setCell\", $t.rows[iRow].id, iCol, v2, false, false, true);\n $(cc).addClass(\"dirty-cell\");\n $($t.rows[iRow]).addClass(\"edited\");\n if ($.isFunction($t.p.afterSaveCell)) {\n $t.p.afterSaveCell.call($t, $t.rows[iRow].id, nm, v, iRow, iCol);\n }\n $t.p.savedRow.splice(0, 1);\n }\n }\n },\n error: function (res, stat) {\n $(\"#lui_\" + $t.p.id).hide();\n $t.grid.hDiv.loading = false;\n if ($.isFunction($t.p.errorCell)) {\n $t.p.errorCell.call($t, res, stat);\n $($t).jqGrid(\"restoreCell\", iRow, iCol);\n } else {\n $.jgrid.info_dialog($.jgrid.errors.errcap, res.status + \" : \" + res.statusText + \"
    \" + stat, $.jgrid.edit.bClose);\n $($t).jqGrid(\"restoreCell\", iRow, iCol);\n }\n }\n }, $.jgrid.ajaxOptions, $t.p.ajaxCellOptions || {}));\n } else {\n try {\n $.jgrid.info_dialog($.jgrid.errors.errcap, $.jgrid.errors.nourl, $.jgrid.edit.bClose);\n $($t).jqGrid(\"restoreCell\", iRow, iCol);\n } catch (e) { }\n }\n }\n if ($t.p.cellsubmit == 'clientArray') {\n $(cc).empty();\n $($t).jqGrid(\"setCell\", $t.rows[iRow].id, iCol, v2, false, false, true);\n $(cc).addClass(\"dirty-cell\");\n $($t.rows[iRow]).addClass(\"edited\");\n if ($.isFunction($t.p.afterSaveCell)) {\n $t.p.afterSaveCell.call($t, $t.rows[iRow].id, nm, v, iRow, iCol);\n }\n $t.p.savedRow.splice(0, 1);\n }\n } else {\n try {\n window.setTimeout(function () { $.jgrid.info_dialog($.jgrid.errors.errcap, v + \" \" + cv[1], $.jgrid.edit.bClose); }, 100);\n $($t).jqGrid(\"restoreCell\", iRow, iCol);\n } catch (e) { }\n }\n } else {\n $($t).jqGrid(\"restoreCell\", iRow, iCol);\n }\n }\n if ($.browser.opera) {\n $(\"#\" + $t.p.knv).attr(\"tabindex\", \"-1\").focus();\n } else {\n window.setTimeout(function () { $(\"#\" + $t.p.knv).attr(\"tabindex\", \"-1\").focus(); }, 0);\n }\n });\n },\n restoreCell: function (iRow, iCol) {\n return this.each(function () {\n var $t = this, fr;\n if (!$t.grid || $t.p.cellEdit !== true) { return; }\n if ($t.p.savedRow.length >= 1) { fr = 0; } else { fr = null; }\n if (fr !== null) {\n var cc = $(\"td:eq(\" + iCol + \")\", $t.rows[iRow]);\n // datepicker fix\n if ($.isFunction($.fn.datepicker)) {\n try {\n $(\"input.hasDatepicker\", cc).datepicker('hide');\n } catch (e) { }\n }\n $(cc).empty().attr(\"tabindex\", \"-1\");\n $($t).jqGrid(\"setCell\", $t.rows[iRow].id, iCol, $t.p.savedRow[fr].v, false, false, true);\n if ($.isFunction($t.p.afterRestoreCell)) {\n $t.p.afterRestoreCell.call($t, $t.rows[iRow].id, $t.p.savedRow[fr].v, iRow, iCol);\n }\n $t.p.savedRow.splice(0, 1);\n }\n window.setTimeout(function () { $(\"#\" + $t.p.knv).attr(\"tabindex\", \"-1\").focus(); }, 0);\n });\n },\n nextCell: function (iRow, iCol) {\n return this.each(function () {\n var $t = this, nCol = false;\n if (!$t.grid || $t.p.cellEdit !== true) { return; }\n // try to find next editable cell\n for (var i = iCol + 1; i < $t.p.colModel.length; i++) {\n if ($t.p.colModel[i].editable === true) {\n nCol = i; break;\n }\n }\n if (nCol !== false) {\n $($t).jqGrid(\"editCell\", iRow, nCol, true);\n } else {\n if ($t.p.savedRow.length > 0) {\n $($t).jqGrid(\"saveCell\", iRow, iCol);\n }\n }\n });\n },\n prevCell: function (iRow, iCol) {\n return this.each(function () {\n var $t = this, nCol = false;\n if (!$t.grid || $t.p.cellEdit !== true) { return; }\n // try to find next editable cell\n for (var i = iCol - 1; i >= 0; i--) {\n if ($t.p.colModel[i].editable === true) {\n nCol = i; break;\n }\n }\n if (nCol !== false) {\n $($t).jqGrid(\"editCell\", iRow, nCol, true);\n } else {\n if ($t.p.savedRow.length > 0) {\n $($t).jqGrid(\"saveCell\", iRow, iCol);\n }\n }\n });\n },\n GridNav: function () {\n return this.each(function () {\n var $t = this;\n if (!$t.grid || $t.p.cellEdit !== true) { return; }\n // trick to process keydown on non input elements\n $t.p.knv = $t.p.id + \"_kn\";\n var selection = $(\"\"),\n\t\t\ti, kdir;\n $(selection).insertBefore($t.grid.cDiv);\n $(\"#\" + $t.p.knv)\n\t\t\t.focus()\n\t\t\t.keydown(function (e) {\n\t\t\t kdir = e.keyCode;\n\t\t\t if ($t.p.direction == \"rtl\") {\n\t\t\t if (kdir == 37) { kdir = 39; }\n\t\t\t else if (kdir == 39) { kdir = 37; }\n\t\t\t }\n\t\t\t switch (kdir) {\n\t\t\t case 38:\n\t\t\t if ($t.p.iRow - 1 > 0) {\n\t\t\t scrollGrid($t.p.iRow - 1, $t.p.iCol, 'vu');\n\t\t\t $($t).jqGrid(\"editCell\", $t.p.iRow - 1, $t.p.iCol, false);\n\t\t\t }\n\t\t\t break;\n\t\t\t case 40:\n\t\t\t if ($t.p.iRow + 1 <= $t.rows.length - 1) {\n\t\t\t scrollGrid($t.p.iRow + 1, $t.p.iCol, 'vd');\n\t\t\t $($t).jqGrid(\"editCell\", $t.p.iRow + 1, $t.p.iCol, false);\n\t\t\t }\n\t\t\t break;\n\t\t\t case 37:\n\t\t\t if ($t.p.iCol - 1 >= 0) {\n\t\t\t i = findNextVisible($t.p.iCol - 1, 'lft');\n\t\t\t scrollGrid($t.p.iRow, i, 'h');\n\t\t\t $($t).jqGrid(\"editCell\", $t.p.iRow, i, false);\n\t\t\t }\n\t\t\t break;\n\t\t\t case 39:\n\t\t\t if ($t.p.iCol + 1 <= $t.p.colModel.length - 1) {\n\t\t\t i = findNextVisible($t.p.iCol + 1, 'rgt');\n\t\t\t scrollGrid($t.p.iRow, i, 'h');\n\t\t\t $($t).jqGrid(\"editCell\", $t.p.iRow, i, false);\n\t\t\t }\n\t\t\t break;\n\t\t\t case 13:\n\t\t\t if (parseInt($t.p.iCol, 10) >= 0 && parseInt($t.p.iRow, 10) >= 0) {\n\t\t\t $($t).jqGrid(\"editCell\", $t.p.iRow, $t.p.iCol, true);\n\t\t\t }\n\t\t\t break;\n\t\t\t default:\n\t\t\t return true;\n\t\t\t }\n\t\t\t return false;\n\t\t\t});\n function scrollGrid(iR, iC, tp) {\n if (tp.substr(0, 1) == 'v') {\n var ch = $($t.grid.bDiv)[0].clientHeight,\n\t\t\t\t\tst = $($t.grid.bDiv)[0].scrollTop,\n\t\t\t\t\tnROT = $t.rows[iR].offsetTop + $t.rows[iR].clientHeight,\n\t\t\t\t\tpROT = $t.rows[iR].offsetTop;\n if (tp == 'vd') {\n if (nROT >= ch) {\n $($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop + $t.rows[iR].clientHeight;\n }\n }\n if (tp == 'vu') {\n if (pROT < st) {\n $($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop - $t.rows[iR].clientHeight;\n }\n }\n }\n if (tp == 'h') {\n var cw = $($t.grid.bDiv)[0].clientWidth,\n\t\t\t\t\tsl = $($t.grid.bDiv)[0].scrollLeft,\n\t\t\t\t\tnCOL = $t.rows[iR].cells[iC].offsetLeft + $t.rows[iR].cells[iC].clientWidth,\n\t\t\t\t\tpCOL = $t.rows[iR].cells[iC].offsetLeft;\n if (nCOL >= cw + parseInt(sl, 10)) {\n $($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft + $t.rows[iR].cells[iC].clientWidth;\n } else if (pCOL < sl) {\n $($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft - $t.rows[iR].cells[iC].clientWidth;\n }\n }\n }\n function findNextVisible(iC, act) {\n var ind, i;\n if (act == 'lft') {\n ind = iC + 1;\n for (i = iC; i >= 0; i--) {\n if ($t.p.colModel[i].hidden !== true) {\n ind = i;\n break;\n }\n }\n }\n if (act == 'rgt') {\n ind = iC - 1;\n for (i = iC; i < $t.p.colModel.length; i++) {\n if ($t.p.colModel[i].hidden !== true) {\n ind = i;\n break;\n }\n }\n }\n return ind;\n }\n });\n },\n getChangedCells: function (mthd) {\n var ret = [];\n if (!mthd) { mthd = 'all'; }\n this.each(function () {\n var $t = this, nm;\n if (!$t.grid || $t.p.cellEdit !== true) { return; }\n $($t.rows).each(function (j) {\n var res = {};\n if ($(this).hasClass(\"edited\")) {\n $('td', this).each(function (i) {\n nm = $t.p.colModel[i].name;\n if (nm !== 'cb' && nm !== 'subgrid') {\n if (mthd == 'dirty') {\n if ($(this).hasClass('dirty-cell')) {\n try {\n res[nm] = $.unformat(this, { rowId: $t.rows[j].id, colModel: $t.p.colModel[i] }, i);\n } catch (e) {\n res[nm] = $.jgrid.htmlDecode($(this).html());\n }\n }\n } else {\n try {\n res[nm] = $.unformat(this, { rowId: $t.rows[j].id, colModel: $t.p.colModel[i] }, i);\n } catch (e) {\n res[nm] = $.jgrid.htmlDecode($(this).html());\n }\n }\n }\n });\n res.id = this.id;\n ret.push(res);\n }\n });\n });\n return ret;\n }\n /// end cell editing\n });\n})(jQuery);\n; (function ($) {\n /**\n * jqGrid extension for SubGrid Data\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n **/\n $.jgrid.extend({\n setSubGrid: function () {\n return this.each(function () {\n var $t = this, cm,\n\t\tsuboptions = {\n\t\t plusicon: \"ui-icon-plus\",\n\t\t minusicon: \"ui-icon-minus\",\n\t\t openicon: \"ui-icon-carat-1-sw\",\n\t\t expandOnLoad: false,\n\t\t delayOnLoad: 50,\n\t\t selectOnExpand: false,\n\t\t reloadOnExpand: true\n\t\t};\n $t.p.subGridOptions = $.extend(suboptions, $t.p.subGridOptions || {});\n $t.p.colNames.unshift(\"\");\n $t.p.colModel.unshift({ name: 'subgrid', width: $.browser.safari ? $t.p.subGridWidth + $t.p.cellLayout : $t.p.subGridWidth, sortable: false, resizable: false, hidedlg: true, search: false, fixed: true });\n cm = $t.p.subGridModel;\n if (cm[0]) {\n cm[0].align = $.extend([], cm[0].align || []);\n for (var i = 0; i < cm[0].name.length; i++) { cm[0].align[i] = cm[0].align[i] || 'left'; }\n }\n });\n },\n addSubGridCell: function (pos, iRow) {\n var prp = '', ic, sid;\n this.each(function () {\n prp = this.formatCol(pos, iRow);\n sid = this.p.id;\n ic = this.p.subGridOptions.plusicon;\n });\n return \"\";\n },\n addSubGrid: function (pos, sind) {\n return this.each(function () {\n var ts = this;\n if (!ts.grid) { return; }\n //-------------------------\n var subGridCell = function (trdiv, cell, pos) {\n var tddiv = $(\"\").html(cell);\n $(trdiv).append(tddiv);\n };\n var subGridXml = function (sjxml, sbid) {\n var tddiv, i, sgmap,\n\t\t\tdummy = $(\"
    \"),\n\t\t\ttrdiv = $(\"\");\n for (i = 0; i < ts.p.subGridModel[0].name.length; i++) {\n tddiv = $(\"\");\n $(tddiv).html(ts.p.subGridModel[0].name[i]);\n $(tddiv).width(ts.p.subGridModel[0].width[i]);\n $(trdiv).append(tddiv);\n }\n $(dummy).append(trdiv);\n if (sjxml) {\n sgmap = ts.p.xmlReader.subgrid;\n $(sgmap.root + \" \" + sgmap.row, sjxml).each(function () {\n trdiv = $(\"\");\n if (sgmap.repeatitems === true) {\n $(sgmap.cell, this).each(function (i) {\n subGridCell(trdiv, $(this).text() || ' ', i);\n });\n } else {\n var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;\n if (f) {\n for (i = 0; i < f.length; i++) {\n subGridCell(trdiv, $(f[i], this).text() || ' ', i);\n }\n }\n }\n $(dummy).append(trdiv);\n });\n }\n var pID = $(\"table:first\", ts.grid.bDiv).attr(\"id\") + \"_\";\n $(\"#\" + pID + sbid).append(dummy);\n ts.grid.hDiv.loading = false;\n $(\"#load_\" + ts.p.id).hide();\n return false;\n };\n var subGridJson = function (sjxml, sbid) {\n var tddiv, result, i, cur, sgmap, j,\n\t\t\tdummy = $(\"
    \"),\n\t\t\ttrdiv = $(\"\");\n for (i = 0; i < ts.p.subGridModel[0].name.length; i++) {\n tddiv = $(\"\");\n $(tddiv).html(ts.p.subGridModel[0].name[i]);\n $(tddiv).width(ts.p.subGridModel[0].width[i]);\n $(trdiv).append(tddiv);\n }\n $(dummy).append(trdiv);\n if (sjxml) {\n sgmap = ts.p.jsonReader.subgrid;\n result = sjxml[sgmap.root];\n if (typeof result !== 'undefined') {\n for (i = 0; i < result.length; i++) {\n cur = result[i];\n trdiv = $(\"\");\n if (sgmap.repeatitems === true) {\n if (sgmap.cell) { cur = cur[sgmap.cell]; }\n for (j = 0; j < cur.length; j++) {\n subGridCell(trdiv, cur[j] || ' ', j);\n }\n } else {\n var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;\n if (f.length) {\n for (j = 0; j < f.length; j++) {\n subGridCell(trdiv, cur[f[j]] || ' ', j);\n }\n }\n }\n $(dummy).append(trdiv);\n }\n }\n }\n var pID = $(\"table:first\", ts.grid.bDiv).attr(\"id\") + \"_\";\n $(\"#\" + pID + sbid).append(dummy);\n ts.grid.hDiv.loading = false;\n $(\"#load_\" + ts.p.id).hide();\n return false;\n };\n var populatesubgrid = function (rd) {\n var sid, dp, i, j;\n sid = $(rd).attr(\"id\");\n dp = { nd_: (new Date().getTime()) };\n dp[ts.p.prmNames.subgridid] = sid;\n if (!ts.p.subGridModel[0]) { return false; }\n if (ts.p.subGridModel[0].params) {\n for (j = 0; j < ts.p.subGridModel[0].params.length; j++) {\n for (i = 0; i < ts.p.colModel.length; i++) {\n if (ts.p.colModel[i].name == ts.p.subGridModel[0].params[j]) {\n dp[ts.p.colModel[i].name] = $(\"td:eq(\" + i + \")\", rd).text().replace(/\\ \\;/ig, '');\n }\n }\n }\n }\n if (!ts.grid.hDiv.loading) {\n ts.grid.hDiv.loading = true;\n $(\"#load_\" + ts.p.id).show();\n if (!ts.p.subgridtype) { ts.p.subgridtype = ts.p.datatype; }\n if ($.isFunction(ts.p.subgridtype)) {\n ts.p.subgridtype.call(ts, dp);\n } else {\n ts.p.subgridtype = ts.p.subgridtype.toLowerCase();\n }\n switch (ts.p.subgridtype) {\n case \"xml\":\n case \"json\":\n $.ajax($.extend({\n type: ts.p.mtype,\n url: ts.p.subGridUrl,\n dataType: ts.p.subgridtype,\n data: $.isFunction(ts.p.serializeSubGridData) ? ts.p.serializeSubGridData.call(ts, dp) : dp,\n complete: function (sxml) {\n if (ts.p.subgridtype == \"xml\") {\n subGridXml(sxml.responseXML, sid);\n } else {\n subGridJson($.jgrid.parse(sxml.responseText), sid);\n }\n sxml = null;\n }\n }, $.jgrid.ajaxOptions, ts.p.ajaxSubgridOptions || {}));\n break;\n }\n }\n return false;\n };\n var _id, pID, atd, nhc = 0, bfsc, r;\n $.each(ts.p.colModel, function (i, v) {\n if (this.hidden === true || this.name == 'rn' || this.name == 'cb') {\n nhc++;\n }\n });\n var len = ts.rows.length, i = 1;\n if (sind !== undefined && sind > 0) {\n i = sind;\n len = sind + 1;\n }\n while (i < len) {\n if ($(ts.rows[i]).hasClass('jqgrow')) {\n $(ts.rows[i].cells[pos]).bind('click touchend', function (e) {\n var tr = $(this).parent(\"tr\")[0];\n r = tr.nextSibling;\n if ($(this).hasClass(\"sgcollapsed\")) {\n pID = ts.p.id;\n _id = tr.id;\n if (ts.p.subGridOptions.reloadOnExpand === true || (ts.p.subGridOptions.reloadOnExpand === false && !$(r).hasClass('ui-subgrid'))) {\n atd = pos >= 1 ? \" \" : \"\";\n bfsc = true;\n if ($.isFunction(ts.p.subGridBeforeExpand)) {\n bfsc = ts.p.subGridBeforeExpand.call(ts, pID + \"_\" + _id, _id);\n }\n if (bfsc === false) { return false; }\n $(tr).after(\"\" + atd + \"
    \");\n if ($.isFunction(ts.p.subGridRowExpanded)) {\n ts.p.subGridRowExpanded.call(ts, pID + \"_\" + _id, _id);\n } else {\n populatesubgrid(tr);\n }\n } else {\n $(r).show();\n }\n $(this).html(\"\").removeClass(\"sgcollapsed\").addClass(\"sgexpanded\");\n if (ts.p.subGridOptions.selectOnExpand) {\n $(ts).jqGrid('setSelection', _id);\n }\n } else if ($(this).hasClass(\"sgexpanded\")) {\n bfsc = true;\n if ($.isFunction(ts.p.subGridRowColapsed)) {\n _id = tr.id;\n bfsc = ts.p.subGridRowColapsed.call(ts, pID + \"_\" + _id, _id);\n }\n if (bfsc === false) { return false; }\n if (ts.p.subGridOptions.reloadOnExpand === true) {\n $(r).remove(\".ui-subgrid\");\n } else if ($(r).hasClass('ui-subgrid')) { // incase of dynamic deleting\n $(r).hide();\n }\n $(this).html(\"\").removeClass(\"sgexpanded\").addClass(\"sgcollapsed\");\n }\n return false;\n });\n }\n if (ts.p.subGridOptions.expandOnLoad === true) {\n $(ts.rows[i].cells[pos]).trigger('click');\n }\n i++;\n }\n ts.subGridXml = function (xml, sid) { subGridXml(xml, sid); };\n ts.subGridJson = function (json, sid) { subGridJson(json, sid); };\n });\n },\n expandSubGridRow: function (rowid) {\n return this.each(function () {\n var $t = this;\n if (!$t.grid && !rowid) { return; }\n if ($t.p.subGrid === true) {\n var rc = $(this).jqGrid(\"getInd\", rowid, true);\n if (rc) {\n var sgc = $(\"td.sgcollapsed\", rc)[0];\n if (sgc) {\n $(sgc).trigger(\"click\");\n }\n }\n }\n });\n },\n collapseSubGridRow: function (rowid) {\n return this.each(function () {\n var $t = this;\n if (!$t.grid && !rowid) { return; }\n if ($t.p.subGrid === true) {\n var rc = $(this).jqGrid(\"getInd\", rowid, true);\n if (rc) {\n var sgc = $(\"td.sgexpanded\", rc)[0];\n if (sgc) {\n $(sgc).trigger(\"click\");\n }\n }\n }\n });\n },\n toggleSubGridRow: function (rowid) {\n return this.each(function () {\n var $t = this;\n if (!$t.grid && !rowid) { return; }\n if ($t.p.subGrid === true) {\n var rc = $(this).jqGrid(\"getInd\", rowid, true);\n if (rc) {\n var sgc = $(\"td.sgcollapsed\", rc)[0];\n if (sgc) {\n $(sgc).trigger(\"click\");\n } else {\n sgc = $(\"td.sgexpanded\", rc)[0];\n if (sgc) {\n $(sgc).trigger(\"click\");\n }\n }\n }\n }\n });\n }\n });\n})(jQuery);\n/**\n* jqGrid extension - Tree Grid\n* Tony Tomov tony@trirand.com\n* http://trirand.com/blog/\n* Dual licensed under the MIT and GPL licenses:\n* http://www.opensource.org/licenses/mit-license.php\n* http://www.gnu.org/licenses/gpl.html\n**/\n\n/*global document, jQuery, $ */\n(function ($) {\n $.jgrid.extend({\n setTreeNode: function (i, len) {\n return this.each(function () {\n var $t = this;\n if (!$t.grid || !$t.p.treeGrid) { return; }\n var expCol = $t.p.expColInd,\n\t\t\texpanded = $t.p.treeReader.expanded_field,\n\t\t\tisLeaf = $t.p.treeReader.leaf_field,\n\t\t\tlevel = $t.p.treeReader.level_field,\n\t\t\ticon = $t.p.treeReader.icon_field,\n\t\t\tloaded = $t.p.treeReader.loaded, lft, rgt, curLevel, ident, lftpos, twrap,\n\t\t\tldat, lf;\n while (i < len) {\n var ind = $t.rows[i].id, dind = $t.p._index[ind], expan;\n ldat = $t.p.data[dind];\n //$t.rows[i].level = ldat[level];\n if ($t.p.treeGridModel == 'nested') {\n if (!ldat[isLeaf]) {\n lft = parseInt(ldat[$t.p.treeReader.left_field], 10);\n rgt = parseInt(ldat[$t.p.treeReader.right_field], 10);\n // NS Model\n ldat[isLeaf] = (rgt === lft + 1) ? 'true' : 'false';\n $t.rows[i].cells[$t.p._treeleafpos].innerHTML = ldat[isLeaf];\n }\n }\n //else {\n //row.parent_id = rd[$t.p.treeReader.parent_id_field];\n //}\n curLevel = parseInt(ldat[level], 10);\n if ($t.p.tree_root_level === 0) {\n ident = curLevel + 1;\n lftpos = curLevel;\n } else {\n ident = curLevel;\n lftpos = curLevel - 1;\n }\n twrap = \"
    \";\n twrap += \"
    \";\n $($t.rows[i].cells[expCol]).wrapInner(\"\").prepend(twrap);\n\n if (curLevel !== parseInt($t.p.tree_root_level, 10)) {\n var pn = $($t).jqGrid('getNodeParent', ldat);\n expan = pn && pn.hasOwnProperty(expanded) ? pn[expanded] : true;\n if (!expan) {\n $($t.rows[i]).css(\"display\", \"none\");\n }\n }\n $($t.rows[i].cells[expCol])\n\t\t\t\t\t.find(\"div.treeclick\")\n\t\t\t\t\t.bind(\"click\", function (e) {\n\t\t\t\t\t var target = e.target || e.srcElement,\n\t\t\t\t\t\tind2 = $(target, $t.rows).closest(\"tr.jqgrow\")[0].id,\n\t\t\t\t\t\tpos = $t.p._index[ind2];\n\t\t\t\t\t if (!$t.p.data[pos][isLeaf]) {\n\t\t\t\t\t if ($t.p.data[pos][expanded]) {\n\t\t\t\t\t $($t).jqGrid(\"collapseRow\", $t.p.data[pos]);\n\t\t\t\t\t $($t).jqGrid(\"collapseNode\", $t.p.data[pos]);\n\t\t\t\t\t } else {\n\t\t\t\t\t $($t).jqGrid(\"expandRow\", $t.p.data[pos]);\n\t\t\t\t\t $($t).jqGrid(\"expandNode\", $t.p.data[pos]);\n\t\t\t\t\t }\n\t\t\t\t\t }\n\t\t\t\t\t return false;\n\t\t\t\t\t});\n if ($t.p.ExpandColClick === true) {\n $($t.rows[i].cells[expCol])\n\t\t\t\t\t\t.find(\"span.cell-wrapper\")\n\t\t\t\t\t\t.css(\"cursor\", \"pointer\")\n\t\t\t\t\t\t.bind(\"click\", function (e) {\n\t\t\t\t\t\t var target = e.target || e.srcElement,\n\t\t\t\t\t\t\tind2 = $(target, $t.rows).closest(\"tr.jqgrow\")[0].id,\n\t\t\t\t\t\t\tpos = $t.p._index[ind2];\n\t\t\t\t\t\t if (!$t.p.data[pos][isLeaf]) {\n\t\t\t\t\t\t if ($t.p.data[pos][expanded]) {\n\t\t\t\t\t\t $($t).jqGrid(\"collapseRow\", $t.p.data[pos]);\n\t\t\t\t\t\t $($t).jqGrid(\"collapseNode\", $t.p.data[pos]);\n\t\t\t\t\t\t } else {\n\t\t\t\t\t\t $($t).jqGrid(\"expandRow\", $t.p.data[pos]);\n\t\t\t\t\t\t $($t).jqGrid(\"expandNode\", $t.p.data[pos]);\n\t\t\t\t\t\t }\n\t\t\t\t\t\t }\n\t\t\t\t\t\t $($t).jqGrid(\"setSelection\", ind2);\n\t\t\t\t\t\t return false;\n\t\t\t\t\t\t});\n }\n i++;\n }\n\n });\n },\n setTreeGrid: function () {\n return this.each(function () {\n var $t = this, i = 0, pico, ecol = false, nm, key, dupcols = [];\n if (!$t.p.treeGrid) { return; }\n if (!$t.p.treedatatype) { $.extend($t.p, { treedatatype: $t.p.datatype }); }\n $t.p.subGrid = false; $t.p.altRows = false;\n $t.p.pgbuttons = false; $t.p.pginput = false;\n $t.p.gridview = true;\n if ($t.p.rowTotal === null) { $t.p.rowNum = 10000; }\n $t.p.multiselect = false; $t.p.rowList = [];\n $t.p.expColInd = 0;\n pico = 'ui-icon-triangle-1-' + ($t.p.direction == \"rtl\" ? 'w' : 'e');\n $t.p.treeIcons = $.extend({ plus: pico, minus: 'ui-icon-triangle-1-s', leaf: 'ui-icon-radio-off' }, $t.p.treeIcons || {});\n if ($t.p.treeGridModel == 'nested') {\n $t.p.treeReader = $.extend({\n level_field: \"level\",\n left_field: \"lft\",\n right_field: \"rgt\",\n leaf_field: \"isLeaf\",\n expanded_field: \"expanded\",\n loaded: \"loaded\",\n icon_field: \"icon\"\n }, $t.p.treeReader);\n } else if ($t.p.treeGridModel == 'adjacency') {\n $t.p.treeReader = $.extend({\n level_field: \"level\",\n parent_id_field: \"parent\",\n leaf_field: \"isLeaf\",\n expanded_field: \"expanded\",\n loaded: \"loaded\",\n icon_field: \"icon\"\n }, $t.p.treeReader);\n }\n for (key in $t.p.colModel) {\n if ($t.p.colModel.hasOwnProperty(key)) {\n nm = $t.p.colModel[key].name;\n if (nm == $t.p.ExpandColumn && !ecol) {\n ecol = true;\n $t.p.expColInd = i;\n }\n i++;\n //\n for (var tkey in $t.p.treeReader) {\n if ($t.p.treeReader[tkey] == nm)\n dupcols.push(nm);\n }\n\n }\n }\n $.each($t.p.treeReader, function (j, n) {\n if (n && $.inArray(n, dupcols) === -1) {\n if (j === 'leaf_field') { $t.p._treeleafpos = i; }\n i++;\n $t.p.colNames.push(n);\n $t.p.colModel.push({ name: n, width: 1, hidden: true, sortable: false, resizable: false, hidedlg: true, editable: true, search: false });\n }\n });\n });\n },\n expandRow: function (record) {\n this.each(function () {\n var $t = this;\n if (!$t.grid || !$t.p.treeGrid) { return; }\n var childern = $($t).jqGrid(\"getNodeChildren\", record),\n //if ($($t).jqGrid(\"isVisibleNode\",record)) {\n\t\t\texpanded = $t.p.treeReader.expanded_field;\n $(childern).each(function (i) {\n var id = $.jgrid.getAccessor(this, $t.p.localReader.id);\n $(\"#\" + id, $t.grid.bDiv).css(\"display\", \"\");\n if (this[expanded]) {\n $($t).jqGrid(\"expandRow\", this);\n }\n });\n //}\n });\n },\n collapseRow: function (record) {\n this.each(function () {\n var $t = this;\n if (!$t.grid || !$t.p.treeGrid) { return; }\n var childern = $($t).jqGrid(\"getNodeChildren\", record),\n\t\t\texpanded = $t.p.treeReader.expanded_field;\n $(childern).each(function (i) {\n var id = $.jgrid.getAccessor(this, $t.p.localReader.id);\n $(\"#\" + id, $t.grid.bDiv).css(\"display\", \"none\");\n if (this[expanded]) {\n $($t).jqGrid(\"collapseRow\", this);\n }\n });\n });\n },\n // NS ,adjacency models\n getRootNodes: function () {\n var result = [];\n this.each(function () {\n var $t = this;\n if (!$t.grid || !$t.p.treeGrid) { return; }\n switch ($t.p.treeGridModel) {\n case 'nested':\n var level = $t.p.treeReader.level_field;\n $($t.p.data).each(function (i) {\n if (parseInt(this[level], 10) === parseInt($t.p.tree_root_level, 10)) {\n result.push(this);\n }\n });\n break;\n case 'adjacency':\n var parent_id = $t.p.treeReader.parent_id_field;\n $($t.p.data).each(function (i) {\n if (this[parent_id] === null || String(this[parent_id]).toLowerCase() == \"null\") {\n result.push(this);\n }\n });\n break;\n }\n });\n return result;\n },\n getNodeDepth: function (rc) {\n var ret = null;\n this.each(function () {\n if (!this.grid || !this.p.treeGrid) { return; }\n var $t = this;\n switch ($t.p.treeGridModel) {\n case 'nested':\n var level = $t.p.treeReader.level_field;\n ret = parseInt(rc[level], 10) - parseInt($t.p.tree_root_level, 10);\n break;\n case 'adjacency':\n ret = $($t).jqGrid(\"getNodeAncestors\", rc).length;\n break;\n }\n });\n return ret;\n },\n getNodeParent: function (rc) {\n var result = null;\n this.each(function () {\n var $t = this;\n if (!$t.grid || !$t.p.treeGrid) { return; }\n switch ($t.p.treeGridModel) {\n case 'nested':\n var lftc = $t.p.treeReader.left_field,\n\t\t\t\t\trgtc = $t.p.treeReader.right_field,\n\t\t\t\t\tlevelc = $t.p.treeReader.level_field,\n\t\t\t\t\tlft = parseInt(rc[lftc], 10), rgt = parseInt(rc[rgtc], 10), level = parseInt(rc[levelc], 10);\n $(this.p.data).each(function () {\n if (parseInt(this[levelc], 10) === level - 1 && parseInt(this[lftc], 10) < lft && parseInt(this[rgtc], 10) > rgt) {\n result = this;\n return false;\n }\n });\n break;\n case 'adjacency':\n var parent_id = $t.p.treeReader.parent_id_field,\n\t\t\t\t\tdtid = $t.p.localReader.id;\n $(this.p.data).each(function (i, val) {\n if (this[dtid] == rc[parent_id]) {\n result = this;\n return false;\n }\n });\n break;\n }\n });\n return result;\n },\n getNodeChildren: function (rc) {\n var result = [];\n this.each(function () {\n var $t = this;\n if (!$t.grid || !$t.p.treeGrid) { return; }\n switch ($t.p.treeGridModel) {\n case 'nested':\n var lftc = $t.p.treeReader.left_field,\n\t\t\t\t\trgtc = $t.p.treeReader.right_field,\n\t\t\t\t\tlevelc = $t.p.treeReader.level_field,\n\t\t\t\t\tlft = parseInt(rc[lftc], 10), rgt = parseInt(rc[rgtc], 10), level = parseInt(rc[levelc], 10);\n $(this.p.data).each(function (i) {\n if (parseInt(this[levelc], 10) === level + 1 && parseInt(this[lftc], 10) > lft && parseInt(this[rgtc], 10) < rgt) {\n result.push(this);\n }\n });\n break;\n case 'adjacency':\n var parent_id = $t.p.treeReader.parent_id_field,\n\t\t\t\t\tdtid = $t.p.localReader.id;\n $(this.p.data).each(function (i, val) {\n if (this[parent_id] == rc[dtid]) {\n result.push(this);\n }\n });\n break;\n }\n });\n return result;\n },\n getFullTreeNode: function (rc) {\n var result = [];\n this.each(function () {\n var $t = this, len;\n if (!$t.grid || !$t.p.treeGrid) { return; }\n switch ($t.p.treeGridModel) {\n case 'nested':\n var lftc = $t.p.treeReader.left_field,\n\t\t\t\t\trgtc = $t.p.treeReader.right_field,\n\t\t\t\t\tlevelc = $t.p.treeReader.level_field,\n\t\t\t\t\tlft = parseInt(rc[lftc], 10), rgt = parseInt(rc[rgtc], 10), level = parseInt(rc[levelc], 10);\n $(this.p.data).each(function (i) {\n if (parseInt(this[levelc], 10) >= level && parseInt(this[lftc], 10) >= lft && parseInt(this[lftc], 10) <= rgt) {\n result.push(this);\n }\n });\n break;\n case 'adjacency':\n if (rc) {\n result.push(rc);\n var parent_id = $t.p.treeReader.parent_id_field,\n\t\t\t\t\tdtid = $t.p.localReader.id;\n $(this.p.data).each(function (i) {\n len = result.length;\n for (i = 0; i < len; i++) {\n if (result[i][dtid] == this[parent_id]) {\n result.push(this);\n break;\n }\n }\n });\n }\n break;\n }\n });\n return result;\n },\n // End NS, adjacency Model\n getNodeAncestors: function (rc) {\n var ancestors = [];\n this.each(function () {\n if (!this.grid || !this.p.treeGrid) { return; }\n var parent = $(this).jqGrid(\"getNodeParent\", rc);\n while (parent) {\n ancestors.push(parent);\n parent = $(this).jqGrid(\"getNodeParent\", parent);\n }\n });\n return ancestors;\n },\n isVisibleNode: function (rc) {\n var result = true;\n this.each(function () {\n var $t = this;\n if (!$t.grid || !$t.p.treeGrid) { return; }\n var ancestors = $($t).jqGrid(\"getNodeAncestors\", rc),\n\t\t\texpanded = $t.p.treeReader.expanded_field;\n $(ancestors).each(function () {\n result = result && this[expanded];\n if (!result) { return false; }\n });\n });\n return result;\n },\n isNodeLoaded: function (rc) {\n var result;\n this.each(function () {\n var $t = this;\n if (!$t.grid || !$t.p.treeGrid) { return; }\n var isLeaf = $t.p.treeReader.leaf_field;\n if (rc !== undefined) {\n if (rc.loaded !== undefined) {\n result = rc.loaded;\n } else if (rc[isLeaf] || $($t).jqGrid(\"getNodeChildren\", rc).length > 0) {\n result = true;\n } else {\n result = false;\n }\n } else {\n result = false;\n }\n });\n return result;\n },\n expandNode: function (rc) {\n return this.each(function () {\n if (!this.grid || !this.p.treeGrid) { return; }\n var expanded = this.p.treeReader.expanded_field,\n\t\t\tparent = this.p.treeReader.parent_id_field,\n\t\t\tloaded = this.p.treeReader.loaded,\n\t\t\tlevel = this.p.treeReader.level_field,\n\t\t\tlft = this.p.treeReader.left_field,\n\t\t\trgt = this.p.treeReader.right_field;\n\n if (!rc[expanded]) {\n var id = $.jgrid.getAccessor(rc, this.p.localReader.id);\n var rc1 = $(\"#\" + id, this.grid.bDiv)[0];\n var position = this.p._index[id];\n if ($(this).jqGrid(\"isNodeLoaded\", this.p.data[position])) {\n rc[expanded] = true;\n $(\"div.treeclick\", rc1).removeClass(this.p.treeIcons.plus + \" tree-plus\").addClass(this.p.treeIcons.minus + \" tree-minus\");\n } else {\n rc[expanded] = true;\n $(\"div.treeclick\", rc1).removeClass(this.p.treeIcons.plus + \" tree-plus\").addClass(this.p.treeIcons.minus + \" tree-minus\");\n this.p.treeANode = rc1.rowIndex;\n this.p.datatype = this.p.treedatatype;\n if (this.p.treeGridModel == 'nested') {\n $(this).jqGrid(\"setGridParam\", { postData: { nodeid: id, n_left: rc[lft], n_right: rc[rgt], n_level: rc[level]} });\n } else {\n $(this).jqGrid(\"setGridParam\", { postData: { nodeid: id, parentid: rc[parent], n_level: rc[level]} });\n }\n $(this).trigger(\"reloadGrid\");\n rc[loaded] = true;\n if (this.p.treeGridModel == 'nested') {\n $(this).jqGrid(\"setGridParam\", { postData: { nodeid: '', n_left: '', n_right: '', n_level: ''} });\n } else {\n $(this).jqGrid(\"setGridParam\", { postData: { nodeid: '', parentid: '', n_level: ''} });\n }\n }\n }\n });\n },\n collapseNode: function (rc) {\n return this.each(function () {\n if (!this.grid || !this.p.treeGrid) { return; }\n var expanded = this.p.treeReader.expanded_field;\n if (rc[expanded]) {\n rc[expanded] = false;\n var id = $.jgrid.getAccessor(rc, this.p.localReader.id);\n var rc1 = $(\"#\" + id, this.grid.bDiv)[0];\n $(\"div.treeclick\", rc1).removeClass(this.p.treeIcons.minus + \" tree-minus\").addClass(this.p.treeIcons.plus + \" tree-plus\");\n }\n });\n },\n SortTree: function (sortname, newDir, st, datefmt) {\n return this.each(function () {\n if (!this.grid || !this.p.treeGrid) { return; }\n var i, len,\n\t\t\trec, records = [], $t = this, query, roots,\n\t\t\trt = $(this).jqGrid(\"getRootNodes\");\n // Sorting roots\n query = $.jgrid.from(rt);\n query.orderBy(sortname, newDir, st, datefmt);\n roots = query.select();\n\n // Sorting children\n for (i = 0, len = roots.length; i < len; i++) {\n rec = roots[i];\n records.push(rec);\n $(this).jqGrid(\"collectChildrenSortTree\", records, rec, sortname, newDir, st, datefmt);\n }\n $.each(records, function (index, row) {\n var id = $.jgrid.getAccessor(this, $t.p.localReader.id);\n $('#' + $t.p.id + ' tbody tr:eq(' + index + ')').after($('tr#' + id, $t.grid.bDiv));\n });\n query = null; roots = null; records = null;\n });\n },\n collectChildrenSortTree: function (records, rec, sortname, newDir, st, datefmt) {\n return this.each(function () {\n if (!this.grid || !this.p.treeGrid) { return; }\n var i, len,\n\t\t\tchild, ch, query, children;\n ch = $(this).jqGrid(\"getNodeChildren\", rec);\n query = $.jgrid.from(ch);\n query.orderBy(sortname, newDir, st, datefmt);\n children = query.select();\n for (i = 0, len = children.length; i < len; i++) {\n child = children[i];\n records.push(child);\n $(this).jqGrid(\"collectChildrenSortTree\", records, child, sortname, newDir, st, datefmt);\n }\n });\n },\n // experimental\n setTreeRow: function (rowid, data) {\n var success = false;\n this.each(function () {\n var t = this;\n if (!t.grid || !t.p.treeGrid) { return; }\n success = $(t).jqGrid(\"setRowData\", rowid, data);\n });\n return success;\n },\n delTreeNode: function (rowid) {\n return this.each(function () {\n var $t = this, rid = $t.p.localReader.id,\n\t\t\tleft = $t.p.treeReader.left_field,\n\t\t\tright = $t.p.treeReader.right_field, myright, width, res, key;\n if (!$t.grid || !$t.p.treeGrid) { return; }\n var rc = $t.p._index[rowid];\n if (rc !== undefined) {\n // nested\n myright = parseInt($t.p.data[rc][right], 10);\n width = myright - parseInt($t.p.data[rc][left], 10) + 1;\n var dr = $($t).jqGrid(\"getFullTreeNode\", $t.p.data[rc]);\n if (dr.length > 0) {\n for (var i = 0; i < dr.length; i++) {\n $($t).jqGrid(\"delRowData\", dr[i][rid]);\n }\n }\n if ($t.p.treeGridModel === \"nested\") {\n // ToDo - update grid data\n res = $.jgrid.from($t.p.data)\n\t\t\t\t\t\t.greater(left, myright, { stype: 'integer' })\n\t\t\t\t\t\t.select();\n if (res.length) {\n for (key in res) {\n res[key][left] = parseInt(res[key][left], 10) - width;\n }\n }\n res = $.jgrid.from($t.p.data)\n\t\t\t\t\t\t.greater(right, myright, { stype: 'integer' })\n\t\t\t\t\t\t.select();\n if (res.length) {\n for (key in res) {\n res[key][right] = parseInt(res[key][right], 10) - width;\n }\n }\n }\n }\n });\n },\n addChildNode: function (nodeid, parentid, data) {\n //return this.each(function(){\n var $t = this[0];\n if (data) {\n // we suppose tha the id is autoincremet and\n var expanded = $t.p.treeReader.expanded_field,\n\t\t\tisLeaf = $t.p.treeReader.leaf_field,\n\t\t\tlevel = $t.p.treeReader.level_field,\n\t\t\ticon = $t.p.treeReader.icon_field,\n\t\t\tparent = $t.p.treeReader.parent_id_field,\n\t\t\tleft = $t.p.treeReader.left_field,\n\t\t\tright = $t.p.treeReader.right_field,\n\t\t\tloaded = $t.p.treeReader.loaded,\n\t\t\tmethod, parentindex, parentdata, parentlevel, i, len, max = 0, rowind = parentid, leaf, maxright;\n\n if (typeof nodeid === 'undefined' || nodeid === null) {\n i = $t.p.data.length - 1;\n if (i >= 0) {\n while (i >= 0) { max = Math.max(max, parseInt($t.p.data[i][$t.p.localReader.id], 10)); i--; }\n }\n nodeid = max + 1;\n }\n var prow = $($t).jqGrid('getInd', parentid);\n leaf = false;\n // if not a parent we assume root\n if (parentid === undefined || parentid === null || parentid === \"\") {\n parentid = null;\n rowind = null;\n method = 'last';\n parentlevel = $t.p.tree_root_level;\n i = $t.p.data.length + 1;\n } else {\n method = 'after';\n parentindex = $t.p._index[parentid];\n parentdata = $t.p.data[parentindex];\n parentid = parentdata[$t.p.localReader.id];\n parentlevel = parseInt(parentdata[level], 10) + 1;\n var childs = $($t).jqGrid('getFullTreeNode', parentdata);\n // if there are child nodes get the last index of it\n if (childs.length) {\n i = childs[childs.length - 1][$t.p.localReader.id];\n rowind = i;\n i = $($t).jqGrid('getInd', rowind) + 1;\n } else {\n i = $($t).jqGrid('getInd', parentid) + 1;\n }\n // if the node is leaf\n if (parentdata[isLeaf]) {\n leaf = true;\n parentdata[expanded] = true;\n //var prow = $($t).jqGrid('getInd', parentid);\n $($t.rows[prow])\n\t\t\t\t\t\t\t.find(\"span.cell-wrapperleaf\").removeClass(\"cell-wrapperleaf\").addClass(\"cell-wrapper\")\n\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t\t.find(\"div.tree-leaf\").removeClass($t.p.treeIcons.leaf + \" tree-leaf\").addClass($t.p.treeIcons.minus + \" tree-minus\");\n $t.p.data[parentindex][isLeaf] = false;\n parentdata[loaded] = true;\n }\n }\n len = i + 1;\n\n data[expanded] = false;\n data[loaded] = true;\n data[level] = parentlevel;\n data[isLeaf] = true;\n if ($t.p.treeGridModel === \"adjacency\") {\n data[parent] = parentid;\n }\n if ($t.p.treeGridModel === \"nested\") {\n // this method requiere more attention\n var query, res, key;\n //maxright = parseInt(maxright,10);\n // ToDo - update grid data\n if (parentid !== null) {\n maxright = parseInt(parentdata[right], 10);\n query = $.jgrid.from($t.p.data);\n query = query.greaterOrEquals(right, maxright, { stype: 'integer' });\n res = query.select();\n if (res.length) {\n for (key in res) {\n res[key][left] = res[key][left] > maxright ? parseInt(res[key][left], 10) + 2 : res[key][left];\n res[key][right] = res[key][right] >= maxright ? parseInt(res[key][right], 10) + 2 : res[key][right];\n }\n }\n data[left] = maxright;\n data[right] = maxright + 1;\n } else {\n maxright = parseInt($($t).jqGrid('getCol', right, false, 'max'), 10);\n res = $.jgrid.from($t.p.data)\n\t\t\t\t\t\t.greater(left, maxright, { stype: 'integer' })\n\t\t\t\t\t\t.select();\n if (res.length) {\n for (key in res) {\n res[key][left] = parseInt(res[key][left], 10) + 2;\n }\n }\n res = $.jgrid.from($t.p.data)\n\t\t\t\t\t\t.greater(right, maxright, { stype: 'integer' })\n\t\t\t\t\t\t.select();\n if (res.length) {\n for (key in res) {\n res[key][right] = parseInt(res[key][right], 10) + 2;\n }\n }\n data[left] = maxright + 1;\n data[right] = maxright + 2;\n }\n }\n if (parentid === null || $($t).jqGrid(\"isNodeLoaded\", parentdata) || leaf) {\n $($t).jqGrid('addRowData', nodeid, data, method, rowind);\n $($t).jqGrid('setTreeNode', i, len);\n }\n if (parentdata && !parentdata[expanded]) {\n $($t.rows[prow])\n\t\t\t\t\t.find(\"div.treeclick\")\n\t\t\t\t\t.click();\n }\n }\n //});\n }\n });\n})(jQuery);\n// Grouping module\n; (function ($) {\n $.jgrid.extend({\n groupingSetup: function () {\n return this.each(function () {\n var $t = this,\n\t\t\tgrp = $t.p.groupingView;\n if (grp !== null && ((typeof grp === 'object') || $.isFunction(grp))) {\n if (!grp.groupField.length) {\n $t.p.grouping = false;\n } else {\n if (typeof (grp.visibiltyOnNextGrouping) == 'undefined') {\n grp.visibiltyOnNextGrouping = [];\n }\n for (var i = 0; i < grp.groupField.length; i++) {\n if (!grp.groupOrder[i]) {\n grp.groupOrder[i] = 'asc';\n }\n if (!grp.groupText[i]) {\n grp.groupText[i] = '{0}';\n }\n if (typeof (grp.groupColumnShow[i]) != 'boolean') {\n grp.groupColumnShow[i] = true;\n }\n if (typeof (grp.groupSummary[i]) != 'boolean') {\n grp.groupSummary[i] = false;\n }\n if (grp.groupColumnShow[i] === true) {\n grp.visibiltyOnNextGrouping[i] = true;\n $($t).jqGrid('showCol', grp.groupField[i]);\n } else {\n grp.visibiltyOnNextGrouping[i] = $(\"#\" + $t.p.id + \"_\" + grp.groupField[i]).is(\":visible\");\n $($t).jqGrid('hideCol', grp.groupField[i]);\n }\n grp.sortitems[i] = [];\n grp.sortnames[i] = [];\n grp.summaryval[i] = [];\n if (grp.groupSummary[i]) {\n grp.summary[i] = [];\n var cm = $t.p.colModel;\n for (var j = 0, cml = cm.length; j < cml; j++) {\n if (cm[j].summaryType) {\n grp.summary[i].push({ nm: cm[j].name, st: cm[j].summaryType, v: '' });\n }\n }\n }\n }\n $t.p.scroll = false;\n $t.p.rownumbers = false;\n $t.p.subGrid = false;\n $t.p.treeGrid = false;\n $t.p.gridview = true;\n }\n } else {\n $t.p.grouping = false;\n }\n });\n },\n groupingPrepare: function (rData, items, gdata, record) {\n this.each(function () {\n // currently only one level\n // Is this a good idea to do it so!!!!?????\n items[0] += \"\";\n var itm = items[0].toString().split(' ').join('');\n\n var grp = this.p.groupingView, $t = this;\n if (gdata.hasOwnProperty(itm)) {\n gdata[itm].push(rData);\n } else {\n gdata[itm] = [];\n gdata[itm].push(rData);\n grp.sortitems[0].push(itm);\n grp.sortnames[0].push($.trim(items[0].toString()));\n grp.summaryval[0][itm] = $.extend(true, [], grp.summary[0]);\n }\n if (grp.groupSummary[0]) {\n $.each(grp.summaryval[0][itm], function () {\n if ($.isFunction(this.st)) {\n this.v = this.st.call($t, this.v, this.nm, record);\n } else {\n this.v = $($t).jqGrid('groupingCalculations.' + this.st, this.v, this.nm, record);\n }\n });\n }\n });\n return gdata;\n },\n groupingToggle: function (hid) {\n this.each(function () {\n var $t = this,\n\t\t\tgrp = $t.p.groupingView,\n\t\t\tstrpos = hid.lastIndexOf('_'),\n\t\t\tuid = hid.substring(0, strpos + 1),\n\t\t\tnum = parseInt(hid.substring(strpos + 1), 10) + 1,\n\t\t\tminus = grp.minusicon,\n\t\t\tplus = grp.plusicon,\n\t\t\ttar = $(\"#\" + hid),\n\t\t\tr = tar.length ? tar[0].nextSibling : null,\n\t\t\ttarspan = $(\"#\" + hid + \" span.\" + \"tree-wrap-\" + $t.p.direction),\n\t\t\tcollapsed = false;\n if (tarspan.hasClass(minus)) {\n if (grp.showSummaryOnHide && grp.groupSummary[0]) {\n if (r) {\n while (r) {\n if ($(r).hasClass('jqfoot')) { break; }\n $(r).hide();\n r = r.nextSibling;\n }\n }\n } else {\n if (r) {\n while (r) {\n if ($(r).attr('id') == uid + String(num)) { break; }\n $(r).hide();\n r = r.nextSibling;\n }\n }\n }\n tarspan.removeClass(minus).addClass(plus);\n collapsed = true;\n } else {\n if (r) {\n while (r) {\n if ($(r).attr('id') == uid + String(num)) { break; }\n $(r).show();\n r = r.nextSibling;\n }\n }\n tarspan.removeClass(plus).addClass(minus);\n }\n if ($.isFunction($t.p.onClickGroup)) { $t.p.onClickGroup.call($t, hid, collapsed); }\n\n });\n return false;\n },\n groupingRender: function (grdata, colspans) {\n return this.each(function () {\n var $t = this,\n\t\t\tgrp = $t.p.groupingView,\n\t\t\tstr = \"\", icon = \"\", hid, pmrtl = grp.groupCollapse ? grp.plusicon : grp.minusicon, gv, cp, ii;\n //only one level for now\n if (!grp.groupDataSorted) {\n // ???? TO BE IMPROVED\n grp.sortitems[0].sort();\n grp.sortnames[0].sort();\n if (grp.groupOrder[0].toLowerCase() == 'desc') {\n grp.sortitems[0].reverse();\n grp.sortnames[0].reverse();\n }\n }\n pmrtl += \" tree-wrap-\" + $t.p.direction;\n ii = 0;\n while (ii < colspans) {\n if ($t.p.colModel[ii].name == grp.groupField[0]) {\n cp = ii;\n break;\n }\n ii++;\n }\n $.each(grp.sortitems[0], function (i, n) {\n hid = $t.p.id + \"ghead_\" + i;\n icon = \"\";\n try {\n gv = $t.formatter(hid, grp.sortnames[0][i], cp, grp.sortitems[0]);\n } catch (egv) {\n gv = grp.sortnames[0][i];\n }\n str += \"\" + icon + $.jgrid.format(grp.groupText[0], gv, grdata[n].length) + \"\";\n for (var kk = 0; kk < grdata[n].length; kk++) {\n str += grdata[n][kk].join('');\n }\n if (grp.groupSummary[0]) {\n var hhdr = \"\";\n if (grp.groupCollapse && !grp.showSummaryOnHide) {\n hhdr = \" style=\\\"display:none;\\\"\";\n }\n str += \"\";\n var fdata = grp.summaryval[0][n],\n\t\t\t\t\tcm = $t.p.colModel,\n\t\t\t\t\tvv, grlen = grdata[n].length;\n for (var k = 0; k < colspans; k++) {\n var tmpdata = \" \",\n\t\t\t\t\t\ttplfld = \"{0}\";\n $.each(fdata, function () {\n if (this.nm == cm[k].name) {\n if (cm[k].summaryTpl) {\n tplfld = cm[k].summaryTpl;\n }\n if (this.st == 'avg') {\n if (this.v && grlen > 0) {\n this.v = (this.v / grlen);\n }\n }\n try {\n vv = $t.formatter('', this.v, k, this);\n } catch (ef) {\n vv = this.v;\n }\n tmpdata = \"\" + $.jgrid.format(tplfld, vv) + \"\";\n return false;\n }\n });\n str += tmpdata;\n }\n str += \"\";\n }\n });\n $(\"#\" + $t.p.id + \" tbody:first\").append(str);\n // free up memory\n str = null;\n });\n },\n groupingGroupBy: function (name, options) {\n return this.each(function () {\n var $t = this;\n if (typeof (name) == \"string\") {\n name = [name];\n }\n var grp = $t.p.groupingView;\n $t.p.grouping = true;\n\n //Set default, in case visibilityOnNextGrouping is undefined\n if (typeof grp.visibiltyOnNextGrouping == \"undefined\") {\n grp.visibiltyOnNextGrouping = [];\n }\n var i;\n // show previous hidden groups if they are hidden and weren't removed yet\n for (i = 0; i < grp.groupField.length; i++) {\n if (!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) {\n $($t).jqGrid('showCol', grp.groupField[i]);\n }\n }\n // set visibility status of current group columns on next grouping\n for (i = 0; i < name.length; i++) {\n grp.visibiltyOnNextGrouping[i] = $(\"#\" + $t.p.id + \"_\" + name[i]).is(\":visible\");\n }\n $t.p.groupingView = $.extend($t.p.groupingView, options || {});\n grp.groupField = name;\n $($t).trigger(\"reloadGrid\");\n });\n },\n groupingRemove: function (current) {\n return this.each(function () {\n var $t = this;\n if (typeof (current) == 'undefined') {\n current = true;\n }\n $t.p.grouping = false;\n if (current === true) {\n var grp = $t.p.groupingView;\n // show previous hidden groups if they are hidden and weren't removed yet\n for (var i = 0; i < grp.groupField.length; i++) {\n if (!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) {\n $($t).jqGrid('showCol', grp.groupField);\n }\n }\n $(\"tr.jqgroup, tr.jqfoot\", \"#\" + $t.p.id + \" tbody:first\").remove();\n $(\"tr.jqgrow:hidden\", \"#\" + $t.p.id + \" tbody:first\").show();\n } else {\n $($t).trigger(\"reloadGrid\");\n }\n });\n },\n groupingCalculations: {\n \"sum\": function (v, field, rc) {\n return parseFloat(v || 0) + parseFloat((rc[field] || 0));\n },\n \"min\": function (v, field, rc) {\n if (v === \"\") {\n return parseFloat(rc[field] || 0);\n }\n return Math.min(parseFloat(v), parseFloat(rc[field] || 0));\n },\n \"max\": function (v, field, rc) {\n if (v === \"\") {\n return parseFloat(rc[field] || 0);\n }\n return Math.max(parseFloat(v), parseFloat(rc[field] || 0));\n },\n \"count\": function (v, field, rc) {\n if (v === \"\") { v = 0; }\n if (rc.hasOwnProperty(field)) {\n return v + 1;\n } else {\n return 0;\n }\n },\n \"avg\": function (v, field, rc) {\n // the same as sum, but at end we divide it\n return parseFloat(v || 0) + parseFloat((rc[field] || 0));\n }\n }\n });\n})(jQuery);\n; (function ($) {\n /*\n * jqGrid extension for constructing Grid Data from external file\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n **/\n $.jgrid.extend({\n jqGridImport: function (o) {\n o = $.extend({\n imptype: \"xml\", // xml, json, xmlstring, jsonstring\n impstring: \"\",\n impurl: \"\",\n mtype: \"GET\",\n impData: {},\n xmlGrid: {\n config: \"roots>grid\",\n data: \"roots>rows\"\n },\n jsonGrid: {\n config: \"grid\",\n data: \"data\"\n },\n ajaxOptions: {}\n }, o || {});\n return this.each(function () {\n var $t = this;\n var XmlConvert = function (xml, o) {\n var cnfg = $(o.xmlGrid.config, xml)[0];\n var xmldata = $(o.xmlGrid.data, xml)[0], jstr, jstr1;\n if (xmlJsonClass.xml2json && $.jgrid.parse) {\n jstr = xmlJsonClass.xml2json(cnfg, \" \");\n jstr = $.jgrid.parse(jstr);\n for (var key in jstr) {\n if (jstr.hasOwnProperty(key)) {\n jstr1 = jstr[key];\n }\n }\n if (xmldata) {\n // save the datatype\n var svdatatype = jstr.grid.datatype;\n jstr.grid.datatype = 'xmlstring';\n jstr.grid.datastr = xml;\n $($t).jqGrid(jstr1).jqGrid(\"setGridParam\", { datatype: svdatatype });\n } else {\n $($t).jqGrid(jstr1);\n }\n jstr = null; jstr1 = null;\n } else {\n alert(\"xml2json or parse are not present\");\n }\n };\n var JsonConvert = function (jsonstr, o) {\n if (jsonstr && typeof jsonstr == 'string') {\n var json = $.jgrid.parse(jsonstr);\n var gprm = json[o.jsonGrid.config];\n var jdata = json[o.jsonGrid.data];\n if (jdata) {\n var svdatatype = gprm.datatype;\n gprm.datatype = 'jsonstring';\n gprm.datastr = jdata;\n $($t).jqGrid(gprm).jqGrid(\"setGridParam\", { datatype: svdatatype });\n } else {\n $($t).jqGrid(gprm);\n }\n }\n };\n switch (o.imptype) {\n case 'xml':\n $.ajax($.extend({\n url: o.impurl,\n type: o.mtype,\n data: o.impData,\n dataType: \"xml\",\n complete: function (xml, stat) {\n if (stat == 'success') {\n XmlConvert(xml.responseXML, o);\n if ($.isFunction(o.importComplete)) {\n o.importComplete(xml);\n }\n }\n xml = null;\n }\n }, o.ajaxOptions));\n break;\n case 'xmlstring':\n // we need to make just the conversion and use the same code as xml\n if (o.impstring && typeof o.impstring == 'string') {\n var xmld = $.jgrid.stringToDoc(o.impstring);\n if (xmld) {\n XmlConvert(xmld, o);\n if ($.isFunction(o.importComplete)) {\n o.importComplete(xmld);\n }\n o.impstring = null;\n }\n xmld = null;\n }\n break;\n case 'json':\n $.ajax($.extend({\n url: o.impurl,\n type: o.mtype,\n data: o.impData,\n dataType: \"json\",\n complete: function (json, stat) {\n if (stat == 'success') {\n JsonConvert(json.responseText, o);\n if ($.isFunction(o.importComplete)) {\n o.importComplete(json);\n }\n }\n json = null;\n }\n }, o.ajaxOptions));\n break;\n case 'jsonstring':\n if (o.impstring && typeof o.impstring == 'string') {\n JsonConvert(o.impstring, o);\n if ($.isFunction(o.importComplete)) {\n o.importComplete(o.impstring);\n }\n o.impstring = null;\n }\n break;\n }\n });\n },\n jqGridExport: function (o) {\n o = $.extend({\n exptype: \"xmlstring\",\n root: \"grid\",\n ident: \"\\t\"\n }, o || {});\n var ret = null;\n this.each(function () {\n if (!this.grid) { return; }\n var gprm = $.extend({}, $(this).jqGrid(\"getGridParam\"));\n // we need to check for:\n // 1.multiselect, 2.subgrid 3. treegrid and remove the unneded columns from colNames\n if (gprm.rownumbers) {\n gprm.colNames.splice(0, 1);\n gprm.colModel.splice(0, 1);\n }\n if (gprm.multiselect) {\n gprm.colNames.splice(0, 1);\n gprm.colModel.splice(0, 1);\n }\n if (gprm.subGrid) {\n gprm.colNames.splice(0, 1);\n gprm.colModel.splice(0, 1);\n }\n gprm.knv = null;\n if (gprm.treeGrid) {\n for (var key in gprm.treeReader) {\n if (gprm.treeReader.hasOwnProperty(key)) {\n gprm.colNames.splice(gprm.colNames.length - 1);\n gprm.colModel.splice(gprm.colModel.length - 1);\n }\n }\n }\n switch (o.exptype) {\n case 'xmlstring':\n ret = \"<\" + o.root + \">\" + xmlJsonClass.json2xml(gprm, o.ident) + \"\";\n break;\n case 'jsonstring':\n ret = \"{\" + xmlJsonClass.toJson(gprm, o.root, o.ident, false) + \"}\";\n if (gprm.postData.filters !== undefined) {\n ret = ret.replace(/filters\":\"/, 'filters\":');\n ret = ret.replace(/}]}\"/, '}]}');\n }\n break;\n }\n });\n return ret;\n },\n //Cargegraph change - return complete grid data and have download prompt\n exportCSV: function (gridProperties, exportSelectedItemsOnly) {\n var self = this;\n require([\"Analytics/Insights\"], function(Insights) {\n var colModel = gridProperties.colModel;\n var className = gridProperties.carte_className;\n var parentOid = gridProperties.postData.parentOid;\n var parentFilterColumnValue = gridProperties.postData.parentFilterColumnValue;\n var childLevel = gridProperties.postData.childLevel;\n var sortedInfo = gridProperties._sortedColumns;\n var selectedItems = exportSelectedItemsOnly ? gridProperties.carte_SelectedRows : null;\n var insightEvent = new Insights.ExportToCsvAppInsightsEvent();\n\n // Application Insight\n Cartegraph.AppInsightsService.startTrackingEvent(insightEvent);\n\n Cartegraph.Utilities.showWaitScreen(Cartegraph.Resources.Exporting, 1);\n var fieldNames = '';\n var columnHeaders = '';\n //Need both the actual column names and display names to create the csv correctly\n $.each(colModel, function(i, item) {\n\n if (item.id) {\n fieldNames += ',' + item.id.replace('_ref_', '\\\\').replace('_parent_', '..\\\\');\n\n //If the first column in the csv is ID excel will consider it corrupt\n columnHeaders += '\"' + item.displayLabel + '\",';\n }\n });\n\n fieldNames = fieldNames.substring(1);\n columnHeaders = columnHeaders.substring(0, columnHeaders.length - 1);\n\n var filterString = '';\n var filter = new Array();\n var gridID = self.attr(\"ID\");\n var entryDate = null;\n //Getting a weird filter from the Tasks grid under work\n if (self.attr(\"ID\") != \"cgTimesheetsClassGrid\")\n filter = $(self).jqGrid('getGridParam', 'postData').filters;\n else\n entryDate = $.datepicker.formatDate(Cartegraph.Resources.IsoDateFormat, Cartegraph.Timesheet.entryDate);\n\n var sortString = '';\n if (sortedInfo.length > 0) {\n $.each(sortedInfo, function(i) {\n\n if (this.name == \"PriorityField\")\n sortString += this.name + ':' + this.order + ':PriorityField\\\\RankField,';\n else\n sortString += this.name + ':' + this.order + ',';\n });\n }\n\n sortString = sortString.substring(0, sortString.length - 1);\n\n var strBounds = Cartegraph.Map.Utilities.mapViewWithFilterBoundsAsString(self.parents(\"#content #indexContainer, #content #editContainer\"));\n\n if (filter.length > 0)\n filterString = filter.join('↓');\n\n // for the linked asset grid need to include the current assets class name, oid and relationship filter (combo box value)\n // in oder to select the appropriate records to export.\n // since the ajax call is a 'get' instead of a 'post' can not simply pass the postdata - linedAssetData\n var linkedClassName = \"\";\n var linkedParentOid = \"\";\n var linkedRelationshipFilter = \"\";\n var linkedAssetData = $(self).jqGrid('getGridParam', 'postData').linkedAssetData;\n\n if (linkedAssetData != null) {\n linkedClassName = linkedAssetData.CurrentAssetClass;\n linkedParentOid = linkedAssetData.CurrentAssetOid;\n linkedRelationshipFilter = linkedAssetData.RelationshipFilter;\n }\n\n // skip the dirty check so user is not prompted with a page leave message when exporting\n Cartegraph.ProceedIfNotDirty.SkipDirtyCheckOnce(true);\n\n var $exportBtnParent = $('.gridExport').first().parent();\n $exportBtnParent.find('form').remove(); //remove old form before creating a new one.\n\n var fileDownloadId = new Date().getTime();\n\n $('#exportCSVForm').tmpl({\n path: location.pathname + 'FlexUI/GetCSVFile',\n className: className,\n parentFilterColumnValue: parentFilterColumnValue,\n sortInfo: sortString,\n fieldNames: fieldNames,\n columnHeaders: columnHeaders,\n filters: filterString,\n parentOid: parentOid,\n bounds: strBounds,\n childLevel: childLevel,\n gridID: gridID,\n entryDate: entryDate,\n assetClassName: linkedClassName,\n assetParentOid: linkedParentOid,\n linkedAssetRelationshipFilter: linkedRelationshipFilter,\n fileDownloadId: fileDownloadId,\n selectedItems: selectedItems\n }).appendTo($exportBtnParent);\n\n $gridExportForm = $exportBtnParent.find('#gridExportForm');\n $gridExportForm.submit();\n\n // send Grid Export Event to mixpanel for analytics\n var numberOfRecords = exportSelectedItemsOnly ? selectedItems.length : gridProperties.records;\n Cartegraph.MixpanelService.gridExportEvent(className, numberOfRecords, exportSelectedItemsOnly, gridProperties.isChild);\n\n var fileDownloadCheckTimer = window.setInterval(function () {\n var cookieValue = $.cookie('fileDownloadId'); //Get the fileDownloadToken. If it matches the value we're expecting from the server, unblock the UI.\n\n if (cookieValue == fileDownloadId) {\n Cartegraph.Utilities.removeWaitScreen();\n clearInterval(fileDownloadCheckTimer);\n $.cookie('fileDownloadId', null); //clear the cookie value\n }\n }, 1000);\n\n // Application Insights\n insightEvent.measurement.RecordCount = numberOfRecords;\n Cartegraph.AppInsightsService.stopTrackingEvent(insightEvent);\n });\n\n },\n\n excelExport: function (o) {\n o = $.extend({\n exptype: \"remote\",\n url: null,\n oper: \"oper\",\n tag: \"excel\",\n exportOptions: {}\n }, o || {});\n return this.each(function () {\n if (!this.grid) { return; }\n var url;\n if (o.exptype == \"remote\") {\n var pdata = $.extend({}, this.p.postData);\n pdata[o.oper] = o.tag;\n var params = jQuery.param(pdata);\n if (o.url.indexOf(\"?\") != -1) { url = o.url + \"&\" + params; }\n else { url = o.url + \"?\" + params; }\n window.location = url;\n }\n });\n }\n });\n})(jQuery); ; (function ($) {\n /*\n **\n * jqGrid addons using jQuery UI\n * Author: Mark Williams\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n * depends on jQuery UI\n **/\n if ($.browser.msie && $.browser.version == 8) {\n $.expr[\":\"].hidden = function (elem) {\n return elem.offsetWidth === 0 || elem.offsetHeight === 0 ||\n\t\t\telem.style.display == \"none\";\n };\n }\n // requiere load multiselect before grid\n $.jgrid._multiselect = false;\n if ($.ui) {\n if ($.ui.multiselect) {\n if ($.ui.multiselect.prototype._setSelected) {\n var setSelected = $.ui.multiselect.prototype._setSelected;\n $.ui.multiselect.prototype._setSelected = function (item, selected) {\n var ret = setSelected.call(this, item, selected);\n if (selected && this.selectedList) {\n var elt = this.element;\n this.selectedList.find('li').each(function () {\n if ($(this).data('optionLink')) {\n $(this).data('optionLink').remove().appendTo(elt);\n }\n });\n }\n return ret;\n };\n }\n if ($.ui.multiselect.prototype.destroy) {\n $.ui.multiselect.prototype.destroy = function () {\n this.element.show();\n this.container.remove();\n if ($.Widget === undefined) {\n $.widget.prototype.destroy.apply(this, arguments);\n } else {\n $.Widget.prototype.destroy.apply(this, arguments);\n }\n };\n }\n $.jgrid._multiselect = true;\n }\n }\n\n $.jgrid.extend({\n sortableColumns: function (tblrow) {\n return this.each(function () {\n var ts = this, tid = ts.p.id;\n\n // ==== Cartegraph change: frozen columns ====\n\n var frozenColumnsIDs = \"\";\n\n // 'setFrozenColumns' has not been called yet, so determine if any columns are frozen\n for (i = 0; i < ts.p.colModel.length; i++) {\n if (ts.p.colModel[i].frozen === true)\n frozenColumnsIDs += \",#\" + tid + '_' + ts.p.colModel[i].name;\n }\n\n // ==== Cartegraph change: frozen columns ====\n\n function start() { ts.p.disableClick = true; }\n var sortable_opts = {\n \"tolerance\": \"pointer\",\n \"axis\": \"x\",\n \"scrollSensitivity\": \"1\",\n // ==== Cartegraph change: auto stretch last column ====\n //\"items\": '>th:not(:has(#jqgh_' + tid + '_cb' + ',#jqgh_' + tid + '_rn' + ',#jqgh_' + tid + '_subgrid),:hidden)',\n // prevent cgStretchLastColumn from being reorderable\n \"items\": '>th:not(:has(#jqgh_' + tid + '_cb' + ',#jqgh_' + tid + '_rn' + ',#jqgh_' + tid + '_subgrid),:hidden,#' + tid + '_cgStretchLastColumn,#' + tid + '_RowSelect' + frozenColumnsIDs + ',#' + tid + '_cgRemoveButton' + frozenColumnsIDs + ')',\n // ==== Cartegraph change: auto stretch last column ====\n \"placeholder\": {\n element: function (item) {\n var el = $(document.createElement(item[0].nodeName))\n\t\t\t\t\t\t.addClass(item[0].className + \" ui-sortable-placeholder ui-state-highlight\")\n\t\t\t\t\t\t.removeClass(\"ui-sortable-helper\")[0];\n return el;\n },\n update: function (self, p) {\n p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop') || 0, 10) - parseInt(self.currentItem.css('paddingBottom') || 0, 10));\n p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft') || 0, 10) - parseInt(self.currentItem.css('paddingRight') || 0, 10));\n }\n },\n \"update\": function (event, ui) {\n\n // ==== Cartegraph change: recalculate the horizontal scrollbar position ====\n ts.grid.horizontalScrollbar.scrollLeft = ts.grid.hDiv.scrollLeft;\n // ==== Cartegraph change: recalculate the horizontal scrollbar position ====\n\n var p = $(ui.item).parent(),\n\t\t\t\t\t th = $(\">th\", p),\n\t\t\t\t\t colModel = ts.p.colModel,\n\t\t\t\t\t cmMap = {}, tid = ts.p.id + \"_\";\n $.each(colModel, function (i) { cmMap[this.name] = i; });\n var permutation = [];\n th.each(function (i) {\n var id = $(\">div\", this).get(0).id.replace(/^jqgh_/, \"\").replace(tid, \"\");\n if (id in cmMap) {\n permutation.push(cmMap[id]);\n }\n });\n\n $(ts).jqGrid(\"remapColumns\", permutation, true, true);\n if ($.isFunction(ts.p.sortable.update)) {\n ts.p.sortable.update(permutation);\n }\n setTimeout(function () { ts.p.disableClick = false; }, 50);\n Cartegraph.FlexUI[ts.p.id].persistGridSettings(ts.p.colModel, ts.p._sortedColumns, ts.p.pageClassName, ts.p.colNames);\n }\n };\n if (ts.p.sortable.options) {\n $.extend(sortable_opts, ts.p.sortable.options);\n } else if ($.isFunction(ts.p.sortable)) {\n ts.p.sortable = { \"update\": ts.p.sortable };\n }\n if (sortable_opts.start) {\n var s = sortable_opts.start;\n sortable_opts.start = function (e, ui) {\n start();\n s.call(this, e, ui);\n };\n } else {\n sortable_opts.start = start;\n }\n if (ts.p.sortable.exclude) {\n sortable_opts.items += \":not(\" + ts.p.sortable.exclude + \")\";\n }\n tblrow.sortable(sortable_opts).data(\"sortable\").floating = true;\n });\n },\n columnChooser: function (opts) {\n var self = this;\n if ($(\"#colchooser_\" + self[0].p.id).length) { return; }\n var selector = $('
    ');\n var select = $('select', selector);\n\n function insert(perm, i, v) {\n if (i >= 0) {\n var a = perm.slice();\n var b = a.splice(i, Math.max(perm.length - i, i));\n if (i > perm.length) { i = perm.length; }\n a[i] = v;\n return a.concat(b);\n }\n }\n opts = $.extend({\n \"width\": 420,\n \"height\": 240,\n \"classname\": null,\n \"done\": function (perm) {\n if (perm) { self.jqGrid(\"remapColumns\", perm, true); }\n },\n /* msel is either the name of a ui widget class that\n extends a multiselect, or a function that supports\n creating a multiselect object (with no argument,\n or when passed an object), and destroying it (when\n passed the string \"destroy\"). */\n \"msel\": \"multiselect\",\n /* \"msel_opts\" : {}, */\n\n /* dlog is either the name of a ui widget class that\n behaves in a dialog-like way, or a function, that\n supports creating a dialog (when passed dlog_opts)\n or destroying a dialog (when passed the string\n \"destroy\")\n */\n \"dlog\": \"dialog\",\n\n /* dlog_opts is either an option object to be passed\n to \"dlog\", or (more likely) a function that creates\n the options object.\n The default produces a suitable options object for\n ui.dialog */\n \"dlog_opts\": function (opts) {\n var buttons = {};\n buttons[opts.bSubmit] = function () {\n opts.apply_perm();\n opts.cleanup(false);\n };\n buttons[opts.bCancel] = function () {\n opts.cleanup(true);\n };\n return {\n \"buttons\": buttons,\n \"close\": function () {\n opts.cleanup(true);\n },\n \"modal\": opts.modal ? opts.modal : false,\n \"resizable\": opts.resizable ? opts.resizable : true,\n \"width\": opts.width + 20\n };\n },\n /* Function to get the permutation array, and pass it to the\n \"done\" function */\n \"apply_perm\": function () {\n $('option', select).each(function (i) {\n if (this.selected) {\n self.jqGrid(\"showCol\", colModel[this.value].name);\n } else {\n self.jqGrid(\"hideCol\", colModel[this.value].name);\n }\n });\n\n var perm = [];\n //fixedCols.slice(0);\n $('option:selected', select).each(function () { perm.push(parseInt(this.value, 10)); });\n $.each(perm, function () { delete colMap[colModel[parseInt(this, 10)].name]; });\n $.each(colMap, function () {\n var ti = parseInt(this, 10);\n perm = insert(perm, ti, ti);\n });\n if (opts.done) {\n opts.done.call(self, perm);\n }\n },\n /* Function to cleanup the dialog, and select. Also calls the\n done function with no permutation (to indicate that the\n columnChooser was aborted */\n \"cleanup\": function (calldone) {\n call(opts.dlog, selector, 'destroy');\n call(opts.msel, select, 'destroy');\n selector.remove();\n if (calldone && opts.done) {\n opts.done.call(self);\n }\n },\n \"msel_opts\": {}\n }, $.jgrid.col, opts || {});\n if ($.ui) {\n if ($.ui.multiselect) {\n if (opts.msel == \"multiselect\") {\n if (!$.jgrid._multiselect) {\n // should be in language file\n alert(\"Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!\");\n return;\n }\n opts.msel_opts = $.extend($.ui.multiselect.defaults, opts.msel_opts);\n }\n }\n }\n if (opts.caption) {\n selector.attr(\"title\", opts.caption);\n }\n if (opts.classname) {\n selector.addClass(opts.classname);\n select.addClass(opts.classname);\n }\n if (opts.width) {\n $(\">div\", selector).css({ \"width\": opts.width, \"margin\": \"0 auto\" });\n select.css(\"width\", opts.width);\n }\n if (opts.height) {\n $(\">div\", selector).css(\"height\", opts.height);\n select.css(\"height\", opts.height - 10);\n }\n var colModel = self.jqGrid(\"getGridParam\", \"colModel\");\n var colNames = self.jqGrid(\"getGridParam\", \"colNames\");\n var colMap = {}, fixedCols = [];\n\n select.empty();\n $.each(colModel, function (i) {\n colMap[this.name] = i;\n if (this.hidedlg) {\n if (!this.hidden) {\n fixedCols.push(i);\n }\n return;\n }\n\n select.append(\"\");\n });\n function call(fn, obj) {\n if (!fn) { return; }\n if (typeof fn == 'string') {\n if ($.fn[fn]) {\n $.fn[fn].apply(obj, $.makeArray(arguments).slice(2));\n }\n } else if ($.isFunction(fn)) {\n fn.apply(obj, $.makeArray(arguments).slice(2));\n }\n }\n\n var dopts = $.isFunction(opts.dlog_opts) ? opts.dlog_opts.call(self, opts) : opts.dlog_opts;\n call(opts.dlog, selector, dopts);\n var mopts = $.isFunction(opts.msel_opts) ? opts.msel_opts.call(self, opts) : opts.msel_opts;\n call(opts.msel, select, mopts);\n },\n sortableRows: function (opts) {\n // Can accept all sortable options and events\n return this.each(function () {\n var $t = this;\n if (!$t.grid) { return; }\n // Currently we disable a treeGrid sortable\n if ($t.p.treeGrid) { return; }\n if ($.fn.sortable) {\n opts = $.extend({\n \"cursor\": \"move\",\n \"axis\": \"y\",\n \"items\": \".jqgrow\"\n },\n\t\t\t\topts || {});\n if (opts.start && $.isFunction(opts.start)) {\n opts._start_ = opts.start;\n delete opts.start;\n } else { opts._start_ = false; }\n if (opts.update && $.isFunction(opts.update)) {\n opts._update_ = opts.update;\n delete opts.update;\n } else { opts._update_ = false; }\n opts.start = function (ev, ui) {\n $(ui.item).css(\"border-width\", \"0px\");\n $(\"td\", ui.item).each(function (i) {\n this.style.width = $t.grid.cols[i].style.width;\n });\n if ($t.p.subGrid) {\n var subgid = $(ui.item).attr(\"id\");\n try {\n $($t).jqGrid('collapseSubGridRow', subgid);\n } catch (e) { }\n }\n if (opts._start_) {\n opts._start_.apply(this, [ev, ui]);\n }\n };\n opts.update = function (ev, ui) {\n $(ui.item).css(\"border-width\", \"\");\n if ($t.p.rownumbers === true) {\n $(\"td.jqgrid-rownum\", $t.rows).each(function (i) {\n $(this).html(i + 1 + (parseInt($t.p.page, 10) - 1) * parseInt($t.p.rowNum, 10));\n });\n }\n if (opts._update_) {\n opts._update_.apply(this, [ev, ui]);\n }\n };\n $(\"tbody:first\", $t).sortable(opts);\n $(\"tbody:first\", $t).disableSelection();\n }\n });\n },\n gridDnD: function (opts) {\n return this.each(function () {\n var $t = this;\n if (!$t.grid) { return; }\n // Currently we disable a treeGrid drag and drop\n if ($t.p.treeGrid) { return; }\n if (!$.fn.draggable || !$.fn.droppable) { return; }\n function updateDnD() {\n var datadnd = $.data($t, \"dnd\");\n $(\"tr.jqgrow:not(.ui-draggable)\", $t).draggable($.isFunction(datadnd.drag) ? datadnd.drag.call($($t), datadnd) : datadnd.drag);\n }\n var appender = \"
    \";\n if ($(\"#jqgrid_dnd\").html() === null) {\n $('body').append(appender);\n }\n\n if (typeof opts == 'string' && opts == 'updateDnD' && $t.p.jqgdnd === true) {\n updateDnD();\n return;\n }\n opts = $.extend({\n \"drag\": function (opts) {\n return $.extend({\n start: function (ev, ui) {\n // if we are in subgrid mode try to collapse the node\n if ($t.p.subGrid) {\n var subgid = $(ui.helper).attr(\"id\");\n try {\n $($t).jqGrid('collapseSubGridRow', subgid);\n } catch (e) { }\n }\n // hack\n // drag and drop does not insert tr in table, when the table has no rows\n // we try to insert new empty row on the target(s)\n for (var i = 0; i < $.data($t, \"dnd\").connectWith.length; i++) {\n if ($($.data($t, \"dnd\").connectWith[i]).jqGrid('getGridParam', 'reccount') == \"0\") {\n $($.data($t, \"dnd\").connectWith[i]).jqGrid('addRowData', 'jqg_empty_row', {});\n }\n }\n ui.helper.addClass(\"ui-state-highlight\");\n $(\"td\", ui.helper).each(function (i) {\n this.style.width = $t.grid.headers[i].width + \"px\";\n });\n if (opts.onstart && $.isFunction(opts.onstart)) { opts.onstart.call($($t), ev, ui); }\n },\n stop: function (ev, ui) {\n if (ui.helper.dropped && !opts.dragcopy) {\n var ids = $(ui.helper).attr(\"id\");\n $($t).jqGrid('delRowData', ids);\n }\n // if we have a empty row inserted from start event try to delete it\n for (var i = 0; i < $.data($t, \"dnd\").connectWith.length; i++) {\n $($.data($t, \"dnd\").connectWith[i]).jqGrid('delRowData', 'jqg_empty_row');\n }\n if (opts.onstop && $.isFunction(opts.onstop)) { opts.onstop.call($($t), ev, ui); }\n }\n }, opts.drag_opts || {});\n },\n \"drop\": function (opts) {\n return $.extend({\n accept: function (d) {\n if (!$(d).hasClass('jqgrow')) { return d; }\n var tid = $(d).closest(\"table.ui-jqgrid-btable\");\n if (tid.length > 0 && $.data(tid[0], \"dnd\") !== undefined) {\n var cn = $.data(tid[0], \"dnd\").connectWith;\n return $.inArray('#' + this.id, cn) != -1 ? true : false;\n }\n return false;\n },\n drop: function (ev, ui) {\n if (!$(ui.draggable).hasClass('jqgrow')) { return; }\n var accept = $(ui.draggable).attr(\"id\");\n var getdata = ui.draggable.parent().parent().jqGrid('getRowData', accept);\n if (!opts.dropbyname) {\n var j = 0, tmpdata = {}, dropname;\n var dropmodel = $(\"#\" + this.id).jqGrid('getGridParam', 'colModel');\n try {\n for (var key in getdata) {\n if (getdata.hasOwnProperty(key) && dropmodel[j]) {\n dropname = dropmodel[j].name;\n tmpdata[dropname] = getdata[key];\n }\n j++;\n }\n getdata = tmpdata;\n } catch (e) { }\n }\n ui.helper.dropped = true;\n if (opts.beforedrop && $.isFunction(opts.beforedrop)) {\n //parameters to this callback - event, element, data to be inserted, sender, reciever\n // should return object which will be inserted into the reciever\n var datatoinsert = opts.beforedrop.call(this, ev, ui, getdata, $('#' + $t.id), $(this));\n if (typeof datatoinsert != \"undefined\" && datatoinsert !== null && typeof datatoinsert == \"object\") { getdata = datatoinsert; }\n }\n if (ui.helper.dropped) {\n var grid;\n if (opts.autoid) {\n if ($.isFunction(opts.autoid)) {\n grid = opts.autoid.call(this, getdata);\n } else {\n grid = Math.ceil(Math.random() * 1000);\n grid = opts.autoidprefix + grid;\n }\n }\n // NULL is interpreted as undefined while null as object\n $(\"#\" + this.id).jqGrid('addRowData', grid, getdata, opts.droppos);\n }\n if (opts.ondrop && $.isFunction(opts.ondrop)) { opts.ondrop.call(this, ev, ui, getdata); }\n }\n }, opts.drop_opts || {});\n },\n \"onstart\": null,\n \"onstop\": null,\n \"beforedrop\": null,\n \"ondrop\": null,\n \"drop_opts\": {\n \"activeClass\": \"ui-state-active\",\n \"hoverClass\": \"ui-state-hover\"\n },\n \"drag_opts\": {\n \"revert\": \"invalid\",\n \"helper\": \"clone\",\n \"cursor\": \"move\",\n \"appendTo\": \"#jqgrid_dnd\",\n \"zIndex\": 5000\n },\n \"dragcopy\": false,\n \"dropbyname\": false,\n \"droppos\": \"first\",\n \"autoid\": true,\n \"autoidprefix\": \"dnd_\"\n }, opts || {});\n\n if (!opts.connectWith) { return; }\n opts.connectWith = opts.connectWith.split(\",\");\n opts.connectWith = $.map(opts.connectWith, function (n) { return $.trim(n); });\n $.data($t, \"dnd\", opts);\n\n if ($t.p.reccount != \"0\" && !$t.p.jqgdnd) {\n updateDnD();\n }\n $t.p.jqgdnd = true;\n for (var i = 0; i < opts.connectWith.length; i++) {\n var cn = opts.connectWith[i];\n $(cn).droppable($.isFunction(opts.drop) ? opts.drop.call($($t), opts) : opts.drop);\n }\n });\n },\n gridResize: function (opts) {\n return this.each(function () {\n var $t = this;\n if (!$t.grid || !$.fn.resizable) { return; }\n opts = $.extend({}, opts || {});\n if (opts.alsoResize) {\n opts._alsoResize_ = opts.alsoResize;\n delete opts.alsoResize;\n } else {\n opts._alsoResize_ = false;\n }\n if (opts.stop && $.isFunction(opts.stop)) {\n opts._stop_ = opts.stop;\n delete opts.stop;\n } else {\n opts._stop_ = false;\n }\n opts.stop = function (ev, ui) {\n $($t).jqGrid('setGridParam', { height: $(\"#gview_\" + $t.p.id + \" .ui-jqgrid-bdiv\").height() });\n $($t).jqGrid('setGridWidth', ui.size.width, opts.shrinkToFit);\n if (opts._stop_) { opts._stop_.call($t, ev, ui); }\n };\n if (opts._alsoResize_) {\n var optstest = \"{\\'#gview_\" + $t.p.id + \" .ui-jqgrid-bdiv\\':true,'\" + opts._alsoResize_ + \"':true}\";\n opts.alsoResize = eval('(' + optstest + ')'); // the only way that I found to do this\n } else {\n opts.alsoResize = $(\".ui-jqgrid-bdiv\", \"#gview_\" + $t.p.id);\n }\n delete opts._alsoResize_;\n $(\"#gbox_\" + $t.p.id).resizable(opts);\n });\n }\n });\n})(jQuery);\n/*\nTransform a table to a jqGrid.\nPeter Romianowski \nIf the first column of the table contains checkboxes or\nradiobuttons then the jqGrid is made selectable.\n*/\n// Addition - selector can be a class or id\nfunction tableToGrid(selector, options) {\n jQuery(selector).each(function () {\n if (this.grid) { return; } //Adedd from Tony Tomov\n // This is a small \"hack\" to make the width of the jqGrid 100%\n jQuery(this).width(\"99%\");\n var w = jQuery(this).width();\n\n // Text whether we have single or multi select\n var inputCheckbox = jQuery('tr td:first-child input[type=checkbox]:first', jQuery(this));\n var inputRadio = jQuery('tr td:first-child input[type=radio]:first', jQuery(this));\n var selectMultiple = inputCheckbox.length > 0;\n var selectSingle = !selectMultiple && inputRadio.length > 0;\n var selectable = selectMultiple || selectSingle;\n //var inputName = inputCheckbox.attr(\"name\") || inputRadio.attr(\"name\");\n\n // Build up the columnModel and the data\n var colModel = [];\n var colNames = [];\n jQuery('th', jQuery(this)).each(function () {\n if (colModel.length === 0 && selectable) {\n colModel.push({\n name: '__selection__',\n index: '__selection__',\n width: 0,\n hidden: true\n });\n colNames.push('__selection__');\n } else {\n colModel.push({\n name: jQuery(this).attr(\"id\") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),\n index: jQuery(this).attr(\"id\") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),\n width: jQuery(this).width() || 150\n });\n colNames.push(jQuery(this).html());\n }\n });\n var data = [];\n var rowIds = [];\n var rowChecked = [];\n jQuery('tbody > tr', jQuery(this)).each(function () {\n var row = {};\n var rowPos = 0;\n jQuery('td', jQuery(this)).each(function () {\n if (rowPos === 0 && selectable) {\n var input = jQuery('input', jQuery(this));\n var rowId = input.attr(\"value\");\n rowIds.push(rowId || data.length);\n if (input.is(\":checked\")) {\n rowChecked.push(rowId);\n }\n row[colModel[rowPos].name] = input.attr(\"value\");\n } else {\n row[colModel[rowPos].name] = jQuery(this).html();\n }\n rowPos++;\n });\n if (rowPos > 0) { data.push(row); }\n });\n\n // Clear the original HTML table\n jQuery(this).empty();\n\n // Mark it as jqGrid\n jQuery(this).addClass(\"scroll\");\n\n jQuery(this).jqGrid(jQuery.extend({\n datatype: \"local\",\n width: w,\n colNames: colNames,\n colModel: colModel,\n multiselect: selectMultiple\n //inputName: inputName,\n //inputValueCol: imputName != null ? \"__selection__\" : null\n }, options || {}));\n\n // Add data\n var a;\n for (a = 0; a < data.length; a++) {\n var id = null;\n if (rowIds.length > 0) {\n id = rowIds[a];\n if (id && id.replace) {\n // We have to do this since the value of a checkbox\n // or radio button can be anything\n id = encodeURIComponent(id).replace(/[.\\-%]/g, \"_\");\n }\n }\n if (id === null) {\n id = a + 1;\n }\n jQuery(this).jqGrid(\"addRowData\", id, data[a]);\n }\n\n // Set the selection\n for (a = 0; a < rowChecked.length; a++) {\n jQuery(this).jqGrid(\"setSelection\", rowChecked[a]);\n }\n });\n};\n\n//simulate \"scrollstart\" and \"scrollstop\" events by placing a timeout on the scroll event.\n//this will aid in reducing the number of redundant ajax requests sent to the server on scrolling events.\n(function () {\n\n var special = jQuery.event.special,\n uid1 = 'D' + (+new Date()),\n uid2 = 'D' + (+new Date() + 1);\n\n special.scrollstart = {\n setup: function () {\n\n var timer,\n handler = function (evt) {\n\n var _self = this,\n _args = arguments;\n\n if (timer) {\n clearTimeout(timer);\n } else {\n evt.type = 'scrollstart';\n jQuery.event.handle.apply(_self, _args);\n }\n\n timer = setTimeout(function () {\n timer = null;\n }, special.scrollstop.latency);\n\n };\n\n jQuery(this).bind('scroll', handler).data(uid1, handler);\n\n },\n teardown: function () {\n jQuery(this).unbind('scroll', jQuery(this).data(uid1));\n }\n };\n\n special.scrollstop = {\n latency: scrollStopLatency,\n setup: function () {\n\n var timer,\n handler = function (evt) {\n var _self = this,\n _args = arguments;\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(function () {\n\n timer = null;\n evt.type = 'scrollstop';\n jQuery.event.handle.apply(_self, _args);\n }, scrollStopLatency);\n };\n\n jQuery(this).bind('scroll', handler).data(uid2, handler);\n\n },\n teardown: function () {\n jQuery(this).unbind('scroll', jQuery(this).data(uid2));\n }\n };\n\n})();\n\n(function() {\n $('html').keydown(function (e) {\n if (IsPagingKeyPress(e.keyCode))\n scrollStopLatency = keydownScrollLatency;\n });\n $('html').keyup(function () { scrollStopLatency = mouseScrollLatency; });\n $('html').mousewheel(function (e) { scrollStopLatency = keydownScrollLatency; });\n $('html').mousedown(function (e) { scrollStopLatency = mouseScrollLatency; });\n})();\n\nfunction IsPagingKeyPress(keyCode) {\n return keyCode == 38 || keyCode == 40 || keyCode == 33 || keyCode == 34; //true if Up key, Down Key, Page Up or Page Down\n}\n\nfunction sortsvg() {\n return '';\n}\n\nfunction jq_grid_throttle(fn, wait) {\n var time = Date.now();\n return function() {\n if ((time + wait - Date.now()) < 0) {\n fn();\n time = Date.now();\n }\n }\n }","/*\n* qTip2 - Pretty powerful tooltips\n* http://craigsworks.com/projects/qtip2/\n*\n* Version: nightly\n* Copyright 2009-2010 Craig Michael Thompson - http://craigsworks.com\n*\n* Dual licensed under MIT or GPLv2 licenses\n* http://en.wikipedia.org/wiki/MIT_License\n* http://en.wikipedia.org/wiki/GNU_General_Public_License\n*\n* Date: Sat Dec 17 14:13:47.0000000000 2011\n*/\n\n/*jslint browser: true, onevar: true, undef: true, nomen: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: true */\n/*global window: false, jQuery: false, console: false */\n\n\n(function ($, window, undefined) {\n\n \"use strict\"; // Enable ECMAScript \"strict\" operation for this function. See more: http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/\n\n // Munge the primitives - Paul Irish tip\n var TRUE = true,\n\t\tFALSE = false,\n\t\tNULL = null,\n\n // Shortcut vars\n\t\tQTIP, PLUGINS, MOUSE,\n\t\tusedIDs = {},\n\t\tuitooltip = 'ui-tooltip',\n\t\twidget = 'ui-widget',\n\t\tdisabled = 'ui-state-disabled',\n\t\tselector = 'div.qtip.' + uitooltip,\n\t\tdefaultClass = uitooltip + '-default',\n\t\tfocusClass = uitooltip + '-focus',\n\t\thoverClass = uitooltip + '-hover',\n\t\tfluidClass = uitooltip + '-fluid',\n\t\thideOffset = '-31000px',\n\t\treplaceSuffix = '_replacedByqTip',\n\t\toldtitle = 'oldtitle',\n\t\ttrackingBound;\n\n /* Thanks to Paul Irish for this one: http://paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/ */\n function log() {\n log.history = log.history || [];\n log.history.push(arguments);\n\n // Make sure console is present\n if ('object' === typeof console) {\n\n // Setup console and arguments\n var c = console[console.warn ? 'warn' : 'log'],\n\t\t\targs = Array.prototype.slice.call(arguments), a;\n\n // Add qTip2 marker to first argument if it's a string\n if (typeof arguments[0] === 'string') { args[0] = 'qTip2: ' + args[0]; }\n\n // Apply console.warn or .log if not supported\n a = c.apply ? c.apply(console, args) : c(args);\n }\n }\n\n // Option object sanitizer\n function sanitizeOptions(opts) {\n var content;\n\n if (!opts || 'object' !== typeof opts) { return FALSE; }\n\n if (opts.metadata === NULL || 'object' !== typeof opts.metadata) {\n opts.metadata = {\n type: opts.metadata\n };\n }\n\n if ('content' in opts) {\n if (opts.content === NULL || 'object' !== typeof opts.content || opts.content.jquery) {\n opts.content = {\n text: opts.content\n };\n }\n\n content = opts.content.text || FALSE;\n if (!$.isFunction(content) && ((!content && !content.attr) || content.length < 1 || ('object' === typeof content && !content.jquery))) {\n opts.content.text = FALSE;\n }\n\n if ('title' in opts.content) {\n if (opts.content.title === NULL || 'object' !== typeof opts.content.title) {\n opts.content.title = {\n text: opts.content.title\n };\n }\n\n content = opts.content.title.text || FALSE;\n if (!$.isFunction(content) && ((!content && !content.attr) || content.length < 1 || ('object' === typeof content && !content.jquery))) {\n opts.content.title.text = FALSE;\n }\n }\n }\n\n if ('position' in opts) {\n if (opts.position === NULL || 'object' !== typeof opts.position) {\n opts.position = {\n my: opts.position,\n at: opts.position\n };\n }\n }\n\n if ('show' in opts) {\n if (opts.show === NULL || 'object' !== typeof opts.show) {\n if (opts.show.jquery) {\n opts.show = { target: opts.show };\n }\n else {\n opts.show = { event: opts.show };\n }\n }\n }\n\n if ('hide' in opts) {\n if (opts.hide === NULL || 'object' !== typeof opts.hide) {\n if (opts.hide.jquery) {\n opts.hide = { target: opts.hide };\n }\n else {\n opts.hide = { event: opts.hide };\n }\n }\n }\n\n if ('style' in opts) {\n if (opts.style === NULL || 'object' !== typeof opts.style) {\n opts.style = {\n classes: opts.style\n };\n }\n }\n\n // Sanitize plugin options\n $.each(PLUGINS, function () {\n if (this.sanitize) { this.sanitize(opts); }\n });\n\n return opts;\n }\n\n /*\n * Core plugin implementation\n */\n function QTip(target, options, id, attr) {\n // Declare this reference\n var self = this,\n\t\tdocBody = document.body,\n\t\ttooltipID = uitooltip + '-' + id,\n\t\tisPositioning = 0,\n\t\tisDrawing = 0,\n\t\ttooltip = $(),\n\t\tnamespace = '.qtip-' + id,\n\t\telements, cache;\n\n // Setup class attributes\n self.id = id;\n self.rendered = FALSE;\n self.elements = elements = { target: target };\n self.timers = { img: {} };\n self.options = options;\n self.checks = {};\n self.plugins = {};\n self.cache = cache = {\n event: {},\n target: $(),\n disabled: FALSE,\n attr: attr\n };\n\n /*\n * Private core functions\n */\n function convertNotation(notation) {\n var i = 0, obj, option = options,\n\n // Split notation into array\n\t\tlevels = notation.split('.');\n\n // Loop through\n while (option = option[levels[i++]]) {\n if (i < levels.length) { obj = option; }\n }\n\n return [obj || options, levels.pop()];\n }\n\n function setWidget() {\n var on = options.style.widget;\n\n tooltip.toggleClass(widget, on).toggleClass(defaultClass, options.style['default'] && !on);\n elements.content.toggleClass(widget + '-content', on);\n\n if (elements.titlebar) {\n elements.titlebar.toggleClass(widget + '-header', on);\n }\n if (elements.button) {\n elements.button.toggleClass(uitooltip + '-icon', !on);\n }\n }\n\n function removeTitle(reposition) {\n if (elements.title) {\n elements.titlebar.remove();\n elements.titlebar = elements.title = elements.button = NULL;\n\n // Reposition if enabled\n if (reposition !== FALSE) { self.reposition(); }\n }\n }\n\n function createButton() {\n var button = options.content.title.button,\n\t\t\tisString = typeof button === 'string',\n\t\t\tclose = isString ? button : 'Close tooltip';\n\n if (elements.button) { elements.button.remove(); }\n\n // Use custom button if one was supplied by user, else use default\n if (button.jquery) {\n elements.button = button;\n }\n else {\n elements.button = $('', {\n 'class': 'ui-state-default ui-tooltip-close ' + (options.style.widget ? '' : uitooltip + '-icon'),\n 'title': close,\n 'aria-label': close\n })\n\t\t\t.prepend(\n\t\t\t\t$('', {\n\t\t\t\t 'class': 'ui-icon ui-icon-close',\n\t\t\t\t 'html': '×'\n\t\t\t\t})\n\t\t\t);\n }\n\n // Create button and setup attributes\n elements.button.appendTo(elements.titlebar)\n\t\t\t.attr('role', 'button')\n\t\t\t.click(function (event) {\n\t\t\t if (!tooltip.hasClass(disabled)) { self.hide(event); }\n\t\t\t return FALSE;\n\t\t\t});\n\n // Redraw the tooltip when we're done\n self.redraw();\n }\n\n function createTitle() {\n var id = tooltipID + '-title';\n\n // Destroy previous title element, if present\n if (elements.titlebar) { removeTitle(); }\n\n // Create title bar and title elements\n elements.titlebar = $('
    ', {\n 'class': uitooltip + '-titlebar ' + (options.style.widget ? 'ui-widget-header' : '')\n })\n\t\t.append(\n\t\t\telements.title = $('
    ', {\n\t\t\t 'id': id,\n\t\t\t 'class': uitooltip + '-title',\n\t\t\t 'aria-atomic': TRUE\n\t\t\t})\n\t\t)\n\t\t.insertBefore(elements.content)\n\n // Button-specific events\n\t\t.delegate('.ui-tooltip-close', 'mousedown keydown mouseup keyup mouseout', function (event) {\n\t\t $(this).toggleClass('ui-state-active ui-state-focus', event.type.substr(-4) === 'down');\n\t\t})\n\t\t.delegate('.ui-tooltip-close', 'mouseover mouseout', function (event) {\n\t\t $(this).toggleClass('ui-state-hover', event.type === 'mouseover');\n\t\t});\n\n // Create button if enabled\n if (options.content.title.button) { createButton(); }\n\n // Redraw the tooltip dimensions if it's rendered\n else if (self.rendered) { self.redraw(); }\n }\n\n function updateButton(button) {\n var elem = elements.button,\n\t\t\ttitle = elements.title;\n\n // Make sure tooltip is rendered and if not, return\n if (!self.rendered) { return FALSE; }\n\n if (!button) {\n elem.remove();\n }\n else {\n if (!title) {\n createTitle();\n }\n createButton();\n }\n }\n\n function updateTitle(content, reposition) {\n var elem = elements.title;\n\n // Make sure tooltip is rendered and if not, return\n if (!self.rendered || !content) { return FALSE; }\n\n // Use function to parse content\n if ($.isFunction(content)) {\n content = content.call(target, cache.event, self);\n }\n\n // Remove title if callback returns false\n if (content === FALSE) { return removeTitle(FALSE); }\n\n // Append new content if its a DOM array and show it if hidden\n else if (content.jquery && content.length > 0) {\n elem.empty().append(content.css({ display: 'block' }));\n }\n\n // Content is a regular string, insert the new content\n else { elem.html(content); }\n\n // Redraw and reposition\n self.redraw();\n if (reposition !== FALSE && self.rendered && tooltip.is(':visible')) {\n self.reposition(cache.event);\n }\n }\n\n function updateContent(content, reposition) {\n var elem = elements.content;\n\n // Make sure tooltip is rendered and content is defined. If not return\n if (!self.rendered || !content) { return FALSE; }\n\n // Use function to parse content\n if ($.isFunction(content)) {\n content = content.call(target, cache.event, self) || '';\n }\n\n // Append new content if its a DOM array and show it if hidden\n if (content.jquery && content.length > 0) {\n elem.empty().append(content.css({ display: 'block' }));\n }\n\n // Content is a regular string, insert the new content\n else { elem.html(content); }\n\n // Image detection\n function detectImages(next) {\n var images, srcs = {};\n\n function imageLoad(image) {\n // Clear src from object and any timers and events associated with the image\n if (image) {\n delete srcs[image.src];\n clearTimeout(self.timers.img[image.src]);\n $(image).unbind(namespace);\n }\n\n // If queue is empty after image removal, update tooltip and continue the queue\n if ($.isEmptyObject(srcs)) {\n self.redraw();\n if (reposition !== FALSE) {\n self.reposition(cache.event);\n }\n\n next();\n }\n }\n\n // Find all content images without dimensions, and if no images were found, continue\n if ((images = elem.find('img:not([height]):not([width])')).length === 0) { return imageLoad(); }\n\n // Apply timer to each image to poll for dimensions\n images.each(function (i, elem) {\n // Skip if the src is already present\n if (srcs[elem.src] !== undefined) { return; }\n\n // Keep track of how many times we poll for image dimensions.\n // If it doesn't return in a reasonable amount of time, it's better\n // to display the tooltip, rather than hold up the queue.\n var iterations = 0, maxIterations = 3;\n\n (function timer() {\n // When the dimensions are found, remove the image from the queue\n if (elem.height || elem.width || (iterations > maxIterations)) { return imageLoad(elem); }\n\n iterations += 1;\n\n // Restart timer\n self.timers.img[elem.src] = setTimeout(timer, 700);\n } ());\n\n // Also apply regular load/error event handlers\n $(elem).bind('error' + namespace + ' load' + namespace, function () { imageLoad(this); });\n\n // Store the src and element in our object\n srcs[elem.src] = elem;\n });\n }\n\n /*\n * If we're still rendering... insert into 'fx' queue our image dimension\n * checker which will halt the showing of the tooltip until image dimensions\n * can be detected properly.\n */\n if (self.rendered < 0) { tooltip.queue('fx', detectImages); }\n\n // We're fully rendered, so reset isDrawing flag and proceed without queue delay\n else { isDrawing = 0; detectImages($.noop); }\n\n return self;\n }\n\n function assignEvents() {\n var posOptions = options.position,\n\t\t\ttargets = {\n\t\t\t show: options.show.target,\n\t\t\t hide: options.hide.target,\n\t\t\t viewport: $(posOptions.viewport),\n\t\t\t document: $(document),\n\t\t\t body: $(document.body),\n\t\t\t window: $(window)\n\t\t\t},\n\t\t\tevents = {\n\t\t\t show: $.trim('' + options.show.event).split(' '),\n\t\t\t hide: $.trim('' + options.hide.event).split(' ')\n\t\t\t},\n\t\t\tIE6 = $.browser.msie && parseInt($.browser.version, 10) === 6;\n\n // Define show event method\n function showMethod(event) {\n if (tooltip.hasClass(disabled)) { return FALSE; }\n\n // Clear hide timers\n clearTimeout(self.timers.show);\n clearTimeout(self.timers.hide);\n\n // Start show timer\n var callback = function () { self.toggle(TRUE, event); };\n if (options.show.delay > 0) {\n self.timers.show = setTimeout(callback, options.show.delay);\n }\n else { callback(); }\n }\n\n // Define hide method\n function hideMethod(event) {\n if (tooltip.hasClass(disabled) || isPositioning || isDrawing) { return FALSE; }\n\n // Check if new target was actually the tooltip element\n var relatedTarget = $(event.relatedTarget || event.target),\n\t\t\t\tontoTooltip = relatedTarget.closest(selector)[0] === tooltip[0],\n\t\t\t\tontoTarget = relatedTarget[0] === targets.show[0];\n\n // Clear timers and stop animation queue\n clearTimeout(self.timers.show);\n clearTimeout(self.timers.hide);\n\n // Prevent hiding if tooltip is fixed and event target is the tooltip. Or if mouse positioning is enabled and cursor momentarily overlaps\n if ((posOptions.target === 'mouse' && ontoTooltip) || (options.hide.fixed && ((/mouse(out|leave|move)/).test(event.type) && (ontoTooltip || ontoTarget)))) {\n try { event.preventDefault(); event.stopImmediatePropagation(); } catch (e) { } return;\n }\n\n // If tooltip has displayed, start hide timer\n if (options.hide.delay > 0) {\n self.timers.hide = setTimeout(function () { self.hide(event); }, options.hide.delay);\n }\n else { self.hide(event); }\n }\n\n // Define inactive method\n function inactiveMethod(event) {\n if (tooltip.hasClass(disabled)) { return FALSE; }\n\n // Clear timer\n clearTimeout(self.timers.inactive);\n self.timers.inactive = setTimeout(function () { self.hide(event); }, options.hide.inactive);\n }\n\n function repositionMethod(event) {\n if (tooltip.is(':visible')) { self.reposition(event); }\n }\n\n // On mouseenter/mouseleave...\n tooltip.bind('mouseenter' + namespace + ' mouseleave' + namespace, function (event) {\n var state = event.type === 'mouseenter';\n\n // Focus the tooltip on mouseenter (z-index stacking)\n if (state) { self.focus(event); }\n\n // Add hover class\n tooltip.toggleClass(hoverClass, state);\n });\n\n // Enable hide.fixed\n if (options.hide.fixed) {\n // Add tooltip as a hide target\n targets.hide = targets.hide.add(tooltip);\n\n // Clear hide timer on tooltip hover to prevent it from closing\n tooltip.bind('mouseover' + namespace, function () {\n if (!tooltip.hasClass(disabled)) { clearTimeout(self.timers.hide); }\n });\n }\n\n // If using mouseout/mouseleave as a hide event...\n if (/mouse(out|leave)/i.test(options.hide.event)) {\n // Hide tooltips when leaving current window/frame (but not select/option elements)\n if (options.hide.leave === 'window') {\n targets.window.bind('mouseout' + namespace + ' blur' + namespace, function (event) {\n if (/select|option/.test(event.target) && !event.relatedTarget) { self.hide(event); }\n });\n }\n }\n\n /*\n * Make sure hoverIntent functions properly by using mouseleave to clear show timer if\n * mouseenter/mouseout is used for show.event, even if it isn't in the users options.\n */\n else if (/mouse(over|enter)/i.test(options.show.event)) {\n targets.hide.bind('mouseleave' + namespace, function (event) {\n clearTimeout(self.timers.show);\n });\n }\n\n // Cartegraph Change----Hide tooltip on document mousedown/touchstart (ipad) if unfocus events are enabled\n if (('' + options.hide.event).indexOf('unfocus') > -1) {\n targets.body.bind(\"mousedown\" + namespace + \" touchstart\" + namespace, function (event) {\n var $target = $(event.target),\n\t\t\t\t\tenabled = !tooltip.hasClass(disabled) && tooltip.is(':visible');\n if ($target[0] !== tooltip[0] && $target.parents(selector).length === 0 && $target.add(target).length > 1 && !$target.attr('disabled') \n /* cartegraph change */\n && $target[0].id !== 'waitSpinnerOverlay') {\n\n // don't hide the map tip if it is under an overlay\n // 1/6/15 - added if making sure not going thru library manager guided process (issue: 45690)\n if (($('#blockScreenOverlay').length && $('#blockScreenOverlay').css('visibility') == \"visible\" ||\n $('.ui-widget-overlay').length && $('.ui-widget-overlay').is(\":visible\")) && !$('.library-guidedProcess').length && !$('.library-guidedProcess').length) {\n return;\n }\n\n /* end cartegraph change */\n self.hide(event);\n }\n });\n }\n\n // Check if the tooltip hides when inactive\n if ('number' === typeof options.hide.inactive) {\n // Bind inactive method to target as a custom event\n targets.show.bind('qtip-' + id + '-inactive', inactiveMethod);\n\n // Define events which reset the 'inactive' event handler\n $.each(QTIP.inactiveEvents, function (index, type) {\n targets.hide.add(elements.tooltip).bind(type + namespace + '-inactive', inactiveMethod);\n });\n }\n\n // Apply hide events\n $.each(events.hide, function (index, type) {\n var showIndex = $.inArray(type, events.show),\n\t\t\t\t\ttargetHide = $(targets.hide);\n\n // Both events and targets are identical, apply events using a toggle\n if ((showIndex > -1 && targetHide.add(targets.show).length === targetHide.length) || type === 'unfocus') {\n targets.show.bind(type + namespace, function (event) {\n if (tooltip.is(':visible')) { hideMethod(event); }\n else { showMethod(event); }\n });\n\n // Don't bind the event again\n delete events.show[showIndex];\n }\n\n // Events are not identical, bind normally\n else { targets.hide.bind(type + namespace, hideMethod); }\n });\n\n // Apply show events\n $.each(events.show, function (index, type) {\n targets.show.bind(type + namespace, showMethod);\n });\n\n // Check if the tooltip hides when mouse is moved a certain distance\n if ('number' === typeof options.hide.distance) {\n // Bind mousemove to target to detect distance difference\n targets.show.add(tooltip).bind('mousemove' + namespace, function (event) {\n var origin = cache.origin || {},\n\t\t\t\t\tlimit = options.hide.distance,\n\t\t\t\t\tabs = Math.abs;\n\n // Check if the movement has gone beyond the limit, and hide it if so\n if (abs(event.pageX - origin.pageX) >= limit || abs(event.pageY - origin.pageY) >= limit) {\n self.hide(event);\n }\n });\n }\n\n // Mouse positioning events\n if (posOptions.target === 'mouse') {\n // Cache mousemove coords on show targets\n targets.show.bind('mousemove' + namespace, function (event) {\n MOUSE = { pageX: event.pageX, pageY: event.pageY, type: 'mousemove' };\n });\n\n // If mouse adjustment is on...\n if (posOptions.adjust.mouse) {\n // Apply a mouseleave event so we don't get problems with overlapping\n if (options.hide.event) {\n tooltip.bind('mouseleave' + namespace, function (event) {\n if ((event.relatedTarget || event.target) !== targets.show[0]) { self.hide(event); }\n });\n }\n\n // Update tooltip position on mousemove\n targets.document.bind('mousemove' + namespace, function (event) {\n // Update the tooltip position only if the tooltip is visible and adjustment is enabled\n if (!tooltip.hasClass(disabled) && tooltip.is(':visible')) {\n self.reposition(event || MOUSE);\n }\n });\n }\n }\n\n // Adjust positions of the tooltip on window resize if enabled\n if (posOptions.adjust.resize || targets.viewport.length) {\n ($.event.special.resize ? targets.viewport : targets.window).bind('resize' + namespace, repositionMethod);\n }\n\n // Adjust tooltip position on scroll if screen adjustment is enabled\n if (targets.viewport.length || (IE6 && tooltip.css('position') === 'fixed')) {\n targets.viewport.bind('scroll' + namespace, repositionMethod);\n }\n }\n\n function unassignEvents() {\n var targets = [\n\t\t\t\toptions.show.target[0],\n\t\t\t\toptions.hide.target[0],\n\t\t\t\tself.rendered && elements.tooltip[0],\n\t\t\t\toptions.position.container[0],\n\t\t\t\toptions.position.viewport[0],\n\t\t\t\twindow,\n\t\t\t\tdocument\n\t\t\t];\n\n // Check if tooltip is rendered\n if (self.rendered) {\n $([]).pushStack($.grep(targets, function (i) { return typeof i === 'object'; })).unbind(namespace);\n }\n\n // Tooltip isn't yet rendered, remove render event\n else { options.show.target.unbind(namespace + '-create'); }\n }\n\n // Setup builtin .set() option checks\n self.checks.builtin = {\n // Core checks\n '^id$': function (obj, o, v) {\n var id = v === TRUE ? QTIP.nextid : v,\n\t\t\t\ttooltipID = uitooltip + '-' + id;\n\n if (id !== FALSE && id.length > 0 && !$('#' + tooltipID).length) {\n tooltip[0].id = tooltipID;\n elements.content[0].id = tooltipID + '-content';\n elements.title[0].id = tooltipID + '-title';\n }\n },\n\n // Content checks\n '^content.text$': function (obj, o, v) { updateContent(v); },\n '^content.title.text$': function (obj, o, v) {\n // Remove title if content is null\n if (!v) { return removeTitle(); }\n\n // If title isn't already created, create it now and update\n if (!elements.title && v) { createTitle(); }\n updateTitle(v);\n },\n '^content.title.button$': function (obj, o, v) { updateButton(v); },\n\n // Position checks\n '^position.(my|at)$': function (obj, o, v) {\n // Parse new corner value into Corner objecct\n if ('string' === typeof v) {\n obj[o] = new PLUGINS.Corner(v);\n }\n },\n '^position.container$': function (obj, o, v) {\n if (self.rendered) { tooltip.appendTo(v); }\n },\n\n // Show checks\n '^show.ready$': function () {\n if (!self.rendered) { self.render(1); }\n else { self.toggle(TRUE); }\n },\n\n // Style checks\n '^style.classes$': function (obj, o, v) {\n tooltip.attr('class', uitooltip + ' qtip ui-helper-reset ' + v);\n },\n '^style.widget|content.title': setWidget,\n\n // Events check\n '^events.(render|show|move|hide|focus|blur)$': function (obj, o, v) {\n tooltip[($.isFunction(v) ? '' : 'un') + 'bind']('tooltip' + o, v);\n },\n\n // Properties which require event reassignment\n '^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)': function () {\n var posOptions = options.position;\n\n // Set tracking flag\n tooltip.attr('tracking', posOptions.target === 'mouse' && posOptions.adjust.mouse);\n\n // Reassign events\n unassignEvents(); assignEvents();\n }\n };\n\n /*\n * Public API methods\n */\n $.extend(self, {\n render: function (show) {\n if (self.rendered) { return self; } // If tooltip has already been rendered, exit\n\n var text = options.content.text,\n\t\t\t\ttitle = options.content.title.text,\n\t\t\t\tposOptions = options.position,\n\t\t\t\tcallback = $.Event('tooltiprender');\n\n // Add ARIA attributes to target\n $.attr(target[0], 'aria-describedby', tooltipID);\n\n // Create tooltip element\n tooltip = elements.tooltip = $('
    ', {\n 'id': tooltipID,\n 'class': uitooltip + ' qtip ui-helper-reset ' + defaultClass + ' ' + options.style.classes + ' ' + uitooltip + '-pos-' + options.position.my.abbrev(),\n 'width': options.style.width || '',\n 'height': options.style.height || '',\n 'tracking': posOptions.target === 'mouse' && posOptions.adjust.mouse,\n\n /* ARIA specific attributes */\n 'role': 'alert',\n 'aria-live': 'polite',\n 'aria-atomic': FALSE,\n 'aria-describedby': tooltipID + '-content',\n 'aria-hidden': TRUE\n })\n\t\t\t\t.toggleClass(disabled, cache.disabled)\n\t\t\t\t.data('qtip', self)\n\t\t\t\t.appendTo(options.position.container)\n\t\t\t\t.append(\n // Create content element\n\t\t\t\t\telements.content = $('
    ', {\n\t\t\t\t\t 'class': uitooltip + '-content',\n\t\t\t\t\t 'id': tooltipID + '-content',\n\t\t\t\t\t 'aria-atomic': TRUE\n\t\t\t\t\t})\n\t\t\t\t);\n\n // Set rendered flag and prevent redundant redraw/reposition calls for now\n self.rendered = -1;\n isDrawing = 1; isPositioning = 1;\n\n // Create title...\n if (title) {\n createTitle();\n\n // Update title only if its not a callback (called in toggle if so)\n if (!$.isFunction(title)) { updateTitle(title, FALSE); }\n }\n\n // Set proper rendered flag and update content if not a callback function (called in toggle)\n if (!$.isFunction(text)) { updateContent(text, FALSE); }\n self.rendered = TRUE;\n\n // Setup widget classes\n setWidget();\n\n // Assign passed event callbacks (before plugins!)\n $.each(options.events, function (name, callback) {\n if ($.isFunction(callback)) {\n tooltip.bind(name === 'toggle' ? 'tooltipshow tooltiphide' : 'tooltip' + name, callback);\n }\n });\n\n // Initialize 'render' plugins\n $.each(PLUGINS, function () {\n if (this.initialize === 'render') { this(self); }\n });\n\n // Assign events\n assignEvents();\n\n /* Queue this part of the render process in our fx queue so we can\n * load images before the tooltip renders fully.\n *\n * See: updateContent method\n */\n tooltip.queue('fx', function (next) {\n // Trigger tooltiprender event and pass original triggering event as original\n callback.originalEvent = cache.event;\n tooltip.trigger(callback, [self]);\n\n // Reset flags\n isDrawing = 0; isPositioning = 0;\n\n // Redraw the tooltip manually now we're fully rendered\n self.redraw();\n\n // Show tooltip if needed\n if (options.show.ready || show) {\n self.toggle(TRUE, cache.event, FALSE);\n }\n\n next(); // Move on to next method in queue\n });\n\n return self;\n },\n\n get: function (notation) {\n var result, o;\n\n switch (notation.toLowerCase()) {\n case 'dimensions':\n result = {\n height: tooltip.outerHeight(), width: tooltip.outerWidth()\n };\n break;\n\n case 'offset':\n result = PLUGINS.offset(tooltip, options.position.container);\n break;\n\n default:\n o = convertNotation(notation.toLowerCase());\n result = o[0][o[1]];\n result = result.precedance ? result.string() : result;\n break;\n }\n\n return result;\n },\n\n set: function (option, value) {\n var rmove = /^position\\.(my|at|adjust|target|container)|style|content|show\\.ready/i,\n\t\t\t\trdraw = /^content\\.(title|attr)|style/i,\n\t\t\t\treposition = FALSE,\n\t\t\t\tredraw = FALSE,\n\t\t\t\tchecks = self.checks,\n\t\t\t\tname;\n\n function callback(notation, args) {\n var category, rule, match;\n\n for (category in checks) {\n for (rule in checks[category]) {\n if (match = (new RegExp(rule, 'i')).exec(notation)) {\n args.push(match);\n checks[category][rule].apply(self, args);\n }\n }\n }\n }\n\n // Convert singular option/value pair into object form\n if ('string' === typeof option) {\n name = option; option = {}; option[name] = value;\n }\n else { option = $.extend(TRUE, {}, option); }\n\n // Set all of the defined options to their new values\n $.each(option, function (notation, value) {\n var obj = convertNotation(notation.toLowerCase()), previous;\n\n // Set new obj value\n previous = obj[0][obj[1]];\n obj[0][obj[1]] = 'object' === typeof value && value.nodeType ? $(value) : value;\n\n // Set the new params for the callback\n option[notation] = [obj[0], obj[1], value, previous];\n\n // Also check if we need to reposition / redraw\n reposition = rmove.test(notation) || reposition;\n redraw = rdraw.test(notation) || redraw;\n });\n\n // Re-sanitize options\n sanitizeOptions(options);\n\n /*\n * Execute any valid callbacks for the set options\n * Also set isPositioning/isDrawing so we don't get loads of redundant repositioning\n * and redraw calls.\n */\n isPositioning = isDrawing = 1; $.each(option, callback); isPositioning = isDrawing = 0;\n\n // Update position / redraw if needed\n if (tooltip.is(':visible') && self.rendered) {\n if (reposition) {\n self.reposition(options.position.target === 'mouse' ? NULL : cache.event);\n }\n if (redraw) { self.redraw(); }\n }\n\n return self;\n },\n\n toggle: function (state, event) {\n // Render the tooltip if showing and it isn't already\n if (!self.rendered) { return state ? self.render(1) : self; }\n\n var type = state ? 'show' : 'hide',\n\t\t\t\topts = options[type],\n\t\t\t\tvisible = tooltip.is(':visible'),\n\t\t\t\tsameTarget = !event || options[type].target.length < 2 || cache.target[0] === event.target,\n\t\t\t\tposOptions = options.position,\n\t\t\t\tcontentOptions = options.content,\n\t\t\t\tdelay,\n\t\t\t\tcallback;\n\n // Detect state if valid one isn't provided\n if ((typeof state).search('boolean|number')) { state = !visible; }\n\n // Return if element is already in correct state\n if (!tooltip.is(':animated') && visible === state && sameTarget) { return self; }\n\n // Try to prevent flickering when tooltip overlaps show element\n if (event) {\n if ((/over|enter/).test(event.type) && (/out|leave/).test(cache.event.type) &&\n\t\t\t\t\tevent.target === options.show.target[0] && tooltip.has(event.relatedTarget).length) {\n return self;\n }\n\n // Cache event\n cache.event = $.extend({}, event);\n }\n\n // Call API methods\n callback = $.Event('tooltip' + type);\n callback.originalEvent = event ? cache.event : NULL;\n tooltip.trigger(callback, [self, 90]);\n if (callback.isDefaultPrevented()) { return self; }\n\n // Set ARIA hidden status attribute\n $.attr(tooltip[0], 'aria-hidden', !!!state);\n\n // Execute state specific properties\n if (state) {\n // Store show origin coordinates\n cache.origin = $.extend({}, MOUSE);\n\n // Focus the tooltip\n self.focus(event);\n\n // Update tooltip content & title if it's a dynamic function\n if ($.isFunction(contentOptions.text)) { updateContent(contentOptions.text, FALSE); }\n if ($.isFunction(contentOptions.title.text)) { updateTitle(contentOptions.title.text, FALSE); }\n\n // Cache mousemove events for positioning purposes (if not already tracking)\n if (!trackingBound && posOptions.target === 'mouse' && posOptions.adjust.mouse) {\n $(document).bind('mousemove.qtip', function (event) {\n MOUSE = { pageX: event.pageX, pageY: event.pageY, type: 'mousemove' };\n });\n trackingBound = TRUE;\n }\n\n // Update the tooltip position\n self.reposition(event, arguments[2]);\n\n // Hide other tooltips if tooltip is solo, using it as the context\n if ((callback.solo = !!opts.solo)) { $(selector, opts.solo).not(tooltip).qtip('hide', callback); }\n }\n else {\n // Clear show timer if we're hiding \n clearTimeout(self.timers.show);\n\n // Remove cached origin on hide\n delete cache.origin;\n\n // Remove mouse tracking event if not needed (all tracking qTips are hidden)\n if (trackingBound && !$(selector + '[tracking=\"true\"]:visible', opts.solo).not(tooltip).length) {\n $(document).unbind('mousemove.qtip');\n trackingBound = FALSE;\n }\n\n // Blur the tooltip\n self.blur(event);\n }\n\n // Define post-animation, state specific properties\n function after() {\n if (state) {\n // Prevent antialias from disappearing in IE by removing filter\n if ($.browser.msie) { tooltip[0].style.removeAttribute('filter'); }\n\n // Remove overflow setting to prevent tip bugs\n tooltip.css('overflow', '');\n\n // Autofocus elements if enabled\n if ('string' === typeof opts.autofocus) {\n $(opts.autofocus, tooltip).focus();\n }\n\n // Call API method\n callback = $.Event('tooltipvisible');\n callback.originalEvent = event ? cache.event : NULL;\n tooltip.trigger(callback, [self]);\n\n // If set, hide tooltip when inactive for delay period\n opts.target.trigger('qtip-' + id + '-inactive');\n }\n else {\n // Reset CSS states\n tooltip.css({\n display: '',\n visibility: '',\n opacity: '',\n left: '',\n top: ''\n });\n }\n }\n\n // Clear animation queue if same target\n if (sameTarget) { tooltip.stop(0, 1); }\n\n // If no effect type is supplied, use a simple toggle\n if (opts.effect === FALSE) {\n tooltip[type]();\n after.call(tooltip);\n }\n\n // Use custom function if provided\n else if ($.isFunction(opts.effect)) {\n opts.effect.call(tooltip, self);\n tooltip.queue('fx', function (n) { after(); n(); });\n }\n\n // Use basic fade function by default\n else { tooltip.fadeTo(90, state ? 1 : 0, after); }\n\n // If inactive hide method is set, active it\n if (state) { opts.target.trigger('qtip-' + id + '-inactive'); }\n\n return self;\n },\n\n show: function (event) { return self.toggle(TRUE, event); },\n\n hide: function (event) { return self.toggle(FALSE, event); },\n\n focus: function (event) {\n if (!self.rendered) { return self; }\n\n var qtips = $(selector),\n\t\t\t\tcurIndex = parseInt(tooltip[0].style.zIndex, 10),\n\t\t\t\tnewIndex = QTIP.zindex + qtips.length,\n\t\t\t\tcachedEvent = $.extend({}, event),\n\t\t\t\tfocusedElem, callback;\n\n // Only update the z-index if it has changed and tooltip is not already focused\n if (!tooltip.hasClass(focusClass)) {\n // Call API method\n callback = $.Event('tooltipfocus');\n callback.originalEvent = cachedEvent;\n tooltip.trigger(callback, [self, newIndex]);\n\n // If default action wasn't prevented...\n if (!callback.isDefaultPrevented()) {\n // Only update z-index's if they've changed\n if (curIndex !== newIndex) {\n // Reduce our z-index's and keep them properly ordered\n qtips.each(function () {\n if (this.style.zIndex > curIndex) {\n this.style.zIndex = this.style.zIndex - 1;\n }\n });\n\n // Fire blur event for focused tooltip\n qtips.filter('.' + focusClass).qtip('blur', cachedEvent);\n }\n\n // Set the new z-index\n tooltip.addClass(focusClass)[0].style.zIndex = newIndex;\n }\n }\n\n return self;\n },\n\n blur: function (event) {\n var cachedEvent = $.extend({}, event),\n\t\t\t\tcallback;\n\n // Set focused status to FALSE\n tooltip.removeClass(focusClass);\n\n // Trigger blur event\n callback = $.Event('tooltipblur');\n callback.originalEvent = cachedEvent;\n tooltip.trigger(callback, [self]);\n\n return self;\n },\n\n reposition: function (event, effect) {\n if (!self.rendered || isPositioning) { return self; }\n\n // Set positioning flag\n isPositioning = 1;\n\n var target = options.position.target,\n\t\t\t\tposOptions = options.position,\n\t\t\t\tmy = posOptions.my,\n\t\t\t\tat = posOptions.at,\n\t\t\t\tadjust = posOptions.adjust,\n\t\t\t\tmethod = adjust.method.split(' '),\n\t\t\t\telemWidth = tooltip.outerWidth(),\n\t\t\t\telemHeight = tooltip.outerHeight(),\n\t\t\t\ttargetWidth = 0,\n\t\t\t\ttargetHeight = 0,\n\t\t\t\tcallback = $.Event('tooltipmove'),\n\t\t\t\tfixed = tooltip.css('position') === 'fixed',\n\t\t\t\tviewport = posOptions.viewport,\n\t\t\t\tposition = { left: 0, top: 0 },\n\t\t\t\tcontainer = posOptions.container,\n\t\t\t\tflipoffset = FALSE,\n\t\t\t\ttip = self.plugins.tip,\n\t\t\t\treadjust = {\n\t\t\t\t // Axis detection and readjustment indicator\n\t\t\t\t horizontal: method[0],\n\t\t\t\t vertical: (method[1] = method[1] || method[0]),\n\t\t\t\t enabled: viewport.jquery && target[0] !== window && target[0] !== docBody && adjust.method !== 'none',\n\n\t\t\t\t // Reposition methods\n\t\t\t\t left: function (posLeft) {\n\t\t\t\t var isShift = readjust.horizontal === 'shift',\n\t\t\t\t\t\t\tviewportScroll = -container.offset.left + viewport.offset.left + viewport.scrollLeft,\n\t\t\t\t\t\t\tmyWidth = my.x === 'left' ? elemWidth : my.x === 'right' ? -elemWidth : -elemWidth / 2,\n\t\t\t\t\t\t\tatWidth = at.x === 'left' ? targetWidth : at.x === 'right' ? -targetWidth : -targetWidth / 2,\n\t\t\t\t\t\t\ttipWidth = tip && tip.size ? tip.size.width || 0 : 0,\n\t\t\t\t\t\t\ttipAdjust = tip && tip.corner && tip.corner.precedance === 'x' && !isShift ? tipWidth : 0,\n\t\t\t\t\t\t\toverflowLeft = viewportScroll - posLeft + tipAdjust,\n\t\t\t\t\t\t\toverflowRight = posLeft + elemWidth - viewport.width - viewportScroll + tipAdjust,\n\t\t\t\t\t\t\toffset = myWidth - (my.precedance === 'x' || my.x === my.y ? atWidth : 0),\n\t\t\t\t\t\t\tisCenter = my.x === 'center';\n\n\t\t\t\t // Optional 'shift' style repositioning\n\t\t\t\t if (isShift) {\n\t\t\t\t tipAdjust = tip && tip.corner && tip.corner.precedance === 'y' ? tipWidth : 0;\n\t\t\t\t offset = (my.x === 'left' ? 1 : -1) * myWidth - tipAdjust;\n\n\t\t\t\t // Adjust position but keep it within viewport dimensions\n\t\t\t\t position.left += overflowLeft > 0 ? overflowLeft : overflowRight > 0 ? -overflowRight : 0;\n\t\t\t\t position.left = Math.max(\n\t\t\t\t\t\t\t\t-container.offset.left + viewport.offset.left + (tipAdjust && tip.corner.x === 'center' ? tip.offset : 0),\n\t\t\t\t\t\t\t\tposLeft - offset,\n\t\t\t\t\t\t\t\tMath.min(\n\t\t\t\t\t\t\t\t\tMath.max(-container.offset.left + viewport.offset.left + viewport.width, posLeft + offset),\n\t\t\t\t\t\t\t\t\tposition.left\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t }\n\n\t\t\t\t // Default 'flip' repositioning\n\t\t\t\t else {\n\t\t\t\t if (overflowLeft > 0 && (my.x !== 'left' || overflowRight > 0)) {\n\t\t\t\t position.left -= offset;\n\t\t\t\t }\n\t\t\t\t else if (overflowRight > 0 && (my.x !== 'right' || overflowLeft > 0)) {\n\t\t\t\t position.left -= isCenter ? -offset : offset;\n\t\t\t\t }\n\t\t\t\t if (position.left !== posLeft && isCenter) { position.left -= adjust.x; }\n\n\t\t\t\t // Make sure we haven't made things worse with the adjustment and return the adjusted difference\n\t\t\t\t if (position.left < viewportScroll && -position.left > overflowRight) { position.left = posLeft; }\n\t\t\t\t }\n\n\t\t\t\t return position.left - posLeft;\n\t\t\t\t },\n\t\t\t\t top: function (posTop) {\n\t\t\t\t var isShift = readjust.vertical === 'shift',\n\t\t\t\t\t\t\tviewportScroll = -container.offset.top + viewport.offset.top + viewport.scrollTop,\n\t\t\t\t\t\t\tmyHeight = my.y === 'top' ? elemHeight : my.y === 'bottom' ? -elemHeight : -elemHeight / 2,\n\t\t\t\t\t\t\tatHeight = at.y === 'top' ? targetHeight : at.y === 'bottom' ? -targetHeight : -targetHeight / 2,\n\t\t\t\t\t\t\ttipHeight = tip && tip.size ? tip.size.height || 0 : 0,\n\t\t\t\t\t\t\ttipAdjust = tip && tip.corner && tip.corner.precedance === 'y' && !isShift ? tipHeight : 0,\n\t\t\t\t\t\t\toverflowTop = viewportScroll - posTop + tipAdjust,\n\t\t\t\t\t\t\toverflowBottom = posTop + elemHeight - viewport.height - viewportScroll + tipAdjust,\n\t\t\t\t\t\t\toffset = myHeight - (my.precedance === 'y' || my.x === my.y ? atHeight : 0),\n\t\t\t\t\t\t\tisCenter = my.y === 'center';\n\n\t\t\t\t // Optional 'shift' style repositioning\n\t\t\t\t if (isShift) {\n\t\t\t\t tipAdjust = tip && tip.corner && tip.corner.precedance === 'x' ? tipHeight : 0;\n\t\t\t\t offset = (my.y === 'top' ? 1 : -1) * myHeight - tipAdjust;\n\n\t\t\t\t // Adjust position but keep it within viewport dimensions\n\t\t\t\t position.top += overflowTop > 0 ? overflowTop : overflowBottom > 0 ? -overflowBottom : 0;\n\t\t\t\t position.top = Math.max(\n\t\t\t\t\t\t\t\t-container.offset.top + viewport.offset.top + (tipAdjust && tip.corner.x === 'center' ? tip.offset : 0),\n\t\t\t\t\t\t\t\tposTop - offset,\n\t\t\t\t\t\t\t\tMath.min(\n\t\t\t\t\t\t\t\t\tMath.max(-container.offset.top + viewport.offset.top + viewport.height, posTop + offset),\n\t\t\t\t\t\t\t\t\tposition.top\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t }\n\n\t\t\t\t // Default 'flip' repositioning\n\t\t\t\t else {\n\t\t\t\t if (overflowTop > 0 && (my.y !== 'top' || overflowBottom > 0)) {\n\t\t\t\t position.top -= offset;\n\t\t\t\t }\n\t\t\t\t else if (overflowBottom > 0 && (my.y !== 'bottom' || overflowTop > 0)) {\n\t\t\t\t position.top -= isCenter ? -offset : offset;\n\t\t\t\t }\n\t\t\t\t if (position.top !== posTop && isCenter) { position.top -= adjust.y; }\n\n\t\t\t\t // Make sure we haven't made things worse with the adjustment and return the adjusted difference\n\t\t\t\t if (position.top < 0 && -position.top > overflowBottom) { position.top = posTop; }\n\t\t\t\t }\n\n\t\t\t\t return position.top - posTop;\n\t\t\t\t }\n\t\t\t\t},\n\t\t\t\twin;\n\n // Check if absolute position was passed\n if ($.isArray(target) && target.length === 2) {\n // Force left top and set position\n at = { x: 'left', y: 'top' };\n position = { left: target[0], top: target[1] };\n }\n\n // Check if mouse was the target\n else if (target === 'mouse' && ((event && event.pageX) || cache.event.pageX)) {\n // Force left top to allow flipping\n at = { x: 'left', y: 'top' };\n\n // Use cached event if one isn't available for positioning\n event = (event && (event.type === 'resize' || event.type === 'scroll') ? cache.event :\n\t\t\t\t\tevent && event.pageX && event.type === 'mousemove' ? event :\n\t\t\t\t\tMOUSE && MOUSE.pageX && (adjust.mouse || !event || !event.pageX) ? { pageX: MOUSE.pageX, pageY: MOUSE.pageY} :\n\t\t\t\t\t!adjust.mouse && cache.origin && cache.origin.pageX ? cache.origin :\n\t\t\t\t\tevent) || event || cache.event || MOUSE || {};\n\n // Use event coordinates for position\n position = { top: event.pageY, left: event.pageX };\n }\n\n // Target wasn't mouse or absolute...\n else {\n // Check if event targetting is being used\n if (target === 'event') {\n if (event && event.target && event.type !== 'scroll' && event.type !== 'resize') {\n target = cache.target = $(event.target);\n }\n else {\n target = cache.target;\n }\n }\n else { cache.target = $(target); }\n\n // Parse the target into a jQuery object and make sure there's an element present\n target = $(target).eq(0);\n if (target.length === 0) { return self; }\n\n // Check if window or document is the target\n else if (target[0] === document || target[0] === window) {\n targetWidth = PLUGINS.iOS ? window.innerWidth : target.width();\n targetHeight = PLUGINS.iOS ? window.innerHeight : target.height();\n\n if (target[0] === window) {\n position = {\n top: fixed || PLUGINS.iOS ? (viewport || target).scrollTop() : 0,\n left: fixed || PLUGINS.iOS ? (viewport || target).scrollLeft() : 0\n };\n }\n }\n\n // Use Imagemap/SVG plugins if needed\n else if (target.is('area') && PLUGINS.imagemap) {\n position = PLUGINS.imagemap(target, at, readjust.enabled ? method : FALSE);\n }\n else if (target[0].namespaceURI === 'http://www.w3.org/2000/svg' && PLUGINS.svg) {\n position = PLUGINS.svg(target, at);\n }\n\n else {\n targetWidth = target.outerWidth();\n targetHeight = target.outerHeight();\n\n position = PLUGINS.offset(target, container);\n }\n\n // Parse returned plugin values into proper variables\n if (position.offset) {\n targetWidth = position.width;\n targetHeight = position.height;\n flipoffset = position.flipoffset;\n position = position.offset;\n }\n\n // Adjust for position.fixed tooltips (and also iOS scroll bug in v3.2 - v4.0)\n if ((PLUGINS.iOS < 4.1 && PLUGINS.iOS > 3.1) || PLUGINS.iOS == 4.3 || (!PLUGINS.iOS && fixed)) {\n win = $(window);\n position.left -= win.scrollLeft();\n position.top -= win.scrollTop();\n }\n\n // Adjust position relative to target\n position.left += at.x === 'right' ? targetWidth : at.x === 'center' ? targetWidth / 2 : 0;\n position.top += at.y === 'bottom' ? targetHeight : at.y === 'center' ? targetHeight / 2 : 0;\n }\n\n // Adjust position relative to tooltip\n position.left += adjust.x + (my.x === 'right' ? -elemWidth : my.x === 'center' ? -elemWidth / 2 : 0);\n position.top += adjust.y + (my.y === 'bottom' ? -elemHeight : my.y === 'center' ? -elemHeight / 2 : 0);\n\n position.left = Math.round(position.left); //we don't want any decimals in our positioning.\n\n // Calculate collision offset values if viewport positioning is enabled\n if (readjust.enabled) {\n // Cache our viewport details\n viewport = {\n elem: viewport,\n height: viewport[(viewport[0] === window ? 'h' : 'outerH') + 'eight'](),\n width: viewport[(viewport[0] === window ? 'w' : 'outerW') + 'idth'](),\n scrollLeft: fixed ? 0 : viewport.scrollLeft(),\n scrollTop: fixed ? 0 : viewport.scrollTop(),\n offset: viewport.offset() || { left: 0, top: 0 }\n };\n container = {\n elem: container,\n scrollLeft: container.scrollLeft(),\n scrollTop: container.scrollTop(),\n offset: container.offset() || { left: 0, top: 0 }\n };\n\n // Adjust position based onviewport and adjustment options\n position.adjusted = {\n left: readjust.horizontal !== 'none' ? readjust.left(position.left) : 0,\n top: readjust.vertical !== 'none' ? readjust.top(position.top) : 0\n };\n\n // Set tooltip position class\n if (position.adjusted.left + position.adjusted.top) {\n tooltip.attr('class', tooltip[0].className.replace(/ui-tooltip-pos-\\w+/i, uitooltip + '-pos-' + my.abbrev()));\n }\n\n // Apply flip offsets supplied by positioning plugins\n if (flipoffset && position.adjusted.left) { position.left += flipoffset.left; }\n if (flipoffset && position.adjusted.top) { position.top += flipoffset.top; }\n }\n\n //Viewport adjustment is disabled, set values to zero\n else { position.adjusted = { left: 0, top: 0 }; }\n\n // Call API method\n callback.originalEvent = $.extend({}, event);\n tooltip.trigger(callback, [self, position, viewport.elem || viewport]);\n if (callback.isDefaultPrevented()) { return self; }\n delete position.adjusted;\n\n // If effect is disabled, target it mouse, no animation is defined or positioning gives NaN out, set CSS directly\n if (effect === FALSE || isNaN(position.left) || isNaN(position.top) || target === 'mouse' || !$.isFunction(posOptions.effect)) {\n tooltip.css(position);\n }\n\n // Use custom function if provided\n else if ($.isFunction(posOptions.effect)) {\n posOptions.effect.call(tooltip, self, $.extend({}, position));\n tooltip.queue(function (next) {\n // Reset attributes to avoid cross-browser rendering bugs\n $(this).css({ opacity: '', height: '' });\n if ($.browser.msie) { this.style.removeAttribute('filter'); }\n\n next();\n });\n }\n\n // Set positioning flag\n isPositioning = 0;\n\n return self;\n },\n\n // Max/min width simulator function for all browsers.. yeaaah!\n redraw: function () {\n if (self.rendered < 1 || isDrawing) { return self; }\n\n var container = options.position.container,\n\t\t\t\tperc, width, max, min;\n\n // Set drawing flag\n isDrawing = 1;\n\n // If tooltip has a set height, just set it... like a boss!\n if (options.style.height) { tooltip.css('height', options.style.height); }\n\n // If tooltip has a set width, just set it... like a boss!\n if (options.style.width) { tooltip.css('width', options.style.width); }\n\n // Otherwise simualte max/min width...\n else {\n // Reset width and add fluid class\n tooltip.css('width', '').addClass(fluidClass);\n\n // Grab our tooltip width (add 1 so we don't get wrapping problems.. huzzah!)\n width = tooltip.width() + 1;\n\n // Grab our max/min properties\n max = tooltip.css('max-width') || '';\n min = tooltip.css('min-width') || '';\n\n // Parse into proper pixel values\n perc = (max + min).indexOf('%') > -1 ? container.width() / 100 : 0;\n max = ((max.indexOf('%') > -1 ? perc : 1) * parseInt(max, 10)) || width;\n min = ((min.indexOf('%') > -1 ? perc : 1) * parseInt(min, 10)) || 0;\n\n // Determine new dimension size based on max/min/current values\n width = max + min ? Math.min(Math.max(width, min), max) : width;\n\n // Set the newly calculated width and remvoe fluid class\n tooltip.css('width', Math.round(width)).removeClass(fluidClass);\n }\n\n // Set drawing flag\n isDrawing = 0;\n\n return self;\n },\n\n disable: function (state) {\n if ('boolean' !== typeof state) {\n state = !(tooltip.hasClass(disabled) || cache.disabled);\n }\n\n if (self.rendered) {\n tooltip.toggleClass(disabled, state);\n $.attr(tooltip[0], 'aria-disabled', state);\n }\n else {\n cache.disabled = !!state;\n }\n\n return self;\n },\n\n enable: function () { return self.disable(FALSE); },\n\n destroy: function () {\n var t = target[0],\n\t\t\t\ttitle = $.attr(t, oldtitle),\n\t\t\t\telemAPI = target.data('qtip');\n\n // Destroy tooltip and any associated plugins if rendered\n if (self.rendered) {\n tooltip.remove();\n\n $.each(self.plugins, function () {\n if (this.destroy) { this.destroy(); }\n });\n }\n\n // Clear timers and remove bound events\n clearTimeout(self.timers.show);\n clearTimeout(self.timers.hide);\n unassignEvents();\n\n // If the API if actually this qTip API...\n if (!elemAPI || self === elemAPI) {\n // Remove api object\n $.removeData(t, 'qtip');\n\n // Reset old title attribute if removed\n if (options.suppress && title) {\n $.attr(t, 'title', title);\n target.removeAttr(oldtitle);\n }\n\n // Remove ARIA attributes\n target.removeAttr('aria-describedby');\n }\n\n // Remove qTip events associated with this API\n target.unbind('.qtip-' + id);\n\n // Remove ID from sued id object\n delete usedIDs[self.id];\n\n return target;\n }\n });\n }\n\n // Initialization method\n function init(id, opts) {\n var obj, posOptions, attr, config, title,\n\n // Setup element references\n\telem = $(this),\n\tdocBody = $(document.body),\n\n // Use document body instead of document element if needed\n\tnewTarget = this === document ? docBody : elem,\n\n // Grab metadata from element if plugin is present\n\tmetadata = (elem.metadata) ? elem.metadata(opts.metadata) : NULL,\n\n // If metadata type if HTML5, grab 'name' from the object instead, or use the regular data object otherwise\n\tmetadata5 = opts.metadata.type === 'html5' && metadata ? metadata[opts.metadata.name] : NULL,\n\n // Grab data from metadata.name (or data-qtipopts as fallback) using .data() method,\n\thtml5 = elem.data(opts.metadata.name || 'qtipopts');\n\n // If we don't get an object returned attempt to parse it manualyl without parseJSON\n try { html5 = typeof html5 === 'string' ? (new Function(\"return \" + html5))() : html5; }\n catch (e) { log('Cannot parse HTML5 attribute data: ' + html5); }\n\n // Merge in and sanitize metadata\n config = $.extend(TRUE, {}, QTIP.defaults, opts,\n\t\ttypeof html5 === 'object' ? sanitizeOptions(html5) : NULL,\n\t\tsanitizeOptions(metadata5 || metadata));\n\n // Re-grab our positioning options now we've merged our metadata and set id to passed value\n posOptions = config.position;\n config.id = id;\n\n // Setup missing content if none is detected\n if ('boolean' === typeof config.content.text) {\n attr = elem.attr(config.content.attr);\n\n // Grab from supplied attribute if available\n if (config.content.attr !== FALSE && attr) { config.content.text = attr; }\n\n // No valid content was found, abort render\n else {\n log('Cannot locate content for tooltip! Aborting render of tooltip on element: ', elem);\n return FALSE;\n }\n }\n\n // Setup target options\n if (!posOptions.container.length) { posOptions.container = docBody; }\n if (posOptions.target === FALSE) { posOptions.target = newTarget; }\n if (config.show.target === FALSE) { config.show.target = newTarget; }\n if (config.show.solo === TRUE) { config.show.solo = docBody; }\n if (config.hide.target === FALSE) { config.hide.target = newTarget; }\n if (config.position.viewport === TRUE) { config.position.viewport = posOptions.container; }\n\n // Convert position corner values into x and y strings\n posOptions.at = new PLUGINS.Corner(posOptions.at);\n posOptions.my = new PLUGINS.Corner(posOptions.my);\n\n // Destroy previous tooltip if overwrite is enabled, or skip element if not\n if ($.data(this, 'qtip')) {\n if (config.overwrite) {\n elem.qtip('destroy');\n }\n else if (config.overwrite === FALSE) {\n return FALSE;\n }\n }\n\n // Remove title attribute and store it if present\n if (config.suppress && (title = $.attr(this, 'title'))) {\n $(this).removeAttr('title').attr(oldtitle, title);\n }\n\n // Initialize the tooltip and add API reference\n obj = new QTip(elem, config, id, !!attr);\n $.data(this, 'qtip', obj);\n\n // Catch remove events on target element to destroy redundant tooltip\n elem.bind('remove.qtip-' + id, function () { obj.destroy(); });\n\n return obj;\n }\n\n // jQuery $.fn extension method\n QTIP = $.fn.qtip = function (options, notation, newValue) {\n var command = ('' + options).toLowerCase(), // Parse command\n\t\treturned = NULL,\n\t\targs = $.makeArray(arguments).slice(1),\n\t\tevent = args[args.length - 1],\n\t\topts = this[0] ? $.data(this[0], 'qtip') : NULL;\n\n // Check for API request\n if ((!arguments.length && opts) || command === 'api') {\n return opts;\n }\n\n // Execute API command if present\n else if ('string' === typeof options) {\n this.each(function () {\n var api = $.data(this, 'qtip');\n if (!api) { return TRUE; }\n\n // Cache the event if possible\n if (event && event.timeStamp) { api.cache.event = event; }\n\n // Check for specific API commands\n if ((command === 'option' || command === 'options') && notation) {\n if ($.isPlainObject(notation) || newValue !== undefined) {\n api.set(notation, newValue);\n }\n else {\n returned = api.get(notation);\n return FALSE;\n }\n }\n\n // Execute API command\n else if (api[command]) {\n api[command].apply(api[command], args);\n }\n });\n\n return returned !== NULL ? returned : this;\n }\n\n // No API commands. validate provided options and setup qTips\n else if ('object' === typeof options || !arguments.length) {\n opts = sanitizeOptions($.extend(TRUE, {}, options));\n\n // Bind the qTips\n return QTIP.bind.call(this, opts, event);\n }\n };\n\n // $.fn.qtip Bind method\n QTIP.bind = function (opts, event) {\n return this.each(function (i) {\n var options, targets, events, namespace, api, id;\n\n // Find next available ID, or use custom ID if provided\n id = $.isArray(opts.id) ? opts.id[i] : opts.id;\n id = !id || id === FALSE || id.length < 1 || usedIDs[id] ? QTIP.nextid++ : (usedIDs[id] = id);\n\n // Setup events namespace\n namespace = '.qtip-' + id + '-create';\n\n // Initialize the qTip and re-grab newly sanitized options\n api = init.call(this, id, opts);\n if (api === FALSE) { return TRUE; }\n options = api.options;\n\n // Initialize plugins\n $.each(PLUGINS, function () {\n if (this.initialize === 'initialize') { this(api); }\n });\n\n // Determine hide and show targets\n targets = { show: options.show.target, hide: options.hide.target };\n events = {\n show: $.trim('' + options.show.event).replace(/ /g, namespace + ' ') + namespace,\n hide: $.trim('' + options.hide.event).replace(/ /g, namespace + ' ') + namespace\n };\n\n /*\n * Make sure hoverIntent functions properly by using mouseleave as a hide event if\n * mouseenter/mouseout is used for show.event, even if it isn't in the users options.\n */\n if (/mouse(over|enter)/i.test(events.show) && !/mouse(out|leave)/i.test(events.hide)) {\n events.hide += ' mouseleave' + namespace;\n }\n\n /*\n * Also make sure initial mouse targetting works correctly by caching mousemove coords\n * on show targets before the tooltip has rendered.\n */\n targets.show.bind('mousemove' + namespace, function (event) {\n MOUSE = { pageX: event.pageX, pageY: event.pageY, type: 'mousemove' };\n });\n\n // Define hoverIntent function\n function hoverIntent(event) {\n function render() {\n // Cache mouse coords,render and render the tooltip\n api.render(typeof event === 'object' || options.show.ready);\n\n // Unbind show and hide events\n targets.show.add(targets.hide).unbind(namespace);\n }\n\n // Only continue if tooltip isn't disabled\n if (api.cache.disabled) { return FALSE; }\n\n // Cache the event data\n api.cache.event = $.extend({}, event);\n api.cache.target = event ? $(event.target) : [undefined];\n\n // Start the event sequence\n if (options.show.delay > 0) {\n clearTimeout(api.timers.show);\n api.timers.show = setTimeout(render, options.show.delay);\n if (events.show !== events.hide) {\n targets.hide.bind(events.hide, function () { clearTimeout(api.timers.show); });\n }\n }\n else { render(); }\n }\n\n // Bind show events to target\n targets.show.bind(events.show, hoverIntent);\n\n // Prerendering is enabled, create tooltip now\n if (options.show.ready || options.prerender) { hoverIntent(event); }\n });\n };\n\n // Setup base plugins\n PLUGINS = QTIP.plugins = {\n // Corner object parser\n Corner: function (corner) {\n corner = ('' + corner).replace(/([A-Z])/, ' $1').replace(/middle/gi, 'center').toLowerCase();\n this.x = (corner.match(/left|right/i) || corner.match(/center/) || ['inherit'])[0].toLowerCase();\n this.y = (corner.match(/top|bottom|center/i) || ['inherit'])[0].toLowerCase();\n\n var f = corner.charAt(0); this.precedance = (f === 't' || f === 'b' ? 'y' : 'x');\n\n this.string = function () { return this.precedance === 'y' ? this.y + this.x : this.x + this.y; };\n this.abbrev = function () {\n var x = this.x.substr(0, 1), y = this.y.substr(0, 1);\n return x === y ? x : (x === 'c' || (x !== 'c' && y !== 'c')) ? y + x : x + y;\n };\n\n this.clone = function () {\n return { x: this.x, y: this.y, precedance: this.precedance, string: this.string, abbrev: this.abbrev, clone: this.clone };\n };\n },\n\n // Custom (more correct for qTip!) offset calculator\n offset: function (elem, container) {\n var pos = elem.offset(),\n\t\t\tparent = container,\n\t\t\tdeep = 0,\n\t\t\tdocBody = document.body,\n\t\t\tcoffset, overflow;\n\n function scroll(e, i) {\n pos.left += i * e.scrollLeft();\n pos.top += i * e.scrollTop();\n }\n\n if (parent) {\n // Compensate for non-static containers offset\n do {\n if (parent.css('position') !== 'static') {\n coffset = parent[0] === docBody ?\n\t\t\t\t\t\t{ left: parseInt(parent.css('left'), 10) || 0, top: parseInt(parent.css('top'), 10) || 0} :\n\t\t\t\t\t\tparent.position();\n\n pos.left -= coffset.left + (parseInt(parent.css('borderLeftWidth'), 10) || 0) + (parseInt(parent.css('marginLeft'), 10) || 0);\n pos.top -= coffset.top + (parseInt(parent.css('borderTopWidth'), 10) || 0);\n\n overflow = parent.css('overflow');\n if (overflow === 'scroll' || overflow === 'auto') { deep++; }\n }\n\n if (parent[0] === docBody) { break; }\n }\n while (parent = parent.offsetParent());\n\n // Compensate for containers scroll if it also has an offsetParent\n if (container[0] !== docBody && deep) { scroll(container, 1); }\n }\n\n return pos;\n },\n\n /*\n * iOS 3.2 - 4.0 scroll fix detection used in offset() function.\n */\n iOS: parseFloat(\n\t\t('' + (/CPU.*OS ([0-9_]{1,3})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent) || [0, ''])[1])\n\t\t\t.replace('undefined', '3_2').replace('_', '.')\n\t) || FALSE,\n\n /*\n * jQuery-specific $.fn overrides\n */\n fn: {\n /* Allow other plugins to successfully retrieve the title of an element with a qTip applied */\n attr: function (attr, val) {\n if (this.length) {\n var self = this[0],\n\t\t\t\t\ttitle = 'title',\n\t\t\t\t\tapi = $.data(self, 'qtip');\n\n if (attr === title && api && 'object' === typeof api && api.options.suppress) {\n if (arguments.length < 2) {\n return $.attr(self, oldtitle);\n }\n else {\n // If qTip is rendered and title was originally used as content, update it\n if (api && api.options.content.attr === title && api.cache.attr) {\n api.set('content.text', val);\n }\n\n // Use the regular attr method to set, then cache the result\n return this.attr(oldtitle, val);\n }\n }\n }\n\n return $.fn['attr' + replaceSuffix].apply(this, arguments);\n },\n\n /* Allow clone to correctly retrieve cached title attributes */\n clone: function (keepData) {\n var titles = $([]), title = 'title',\n\n // Clone our element using the real clone method\n\t\t\telems = $.fn['clone' + replaceSuffix].apply(this, arguments);\n\n // Grab all elements with an oldtitle set, and change it to regular title attribute, if keepData is false\n if (!keepData) {\n elems.filter('[' + oldtitle + ']').attr('title', function () {\n return $.attr(this, oldtitle);\n })\n\t\t\t\t.removeAttr(oldtitle);\n }\n\n return elems;\n },\n\n /* \n * Taken directly from jQuery 1.8.2 widget source code\n * Trigger 'remove' event on all elements on removal\n */\n remove: $.ui ? NULL : function (selector, keepData) {\n if ($.ui) { return; } // We don't need to do this if jQuery UI is present!\n\n $(this).each(function () {\n if (!keepData) {\n if (!selector || $.filter(selector, [this]).length) {\n $('*', this).add(this).each(function () {\n $(this).triggerHandler('remove');\n });\n }\n }\n });\n }\n }\n };\n\n // Apply the fn overrides above\n $.each(PLUGINS.fn, function (name, func) {\n if (!func || $.fn[name + replaceSuffix]) { return TRUE; }\n\n var old = $.fn[name + replaceSuffix] = $.fn[name];\n $.fn[name] = function () {\n return func.apply(this, arguments) || old.apply(this, arguments);\n };\n });\n\n // Set global qTip properties\n QTIP.version = 'nightly';\n QTIP.nextid = 0;\n QTIP.inactiveEvents = 'click dblclick mousedown mouseup mousemove mouseleave mouseenter'.split(' ');\n QTIP.zindex = 15000;\n\n // Define configuration defaults\n QTIP.defaults = {\n prerender: FALSE,\n id: FALSE,\n overwrite: TRUE,\n suppress: TRUE,\n content: {\n text: TRUE,\n attr: 'title',\n title: {\n text: FALSE,\n button: FALSE\n }\n },\n position: {\n my: 'top left',\n at: 'bottom right',\n target: FALSE,\n container: FALSE,\n viewport: FALSE,\n adjust: {\n x: 0, y: 0,\n mouse: TRUE,\n resize: TRUE,\n method: 'flip flip'\n },\n effect: function (api, pos, viewport) {\n $(this).animate(pos, {\n duration: 200,\n queue: FALSE\n });\n }\n },\n show: {\n target: FALSE,\n event: 'mouseenter',\n effect: TRUE,\n delay: 90,\n solo: FALSE,\n ready: FALSE,\n autofocus: FALSE\n },\n hide: {\n target: FALSE,\n event: 'mouseleave',\n effect: TRUE,\n delay: 0,\n fixed: FALSE,\n inactive: FALSE,\n leave: 'window',\n distance: FALSE\n },\n style: {\n classes: '',\n widget: FALSE,\n width: FALSE,\n height: FALSE,\n 'default': TRUE\n },\n events: {\n render: NULL,\n move: NULL,\n show: NULL,\n hide: NULL,\n toggle: NULL,\n visible: NULL,\n focus: NULL,\n blur: NULL\n }\n };\n\n function Ajax(api) {\n var self = this,\n\t\ttooltip = api.elements.tooltip,\n\t\topts = api.options.content.ajax,\n\t\tnamespace = '.qtip-ajax',\n\t\trscript = /)<[^<]*)*<\\/script>/gi,\n\t\tfirst = TRUE;\n\n api.checks.ajax = {\n '^content.ajax': function (obj, name, v) {\n // If content.ajax object was reset, set our local var\n if (name === 'ajax') { opts = v; }\n\n if (name === 'once') {\n self.init();\n }\n else if (opts && opts.url) {\n self.load();\n }\n else {\n tooltip.unbind(namespace);\n }\n }\n };\n\n $.extend(self, {\n init: function () {\n // Make sure ajax options are enabled and bind event\n if (opts && opts.url) {\n tooltip.unbind(namespace)[opts.once ? 'one' : 'bind']('tooltipshow' + namespace, self.load);\n }\n\n return self;\n },\n\n load: function (event, first) {\n var hasSelector = opts.url.indexOf(' '),\n\t\t\t\turl = opts.url,\n\t\t\t\tselector,\n\t\t\t\thideFirst = opts.once && !opts.loading && first;\n\n // If loading option is disabled, prevent the tooltip showing until we've completed the request\n if (hideFirst) { try { event.preventDefault(); } catch (e) { } }\n\n // Make sure default event hasn't been prevented\n else if (event && event.isDefaultPrevented()) { return self; }\n\n // Check if user delcared a content selector like in .load()\n if (hasSelector > -1) {\n selector = url.substr(hasSelector);\n url = url.substr(0, hasSelector);\n }\n\n // Define common after callback for both success/error handlers\n function after() {\n // Re-display tip if loading and first time, and reset first flag\n if (hideFirst) { api.show(event.originalEvent); first = FALSE; }\n\n // Call users complete if it was defined\n if ($.isFunction(opts.complete)) { opts.complete.apply(this, arguments); }\n }\n\n // Define success handler\n function successHandler(content) {\n if (selector) {\n // Create a dummy div to hold the results and grab the selector element\n content = $('
    ')\n // inject the contents of the document in, removing the scripts\n // to avoid any 'Permission Denied' errors in IE\n\t\t\t\t\t\t.append(content.replace(rscript, \"\"))\n\n // Locate the specified elements\n\t\t\t\t\t\t.find(selector);\n }\n\n // Set the content\n api.set('content.text', content);\n }\n\n // Error handler\n function errorHandler(xh, status, error) {\n if (xh.status === 0) { return; }\n api.set('content.text', status + ': ' + error);\n }\n\n // Setup $.ajax option object and process the request\n $.ajax($.extend({ success: successHandler, error: errorHandler, context: api }, opts, { url: url, complete: after }));\n }\n });\n\n self.init();\n }\n\n\n PLUGINS.ajax = function (api) {\n var self = api.plugins.ajax;\n\n return 'object' === typeof self ? self : (api.plugins.ajax = new Ajax(api));\n };\n\n PLUGINS.ajax.initialize = 'render';\n\n // Setup plugin sanitization\n PLUGINS.ajax.sanitize = function (options) {\n var content = options.content, opts;\n if (content && 'ajax' in content) {\n opts = content.ajax;\n if (typeof opts !== 'object') { opts = options.content.ajax = { url: opts }; }\n if ('boolean' !== typeof opts.once && opts.once) { opts.once = !!opts.once; }\n }\n };\n\n // Extend original api defaults\n $.extend(TRUE, QTIP.defaults, {\n content: {\n ajax: {\n loading: TRUE,\n once: TRUE\n }\n }\n });\n\n PLUGINS.imagemap = function (area, corner, flip) {\n if (!area.jquery) { area = $(area); }\n\n var shape = (area[0].shape || area.attr('shape')).toLowerCase(),\n\t\tbaseCoords = (area[0].coords || area.attr('coords')).split(','),\n\t\tcoords = [],\n\t\timage = $('img[usemap=\"#' + area.parent('map').attr('name') + '\"]'),\n\t\timageOffset = image.offset(),\n\t\tresult = {\n\t\t width: 0, height: 0,\n\t\t offset: { top: 1e10, right: 0, bottom: 0, left: 1e10 }\n\t\t},\n\t\ti = 0, next = 0, dimensions;\n\n // POLY area coordinate calculator\n //\tSpecial thanks to Ed Cradock for helping out with this.\n //\tUses a binary search algorithm to find suitable coordinates.\n function polyCoordinates(result, coords, corner) {\n var i = 0,\n\t\t\tcompareX = 1, compareY = 1,\n\t\t\trealX = 0, realY = 0,\n\t\t\tnewWidth = result.width,\n\t\t\tnewHeight = result.height;\n\n // Use a binary search algorithm to locate most suitable coordinate (hopefully)\n while (newWidth > 0 && newHeight > 0 && compareX > 0 && compareY > 0) {\n newWidth = Math.floor(newWidth / 2);\n newHeight = Math.floor(newHeight / 2);\n\n if (corner.x === 'left') { compareX = newWidth; }\n else if (corner.x === 'right') { compareX = result.width - newWidth; }\n else { compareX += Math.floor(newWidth / 2); }\n\n if (corner.y === 'top') { compareY = newHeight; }\n else if (corner.y === 'bottom') { compareY = result.height - newHeight; }\n else { compareY += Math.floor(newHeight / 2); }\n\n i = coords.length; while (i--) {\n if (coords.length < 2) { break; }\n\n realX = coords[i][0] - result.offset.left;\n realY = coords[i][1] - result.offset.top;\n\n if ((corner.x === 'left' && realX >= compareX) ||\n\t\t\t\t(corner.x === 'right' && realX <= compareX) ||\n\t\t\t\t(corner.x === 'center' && (realX < compareX || realX > (result.width - compareX))) ||\n\t\t\t\t(corner.y === 'top' && realY >= compareY) ||\n\t\t\t\t(corner.y === 'bottom' && realY <= compareY) ||\n\t\t\t\t(corner.y === 'center' && (realY < compareY || realY > (result.height - compareY)))) {\n coords.splice(i, 1);\n }\n }\n }\n\n return { left: coords[0][0], top: coords[0][1] };\n }\n\n // Make sure we account for padding and borders on the image\n imageOffset.left += Math.ceil((image.outerWidth() - image.width()) / 2);\n imageOffset.top += Math.ceil((image.outerHeight() - image.height()) / 2);\n\n // Parse coordinates into proper array\n if (shape === 'poly') {\n i = baseCoords.length; while (i--) {\n next = [parseInt(baseCoords[--i], 10), parseInt(baseCoords[i + 1], 10)];\n\n if (next[0] > result.offset.right) { result.offset.right = next[0]; }\n if (next[0] < result.offset.left) { result.offset.left = next[0]; }\n if (next[1] > result.offset.bottom) { result.offset.bottom = next[1]; }\n if (next[1] < result.offset.top) { result.offset.top = next[1]; }\n\n coords.push(next);\n }\n }\n else {\n coords = $.map(baseCoords, function (coord) { return parseInt(coord, 10); });\n }\n\n // Calculate details\n switch (shape) {\n case 'rect':\n result = {\n width: Math.abs(coords[2] - coords[0]),\n height: Math.abs(coords[3] - coords[1]),\n offset: {\n left: Math.min(coords[0], coords[2]),\n top: Math.min(coords[1], coords[3])\n }\n };\n break;\n\n case 'circle':\n result = {\n width: coords[2] + 2,\n height: coords[2] + 2,\n offset: { left: coords[0], top: coords[1] }\n };\n break;\n\n case 'poly':\n $.extend(result, {\n width: Math.abs(result.offset.right - result.offset.left),\n height: Math.abs(result.offset.bottom - result.offset.top)\n });\n\n if (corner.string() === 'centercenter') {\n result.offset = {\n left: result.offset.left + (result.width / 2),\n top: result.offset.top + (result.height / 2)\n };\n }\n else {\n result.offset = polyCoordinates(result, coords.slice(), corner);\n\n // If flip adjustment is enabled, also calculate the closest opposite point\n if (flip && (flip[0] === 'flip' || flip[1] === 'flip')) {\n result.flipoffset = polyCoordinates(result, coords.slice(), {\n x: corner.x === 'left' ? 'right' : corner.x === 'right' ? 'left' : 'center',\n y: corner.y === 'top' ? 'bottom' : corner.y === 'bottom' ? 'top' : 'center'\n });\n\n result.flipoffset.left -= result.offset.left;\n result.flipoffset.top -= result.offset.top;\n }\n }\n\n result.width = result.height = 0;\n break;\n }\n\n // Add image position to offset coordinates\n result.offset.left += imageOffset.left;\n result.offset.top += imageOffset.top;\n\n return result;\n };\n\n // Tip coordinates calculator\n function calculateTip(corner, width, height) {\n var width2 = Math.ceil(width / 2), height2 = Math.ceil(height / 2),\n\n // Define tip coordinates in terms of height and width values\n\ttips = {\n\t bottomright: [[0, 0], [width, height], [width, 0]],\n\t bottomleft: [[0, 0], [width, 0], [0, height]],\n\t topright: [[0, height], [width, 0], [width, height]],\n\t topleft: [[0, 0], [0, height], [width, height]],\n\t topcenter: [[0, height], [width2, 0], [width, height]],\n\t bottomcenter: [[0, 0], [width, 0], [width2, height]],\n\t rightcenter: [[0, 0], [width, height2], [0, height]],\n\t leftcenter: [[width, 0], [width, height], [0, height2]]\n\t};\n\n // Set common side shapes\n tips.lefttop = tips.bottomright; tips.righttop = tips.bottomleft;\n tips.leftbottom = tips.topright; tips.rightbottom = tips.topleft;\n\n return tips[corner.string()];\n }\n\n\n function Tip(qTip, command) {\n var self = this,\n\t\topts = qTip.options.style.tip,\n\t\telems = qTip.elements,\n\t\ttooltip = elems.tooltip,\n\t\tcache = { top: 0, left: 0 },\n\t\tsize = {\n\t\t width: opts.width,\n\t\t height: opts.height\n\t\t},\n\t\tcolor = {},\n\t\tborder = opts.border || 0,\n\t\tnamespace = '.qtip-tip',\n\t\thasCanvas = !!($('')[0] || {}).getContext;\n\n self.corner = NULL;\n self.mimic = NULL;\n self.border = border;\n self.offset = opts.offset;\n self.size = size;\n\n // Add new option checks for the plugin\n qTip.checks.tip = {\n '^position.my|style.tip.(corner|mimic|border)$': function () {\n // Make sure a tip can be drawn\n if (!self.init()) {\n self.destroy();\n }\n\n // Reposition the tooltip\n qTip.reposition();\n },\n '^style.tip.(height|width)$': function () {\n // Re-set dimensions and redraw the tip\n size = {\n width: opts.width,\n height: opts.height\n };\n self.create();\n self.update();\n\n // Reposition the tooltip\n qTip.reposition();\n },\n '^content.title.text|style.(classes|widget)$': function () {\n if (elems.tip) {\n self.update();\n }\n }\n };\n\n function reposition(event, api, pos, viewport) {\n if (!elems.tip) { return; }\n\n var newCorner = self.corner.clone(),\n\t\t\tadjust = pos.adjusted,\n\t\t\tmethod = qTip.options.position.adjust.method.split(' '),\n\t\t\thorizontal = method[0],\n\t\t\tvertical = method[1] || method[0],\n\t\t\tshift = { left: FALSE, top: FALSE, x: 0, y: 0 },\n\t\t\toffset, css = {}, props;\n\n // Make sure our tip position isn't fixed e.g. doesn't adjust with viewport\n if (self.corner.fixed !== TRUE) {\n // Horizontal - Shift or flip method\n if (horizontal === 'shift' && newCorner.precedance === 'x' && adjust.left && newCorner.y !== 'center') {\n newCorner.precedance = newCorner.precedance === 'x' ? 'y' : 'x';\n }\n else if (horizontal === 'flip' && adjust.left) {\n newCorner.x = newCorner.x === 'center' ? (adjust.left > 0 ? 'left' : 'right') : (newCorner.x === 'left' ? 'right' : 'left');\n }\n\n // Vertical - Shift or flip method\n if (vertical === 'shift' && newCorner.precedance === 'y' && adjust.top && newCorner.x !== 'center') {\n newCorner.precedance = newCorner.precedance === 'y' ? 'x' : 'y';\n }\n else if (vertical === 'flip' && adjust.top) {\n newCorner.y = newCorner.y === 'center' ? (adjust.top > 0 ? 'top' : 'bottom') : (newCorner.y === 'top' ? 'bottom' : 'top');\n }\n\n // Update and redraw the tip if needed (check cached details of last drawn tip)\n if (newCorner.string() !== cache.corner.string() && (cache.top !== adjust.top || cache.left !== adjust.left)) {\n self.update(newCorner, FALSE);\n }\n }\n\n // Setup tip offset properties\n offset = self.position(newCorner, adjust);\n if (offset.right !== undefined) { offset.left = -offset.right; }\n if (offset.bottom !== undefined) { offset.top = -offset.bottom; }\n offset.user = Math.max(0, opts.offset);\n\n // Viewport \"shift\" specific adjustments\n if (shift.left = (horizontal === 'shift' && !!adjust.left)) {\n if (newCorner.x === 'center') {\n css['margin-left'] = shift.x = offset['margin-left'] - adjust.left;\n }\n else {\n props = offset.right !== undefined ?\n\t\t\t\t\t[adjust.left, -offset.left] : [-adjust.left, offset.left];\n\n if ((shift.x = Math.max(props[0], props[1])) > props[0]) {\n pos.left -= adjust.left;\n shift.left = FALSE;\n }\n\n css[offset.right !== undefined ? 'right' : 'left'] = shift.x;\n }\n }\n if (shift.top = (vertical === 'shift' && !!adjust.top)) {\n if (newCorner.y === 'center') {\n css['margin-top'] = shift.y = offset['margin-top'] - adjust.top;\n }\n else {\n props = offset.bottom !== undefined ?\n\t\t\t\t\t[adjust.top, -offset.top] : [-adjust.top, offset.top];\n\n if ((shift.y = Math.max(props[0], props[1])) > props[0]) {\n pos.top -= adjust.top;\n shift.top = FALSE;\n }\n\n css[offset.bottom !== undefined ? 'bottom' : 'top'] = shift.y;\n }\n }\n\n /*\n * If the tip is adjusted in both dimensions, or in a\n * direction that would cause it to be anywhere but the\n * outer border, hide it!\n */\n elems.tip.css(css).toggle(\n\t\t\t!((shift.x && shift.y) || (newCorner.x === 'center' && shift.y) || (newCorner.y === 'center' && shift.x))\n\t\t);\n\n // Adjust position to accomodate tip dimensions\n pos.left -= offset.left.charAt ? offset.user : horizontal !== 'shift' || shift.top || !shift.left && !shift.top ? offset.left : 0;\n pos.top -= offset.top.charAt ? offset.user : vertical !== 'shift' || shift.left || !shift.left && !shift.top ? offset.top : 0;\n\n // Cache details\n cache.left = adjust.left; cache.top = adjust.top;\n cache.corner = newCorner.clone();\n }\n\n /* border width calculator */\n function borderWidth(corner, side, backup) {\n side = !side ? corner[corner.precedance] : side;\n\n var isFluid = tooltip.hasClass(fluidClass),\n\t\t\tisTitleTop = elems.titlebar && corner.y === 'top',\n\t\t\telem = isTitleTop ? elems.titlebar : elems.content,\n\t\t\tcss = 'border-' + side + '-width',\n\t\t\tval;\n\n // Grab the border-width value (add fluid class if needed)\n tooltip.addClass(fluidClass);\n val = parseInt(elem.css(css), 10);\n val = (backup ? val || parseInt(tooltip.css(css), 10) : val) || 0;\n tooltip.toggleClass(fluidClass, isFluid);\n\n return val;\n }\n\n function borderRadius(corner) {\n var isTitleTop = elems.titlebar && corner.y === 'top',\n\t\t\telem = isTitleTop ? elems.titlebar : elems.content,\n\t\t\tmoz = $.browser.mozilla,\n\t\t\tprefix = moz ? '-moz-' : $.browser.webkit ? '-webkit-' : '',\n\t\t\tside = corner.y + (moz ? '' : '-') + corner.x,\n\t\t\tcss = prefix + (moz ? 'border-radius-' + side : 'border-' + side + '-radius');\n\n return parseInt(elem.css(css), 10) || parseInt(tooltip.css(css), 10) || 0;\n }\n\n function calculateSize(corner) {\n var y = corner.precedance === 'y',\n\t\t\twidth = size[y ? 'width' : 'height'],\n\t\t\theight = size[y ? 'height' : 'width'],\n\t\t\tisCenter = corner.string().indexOf('center') > -1,\n\t\t\tbase = width * (isCenter ? 0.5 : 1),\n\t\t\tpow = Math.pow,\n\t\t\tround = Math.round,\n\t\t\tbigHyp, ratio, result,\n\n\t\tsmallHyp = Math.sqrt(pow(base, 2) + pow(height, 2)),\n\n\t\thyp = [\n\t\t\t(border / base) * smallHyp, (border / height) * smallHyp\n\t\t];\n hyp[2] = Math.sqrt(pow(hyp[0], 2) - pow(border, 2));\n hyp[3] = Math.sqrt(pow(hyp[1], 2) - pow(border, 2));\n\n bigHyp = smallHyp + hyp[2] + hyp[3] + (isCenter ? 0 : hyp[0]);\n ratio = bigHyp / smallHyp;\n\n result = [round(ratio * height), round(ratio * width)];\n return { height: result[y ? 0 : 1], width: result[y ? 1 : 0] };\n }\n\n $.extend(self, {\n init: function () {\n var enabled = self.detectCorner() && (hasCanvas || $.browser.msie);\n\n // Determine tip corner and type\n if (enabled) {\n // Create a new tip and draw it\n self.create();\n self.update();\n\n // Bind update events\n tooltip.unbind(namespace).bind('tooltipmove' + namespace, reposition);\n }\n\n return enabled;\n },\n\n detectCorner: function () {\n var corner = opts.corner,\n\t\t\t\tposOptions = qTip.options.position,\n\t\t\t\tat = posOptions.at,\n\t\t\t\tmy = posOptions.my.string ? posOptions.my.string() : posOptions.my;\n\n // Detect corner and mimic properties\n if (corner === FALSE || (my === FALSE && at === FALSE)) {\n return FALSE;\n }\n else {\n if (corner === TRUE) {\n self.corner = new PLUGINS.Corner(my);\n }\n else if (!corner.string) {\n self.corner = new PLUGINS.Corner(corner);\n self.corner.fixed = TRUE;\n }\n }\n\n return self.corner.string() !== 'centercenter';\n },\n\n detectColours: function (actual) {\n var i, fill, border,\n\t\t\t\ttip = elems.tip.css('cssText', ''),\n\t\t\t\tcorner = actual || self.corner,\n\t\t\t\tprecedance = corner[corner.precedance],\n\n\t\t\t\tborderSide = 'border-' + precedance + '-color',\n\t\t\t\tborderSideCamel = 'border' + precedance.charAt(0) + precedance.substr(1) + 'Color',\n\n\t\t\t\tinvalid = /rgba?\\(0, 0, 0(, 0)?\\)|transparent|#123456/i,\n\t\t\t\tbackgroundColor = 'background-color',\n\t\t\t\ttransparent = 'transparent',\n\t\t\t\timportant = ' !important',\n\n\t\t\t\tbodyBorder = $(document.body).css('color'),\n\t\t\t\tcontentColour = qTip.elements.content.css('color'),\n\n\t\t\t\tuseTitle = elems.titlebar && (corner.y === 'top' || (corner.y === 'center' && tip.position().top + (size.height / 2) + opts.offset < elems.titlebar.outerHeight(1))),\n\t\t\t\tcolorElem = useTitle ? elems.titlebar : elems.content;\n\n // Apply the fluid class so we can see our CSS values properly\n tooltip.addClass(fluidClass);\n\n // Detect tip colours from CSS styles\n color.fill = fill = tip.css(backgroundColor);\n color.border = border = tip[0].style[borderSideCamel] || tip.css(borderSide) || tooltip.css(borderSide);\n\n // Make sure colours are valid\n if (!fill || invalid.test(fill)) {\n color.fill = colorElem.css(backgroundColor) || transparent;\n if (invalid.test(color.fill)) {\n color.fill = tooltip.css(backgroundColor) || fill;\n }\n }\n if (!border || invalid.test(border) || border === bodyBorder) {\n color.border = colorElem.css(borderSide) || transparent;\n if (invalid.test(color.border)) {\n color.border = border;\n }\n }\n\n // Reset background and border colours\n $('*', tip).add(tip).css('cssText', backgroundColor + ':' + transparent + important + ';border:0' + important + ';');\n\n // Remove fluid class\n tooltip.removeClass(fluidClass);\n },\n\n create: function () {\n var width = size.width,\n\t\t\t\theight = size.height,\n\t\t\t\tvml;\n\n // Remove previous tip element if present\n if (elems.tip) { elems.tip.remove(); }\n\n // Create tip element and prepend to the tooltip\n elems.tip = $('
    ', { 'class': 'ui-tooltip-tip' }).css({ width: width, height: height }).prependTo(tooltip);\n\n // Create tip drawing element(s)\n if (hasCanvas) {\n // save() as soon as we create the canvas element so FF2 doesn't bork on our first restore()!\n $('').appendTo(elems.tip)[0].getContext('2d').save();\n }\n else {\n vml = '';\n elems.tip.html(vml + vml);\n\n // Prevent mousing down on the tip since it causes problems with .live() handling in IE due to VML\n $('*', elems.tip).bind('click mousedown', function (event) {\n event.stopPropagation();\n });\n }\n },\n\n update: function (corner, position) {\n var tip = elems.tip,\n\t\t\t\tinner = tip.children(),\n\t\t\t\twidth = size.width,\n\t\t\t\theight = size.height,\n\t\t\t\tregular = 'px solid ',\n\t\t\t\ttransparent = 'px dashed transparent', // Dashed IE6 border-transparency hack. Awesome!\n\t\t\t\tmimic = opts.mimic,\n\t\t\t\tround = Math.round,\n\t\t\t\tprecedance, context, coords, translate, newSize;\n\n // Re-determine tip if not already set\n if (!corner) { corner = cache.corner || self.corner; }\n\n // Use corner property if we detect an invalid mimic value\n if (mimic === FALSE) { mimic = corner; }\n\n // Otherwise inherit mimic properties from the corner object as necessary\n else {\n mimic = new PLUGINS.Corner(mimic);\n mimic.precedance = corner.precedance;\n\n if (mimic.x === 'inherit') { mimic.x = corner.x; }\n else if (mimic.y === 'inherit') { mimic.y = corner.y; }\n else if (mimic.x === mimic.y) {\n mimic[corner.precedance] = corner[corner.precedance];\n }\n }\n precedance = mimic.precedance;\n\n // Update our colours\n self.detectColours(corner);\n\n // Detect border width, taking into account colours\n if (color.border !== 'transparent' && color.border !== '#123456') {\n // Grab border width\n border = borderWidth(corner, NULL, TRUE);\n\n // If border width isn't zero, use border color as fill (1.0 style tips)\n if (opts.border === 0 && border > 0) { color.fill = color.border; }\n\n // Set border width (use detected border width if opts.border is true)\n self.border = border = opts.border !== TRUE ? opts.border : border;\n }\n\n // Border colour was invalid, set border to zero\n else { self.border = border = 0; }\n\n // Calculate coordinates\n coords = calculateTip(mimic, width, height);\n\n // Determine tip size\n self.size = newSize = calculateSize(corner);\n tip.css(newSize);\n\n // Calculate tip translation\n if (corner.precedance === 'y') {\n translate = [\n\t\t\t\t\tround(mimic.x === 'left' ? border : mimic.x === 'right' ? newSize.width - width - border : (newSize.width - width) / 2),\n\t\t\t\t\tround(mimic.y === 'top' ? newSize.height - height : 0)\n\t\t\t\t];\n }\n else {\n translate = [\n\t\t\t\t\tround(mimic.x === 'left' ? newSize.width - width : 0),\n\t\t\t\t\tround(mimic.y === 'top' ? border : mimic.y === 'bottom' ? newSize.height - height - border : (newSize.height - height) / 2)\n\t\t\t\t];\n }\n\n // Canvas drawing implementation\n if (hasCanvas) {\n // Set the canvas size using calculated size\n inner.attr(newSize);\n\n // Grab canvas context and clear/save it\n context = inner[0].getContext('2d');\n context.restore(); context.save();\n context.clearRect(0, 0, 3000, 3000);\n\n // Translate origin\n context.translate(translate[0], translate[1]);\n\n // Draw the tip\n context.beginPath();\n context.moveTo(coords[0][0], coords[0][1]);\n context.lineTo(coords[1][0], coords[1][1]);\n context.lineTo(coords[2][0], coords[2][1]);\n context.closePath();\n context.fillStyle = color.fill;\n context.strokeStyle = color.border;\n context.lineWidth = border * 2;\n context.lineJoin = 'miter';\n context.miterLimit = 100;\n if (border) { context.stroke(); }\n context.fill();\n }\n\n // VML (IE Proprietary implementation)\n else {\n // Setup coordinates string\n coords = 'm' + coords[0][0] + ',' + coords[0][1] + ' l' + coords[1][0] +\n\t\t\t\t\t',' + coords[1][1] + ' ' + coords[2][0] + ',' + coords[2][1] + ' xe';\n\n // Setup VML-specific offset for pixel-perfection\n translate[2] = border && /^(r|b)/i.test(corner.string()) ?\n\t\t\t\t\tparseFloat($.browser.version, 10) === 8 ? 2 : 1 : 0;\n\n // Set initial CSS\n inner.css({\n antialias: '' + (mimic.string().indexOf('center') > -1),\n left: translate[0] - (translate[2] * Number(precedance === 'x')),\n top: translate[1] - (translate[2] * Number(precedance === 'y')),\n width: width + border,\n height: height + border\n })\n\t\t\t\t.each(function (i) {\n\t\t\t\t var $this = $(this);\n\n\t\t\t\t // Set shape specific attributes\n\t\t\t\t $this[$this.prop ? 'prop' : 'attr']({\n\t\t\t\t coordsize: (width + border) + ' ' + (height + border),\n\t\t\t\t path: coords,\n\t\t\t\t fillcolor: color.fill,\n\t\t\t\t filled: !!i,\n\t\t\t\t stroked: !!!i\n\t\t\t\t })\n\t\t\t\t\t.css({ display: border || i ? 'block' : 'none' });\n\n\t\t\t\t // Check if border is enabled and add stroke element\n\t\t\t\t if (!i && $this.html() === '') {\n\t\t\t\t $this.html(\n\t\t\t\t\t\t\t''\n\t\t\t\t\t\t);\n\t\t\t\t }\n\t\t\t\t});\n }\n\n // Position if needed\n if (position !== FALSE) { self.position(corner); }\n },\n\n // Tip positioning method\n position: function (corner) {\n var tip = elems.tip,\n\t\t\t\tposition = {},\n\t\t\t\tuserOffset = Math.max(0, opts.offset),\n\t\t\t\tprecedance, dimensions, corners;\n\n // Return if tips are disabled or tip is not yet rendered\n if (opts.corner === FALSE || !tip) { return FALSE; }\n\n // Inherit corner if not provided\n corner = corner || self.corner;\n precedance = corner.precedance;\n\n // Determine which tip dimension to use for adjustment\n dimensions = calculateSize(corner);\n\n // Setup corners and offset array\n corners = [corner.x, corner.y];\n if (precedance === 'x') { corners.reverse(); }\n\n // Calculate tip position\n $.each(corners, function (i, side) {\n var b, br;\n\n if (side === 'center') {\n b = precedance === 'y' ? 'left' : 'top';\n position[b] = '50%';\n position['margin-' + b] = -Math.round(dimensions[precedance === 'y' ? 'width' : 'height'] / 2) + userOffset;\n }\n else {\n b = borderWidth(corner, side, TRUE);\n br = borderRadius(corner);\n\n position[side] = i ?\n\t\t\t\t\t\tborder ? borderWidth(corner, side) : 0 :\n\t\t\t\t\t\tuserOffset + (br > b ? br : 0);\n }\n });\n\n // Adjust for tip dimensions\n position[corner[precedance]] -= dimensions[precedance === 'x' ? 'width' : 'height'];\n\n // Set and return new position\n tip.css({ top: '', bottom: '', left: '', right: '', margin: '' }).css(position);\n return position;\n },\n\n destroy: function () {\n // Remov tip and bound events\n if (elems.tip) { elems.tip.remove(); }\n tooltip.unbind(namespace);\n }\n });\n\n cache.corner = new PLUGINS.Corner(self.init());\n }\n\n PLUGINS.tip = function (api) {\n var self = api.plugins.tip;\n\n return 'object' === typeof self ? self : (api.plugins.tip = new Tip(api));\n };\n\n // Initialize tip on render\n PLUGINS.tip.initialize = 'render';\n\n // Setup plugin sanitization options\n PLUGINS.tip.sanitize = function (options) {\n var style = options.style, opts;\n if (style && 'tip' in style) {\n opts = options.style.tip;\n if (typeof opts !== 'object') { options.style.tip = { corner: opts }; }\n if (!(/string|boolean/i).test(typeof opts.corner)) { opts.corner = TRUE; }\n if (typeof opts.width !== 'number') { delete opts.width; }\n if (typeof opts.height !== 'number') { delete opts.height; }\n if (typeof opts.border !== 'number' && opts.border !== TRUE) { delete opts.border; }\n if (typeof opts.offset !== 'number') { delete opts.offset; }\n }\n };\n\n // Extend original qTip defaults\n $.extend(TRUE, QTIP.defaults, {\n style: {\n tip: {\n corner: TRUE,\n mimic: FALSE,\n width: 6,\n height: 6,\n border: TRUE,\n offset: 0\n }\n }\n });\n\n PLUGINS.svg = function (svg, corner) {\n var doc = $(document),\n\t\telem = svg[0],\n\t\tresult = {\n\t\t width: 0, height: 0,\n\t\t offset: { top: 1e10, left: 1e10 }\n\t\t},\n\t\tbox, mtx, root, point, tPoint;\n\n if (elem.getBBox && elem.parentNode) {\n box = elem.getBBox();\n mtx = elem.getScreenCTM();\n root = elem.farthestViewportElement || elem;\n\n // Return if no method is found\n if (!root.createSVGPoint) { return result; }\n\n // Create our point var\n point = root.createSVGPoint();\n\n // Adjust top and left\n point.x = box.x;\n point.y = box.y;\n tPoint = point.matrixTransform(mtx);\n result.offset.left = tPoint.x;\n result.offset.top = tPoint.y;\n\n // Adjust width and height\n point.x += box.width;\n point.y += box.height;\n tPoint = point.matrixTransform(mtx);\n result.width = tPoint.x - result.offset.left;\n result.height = tPoint.y - result.offset.top;\n\n // Adjust by scroll offset\n result.offset.left += doc.scrollLeft();\n result.offset.top += doc.scrollTop();\n }\n\n return result;\n };\n\n function Modal(api) {\n var self = this,\n\t\toptions = api.options.show.modal,\n\t\telems = api.elements,\n\t\ttooltip = elems.tooltip,\n\t\toverlaySelector = '#qtip-overlay',\n\t\tglobalNamespace = '.qtipmodal',\n\t\tnamespace = globalNamespace + api.id,\n\t\tattr = 'is-modal-qtip',\n\t\tdocBody = $(document.body),\n\t\toverlay;\n\n // Setup option set checks\n api.checks.modal = {\n '^show.modal.(on|blur)$': function () {\n // Initialise\n self.init();\n\n // Show the modal if not visible already and tooltip is visible\n elems.overlay.toggle(tooltip.is(':visible'));\n }\n };\n\n $.extend(self, {\n init: function () {\n // If modal is disabled... return\n if (!options.on) { return self; }\n\n // Create the overlay if needed\n overlay = self.create();\n\n // Add unique attribute so we can grab modal tooltips easily via a selector\n tooltip.attr(attr, TRUE)\n\n // Set z-index\n\t\t\t.css('z-index', PLUGINS.modal.zindex + $(selector + '[' + attr + ']').length)\n\n // Remove previous bound events in globalNamespace\n\t\t\t.unbind(globalNamespace).unbind(namespace)\n\n // Apply our show/hide/focus modal events\n\t\t\t.bind('tooltipshow' + globalNamespace + ' tooltiphide' + globalNamespace, function (event, api, duration) {\n\t\t\t var oEvent = event.originalEvent;\n\n\t\t\t // Make sure mouseout doesn't trigger a hide when showing the modal and mousing onto backdrop\n\t\t\t if (oEvent && event.type === 'tooltiphide' && /mouse(leave|enter)/.test(oEvent.type) && $(oEvent.relatedTarget).closest(overlay[0]).length) {\n\t\t\t try { event.preventDefault(); } catch (e) { }\n\t\t\t }\n\t\t\t else if (!oEvent || (oEvent && !oEvent.solo)) {\n\t\t\t self[event.type.replace('tooltip', '')](event, duration);\n\t\t\t }\n\t\t\t})\n\n // Adjust modal z-index on tooltip focus\n\t\t\t.bind('tooltipfocus' + globalNamespace, function (event) {\n\t\t\t // If focus was cancelled before it reearch us, don't do anything\n\t\t\t if (event.isDefaultPrevented()) { return; }\n\n\t\t\t var qtips = $(selector).filter('[' + attr + ']'),\n\n\t\t\t // Keep the modal's lower than other, regular qtips\n\t\t\t\tnewIndex = PLUGINS.modal.zindex + qtips.length,\n\t\t\t\tcurIndex = parseInt(tooltip[0].style.zIndex, 10);\n\n\t\t\t // Set overlay z-index\n\t\t\t overlay[0].style.zIndex = newIndex - 1;\n\n\t\t\t // Reduce modal z-index's and keep them properly ordered\n\t\t\t qtips.each(function () {\n\t\t\t if (this.style.zIndex > curIndex) {\n\t\t\t this.style.zIndex -= 1;\n\t\t\t }\n\t\t\t });\n\n\t\t\t // Fire blur event for focused tooltip\n\t\t\t qtips.end().filter('.' + focusClass).qtip('blur', event.originalEvent);\n\n\t\t\t // Set the new z-index\n\t\t\t tooltip.addClass(focusClass)[0].style.zIndex = newIndex;\n\n\t\t\t // Prevent default handling\n\t\t\t try { event.preventDefault(); } catch (e) { }\n\t\t\t})\n\n // Focus any other visible modals when this one hides\n\t\t\t.bind('tooltiphide' + globalNamespace, function (event) {\n\t\t\t $('[' + attr + ']').filter(':visible').not(tooltip).last().qtip('focus', event);\n\t\t\t});\n\n // Apply keyboard \"Escape key\" close handler\n if (options.escape) {\n $(window).unbind(namespace).bind('keydown' + namespace, function (event) {\n if (event.keyCode === 27 && tooltip.hasClass(focusClass)) {\n api.hide(event);\n }\n });\n }\n\n // Apply click handler for blur option\n if (options.blur) {\n elems.overlay.unbind(namespace).bind('click' + namespace, function (event) {\n if (tooltip.hasClass(focusClass)) { api.hide(event); }\n });\n }\n\n return self;\n },\n\n create: function () {\n var elem = $(overlaySelector);\n\n // Return if overlay is already rendered\n if (elem.length) {\n // Modal overlay should always be below all tooltips if possible\n return (elems.overlay = elem.insertAfter($(selector).last()));\n }\n\n // Create document overlay\n overlay = elems.overlay = $('
    ', {\n id: overlaySelector.substr(1),\n html: '
    ',\n mousedown: function () { return FALSE; }\n })\n\t\t\t.insertAfter($(selector).last());\n\n // Update position on window resize or scroll\n $(window).unbind(globalNamespace).bind('resize' + globalNamespace, function () {\n overlay.css({\n height: $(window).height(),\n width: $(window).width()\n });\n })\n\t\t\t.triggerHandler('resize');\n\n return overlay;\n },\n\n toggle: function (event, state, duration) {\n // Make sure default event hasn't been prevented\n if (event && event.isDefaultPrevented()) { return self; }\n\n var effect = options.effect,\n\t\t\t\ttype = state ? 'show' : 'hide',\n\t\t\t\tvisible = overlay.is(':visible'),\n\t\t\t\tmodals = $('[' + attr + ']').filter(':visible').not(tooltip),\n\t\t\t\tzindex;\n\n // Create our overlay if it isn't present already\n if (!overlay) { overlay = self.create(); }\n\n // Prevent modal from conflicting with show.solo, and don't hide backdrop is other modals are visible\n if ((overlay.is(':animated') && visible === state) || (!state && modals.length)) { return self; }\n\n // State specific...\n if (state) {\n // Set position\n overlay.css({ left: 0, top: 0 });\n\n // Toggle backdrop cursor style on show\n overlay.toggleClass('blurs', options.blur);\n\n // Make sure we can't focus anything outside the tooltip\n docBody.bind('focusin' + namespace, function (event) {\n var target = $(event.target),\n\t\t\t\t\t\tcontainer = target.closest('.qtip'),\n\n // Determine if input container target is above this\n\t\t\t\t\ttargetOnTop = container.length < 1 ? FALSE :\n\t\t\t\t\t\t(parseInt(container[0].style.zIndex, 10) > parseInt(tooltip[0].style.zIndex, 10));\n\n // If we're showing a modal, but focus has landed on an input below\n // this modal, divert focus to the first visible input in this modal\n if (!targetOnTop && ($(event.target).closest(selector)[0] !== tooltip[0])) {\n tooltip.find('input:visible').filter(':first').focus();\n }\n });\n }\n else {\n // Undelegate focus handler\n docBody.undelegate('*', 'focusin' + namespace);\n }\n\n // Stop all animations\n overlay.stop(TRUE, FALSE);\n\n // Use custom function if provided\n if ($.isFunction(effect)) {\n effect.call(overlay, state);\n }\n\n // If no effect type is supplied, use a simple toggle\n else if (effect === FALSE) {\n overlay[type]();\n }\n\n // Use basic fade function\n else {\n overlay.fadeTo(parseInt(duration, 10) || 90, state ? 1 : 0, function () {\n if (!state) { $(this).hide(); }\n });\n }\n\n // Reset position on hide\n if (!state) {\n overlay.queue(function (next) {\n overlay.css({ left: '', top: '' });\n next();\n });\n }\n\n return self;\n },\n\n show: function (event, duration) { return self.toggle(event, TRUE, duration); },\n hide: function (event, duration) { return self.toggle(event, FALSE, duration); },\n\n destroy: function () {\n var delBlanket = overlay;\n\n if (delBlanket) {\n // Check if any other modal tooltips are present\n delBlanket = $('[' + attr + ']').not(tooltip).length < 1;\n\n // Remove overlay if needed\n if (delBlanket) {\n elems.overlay.remove();\n $(window).unbind(globalNamespace);\n }\n else {\n elems.overlay.unbind(globalNamespace + api.id);\n }\n\n // Undelegate focus handler\n docBody.undelegate('*', 'focusin' + namespace);\n }\n\n // Remove bound events\n return tooltip.removeAttr(attr).unbind(globalNamespace);\n }\n });\n\n self.init();\n }\n\n PLUGINS.modal = function (api) {\n var self = api.plugins.modal;\n\n return 'object' === typeof self ? self : (api.plugins.modal = new Modal(api));\n };\n\n // Plugin needs to be initialized on render\n PLUGINS.modal.initialize = 'render';\n\n // Setup sanitiztion rules\n PLUGINS.modal.sanitize = function (opts) {\n if (opts.show) {\n if (typeof opts.show.modal !== 'object') { opts.show.modal = { on: !!opts.show.modal }; }\n else if (typeof opts.show.modal.on === 'undefined') { opts.show.modal.on = TRUE; }\n }\n };\n\n // Base z-index for all modal tooltips (use qTip core z-index as a base)\n PLUGINS.modal.zindex = QTIP.zindex + 1000;\n\n // Extend original api defaults\n $.extend(TRUE, QTIP.defaults, {\n show: {\n modal: {\n on: FALSE,\n effect: TRUE,\n blur: TRUE,\n escape: TRUE\n }\n }\n });\n\n /* \n * BGIFrame adaption (http://plugins.jquery.com/project/bgiframe)\n * Special thanks to Brandon Aaron\n */\n function BGIFrame(api) {\n var self = this,\n\t\telems = api.elements,\n\t\ttooltip = elems.tooltip,\n\t\tnamespace = '.bgiframe-' + api.id;\n\n $.extend(self, {\n init: function () {\n // Create the BGIFrame element\n elems.bgiframe = $('');\n\n // Append the new element to the tooltip\n elems.bgiframe.appendTo(tooltip);\n\n // Update BGIFrame on tooltip move\n tooltip.bind('tooltipmove' + namespace, self.adjust);\n },\n\n adjust: function () {\n var dimensions = api.get('dimensions'), // Determine current tooltip dimensions\n\t\t\t\tplugin = api.plugins.tip,\n\t\t\t\ttip = elems.tip,\n\t\t\t\ttipAdjust, offset;\n\n // Adjust border offset\n offset = parseInt(tooltip.css('border-left-width'), 10) || 0;\n offset = { left: -offset, top: -offset };\n\n // Adjust for tips plugin\n if (plugin && tip) {\n tipAdjust = (plugin.corner.precedance === 'x') ? ['width', 'left'] : ['height', 'top'];\n offset[tipAdjust[1]] -= tip[tipAdjust[0]]();\n }\n\n // Update bgiframe\n elems.bgiframe.css(offset).css(dimensions);\n },\n\n destroy: function () {\n // Remove iframe\n elems.bgiframe.remove();\n\n // Remove bound events\n tooltip.unbind(namespace);\n }\n });\n\n self.init();\n }\n\n PLUGINS.bgiframe = function (api) {\n var browser = $.browser,\n\t\tself = api.plugins.bgiframe;\n\n // Proceed only if the browser is IE6 and offending elements are present\n if ($('select, object').length < 1 || !(browser.msie && ('' + browser.version).charAt(0) === '6')) {\n return FALSE;\n }\n\n return 'object' === typeof self ? self : (api.plugins.bgiframe = new BGIFrame(api));\n };\n\n // Plugin needs to be initialized on render\n PLUGINS.bgiframe.initialize = 'render';\n\n\n} (jQuery, window));","// MSDropDown - jquery.dd.js\n// author: Marghoob Suleman - Search me on google\n// Date: 12th Aug, 2009, {18 Dec, 2010 (2.36)}, {date: 02 July, 2011}\n// Version: 2.37.5\n// Revision: 34\n// web: www.giftlelo.com | www.marghoobsuleman.com\n/*\n// msDropDown is free jQuery Plugin: you can redistribute it and/or modify\n// it under the terms of the either the MIT License or the Gnu General Public License (GPL) Version 2\n*/\n; (function ($) {\n\n var msOldDiv = \"\";\n var dd = function (element, options) {\n var sElement = element;\n var $this = this; //parent this\n var options = $.extend({\n height: 120,\n visibleRows: 7,\n rowHeight: 23,\n showIcon: true,\n zIndex: 9999,\n mainCSS: 'dd',\n useSprite: false,\n animStyle: 'slideDown',\n onInit: '',\n style: '',\n readOnly: false,\n\t\t\t\n\t\t\t// cartegraph option additions\n dropEditBoxClass: 'ddTitle',\n topOffset: \"0\",\n spriteScrollAdjustment: 3, // default for unit drop downs set to 0 if doing nothing\n dropWidth: 0,\n dropMarginLeft: '',\n dropPaddingLeft: '',\n msdrpddID: '',\n hideTail: '',\n resize: false,\n originalWidth: 0,\n originalHeight: 0\n \n }, options);\n this.ddProp = new Object(); //storing propeties;\n var oldSelectedValue = \"\";\n var actionSettings = {};\n actionSettings.insideWindow = true;\n actionSettings.keyboardAction = false;\n actionSettings.currentKey = null;\n var ddList = false;\n var config = { postElementHolder: '_msddHolder', postID: '_msdd', postTitleID: '_title', postTitleTextID: '_titletext', postChildID: '_child', postAID: '_msa', postOPTAID: '_msopta', postInputID: '_msinput', postArrowID: '_arrow', postInputhidden: '_inp' };\n var styles = { dd: options.mainCSS, ddTitle: options.dropEditBoxClass, arrow: 'arrow', ddChild: 'ddChild', ddTitleText: 'ddTitleText', disabled: .30, ddOutOfVision: 'ddOutOfVision', borderTop: 'borderTop', noBorderTop: 'noBorderTop', selected: 'selected', hover:'hover' };\n //Cartegraph change\n //var styles = { dd: options.mainCSS, ddTitle: 'ddTitle', arrow: 'arrow', ddChild: 'ddChild', ddTitleText: 'ddTitleText', disabled: .30, ddOutOfVision: 'ddOutOfVision', borderTop: 'borderTop', noBorderTop: 'noBorderTop', selected: 'selected' };\n var attributes = { actions: \"focus,blur,change,click,dblclick,mousedown,mouseup,mouseover,mousemove,mouseout,keypress,keydown,keyup\", prop: \"size,multiple,disabled,tabindex\" };\n this.onActions = new Object();\n var elementid = $(sElement).prop(\"id\");\n if (typeof (elementid) == \"undefined\" || elementid.length <= 0) {\n //assign and id;\n /* cartegraph change\n elementid = \"msdrpdd\" + $.msDropDown.counter++; //I guess it makes unique for the page.*/\n elementid = options.msdrpddID;\n $(sElement).attr(\"id\", elementid);\n };\n var inlineCSS = $(sElement).prop(\"style\");\n options.style += (inlineCSS == undefined) ? \"\" : inlineCSS;\n var allOptions = $(sElement).children();\n ddList = ($(sElement).prop(\"size\") > 1 || $(sElement).prop(\"multiple\") == true) ? true : false;\n if (ddList) { options.visibleRows = $(sElement).prop(\"size\"); };\n var a_array = {}; //stores id, html & value etc\n var isFilter = false;\n var oldHeight;\n var cacheElement = {};\n\n var getElement = function (ele) {\n if (typeof (cacheElement[ele]) == \"undefined\") {\n cacheElement[ele] = document.getElementById(ele);\n }\n return cacheElement[ele];\n };\n var getPostID = function (id) {\n return elementid + config[id];\n };\n var getOptionsProperties = function (option) {\n var currentOption = option;\n var styles = $(currentOption).prop(\"style\");\n return styles;\n };\n var matchIndex = function (index) {\n var selectedIndex = $(\"#\" + elementid + \" option:selected\");\n \n if (selectedIndex.length > 1) {\n for (var i = 0; i < selectedIndex.length; i++) {\n if (index == selectedIndex[i].index) {\n return true;\n };\n };\n } else if (selectedIndex.length == 1) {\n if (selectedIndex[0].index == index) {\n return true;\n };\n };\n return false;\n };\n var createA = function (currentOptOption, current, currentopt, tp) {\n var aTag = \"\";\n var aidoptfix = (tp == \"opt\") ? getPostID(\"postOPTAID\") : getPostID(\"postAID\");\n var aid = (tp == \"opt\") ? aidoptfix + \"_\" + (current) + \"_\" + (currentopt) : aidoptfix + \"_\" + (current);\n var arrow = \"\";\n var clsName = \"\";\n if (options.useSprite != false) {\n clsName = ' ' + options.useSprite + ' ' + currentOptOption.className;\n\n } else {\n arrow = $(currentOptOption).prop(\"title\");\n arrow = (arrow.length == 0) ? \"\" : ' ';\n };\n var sText = $(currentOptOption).text();\n var sValue = $(currentOptOption).val();\n var sEnabledClass = ($(currentOptOption).prop(\"disabled\") == true) ? \"disabled\" : \"enabled\";\n a_array[aid] = { html: arrow + sText, value: sValue, text: sText, index: currentOptOption.index, id: aid };\n var innerStyle = getOptionsProperties(currentOptOption);\n if (matchIndex(currentOptOption.index) == true) {\n aTag += '
    ';\n aTag += arrow + '' + sText + '';\n return aTag;\n };\n// var in_array = function (t) {\n// var sText = t.toLowerCase();\n// if (sText.length == 0) return -1;\n// var a = \"\";\n// for (var i in a_array) {\n// var a_text = a_array[i].text.toLowerCase();\n// if (a_text.substr(0, sText.length) == sText) {\n// a += \"#\" + a_array[i].id + \", \";\n// };\n// };\n// return (a == \"\") ? -1 : a;\n// };\n var createATags = function () {\n var childnodes = allOptions;\n if (childnodes.length == 0) return \"\";\n var aTag = \"\";\n childnodes.each(function (current) {\n var currentOption = childnodes[current];\n //OPTGROUP\n if (currentOption.nodeName == \"OPTGROUP\") {\n aTag += \"
    \";\n aTag += \"\" + $(currentOption).prop(\"label\") + \"\";\n var optChild = $(currentOption).children();\n optChild.each(function (currentopt) {\n var currentOptOption = optChild[currentopt];\n aTag += createA(currentOptOption, current, currentopt, \"opt\");\n });\n aTag += \"
    \";\n\n } else {\n aTag += createA(currentOption, current, \"\", \"\");\n };\n });\n return aTag;\n };\n var createChildDiv = function () {\n var childid = getPostID(\"postChildID\");\n var sStyle = options.style;\n \n // cartegraph change\n sStyle += \"top:\" + options.topOffset + \"px;\";\n \n var sDiv = '
    0) {\n sText = $(\"#\" + elementid + \" option:selected\").text();\n arrow = $(\"#\" + elementid + \" option:selected\").prop(\"title\");\n };\n arrow = (arrow.length == 0 || arrow == undefined || options.showIcon == false || options.useSprite != false) ? \"\" : ' ';\n \t\tvar sDiv = '
    ' : '>');\n sDiv += '' + arrow + '' + sText + '
    '; \n return sDiv;\n };\n var applyEventsOnA = function () {\n var childid = getPostID(\"postChildID\");\n $(\"#\" + childid + \" a.enabled\").unbind(\"click\"); //remove old one\n $(\"#\" + childid + \" a.enabled\").bind(\"click\", function (event) {\n event.preventDefault();\n manageSelection(this);\n setValue();\n if (!ddList) {\n $(\"#\" + childid).unbind(\"mouseover\");\n setInsideWindow(false);\n var sText = (options.showIcon == false) ? $(this).text() : $(this).html();\n setTitleText(sText);\n $this.close();\n };\n });\n };\n var createDropDown = function () {\n var changeInsertionPoint = false;\n var id = getPostID(\"postID\");\n var titleid = getPostID(\"postTitleID\");\n var childid = getPostID(\"postChildID\"); \n\n // cartegraph changes\n var iWidth = $(\"#\" + elementid).width() + 2;\n\n // safari need a little more width, this is cartegraph's hack to the original hack\n if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1)\n iWidth += 19;\n \n\t\t\t// cartegraph changes\n // if($this.get(\"options\", true).length > options.visibleRows) //For scrollbar\n // iWidth += 18;\n\n var sStyle = options.style;\n if ($(\"#\" + id).length > 0) {\n $(\"#\" + id).remove();\n changeInsertionPoint = true;\n };\n //Cartegraph changes \n // var sDiv = '
    \";\n sDiv += \"
    \";\n if (changeInsertionPoint == true) {\n var sid = getPostID(\"postElementHolder\");\n $(\"#\" + sid).after(sDiv);\n } else {\n $(\"#\" + elementid).after(sDiv);\n };\n if (ddList) {\n var titleid = getPostID(\"postTitleID\");\n $(\"#\" + titleid).hide();\n };\n\n\t\t\t// cartegraph changes\n if (options.dropWidth != 0)\n {\n iWidth = options.dropWidth;\n }\n \n if (options.dropMarginLeft != '')\n {\n $(\"#\" + id).css(\"margin-left\", options.dropMarginLeft + \"px\");\n }\n\n if (options.dropPaddingLeft != '')\n {\n $(\"#\" + id).css(\"padding-left\", options.dropPaddingLeft + \"px\");\n }\n \n $(\"#\" + id).css(\"width\", iWidth + \"px\");\n\n\t\t\t// cartegraph changes - Add to the width for all dropdowns except month/year controls.\n var isDateDd = options.dropEditBoxClass == \"ddMonthTitle\" || options.dropEditBoxClass == \"ddYearTitle\";\n if($this.get(\"options\", true).length > options.visibleRows && !isDateDd) //For scrollbar carefull this code position matters\n iWidth += 18;\n \n $(\"#\" + childid).css(\"width\", (iWidth - 2) + \"px\");\n if (allOptions.length > options.visibleRows) {\n var margin = parseInt($(\"#\" + childid + \" a:first\").css(\"padding-bottom\")) + parseInt($(\"#\" + childid + \" a:first\").css(\"padding-top\"));\n var iHeight = ((options.rowHeight) * options.visibleRows) - margin;\n $(\"#\" + childid).css(\"height\", iHeight + \"px\");\n } else if (ddList) {\n var iHeight = $(\"#\" + elementid).height();\n $(\"#\" + childid).css(\"height\", iHeight + \"px\");\n };\n //set out of vision\n if (changeInsertionPoint == false) {\n setOutOfVision();\n addRefreshMethods(elementid);\n };\n if ($(\"#\" + elementid).prop(\"disabled\") == true) {\n $(\"#\" + id).css(\"opacity\", styles.disabled);\n };\n applyEvents();\n //add events\n //arrow hightlight\n $(\"#\" + titleid).bind(\"mouseover\", function () {\n hightlightArrow(1);\n });\n $(\"#\" + titleid).bind(\"mouseout\", function () {\n hightlightArrow(0);\n });\n //open close events\n applyEventsOnA();\n $(\"#\" + childid + \" a.disabled\").css(\"opacity\", styles.disabled);\n if (ddList) {\n $(\"#\" + childid).bind(\"mouseover\", function () {\n if (!actionSettings.keyboardAction) {\n actionSettings.keyboardAction = true;\n $(document).bind(\"keydown\", function (event) {\n var keyCode = event.keyCode;\n actionSettings.currentKey = keyCode;\n if (keyCode == 39 || keyCode == 40) {\n //move to next\n event.preventDefault();\n event.stopPropagation();\n next();\n setValue();\n };\n if (keyCode == 37 || keyCode == 38) {\n event.preventDefault();\n event.stopPropagation();\n //move to previous\n previous();\n setValue();\n };\n });\n } \n });\n };\n $(\"#\" + childid).bind(\"mouseout\", function () {\n setInsideWindow(false);\n // Cartegraph change BEGIN\n // Removed this section because it was preventing keyboard interactions after moving the mouse or clicking on the scrollbar\n /*$(document).unbind(\"keydown\");\n actionSettings.keyboardAction = false;\n actionSettings.currentKey = null;*/\n // Cartegraph change END\n });\n $(\"#\" + titleid).bind(\"click\", function () {\n setInsideWindow(false);\n if ($(\"#\" + childid + \":visible\").length == 1) {\n $(\"#\" + childid).unbind(\"mouseover\");\n } else {\n $(\"#\" + childid).bind(\"mouseover\", function () { setInsideWindow(true); });\n $this.open();\n };\n });\n $(\"#\" + titleid).bind(\"mouseout\", function () {\n setInsideWindow(false);\n });\n \n \n // cartegraph - catch the down arrow key combination so we can open the drop down if not already open\n // - catch the alt\\up arrow key combination so we can close the drop down if not already closed\n // - catch the tab and esc so we can close the drop down if not already closed\n // eat special keys so they don't do crazy things\n $(\"#\" + titleid).bind(\"keydown\", function (event) {\n if ($(\"#\" + getPostID(\"postChildID\")).css(\"display\") == \"none\") { // the dropdown is closed\n if (event.keyCode == 40) { // arrow down will open the drop down\n event.preventDefault();\n event.stopPropagation();\n $this.open();\n }\n }\n else { // the drop down is open\n if ((event.altKey == true && event.keyCode == 38) || // alt/up arrow will close the drop down\n (event.keyCode == 9 || event.keyCode == 27)) { // tab and esc key will close drop down\n event.preventDefault();\n event.stopPropagation();\n $this.close();\n }\n }\n \n// // www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes\n// else if ((event.keyCode > 46 && event.keyCode < 91) || // standard numbers and chars\n// (event.keyCode > 93 && event.keyCode < 106) || // numbers on keypad\n// (event.keyCode > 145)) // special chars\n// $this.open();\n });\n var isReadOnly = ($('#' + elementid + '[readonly]').length != 0);\n $('#' + titleid).children('.arrow').first().toggleClass(\"dark\", !isReadOnly);\n if (options.showIcon && options.useSprite != false) {\n setTitleImageSprite();\n };\n };\n\n var getByIndex = function (index) {\n for (var i in a_array) {\n if (a_array[i].index == index) {\n return a_array[i];\n };\n };\n return -1;\n };\n var manageSelection = function (obj) {\n var childid = getPostID(\"postChildID\");\n if ($(\"#\" + childid + \" a.\" + styles.selected).length == 1) { //check if there is any selected\n oldSelectedValue = $(\"#\" + childid + \" a.\" + styles.selected).text(); //i should have value here. but sometime value is missing\n };\n if (!ddList) {\n $(\"#\" + childid + \" a.\" + styles.selected).removeClass(styles.selected);\n };\n var selectedA = $(\"#\" + childid + \" a.\" + styles.selected).prop(\"id\");\n if (selectedA != undefined) {\n var oldIndex = (actionSettings.oldIndex == undefined || actionSettings.oldIndex == null) ? a_array[selectedA].index : actionSettings.oldIndex;\n };\n if (obj && !ddList) {\n $(obj).addClass(styles.selected);\n };\n if (ddList) {\n var keyCode = actionSettings.currentKey;\n if ($(\"#\" + elementid).prop(\"multiple\") == true) {\n if (keyCode == 17) {\n //control\n actionSettings.oldIndex = a_array[$(obj).prop(\"id\")].index;\n $(obj).toggleClass(styles.selected);\n //multiple\n } else if (keyCode == 16) {\n $(\"#\" + childid + \" a.\" + styles.selected).removeClass(styles.selected);\n $(obj).addClass(styles.selected);\n //shift\n var currentSelected = $(obj).prop(\"id\");\n var currentIndex = a_array[currentSelected].index;\n for (var i = Math.min(oldIndex, currentIndex); i <= Math.max(oldIndex, currentIndex); i++) {\n $(\"#\" + getByIndex(i).id).addClass(styles.selected);\n };\n } else {\n $(\"#\" + childid + \" a.\" + styles.selected).removeClass(styles.selected);\n $(obj).addClass(styles.selected);\n actionSettings.oldIndex = a_array[$(obj).prop(\"id\")].index;\n };\n } else {\n $(\"#\" + childid + \" a.\" + styles.selected).removeClass(styles.selected);\n $(obj).addClass(styles.selected);\n actionSettings.oldIndex = a_array[$(obj).prop(\"id\")].index;\n };\n //isSingle\n };\n };\n var addRefreshMethods = function (id) {\n //deprecated\n var objid = id;\n getElement(objid).refresh = function (e) {\n $(\"#\" + objid).msDropDown(options);\n };\n };\n var setInsideWindow = function (val) {\n actionSettings.insideWindow = val;\n };\n var getInsideWindow = function () {\n return actionSettings.insideWindow;\n };\n var applyEvents = function () {\n var mainid = getPostID(\"postID\");\n var actions_array = attributes.actions.split(\",\");\n for (var iCount = 0; iCount < actions_array.length; iCount++) {\n var action = actions_array[iCount];\n var actionFound = has_handler(action);\n if (actionFound == true) {\n switch (action) {\n case \"focus\":\n $(\"#\" + mainid).bind(\"mouseenter\", function () {\n getElement(elementid).focus();\n });\n break;\n case \"click\":\n $(\"#\" + mainid).bind(\"click\", function () {\n $(\"#\" + elementid).trigger(\"click\");\n });\n break;\n case \"dblclick\":\n $(\"#\" + mainid).bind(\"dblclick\", function () {\n $(\"#\" + elementid).trigger(\"dblclick\");\n });\n break;\n case \"mousedown\":\n $(\"#\" + mainid).bind(\"mousedown\", function () {\n $(\"#\" + elementid).trigger(\"mousedown\");\n });\n break;\n case \"mouseup\":\n //has in close mthod\n $(\"#\" + mainid).bind(\"mouseup\", function () {\n $(\"#\" + elementid).trigger(\"mouseup\");\n });\n break;\n case \"mouseover\":\n $(\"#\" + mainid).bind(\"mouseover\", function () {\n $(\"#\" + elementid).trigger(\"mouseover\");\n });\n break;\n case \"mousemove\":\n $(\"#\" + mainid).bind(\"mousemove\", function () {\n $(\"#\" + elementid).trigger(\"mousemove\");\n });\n break;\n case \"mouseout\":\n $(\"#\" + mainid).bind(\"mouseout\", function () {\n $(\"#\" + elementid).trigger(\"mouseout\");\n });\n break;\n };\n };\n };\n\n };\n var setOutOfVision = function () {\n var sId = getPostID(\"postElementHolder\");\n $(\"#\" + elementid).after(\"
    \");\n $(\"#\" + elementid).appendTo($(\"#\" + sId));\n };\n var setTitleText = function (sText) {\n var titletextid = getPostID(\"postTitleTextID\");\n $(\"#\" + titletextid).html(sText);\n };\n var navigateA = function (w) { \n //Cartegraph change... Full of changes find original source \n var where = w;\n var childid = getPostID(\"postChildID\");\n var visibleA = $(\"#\" + childid + \" a:visible\");\n var totalA = visibleA.length;\n var currentP = $(\"#\" + childid + \" a:visible\").index($(\"#\" + childid + \" a.hover:visible\"));\n var nextA;\n\t\t\t// Cartegraph change BEGIN\n // When scrolling values into view, make the down arrow select the first value within the viewable drop down values\n var spriteIndex = a_array[$(\"#\" + childid + \" a.selected\").prop(\"id\")].index;\n if (currentP == -1) {\n if (spriteIndex >= totalA - options.spriteScrollAdjustment - 1 && totalA > options.visibleRows)\n currentP = totalA - options.visibleRows + 1; \n else if ((spriteIndex > options.spriteScrollAdjustment || spriteIndex > totalA - options.visibleRows)\n && totalA > options.visibleRows) {\n // the UP arrow was skipping over a row when first dropping down the list\n currentP = spriteIndex - options.spriteScrollAdjustment - (where == \"previous\" ? 0 : 1);\n }\n else\n currentP = -1;\n }\n // Cartegraph change END\n switch (where) {\n case \"next\":\n if (currentP < totalA - 1) {\n currentP++;\n nextA = visibleA[currentP];\n };\n break;\n case \"previous\":\n if (currentP < totalA && currentP > 0) {\n currentP--;\n nextA = visibleA[currentP];\n };\n break;\n /* cartegraph change\n break;*/\n\t\t\t\t// cartegraph change scroll to sprite\n case \"toSprite\":\n if (currentP < totalA) {\n spriteIndex = a_array[$(\"#\" + childid + \" a.selected\").prop(\"id\")].index;\n nextA = visibleA[spriteIndex];\n var rowheight = $(\"#\" + nextA.id).height();\n \n if ($this.get(\"options\", true).length > options.visibleRows) // scrollbar?\n {\n if (options.spriteScrollAdjustment > 0) // do we need to do any adjusting -1 means do nothing\n {\n $(\"#\" + childid).scrollTop(rowheight * (spriteIndex - options.spriteScrollAdjustment));\n }\n }\n };\n \n return true;\n };\n if (typeof (nextA) == \"undefined\") {\n return false;\n };\n $(\"#\" + childid + \" a.\" + styles.hover).removeClass(styles.hover);\n $(nextA).addClass(styles.hover);\n \n var selectedA = nextA.id;\n// if (!ddList) {\n// var sText = (options.showIcon == false) ? a_array[selectedA].text : $(\"#\" + selectedA).html();\n// setTitleText(sText);\n// setTitleImageSprite(a_array[selectedA].index);\n// };\n if (where == \"next\") {\n if (parseInt(($(\"#\" + selectedA).position().top + $(\"#\" + selectedA).height())) >= parseInt($(\"#\" + childid).height()) &&\n // Cartegraph change\n // Modify condition to only scroll if the record being selected is not in view - based on rowheight/2\n parseInt(($(\"#\" + selectedA).position().top + $(\"#\" + selectedA).height())) - parseInt($(\"#\" + childid).height()) > $(\"#\" + selectedA).height()/2) {\n $(\"#\" + childid).scrollTop(($(\"#\" + childid).scrollTop()) + $(\"#\" + selectedA).height() + $(\"#\" + selectedA).height());\n };\n } else {\n if (parseInt(($(\"#\" + selectedA).position().top + $(\"#\" + selectedA).height())) <= 0) {\n // Cartegraph change BEGIN\n // Removed the row height subtraction because it was causing values at the bottom of the list not to be displayed in view\n $(\"#\" + childid).scrollTop(($(\"#\" + childid).scrollTop() - $(\"#\" + childid).height())/*- $(\"#\" + selectedA).height()*/);\n // Cartegraph change END\n };\n };\n };\n var next = function () {\n navigateA(\"next\");\n };\n var previous = function () {\n navigateA(\"previous\");\n };\n // cartegraph change\n var toSprite = function () {\n navigateA(\"toSprite\");\n };\n\n var setTitleImageSprite = function (i) {\n if (options.useSprite != false) {\n var titletextid = getPostID(\"postTitleTextID\");\n var index = (typeof (i) == \"undefined\") ? getElement(elementid).selectedIndex : i;\n var sClassName = getElement(elementid).options[index].className;\n if (sClassName.length > 0) {\n var childid = getPostID(\"postChildID\");\n var id = $(\"#\" + childid + \" a.\" + sClassName).prop(\"id\");\n var backgroundImg = $(\"#\" + id).css(\"background-image\");\n var backgroundPosition = $(\"#\" + id).css(\"background-position\");\n var paddingLeft = $(\"#\" + id).css(\"padding-left\");\n if (backgroundImg != undefined) {\n $(\"#\" + titletextid).find(\".\" + styles.ddTitleText).attr('style', \"background:\" + backgroundImg);\n };\n if (backgroundPosition != undefined) {\n $(\"#\" + titletextid).find(\".\" + styles.ddTitleText).css('background-position', backgroundPosition);\n };\n if (paddingLeft != undefined) {\n $(\"#\" + titletextid).find(\".\" + styles.ddTitleText).css('padding-left', paddingLeft);\n };\n $(\"#\" + titletextid).find(\".\" + styles.ddTitleText).css('background-repeat', 'no-repeat');\n $(\"#\" + titletextid).find(\".\" + styles.ddTitleText).css('padding-bottom', '2px');\n };\n };\n };\n var setValue = function () {\n var childid = getPostID(\"postChildID\");\n var allSelected = $(\"#\" + childid + \" a.\" + styles.selected);\n if (allSelected.length == 1) {\n var sText = $(\"#\" + childid + \" a.\" + styles.selected).text();\n var selectedA = $(\"#\" + childid + \" a.\" + styles.selected).prop(\"id\");\n if (selectedA != undefined) {\n var sValue = a_array[selectedA].value;\n getElement(elementid).selectedIndex = a_array[selectedA].index;\n };\n //set image on title if using sprite\n\n if (options.showIcon && options.useSprite != false)\n setTitleImageSprite();\n } else if (allSelected.length > 1) {\n for (var i = 0; i < allSelected.length; i++) {\n var selectedA = $(allSelected[i]).prop(\"id\");\n var index = a_array[selectedA].index;\n getElement(elementid).options[index].selected = \"selected\";\n };\n };\n var sIndex = getElement(elementid).selectedIndex;\n $this.ddProp[\"selectedIndex\"] = sIndex;\n };\n var has_handler = function (name) {\n // True if a handler has been added in the html.\n if ($(\"#\" + elementid).prop(\"on\" + name) != undefined) {\n return true;\n };\n // True if a handler has been added using jQuery.\n var evs = $(\"#\" + elementid).data(\"events\");\n if (evs && evs[name]) {\n return true;\n };\n return false;\n };\n var checkMethodAndApply = function () {\n var childid = getPostID(\"postChildID\");\n if (has_handler('change') == true) {\n var currentSelectedValue = a_array[$(\"#\" + childid + \" a.selected\").prop(\"id\")].text;\n if ($.trim(oldSelectedValue) !== $.trim(currentSelectedValue) && oldSelectedValue !== \"\") {\n $(\"#\" + elementid).trigger(\"change\");\n };\n };\n if (has_handler('mouseup') == true) {\n $(\"#\" + elementid).trigger(\"mouseup\");\n };\n if (has_handler('blur') == true) {\n $(document).bind(\"mouseup\", function () {\n $(\"#\" + elementid).focus();\n $(\"#\" + elementid)[0].blur();\n setValue();\n $(document).unbind(\"mouseup\");\n });\n };\n };\n var hightlightArrow = function (ison) {\n var arrowid = getPostID(\"postArrowID\");\n //Cartegraph changes\n // if (ison == 1)\n if (ison == 1 && !options.readOnly)\n $(\"#\" + arrowid).css({ backgroundPosition: '0 100%' });\n else\n $(\"#\" + arrowid).css({ backgroundPosition: '0 0' });\n };\n var setOriginalProperties = function () {\n //properties = {};\n for (var i in getElement(elementid)) {\n if (typeof (getElement(elementid)[i]) != 'function' && getElement(elementid)[i] !== undefined && getElement(elementid)[i] !== null) {\n $this.set(i, getElement(elementid)[i], true); //true = setting local properties\n };\n };\n };\n var setValueByIndex = function (prop, val) {\n if (getByIndex(val) != -1) {\n getElement(elementid)[prop] = val;\n var childid = getPostID(\"postChildID\");\n $(\"#\" + childid + \" a.\" + styles.selected).removeClass(styles.selected); \n $(\"#\" + getByIndex(val).id).addClass(styles.selected);\n var sText = getByIndex(getElement(elementid).selectedIndex).html;\n setTitleText(sText);\n };\n };\n\n \n var changeValue = function(prop, val)\n { \n try\n {\n var index = $(getElement(elementid)).children().filter(function() {\n return $(this).text().toLowerCase() == val.toLowerCase(); \n }).index();\n\n if(index != -1)\n {\n setValueByIndex(prop, index);\n setTitleText(val);\n $(getElement(elementid)).children()[index].selected = true;\n }\n }\n catch(e) {}; //Eat it\n };\n\n var addRemoveFromIndex = function (i, action) {\n if (action == 'd') {\n for (var key in a_array) {\n if (a_array[key].index == i) {\n delete a_array[key];\n break;\n };\n };\n };\n //update index\n var count = 0;\n for (var key in a_array) {\n a_array[key].index = count;\n count++;\n };\n };\n var shouldOpenOpposite = function () {\n var childid = getPostID(\"postChildID\");\n var main = getPostID(\"postID\");\n var pos = $(\"#\" + main).position();\n var mH = $(\"#\" + main).height();\n var wH = $(window).height();\n var st = $(window).scrollTop();\n var cH = $(\"#\" + childid).height();\n var css = { zIndex: options.zIndex, display: \"none\" };\n var ani = options.animStyle;\n var opp = false;\n//\t\t\tcartegraph changes\n// var borderTop = styles.noBorderTop;\n var borderTop = styles.borderTop;\n $(\"#\" + childid).removeClass(styles.noBorderTop);\n $(\"#\" + childid).removeClass(styles.borderTop);\n if ((wH + st) < Math.floor(cH + mH + pos.top)) {\n var tp = pos.top - cH;\n if ((pos.top - cH) < 0) {\n tp = 10;\n };\n css = { zIndex: options.zIndex, top: tp + \"px\", display: \"none\" };\n ani = \"show\";\n opp = true;\n borderTop = styles.borderTop;\n };\n return { opp: opp, ani: ani, css: css, border: borderTop };\n };\n var fireOpenEvent = function () {\n if ($this.onActions[\"onOpen\"] != null) {\n eval($this.onActions[\"onOpen\"])($this);\n };\n };\n var fireCloseEvent = function () {\n checkMethodAndApply();\n if ($this.onActions[\"onClose\"] != null) {\n eval($this.onActions[\"onClose\"])($this);\n };\n };\n /************* public methods *********************/\n this.open = function () {\n // cartegraph changes\n// if (($this.get(\"disabled\", true) == true) || ($this.get(\"options\", true).length == 0)) return;\n if (($this.get(\"disabled\", true) == true) || ($this.get(\"options\", true).length == 0) || options.readOnly) return;\n var childid = getPostID(\"postChildID\");\n if (msOldDiv != \"\" && childid != msOldDiv) {\n $(\"#\" + msOldDiv).slideUp(\"fast\");\n $(\"#\" + msOldDiv).css({ zIndex: '0' });\n };\n if ($(\"#\" + childid).css(\"display\") == \"none\") {\n oldSelectedValue = a_array[$(\"#\" + childid + \" a.selected\").prop(\"id\")].text;\n //keyboard action\n var sText = \"\";\n oldHeight = $(\"#\" + childid).height();\n \n if (options.originalHeight == 0)\n options.originalHeight = oldHeight;\n\n // cartegraph change begin - resize dropdown to prevent it from dropping off the page\n var iWidth = options.originalWidth; \n if (iWidth == 0)\n {\n // cartegraph changes\n iWidth = $(\"#\" + elementid).width() + 2;\n \n // safari need a little more width, this is cartegraph's hack to the original hack\n if (navigator.userAgent.indexOf('Safari') != -1)\n iWidth += 19;\n \n options.originalWidth = iWidth;\n }\n \n if (options.resize)\n {\n var textBoxID = \"#\" + getPostID(\"postID\").replace(\"_msdd\", \"\");\n var scrollTop = $(window).scrollTop();\n var topOfDropDown = $(textBoxID).offset().top + $(textBoxID).outerHeight() + 15 - scrollTop;\n var leftOfDropDown = $(textBoxID).offset().left;\n var newVisibleRows = (document.documentElement.clientHeight - topOfDropDown)/options.rowHeight;\n\n var $childId = $('#' + childid);\n \n //get the new position of the dropdown every time it opens - Cartegraph\n var bottomOfDropDown = $(textBoxID).offset().top + $childId.outerHeight() + 3;\n var flip = bottomOfDropDown > document.documentElement.clientHeight;\n \n // note - this needs to be refactored\n // we could make the advancedFilterDialog, cgFieldPrompt, and fieldFilterBar into widget options\n // the hard coded numbers are kind of hard to get around. we could variablize them and give the helpful names\n\n // set the top position of the dropdown\n if (flip) { // flip logic\n if ($childId.parents('#advancedFilterDialog').length == 1) {\n topOfDropDown = topOfDropDown - $childId.height() - $(textBoxID).height() + 2;\n }\n else if ($childId.parents(\".cgFieldPrompt\").length == 1) {\n if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {\n topOfDropDown = topOfDropDown - $childId.height() - $(textBoxID).height();\n }\n else {\n topOfDropDown = topOfDropDown - $childId.height() - $(textBoxID).height() + 2;\n }\n }\n else if ($childId.parents(\".fieldFilterBar\").length == 1) {\n topOfDropDown = topOfDropDown - $childId.height() - $(textBoxID).height() + 6;\n }\n else {\n topOfDropDown = ($childId.offset().top - $childId.height()) + $(textBoxID).height() + 15;\n }\n\n $childId.css(\"top\", topOfDropDown + \"px\");\n }\n else {\n if ($childId.parents('#advancedFilterDialog').length == 1) {\n if (navigator.userAgent.indexOf('Safari') != -1) { // safari\n $childId.css(\"top\", topOfDropDown - 36 + \"px\"); \n }\n else {\n $childId.css(\"top\", topOfDropDown - 34 + \"px\"); \n }\n }\n else if ($childId.parents(\".cgFieldPrompt\").length == 1) {\n if(navigator.userAgent.toLowerCase().indexOf('chrome') > -1)\n $childId.css(\"top\", topOfDropDown - 40 + \"px\");\n else {\n $childId.css(\"top\", topOfDropDown - 38 + \"px\");\n }\n }\n else if ($childId.parents(\".fieldFilterBar\").length == 1) {\n $childId.css(\"top\", topOfDropDown - 38 + \"px\"); \n }\n else {\n topOfDropDown = $childId.offset().top + 6;\n $childId.css(\"top\", topOfDropDown + \"px\");\n }\n }\n \n // set the left position of the dropdown\n var x = 0 - $(window).scrollLeft();\n if ($childId.parents('#advancedFilterDialog').length == 1) {\n $childId.css(\"left\", leftOfDropDown + x - 8 + \"px\");\n }\n else if ($childId.parents(\".cgFieldPrompt\").length == 1) {\n $childId.css(\"left\", leftOfDropDown + x + \"px\");\n }\n else if ($childId.parents(\".fieldFilterBar\").length == 1) {\n var defaultLeft = 30;\n $childId.css(\"left\", defaultLeft + x + \"px\");\n }\n\n // set the new height\n var newHasScrollBar;\n var calculatedHeight = options.rowHeight * newVisibleRows + ($(\"#\" + elementid).height() * 2);\n if ((topOfDropDown + (options.visibleRows * options.rowHeight) > document.documentElement.clientHeight) && (calculatedHeight < options.originalHeight)) // need to shrink?\n {\n newHasScrollBar = $this.get(\"options\", true).length >= newVisibleRows;\n $(\"#\" + childid).css(\"height\", calculatedHeight + \"px\");\n }\n else\n {\n newHasScrollBar = $this.get(\"options\", true).length >= options.visibleRows;\n $(\"#\" + childid).css(\"height\", options.originalHeight + \"px\");\n }\n\n // set the new width\n if (newHasScrollBar) \n $(\"#\" + childid).css(\"width\", iWidth + 18 + \"px\");\n else\n $(\"#\" + childid).css(\"width\", iWidth + \"px\");\n }\n // cartegraph change end\n \n $(\"#\" + childid + \" a\").show();\n $(document).bind(\"keydown\", function (event) {\n var keyCode = event.keyCode;\n\n switch (keyCode) {\n case 8:\n // backspace\n event.preventDefault();\n event.stopPropagation();\n //remove char\n sText = (sText.length == 0) ? \"\" : sText.substr(0, sText.length - 1);\n break;\n case 9:\n // tab key\n case 27:\n // esc key\n $this.close();\n break;\n case 39:\n case 40:\n //move to next\n event.preventDefault();\n event.stopPropagation();\n next();\n break;\n case 37:\n case 38:\n //move to previous\n event.preventDefault();\n event.stopPropagation();\n previous();\n break;\n case 27:\n // esc key\n $this.close();\n break;\n//Cartegraph change\n// case 13:\n// $this.close();\n// setValue();\n// break;\n case 13: \n case 32: \n //Cartegraph change... Added this whole section. For spacebar and enter selection \n var currentSelectedItem = $('.dd .ddChild a.hover');\n \n if(currentSelectedItem && currentSelectedItem.length <= 0)\n break;\n\n event.preventDefault();\n manageSelection(currentSelectedItem);\n setValue();\n if (!ddList) { \n //setInsideWindow(false);\n var sText = (options.showIcon == false) ? $(currentSelectedItem).text() : $(currentSelectedItem).html();\n setTitleText(sText);\n $this.close();\n }\n break;\n default:\n// if (keyCode > 46) {\n// sText += String.fromCharCode(keyCode);\n// };\n// var ind = in_array(sText);\n// if (ind != -1) {\n// $(\"#\" + childid).css({ height: 'auto' });\n// $(\"#\" + childid + \" a\").hide();\n// $(ind).show();\n// var wf = shouldOpenOpposite();\n// $(\"#\" + childid).css(wf.css);\n// $(\"#\" + childid).css({ display: 'block' });\n// } else {\n// $(\"#\" + childid + \" a\").show();\n// $(\"#\" + childid).css({ height: oldHeight + 'px' });\n// };\n break;\n }\n if (has_handler(\"keydown\") == true) {\n if ($(\"#\" + elementid).prop(\"onkeydown\") != undefined) { // cartegraph change\n getElement(elementid).onkeydown();\n };\n }\n });\n\n $(document).bind(\"keyup\", function () {\n if ($(\"#\" + elementid).prop(\"onkeyup\") != undefined) {\n getElement(elementid).onkeyup();\n };\n });\n //end keyboard action\n\n //close onmouseup\n $(document).bind(\"mouseup\", function () {\n if (getInsideWindow() == false) {\n $this.close();\n };\n });\n \n\n if (options.hideTail != '') // hide the triangle\n {\n $(\"#\" + options.hideTail).css({ visibility: 'hidden' });\n }\n\n //check open\n var wf = shouldOpenOpposite();\n \n // cartegraph change to always use our offset passed in the options\n //wf.css.top = options.topOffset + \"px\";\n \n $(\"#\" + childid).css(wf.css);\n if (wf.opp == true) {\n $(\"#\" + childid).css({ display: 'block' });\n $(\"#\" + childid).addClass(wf.border);\n fireOpenEvent();\n } else {// cartegraph changed from \"fast\" to 0 for the close time\n $(\"#\" + childid)[wf.ani](0, function () {\n $(\"#\" + childid).addClass(wf.border);\n fireOpenEvent();\n });\n };\n if (childid != msOldDiv) {\n msOldDiv = childid;\n };\n };\n\t\t\t// cartegraph change\n toSprite();\n };\n this.close = function () {\n var childid = getPostID(\"postChildID\");\n \n //Cartegraph change\n $(\"#\" + childid + \" a.\" + styles.hover).removeClass(styles.hover);\n \n var top = $(\"#\" + getPostID(\"postTitleID\")).position().top;\n var wf = shouldOpenOpposite();\n isFilter = false;\n if (wf.opp == true) { // cartegraph changed to make sure we have a top position defined\n $(\"#\" + childid).animate({\n height: 0,\n top: top\n }, function () {\n $(\"#\" + childid).css({ height: oldHeight + 'px', display: 'none' });\n fireCloseEvent();\n });\n }\n else { // cartegraph changed from \"fast\" to 1 for the close time\n $(\"#\" + childid).slideUp(1, function () {\n fireCloseEvent();\n $(\"#\" + childid).css({ zIndex: '0' });\n $(\"#\" + childid).css({ height: oldHeight + 'px' });\n });\n };\n setTitleImageSprite();\n $(document).unbind(\"keydown\");\n $(document).unbind(\"keyup\");\n $(document).unbind(\"mouseup\");\n \n if (options.hideTail != '') // show the triangle requires a slight timeout wo the user will not see the transition of showing it\n {\n setTimeout(showTail, 1);\n }\n };\n function showTail()\n {\n $(\"#\" + options.hideTail).css({ visibility: 'visible' });\n };\n this.selectedIndex = function (i) {\n if (typeof (i) == \"undefined\") {\n return $this.get(\"selectedIndex\");\n } else {\n $this.set(\"selectedIndex\", i);\n };\n };\n this.debug = function (is) {\n if (typeof (is) == \"undefined\" || is == true) {\n $(\".\" + styles.ddOutOfVision).removeAttr(\"style\");\n } else {\n $(\".\" + styles.ddOutOfVision).attr(\"style\", \"height:0px;overflow:hidden;position:absolute\");\n };\n };\n //update properties\n this.set = function (prop, val, isLocal) {\n if (prop == undefined || val == undefined) throw { message: \"set to what?\" };\n $this.ddProp[prop] = val;\n if (isLocal != true) {\n switch (prop) {\n case \"changeVal\":\n changeValue(prop, val);\n case \"selectedIndex\":\n setValueByIndex(prop, val);\n break;\n case \"disabled\":\n $this.disabled(val, true);\n break;\n case \"multiple\":\n getElement(elementid)[prop] = val;\n ddList = ($(sElement).prop(\"size\") > 0 || $(sElement).prop(\"multiple\") == true) ? true : false;\n if (ddList) {\n //do something\n var iHeight = $(\"#\" + elementid).height();\n var childid = getPostID(\"postChildID\");\n $(\"#\" + childid).css(\"height\", iHeight + \"px\");\n //hide titlebar\n var titleid = getPostID(\"postTitleID\");\n $(\"#\" + titleid).hide();\n var childid = getPostID(\"postChildID\");\n $(\"#\" + childid).css({ display: 'block', position: 'relative' });\n applyEventsOnA();\n };\n break;\n case \"size\":\n getElement(elementid)[prop] = val;\n if (val == 0) {\n getElement(elementid).multiple = false;\n };\n ddList = ($(sElement).prop(\"size\") > 0 || $(sElement).prop(\"multiple\") == true) ? true : false;\n if (val == 0) {\n //show titlebar\n var titleid = getPostID(\"postTitleID\");\n $(\"#\" + titleid).show();\n var childid = getPostID(\"postChildID\");\n $(\"#\" + childid).css({ display: 'none', position: 'absolute' });\n var sText = \"\";\n if (getElement(elementid).selectedIndex >= 0) {\n var aObj = getByIndex(getElement(elementid).selectedIndex);\n sText = aObj.html;\n manageSelection($(\"#\" + aObj.id));\n };\n setTitleText(sText);\n } else {\n //hide titlebar\n var titleid = getPostID(\"postTitleID\");\n $(\"#\" + titleid).hide();\n var childid = getPostID(\"postChildID\");\n $(\"#\" + childid).css({ display: 'block', position: 'relative' });\n };\n break;\n default:\n try {\n //check if this is not a readonly properties\n getElement(elementid)[prop] = val;\n } catch (e) {\n //silent\n };\n break;\n };\n };\n };\n this.get = function (prop, forceRefresh) {\n if (prop == undefined && forceRefresh == undefined) {\n return $this.ddProp;\n };\n if (prop != undefined && forceRefresh == undefined) {\n return ($this.ddProp[prop] != undefined) ? $this.ddProp[prop] : null;\n };\n if (prop != undefined && forceRefresh != undefined) {\n return getElement(elementid)[prop];\n };\n };\n this.visible = function (val) {\n var id = getPostID(\"postID\");\n if (val == true) {\n $(\"#\" + id).show();\n } else if (val == false) {\n $(\"#\" + id).hide();\n } else {\n return $(\"#\" + id).css(\"display\");\n };\n };\n this.add = function (opt, index) {\n var objOpt = opt;\n var sText = objOpt.text;\n var sValue = (objOpt.value == undefined || objOpt.value == null) ? sText : objOpt.value;\n var img = (objOpt[\"title\"] == undefined || objOpt[\"title\"] == null) ? '' : objOpt[\"title\"];\n var i = (index == undefined || index == null) ? getElement(elementid).options.length : index;\n getElement(elementid).options[i] = new Option(sText, sValue);\n if (img != '') getElement(elementid).options[i][\"title\"] = img;\n //check if exist\n var ifA = getByIndex(i);\n if (ifA != -1) {\n //replace\n var aTag = createA(getElement(elementid).options[i], i, \"\", \"\");\n $(\"#\" + ifA.id).html(aTag);\n } else {\n var aTag = createA(getElement(elementid).options[i], i, \"\", \"\");\n //add\n var childid = getPostID(\"postChildID\");\n $(\"#\" + childid).append(aTag);\n applyEventsOnA();\n };\n };\n this.remove = function (i) {\n getElement(elementid).remove(i);\n if ((getByIndex(i)) != -1) { $(\"#\" + getByIndex(i).id).remove(); addRemoveFromIndex(i, 'd'); };\n if (getElement(elementid).length == 0) {\n setTitleText(\"\");\n } else {\n var sText = getByIndex(getElement(elementid).selectedIndex).html;\n setTitleText(sText);\n };\n $this.set(\"selectedIndex\", getElement(elementid).selectedIndex);\n };\n this.disabled = function (dis, isLocal) {\n getElement(elementid).disabled = dis;\n var id = getPostID(\"postID\");\n if (dis == true) {\n $(\"#\" + id).css(\"opacity\", styles.disabled);\n $this.close();\n } else if (dis == false) {\n $(\"#\" + id).css(\"opacity\", 1);\n };\n if (isLocal != true) {\n $this.set(\"disabled\", dis);\n };\n };\n //return form element\n this.form = function () {\n return (getElement(elementid).form == undefined) ? null : getElement(elementid).form;\n };\n\n this.item = function () {\n //index, subindex - use arguments.length\n if (arguments.length == 1) {\n return getElement(elementid).item(arguments[0]);\n } else if (arguments.length == 2) {\n return getElement(elementid).item(arguments[0], arguments[1]);\n } else {\n throw { message: \"An index is required!\" };\n };\n };\n this.namedItem = function (nm) {\n return getElement(elementid).namedItem(nm);\n };\n this.multiple = function (is) {\n if (typeof (is) == \"undefined\") {\n return $this.get(\"multiple\");\n } else {\n $this.set(\"multiple\", is);\n };\n\n };\n this.size = function (sz) {\n if (typeof (sz) == \"undefined\") {\n return $this.get(\"size\");\n } else {\n $this.set(\"size\", sz);\n };\n };\n this.addMyEvent = function (nm, fn) {\n $this.onActions[nm] = fn;\n };\n this.fireEvent = function (nm) {\n eval($this.onActions[nm])($this);\n };\n //end \n var updateCommonVars = function () {\n $this.set(\"version\", $.msDropDown.version);\n $this.set(\"author\", $.msDropDown.author);\n };\n var init = function () {\n //create wrapper\n createDropDown();\n //update propties\n setOriginalProperties();\n updateCommonVars();\n if (options.onInit != '') {\n eval(options.onInit)($this);\n };\n };\n init();\n };\n //static\n $.msDropDown = {\n version: 2.37,\n author: \"Marghoob Suleman\",\n counter: 20,\n create: function (id, opt) {\n return $(id).msDropDown(opt).data(\"dd\");\n }\n };\n $.fn.extend({\n msDropDown: function (options) {\n return this.each(function () {\n var mydropdown = new dd(this, options);\n $(this).data('dd', mydropdown);\n });\n }\n });\n //fixed for prop\n if (typeof ($.fn.prop) == 'undefined') {\n $.fn.prop = function (w) {\n return $(this).attr(w);\n };\n };\n\n})(jQuery);","// Underscore.js 1.8.3\n// http://underscorejs.org\n// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n(function () {\n\n // Baseline setup\n // --------------\n\n // Establish the root object, `window` in the browser, or `exports` on the server.\n var root = this;\n\n // Save the previous value of the `_` variable.\n var previousUnderscore = root._;\n\n // Save bytes in the minified (but not gzipped) version:\n var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;\n\n // Create quick reference variables for speed access to core prototypes.\n var\n push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n // All **ECMAScript 5** native function implementations that we hope to use\n // are declared here.\n var\n nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeBind = FuncProto.bind,\n nativeCreate = Object.create;\n\n // Naked function reference for surrogate-prototype-swapping.\n var Ctor = function () { };\n\n // Create a safe reference to the Underscore object for use below.\n var _ = function (obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n };\n\n // Export the Underscore object for **Node.js**, with\n // backwards-compatibility for the old `require()` API. If we're in\n // the browser, add `_` as a global object.\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = _;\n }\n exports._ = _;\n } else {\n root._ = _;\n }\n\n // Current version.\n _.VERSION = '1.8.3';\n\n // Internal function that returns an efficient (for current engines) version\n // of the passed-in callback, to be repeatedly applied in other Underscore\n // functions.\n var optimizeCb = function (func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function (value) {\n return func.call(context, value);\n };\n case 2: return function (value, other) {\n return func.call(context, value, other);\n };\n case 3: return function (value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function (accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function () {\n return func.apply(context, arguments);\n };\n };\n\n // A mostly-internal function to generate callbacks that can be applied\n // to each element in a collection, returning the desired result � either\n // identity, an arbitrary callback, a property matcher, or a property accessor.\n var cb = function (value, context, argCount) {\n if (value == null) return _.identity;\n if (_.isFunction(value)) return optimizeCb(value, context, argCount);\n if (_.isObject(value)) return _.matcher(value);\n return _.property(value);\n };\n _.iteratee = function (value, context) {\n return cb(value, context, Infinity);\n };\n\n // An internal function for creating assigner functions.\n var createAssigner = function (keysFunc, undefinedOnly) {\n return function (obj) {\n var length = arguments.length;\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n };\n\n // An internal function for creating a new object that inherits from another.\n var baseCreate = function (prototype) {\n if (!_.isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n };\n\n var property = function (key) {\n return function (obj) {\n return obj == null ? void 0 : obj[key];\n };\n };\n\n // Helper for collection methods to determine whether a collection\n // should be iterated as an array or as an object\n // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\n var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n var getLength = property('length');\n var isArrayLike = function (collection) {\n var length = getLength(collection);\n return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n };\n\n // Collection Functions\n // --------------------\n\n // The cornerstone, an `each` implementation, aka `forEach`.\n // Handles raw objects in addition to array-likes. Treats all\n // sparse array-likes as if they were dense.\n _.each = _.forEach = function (obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var keys = _.keys(obj);\n for (i = 0, length = keys.length; i < length; i++) {\n iteratee(obj[keys[i]], keys[i], obj);\n }\n }\n return obj;\n };\n\n // Return the results of applying the iteratee to each element.\n _.map = _.collect = function (obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Create a reducing function iterating left or right.\n function createReduce(dir) {\n // Optimized iterator function as using arguments.length\n // in the main function will deoptimize the, see #1991.\n function iterator(obj, iteratee, memo, keys, index, length) {\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = keys ? keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n }\n\n return function (obj, iteratee, memo, context) {\n iteratee = optimizeCb(iteratee, context, 4);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n // Determine the initial value if none is provided.\n if (arguments.length < 3) {\n memo = obj[keys ? keys[index] : index];\n index += dir;\n }\n return iterator(obj, iteratee, memo, keys, index, length);\n };\n }\n\n // **Reduce** builds up a single result from a list of values, aka `inject`,\n // or `foldl`.\n _.reduce = _.foldl = _.inject = createReduce(1);\n\n // The right-associative version of reduce, also known as `foldr`.\n _.reduceRight = _.foldr = createReduce(-1);\n\n // Return the first value which passes a truth test. Aliased as `detect`.\n _.find = _.detect = function (obj, predicate, context) {\n var key;\n if (isArrayLike(obj)) {\n key = _.findIndex(obj, predicate, context);\n } else {\n key = _.findKey(obj, predicate, context);\n }\n if (key !== void 0 && key !== -1) return obj[key];\n };\n\n // Return all the elements that pass a truth test.\n // Aliased as `select`.\n _.filter = _.select = function (obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n _.each(obj, function (value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n };\n\n // Return all the elements for which a truth test fails.\n _.reject = function (obj, predicate, context) {\n return _.filter(obj, _.negate(cb(predicate)), context);\n };\n\n // Determine whether all of the elements match a truth test.\n // Aliased as `all`.\n _.every = _.all = function (obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n };\n\n // Determine if at least one element in the object matches a truth test.\n // Aliased as `any`.\n _.some = _.any = function (obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n };\n\n // Determine if the array or object contains a given item (using `===`).\n // Aliased as `includes` and `include`.\n _.contains = _.includes = _.include = function (obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return _.indexOf(obj, item, fromIndex) >= 0;\n };\n\n // Invoke a method (with arguments) on every item in a collection.\n _.invoke = function (obj, method) {\n var args = slice.call(arguments, 2);\n var isFunc = _.isFunction(method);\n return _.map(obj, function (value) {\n var func = isFunc ? method : value[method];\n return func == null ? func : func.apply(value, args);\n });\n };\n\n // Convenience version of a common use case of `map`: fetching a property.\n _.pluck = function (obj, key) {\n return _.map(obj, _.property(key));\n };\n\n // Convenience version of a common use case of `filter`: selecting only objects\n // containing specific `key:value` pairs.\n _.where = function (obj, attrs) {\n return _.filter(obj, _.matcher(attrs));\n };\n\n // Convenience version of a common use case of `find`: getting the first object\n // containing specific `key:value` pairs.\n _.findWhere = function (obj, attrs) {\n return _.find(obj, _.matcher(attrs));\n };\n\n // Return the maximum element (or element-based computation).\n _.max = function (obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function (value, index, list) {\n computed = iteratee(value, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Return the minimum element (or element-based computation).\n _.min = function (obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function (value, index, list) {\n computed = iteratee(value, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Shuffle a collection, using the modern version of the\n // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher�Yates_shuffle).\n _.shuffle = function (obj) {\n var set = isArrayLike(obj) ? obj : _.values(obj);\n var length = set.length;\n var shuffled = Array(length);\n for (var index = 0, rand; index < length; index++) {\n rand = _.random(0, index);\n if (rand !== index) shuffled[index] = shuffled[rand];\n shuffled[rand] = set[index];\n }\n return shuffled;\n };\n\n // Sample **n** random values from a collection.\n // If **n** is not specified, returns a single random element.\n // The internal `guard` argument allows it to work with `map`.\n _.sample = function (obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n return obj[_.random(obj.length - 1)];\n }\n return _.shuffle(obj).slice(0, Math.max(0, n));\n };\n\n // Sort the object's values by a criterion produced by an iteratee.\n _.sortBy = function (obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n return _.pluck(_.map(obj, function (value, index, list) {\n return {\n value: value,\n index: index,\n criteria: iteratee(value, index, list)\n };\n }).sort(function (left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n };\n\n // An internal function used for aggregate \"group by\" operations.\n var group = function (behavior) {\n return function (obj, iteratee, context) {\n var result = {};\n iteratee = cb(iteratee, context);\n _.each(obj, function (value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n };\n\n // Groups the object's values by a criterion. Pass either a string attribute\n // to group by, or a function that returns the criterion.\n _.groupBy = group(function (result, value, key) {\n if (_.has(result, key)) result[key].push(value); else result[key] = [value];\n });\n\n // Indexes the object's values by a criterion, similar to `groupBy`, but for\n // when you know that your index values will be unique.\n _.indexBy = group(function (result, value, key) {\n result[key] = value;\n });\n\n // Counts instances of an object that group by a certain criterion. Pass\n // either a string attribute to count by, or a function that returns the\n // criterion.\n _.countBy = group(function (result, value, key) {\n if (_.has(result, key)) result[key]++; else result[key] = 1;\n });\n\n // Safely create a real, live array from anything iterable.\n _.toArray = function (obj) {\n if (!obj) return [];\n if (_.isArray(obj)) return slice.call(obj);\n if (isArrayLike(obj)) return _.map(obj, _.identity);\n return _.values(obj);\n };\n\n // Return the number of elements in an object.\n _.size = function (obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : _.keys(obj).length;\n };\n\n // Split a collection into two arrays: one whose elements all satisfy the given\n // predicate, and one whose elements all do not satisfy the predicate.\n _.partition = function (obj, predicate, context) {\n predicate = cb(predicate, context);\n var pass = [], fail = [];\n _.each(obj, function (value, key, obj) {\n (predicate(value, key, obj) ? pass : fail).push(value);\n });\n return [pass, fail];\n };\n\n // Array Functions\n // ---------------\n\n // Get the first element of an array. Passing **n** will return the first N\n // values in the array. Aliased as `head` and `take`. The **guard** check\n // allows it to work with `_.map`.\n _.first = _.head = _.take = function (array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[0];\n return _.initial(array, array.length - n);\n };\n\n // Returns everything but the last entry of the array. Especially useful on\n // the arguments object. Passing **n** will return all the values in\n // the array, excluding the last N.\n _.initial = function (array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n };\n\n // Get the last element of an array. Passing **n** will return the last N\n // values in the array.\n _.last = function (array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[array.length - 1];\n return _.rest(array, Math.max(0, array.length - n));\n };\n\n // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.\n // Especially useful on the arguments object. Passing an **n** will return\n // the rest N values in the array.\n _.rest = _.tail = _.drop = function (array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n };\n\n // Trim out all falsy values from an array.\n _.compact = function (array) {\n return _.filter(array, _.identity);\n };\n\n // Internal implementation of a recursive `flatten` function.\n var flatten = function (input, shallow, strict, startIndex) {\n var output = [], idx = 0;\n for (var i = startIndex || 0, length = getLength(input) ; i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) {\n //flatten current level of array or arguments object\n if (!shallow) value = flatten(value, shallow, strict);\n var j = 0, len = value.length;\n output.length += len;\n while (j < len) {\n output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n };\n\n // Flatten out an array, either recursively (by default), or just one level.\n _.flatten = function (array, shallow) {\n return flatten(array, shallow, false);\n };\n\n // Return a version of the array that does not contain the specified value(s).\n _.without = function (array) {\n return _.difference(array, slice.call(arguments, 1));\n };\n\n // Produce a duplicate-free version of the array. If the array has already\n // been sorted, you have the option of using a faster algorithm.\n // Aliased as `unique`.\n _.uniq = _.unique = function (array, isSorted, iteratee, context) {\n if (!_.isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array) ; i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!_.contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!_.contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n };\n\n // Produce an array that contains the union: each distinct element from all of\n // the passed-in arrays.\n _.union = function () {\n return _.uniq(flatten(arguments, true, true));\n };\n\n // Produce an array that contains every item shared between all the\n // passed-in arrays.\n _.intersection = function (array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array) ; i < length; i++) {\n var item = array[i];\n if (_.contains(result, item)) continue;\n for (var j = 1; j < argsLength; j++) {\n if (!_.contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n };\n\n // Take the difference between one array and a number of other arrays.\n // Only the elements present in just the first array will remain.\n _.difference = function (array) {\n var rest = flatten(arguments, true, true, 1);\n return _.filter(array, function (value) {\n return !_.contains(rest, value);\n });\n };\n\n // Zip together multiple lists into a single array -- elements that share\n // an index go together.\n _.zip = function () {\n return _.unzip(arguments);\n };\n\n // Complement of _.zip. Unzip accepts an array of arrays and groups\n // each array's elements on shared indices\n _.unzip = function (array) {\n var length = array && _.max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = _.pluck(array, index);\n }\n return result;\n };\n\n // Converts lists into objects. Pass either a single array of `[key, value]`\n // pairs, or two parallel arrays of the same length -- one of keys, and one of\n // the corresponding values.\n _.object = function (list, values) {\n var result = {};\n for (var i = 0, length = getLength(list) ; i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n };\n\n // Generator function to create the findIndex and findLastIndex functions\n function createPredicateIndexFinder(dir) {\n return function (array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n }\n\n // Returns the first index on an array-like that passes a predicate test\n _.findIndex = createPredicateIndexFinder(1);\n _.findLastIndex = createPredicateIndexFinder(-1);\n\n // Use a comparator function to figure out the smallest index at which\n // an object should be inserted so as to maintain order. Uses binary search.\n _.sortedIndex = function (array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n };\n\n // Generator function to create the indexOf and lastIndexOf functions\n function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function (array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), _.isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n }\n\n // Return the position of the first occurrence of an item in an array,\n // or -1 if the item is not included in the array.\n // If the array is large and already in sort order, pass `true`\n // for **isSorted** to use binary search.\n _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex);\n _.lastIndexOf = createIndexFinder(-1, _.findLastIndex);\n\n // Generate an integer Array containing an arithmetic progression. A port of\n // the native Python `range()` function. See\n // [the Python documentation](http://docs.python.org/library/functions.html#range).\n _.range = function (start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n step = step || 1;\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n };\n\n // Function (ahem) Functions\n // ------------------\n\n // Determines whether to execute a function as a constructor\n // or a normal function with the provided arguments\n var executeBound = function (sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (_.isObject(result)) return result;\n return self;\n };\n\n // Create a function bound to a given object (assigning `this`, and arguments,\n // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if\n // available.\n _.bind = function (func, context) {\n if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));\n if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');\n var args = slice.call(arguments, 2);\n var bound = function () {\n return executeBound(func, bound, context, this, args.concat(slice.call(arguments)));\n };\n return bound;\n };\n\n // Partially apply a function by creating a version that has had some of its\n // arguments pre-filled, without changing its dynamic `this` context. _ acts\n // as a placeholder, allowing any combination of arguments to be pre-filled.\n _.partial = function (func) {\n var boundArgs = slice.call(arguments, 1);\n var bound = function () {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n };\n\n // Bind a number of an object's methods to that object. Remaining arguments\n // are the method names to be bound. Useful for ensuring that all callbacks\n // defined on an object belong to it.\n _.bindAll = function (obj) {\n var i, length = arguments.length, key;\n if (length <= 1) throw new Error('bindAll must be passed function names');\n for (i = 1; i < length; i++) {\n key = arguments[i];\n obj[key] = _.bind(obj[key], obj);\n }\n return obj;\n };\n\n // Memoize an expensive function by storing its results.\n _.memoize = function (func, hasher) {\n var memoize = function (key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!_.has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n };\n\n // Delays a function for the given number of milliseconds, and then calls\n // it with the arguments supplied.\n _.delay = function (func, wait) {\n var args = slice.call(arguments, 2);\n return setTimeout(function () {\n return func.apply(null, args);\n }, wait);\n };\n\n // Defers a function, scheduling it to run after the current call stack has\n // cleared.\n _.defer = _.partial(_.delay, _, 1);\n\n // Returns a function, that, when invoked, will only be triggered at most once\n // during a given window of time. Normally, the throttled function will run\n // as much as it can, without ever going more than once per `wait` duration;\n // but if you'd like to disable the execution on the leading edge, pass\n // `{leading: false}`. To disable execution on the trailing edge, ditto.\n _.throttle = function (func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n var later = function () {\n previous = options.leading === false ? 0 : _.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n return function () {\n var now = _.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n };\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n _.debounce = function (func, wait, immediate) {\n var timeout, args, context, timestamp, result;\n\n var later = function () {\n var last = _.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n }\n }\n };\n\n return function () {\n context = this;\n args = arguments;\n timestamp = _.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n };\n\n // Returns the first function passed as an argument to the second,\n // allowing you to adjust arguments, run code before and after, and\n // conditionally execute the original function.\n _.wrap = function (func, wrapper) {\n return _.partial(wrapper, func);\n };\n\n // Returns a negated version of the passed-in predicate.\n _.negate = function (predicate) {\n return function () {\n return !predicate.apply(this, arguments);\n };\n };\n\n // Returns a function that is the composition of a list of functions, each\n // consuming the return value of the function that follows.\n _.compose = function () {\n var args = arguments;\n var start = args.length - 1;\n return function () {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n };\n\n // Returns a function that will only be executed on and after the Nth call.\n _.after = function (times, func) {\n return function () {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n };\n\n // Returns a function that will only be executed up to (but not including) the Nth call.\n _.before = function (times, func) {\n var memo;\n return function () {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n };\n\n // Returns a function that will be executed at most one time, no matter how\n // often you call it. Useful for lazy initialization.\n _.once = _.partial(_.before, 2);\n\n // Object Functions\n // ----------------\n\n // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\n var hasEnumBug = !{ toString: null }.propertyIsEnumerable('toString');\n var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n function collectNonEnumProps(obj, keys) {\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) {\n keys.push(prop);\n }\n }\n }\n\n // Retrieve the names of an object's own properties.\n // Delegates to **ECMAScript 5**'s native `Object.keys`\n _.keys = function (obj) {\n if (!_.isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (_.has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve all the property names of an object.\n _.allKeys = function (obj) {\n if (!_.isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve the values of an object's properties.\n _.values = function (obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[keys[i]];\n }\n return values;\n };\n\n // Returns the results of applying the iteratee to each element of the object\n // In contrast to _.map it returns an object\n _.mapObject = function (obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = _.keys(obj),\n length = keys.length,\n results = {},\n currentKey;\n for (var index = 0; index < length; index++) {\n currentKey = keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Convert an object into a list of `[key, value]` pairs.\n _.pairs = function (obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [keys[i], obj[keys[i]]];\n }\n return pairs;\n };\n\n // Invert the keys and values of an object. The values must be serializable.\n _.invert = function (obj) {\n var result = {};\n var keys = _.keys(obj);\n for (var i = 0, length = keys.length; i < length; i++) {\n result[obj[keys[i]]] = keys[i];\n }\n return result;\n };\n\n // Return a sorted list of the function names available on the object.\n // Aliased as `methods`\n _.functions = _.methods = function (obj) {\n var names = [];\n for (var key in obj) {\n if (_.isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n };\n\n // Extend a given object with all the properties in passed-in object(s).\n _.extend = createAssigner(_.allKeys);\n\n // Assigns a given object with all the own properties in the passed-in object(s)\n // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n _.extendOwn = _.assign = createAssigner(_.keys);\n\n // Returns the first key on an object that passes a predicate test\n _.findKey = function (obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = _.keys(obj), key;\n for (var i = 0, length = keys.length; i < length; i++) {\n key = keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n };\n\n // Return a copy of the object only containing the whitelisted properties.\n _.pick = function (object, oiteratee, context) {\n var result = {}, obj = object, iteratee, keys;\n if (obj == null) return result;\n if (_.isFunction(oiteratee)) {\n keys = _.allKeys(obj);\n iteratee = optimizeCb(oiteratee, context);\n } else {\n keys = flatten(arguments, false, false, 1);\n iteratee = function (value, key, obj) { return key in obj; };\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n };\n\n // Return a copy of the object without the blacklisted properties.\n _.omit = function (obj, iteratee, context) {\n if (_.isFunction(iteratee)) {\n iteratee = _.negate(iteratee);\n } else {\n var keys = _.map(flatten(arguments, false, false, 1), String);\n iteratee = function (value, key) {\n return !_.contains(keys, key);\n };\n }\n return _.pick(obj, iteratee, context);\n };\n\n // Fill in a given object with default properties.\n _.defaults = createAssigner(_.allKeys, true);\n\n // Creates an object that inherits from the given prototype object.\n // If additional properties are provided then they will be added to the\n // created object.\n _.create = function (prototype, props) {\n var result = baseCreate(prototype);\n if (props) _.extendOwn(result, props);\n return result;\n };\n\n // Create a (shallow-cloned) duplicate of an object.\n _.clone = function (obj) {\n if (!_.isObject(obj)) return obj;\n return _.isArray(obj) ? obj.slice() : _.extend({}, obj);\n };\n\n // Invokes interceptor with the obj, and then returns obj.\n // The primary purpose of this method is to \"tap into\" a method chain, in\n // order to perform operations on intermediate results within the chain.\n _.tap = function (obj, interceptor) {\n interceptor(obj);\n return obj;\n };\n\n // Returns whether an object has a given set of `key:value` pairs.\n _.isMatch = function (object, attrs) {\n var keys = _.keys(attrs), length = keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n };\n\n\n // Internal recursive comparison function for `isEqual`.\n var eq = function (a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // A strict comparison is necessary because `null == undefined`.\n if (a == null || b == null) return a === b;\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor &&\n _.isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var keys = _.keys(a), key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (_.keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n };\n\n // Perform a deep comparison to check if two objects are equal.\n _.isEqual = function (a, b) {\n return eq(a, b);\n };\n\n // Is a given array, string, or object empty?\n // An \"empty\" object has no enumerable own-properties.\n _.isEmpty = function (obj) {\n if (obj == null) return true;\n if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;\n return _.keys(obj).length === 0;\n };\n\n // Is a given value a DOM element?\n _.isElement = function (obj) {\n return !!(obj && obj.nodeType === 1);\n };\n\n // Is a given value an array?\n // Delegates to ECMA5's native Array.isArray\n _.isArray = nativeIsArray || function (obj) {\n return toString.call(obj) === '[object Array]';\n };\n\n // Is a given variable an object?\n _.isObject = function (obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n };\n\n // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError.\n _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function (name) {\n _['is' + name] = function (obj) {\n return toString.call(obj) === '[object ' + name + ']';\n };\n });\n\n // Define a fallback version of the method in browsers (ahem, IE < 9), where\n // there isn't any inspectable \"Arguments\" type.\n if (!_.isArguments(arguments)) {\n _.isArguments = function (obj) {\n return _.has(obj, 'callee');\n };\n }\n\n // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,\n // IE 11 (#1621), and in Safari 8 (#1929).\n if (typeof /./ != 'function' && typeof Int8Array != 'object') {\n _.isFunction = function (obj) {\n return typeof obj == 'function' || false;\n };\n }\n\n // Is a given object a finite number?\n _.isFinite = function (obj) {\n return isFinite(obj) && !isNaN(parseFloat(obj));\n };\n\n // Is the given value `NaN`? (NaN is the only number which does not equal itself).\n _.isNaN = function (obj) {\n return _.isNumber(obj) && obj !== +obj;\n };\n\n // Is a given value a boolean?\n _.isBoolean = function (obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n };\n\n // Is a given value equal to null?\n _.isNull = function (obj) {\n return obj === null;\n };\n\n // Is a given variable undefined?\n _.isUndefined = function (obj) {\n return obj === void 0;\n };\n\n // Shortcut function for checking if an object has a given property directly\n // on itself (in other words, not on a prototype).\n _.has = function (obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n };\n\n // Utility Functions\n // -----------------\n\n // Run Underscore.js in *noConflict* mode, returning the `_` variable to its\n // previous owner. Returns a reference to the Underscore object.\n _.noConflict = function () {\n root._ = previousUnderscore;\n return this;\n };\n\n // Keep the identity function around for default iteratees.\n _.identity = function (value) {\n return value;\n };\n\n // Predicate-generating functions. Often useful outside of Underscore.\n _.constant = function (value) {\n return function () {\n return value;\n };\n };\n\n _.noop = function () { };\n\n _.property = property;\n\n // Generates a function for a given object that returns a given property.\n _.propertyOf = function (obj) {\n return obj == null ? function () { } : function (key) {\n return obj[key];\n };\n };\n\n // Returns a predicate for checking whether an object has a given set of\n // `key:value` pairs.\n _.matcher = _.matches = function (attrs) {\n attrs = _.extendOwn({}, attrs);\n return function (obj) {\n return _.isMatch(obj, attrs);\n };\n };\n\n // Run a function **n** times.\n _.times = function (n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n };\n\n // Return a random integer between min and max (inclusive).\n _.random = function (min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n };\n\n // A (possibly faster) way to get the current timestamp as an integer.\n _.now = Date.now || function () {\n return new Date().getTime();\n };\n\n // List of HTML entities for escaping.\n var escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n };\n var unescapeMap = _.invert(escapeMap);\n\n // Functions for escaping and unescaping strings to/from HTML interpolation.\n var createEscaper = function (map) {\n var escaper = function (match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped\n var source = '(?:' + _.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function (string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n };\n _.escape = createEscaper(escapeMap);\n _.unescape = createEscaper(unescapeMap);\n\n // If the value of the named `property` is a function then invoke it with the\n // `object` as context; otherwise, return it.\n _.result = function (object, property, fallback) {\n var value = object == null ? void 0 : object[property];\n if (value === void 0) {\n value = fallback;\n }\n return _.isFunction(value) ? value.call(object) : value;\n };\n\n // Generate a unique integer id (unique within the entire client session).\n // Useful for temporary DOM ids.\n var idCounter = 0;\n _.uniqueId = function (prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n };\n\n // By default, Underscore uses ERB-style template delimiters, change the\n // following template settings to use alternative delimiters.\n _.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n };\n\n // When customizing `templateSettings`, if you don't want to define an\n // interpolation, evaluation or escaping regex, we need one that is\n // guaranteed not to match.\n var noMatch = /(.)^/;\n\n // Certain characters need to be escaped so that they can be put into a\n // string literal.\n var escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n var escaper = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\n var escapeChar = function (match) {\n return '\\\\' + escapes[match];\n };\n\n // JavaScript micro-templating, similar to John Resig's implementation.\n // Underscore templating handles arbitrary delimiters, preserves whitespace,\n // and correctly escapes quotes within interpolated code.\n // NB: `oldSettings` only exists for backwards compatibility.\n _.template = function (text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = _.defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function (match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escaper, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offest.\n return match;\n });\n source += \"';\\n\";\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n try {\n var render = new Function(settings.variable || 'obj', '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function (data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n var argument = settings.variable || 'obj';\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n };\n\n // Add a \"chain\" function. Start chaining a wrapped Underscore object.\n _.chain = function (obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n };\n\n // OOP\n // ---------------\n // If Underscore is called as a function, it returns a wrapped object that\n // can be used OO-style. This wrapper holds altered versions of all the\n // underscore functions. Wrapped objects may be chained.\n\n // Helper function to continue chaining intermediate results.\n var result = function (instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n };\n\n // Add your own custom functions to the Underscore object.\n _.mixin = function (obj) {\n _.each(_.functions(obj), function (name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function () {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return result(this, func.apply(_, args));\n };\n });\n };\n\n // Add all of the Underscore functions to the wrapper object.\n _.mixin(_);\n\n // Add all mutator Array functions to the wrapper.\n _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function (name) {\n var method = ArrayProto[name];\n _.prototype[name] = function () {\n var obj = this._wrapped;\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];\n return result(this, obj);\n };\n });\n\n // Add all accessor Array functions to the wrapper.\n _.each(['concat', 'join', 'slice'], function (name) {\n var method = ArrayProto[name];\n _.prototype[name] = function () {\n return result(this, method.apply(this._wrapped, arguments));\n };\n });\n\n // Extracts the result from a wrapped and chained object.\n _.prototype.value = function () {\n return this._wrapped;\n };\n\n // Provide unwrapping proxy for some methods used in engine operations\n // such as arithmetic and JSON stringification.\n _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n _.prototype.toString = function () {\n return '' + this._wrapped;\n };\n\n // AMD registration happens at the end for compatibility with AMD loaders\n // that may not enforce next-turn semantics on modules. Even though general\n // practice for AMD registration is to be anonymous, underscore registers\n // as a named module because, like jQuery, it is a base library that is\n // popular enough to be bundled in a third party lib, but not be part of\n // an AMD load request. Those cases could generate an error when an\n // anonymous define() is called outside of a loader request.\n if (typeof define === 'function' && define.amd) {\n define('underscore', [], function () {\n return _;\n });\n }\n}.call(this));\n","/*!\n * Packery PACKAGED v2.1.1\n * Gapless, draggable grid layouts\n *\n * Licensed GPLv3 for open source use\n * or Packery Commercial License for commercial use\n *\n * http://packery.metafizzy.co\n * Copyright 2016 Metafizzy\n */\n\n!function (t, e) { \"use strict\"; \"function\" == typeof define && define.amd ? define(\"jquery-bridget/jquery-bridget\", [\"jquery\"], function (i) { e(t, i) }) : \"object\" == typeof module && module.exports ? module.exports = e(t, require(\"jquery\")) : t.jQueryBridget = e(t, t.jQuery) }(window, function (t, e) { \"use strict\"; function i(i, s, a) { function h(t, e, n) { var o, s = \"$().\" + i + '(\"' + e + '\")'; return t.each(function (t, h) { var u = a.data(h, i); if (!u) return void r(i + \" not initialized. Cannot call methods, i.e. \" + s); var c = u[e]; if (!c || \"_\" == e.charAt(0)) return void r(s + \" is not a valid method\"); var d = c.apply(u, n); o = void 0 === o ? d : o }), void 0 !== o ? o : t } function u(t, e) { t.each(function (t, n) { var o = a.data(n, i); o ? (o.option(e), o._init()) : (o = new s(n, e), a.data(n, i, o)) }) } a = a || e || t.jQuery, a && (s.prototype.option || (s.prototype.option = function (t) { a.isPlainObject(t) && (this.options = a.extend(!0, this.options, t)) }), a.fn[i] = function (t) { if (\"string\" == typeof t) { var e = o.call(arguments, 1); return h(this, t, e) } return u(this, t), this }, n(a)) } function n(t) { !t || t && t.bridget || (t.bridget = i) } var o = Array.prototype.slice, s = t.console, r = \"undefined\" == typeof s ? function () { } : function (t) { s.error(t) }; return n(e || t.jQuery), i }), function (t, e) { \"use strict\"; \"function\" == typeof define && define.amd ? define(\"get-size/get-size\", [], function () { return e() }) : \"object\" == typeof module && module.exports ? module.exports = e() : t.getSize = e() }(window, function () { \"use strict\"; function t(t) { var e = parseFloat(t), i = -1 == t.indexOf(\"%\") && !isNaN(e); return i && e } function e() { } function i() { for (var t = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0 }, e = 0; u > e; e++) { var i = h[e]; t[i] = 0 } return t } function n(t) { var e = getComputedStyle(t); return e || a(\"Style returned \" + e + \". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1\"), e } function o() { if (!c) { c = !0; var e = document.createElement(\"div\"); e.style.width = \"200px\", e.style.padding = \"1px 2px 3px 4px\", e.style.borderStyle = \"solid\", e.style.borderWidth = \"1px 2px 3px 4px\", e.style.boxSizing = \"border-box\"; var i = document.body || document.documentElement; i.appendChild(e); var o = n(e); s.isBoxSizeOuter = r = 200 == t(o.width), i.removeChild(e) } } function s(e) { if (o(), \"string\" == typeof e && (e = document.querySelector(e)), e && \"object\" == typeof e && e.nodeType) { var s = n(e); if (\"none\" == s.display) return i(); var a = {}; a.width = e.offsetWidth, a.height = e.offsetHeight; for (var c = a.isBorderBox = \"border-box\" == s.boxSizing, d = 0; u > d; d++) { var f = h[d], l = s[f], p = parseFloat(l); a[f] = isNaN(p) ? 0 : p } var g = a.paddingLeft + a.paddingRight, m = a.paddingTop + a.paddingBottom, y = a.marginLeft + a.marginRight, v = a.marginTop + a.marginBottom, _ = a.borderLeftWidth + a.borderRightWidth, x = a.borderTopWidth + a.borderBottomWidth, b = c && r, E = t(s.width); E !== !1 && (a.width = E + (b ? 0 : g + _)); var T = t(s.height); return T !== !1 && (a.height = T + (b ? 0 : m + x)), a.innerWidth = a.width - (g + _), a.innerHeight = a.height - (m + x), a.outerWidth = a.width + y, a.outerHeight = a.height + v, a } } var r, a = \"undefined\" == typeof console ? e : function (t) { console.error(t) }, h = [\"paddingLeft\", \"paddingRight\", \"paddingTop\", \"paddingBottom\", \"marginLeft\", \"marginRight\", \"marginTop\", \"marginBottom\", \"borderLeftWidth\", \"borderRightWidth\", \"borderTopWidth\", \"borderBottomWidth\"], u = h.length, c = !1; return s }), function (t, e) { \"function\" == typeof define && define.amd ? define(\"ev-emitter/ev-emitter\", e) : \"object\" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e() }(this, function () { function t() { } var e = t.prototype; return e.on = function (t, e) { if (t && e) { var i = this._events = this._events || {}, n = i[t] = i[t] || []; return -1 == n.indexOf(e) && n.push(e), this } }, e.once = function (t, e) { if (t && e) { this.on(t, e); var i = this._onceEvents = this._onceEvents || {}, n = i[t] = i[t] || {}; return n[e] = !0, this } }, e.off = function (t, e) { var i = this._events && this._events[t]; if (i && i.length) { var n = i.indexOf(e); return -1 != n && i.splice(n, 1), this } }, e.emitEvent = function (t, e) { var i = this._events && this._events[t]; if (i && i.length) { var n = 0, o = i[n]; e = e || []; for (var s = this._onceEvents && this._onceEvents[t]; o;) { var r = s && s[o]; r && (this.off(t, o), delete s[o]), o.apply(this, e), n += r ? 0 : 1, o = i[n] } return this } }, t }), function (t, e) { \"use strict\"; \"function\" == typeof define && define.amd ? define(\"desandro-matches-selector/matches-selector\", e) : \"object\" == typeof module && module.exports ? module.exports = e() : t.matchesSelector = e() }(window, function () { \"use strict\"; var t = function () { var t = Element.prototype; if (t.matches) return \"matches\"; if (t.matchesSelector) return \"matchesSelector\"; for (var e = [\"webkit\", \"moz\", \"ms\", \"o\"], i = 0; i < e.length; i++) { var n = e[i], o = n + \"MatchesSelector\"; if (t[o]) return o } }(); return function (e, i) { return e[t](i) } }), function (t, e) { \"function\" == typeof define && define.amd ? define(\"fizzy-ui-utils/utils\", [\"desandro-matches-selector/matches-selector\"], function (i) { return e(t, i) }) : \"object\" == typeof module && module.exports ? module.exports = e(t, require(\"desandro-matches-selector\")) : t.fizzyUIUtils = e(t, t.matchesSelector) }(window, function (t, e) { var i = {}; i.extend = function (t, e) { for (var i in e) t[i] = e[i]; return t }, i.modulo = function (t, e) { return (t % e + e) % e }, i.makeArray = function (t) { var e = []; if (Array.isArray(t)) e = t; else if (t && \"number\" == typeof t.length) for (var i = 0; i < t.length; i++)e.push(t[i]); else e.push(t); return e }, i.removeFrom = function (t, e) { var i = t.indexOf(e); -1 != i && t.splice(i, 1) }, i.getParent = function (t, i) { for (; t != document.body;)if (t = t.parentNode, e(t, i)) return t }, i.getQueryElement = function (t) { return \"string\" == typeof t ? document.querySelector(t) : t }, i.handleEvent = function (t) { var e = \"on\" + t.type; this[e] && this[e](t) }, i.filterFindElements = function (t, n) { t = i.makeArray(t); var o = []; return t.forEach(function (t) { if (t instanceof HTMLElement) { if (!n) return void o.push(t); e(t, n) && o.push(t); for (var i = t.querySelectorAll(n), s = 0; s < i.length; s++)o.push(i[s]) } }), o }, i.debounceMethod = function (t, e, i) { var n = t.prototype[e], o = e + \"Timeout\"; t.prototype[e] = function () { var t = this[o]; t && clearTimeout(t); var e = arguments, s = this; this[o] = setTimeout(function () { n.apply(s, e), delete s[o] }, i || 100) } }, i.docReady = function (t) { \"complete\" == document.readyState ? t() : document.addEventListener(\"DOMContentLoaded\", t) }, i.toDashed = function (t) { return t.replace(/(.)([A-Z])/g, function (t, e, i) { return e + \"-\" + i }).toLowerCase() }; var n = t.console; return i.htmlInit = function (e, o) { i.docReady(function () { var s = i.toDashed(o), r = \"data-\" + s, a = document.querySelectorAll(\"[\" + r + \"]\"), h = document.querySelectorAll(\".js-\" + s), u = i.makeArray(a).concat(i.makeArray(h)), c = r + \"-options\", d = t.jQuery; u.forEach(function (t) { var i, s = t.getAttribute(r) || t.getAttribute(c); try { i = s && JSON.parse(s) } catch (a) { return void (n && n.error(\"Error parsing \" + r + \" on \" + t.className + \": \" + a)) } var h = new e(t, i); d && d.data(t, o, h) }) }) }, i }), function (t, e) { \"function\" == typeof define && define.amd ? define(\"outlayer/item\", [\"ev-emitter/ev-emitter\", \"get-size/get-size\"], e) : \"object\" == typeof module && module.exports ? module.exports = e(require(\"ev-emitter\"), require(\"get-size\")) : (t.Outlayer = {}, t.Outlayer.Item = e(t.EvEmitter, t.getSize)) }(window, function (t, e) { \"use strict\"; function i(t) { for (var e in t) return !1; return e = null, !0 } function n(t, e) { t && (this.element = t, this.layout = e, this.position = { x: 0, y: 0 }, this._create()) } function o(t) { return t.replace(/([A-Z])/g, function (t) { return \"-\" + t.toLowerCase() }) } var s = document.documentElement.style, r = \"string\" == typeof s.transition ? \"transition\" : \"WebkitTransition\", a = \"string\" == typeof s.transform ? \"transform\" : \"WebkitTransform\", h = { WebkitTransition: \"webkitTransitionEnd\", transition: \"transitionend\" }[r], u = { transform: a, transition: r, transitionDuration: r + \"Duration\", transitionProperty: r + \"Property\", transitionDelay: r + \"Delay\" }, c = n.prototype = Object.create(t.prototype); c.constructor = n, c._create = function () { this._transn = { ingProperties: {}, clean: {}, onEnd: {} }, this.css({ position: \"absolute\" }) }, c.handleEvent = function (t) { var e = \"on\" + t.type; this[e] && this[e](t) }, c.getSize = function () { this.size = e(this.element) }, c.css = function (t) { var e = this.element.style; for (var i in t) { var n = u[i] || i; e[n] = t[i] } }, c.getPosition = function () { var t = getComputedStyle(this.element), e = this.layout._getOption(\"originLeft\"), i = this.layout._getOption(\"originTop\"), n = t[e ? \"left\" : \"right\"], o = t[i ? \"top\" : \"bottom\"], s = this.layout.size, r = -1 != n.indexOf(\"%\") ? parseFloat(n) / 100 * s.width : parseInt(n, 10), a = -1 != o.indexOf(\"%\") ? parseFloat(o) / 100 * s.height : parseInt(o, 10); r = isNaN(r) ? 0 : r, a = isNaN(a) ? 0 : a, r -= e ? s.paddingLeft : s.paddingRight, a -= i ? s.paddingTop : s.paddingBottom, this.position.x = r, this.position.y = a }, c.layoutPosition = function () { var t = this.layout.size, e = {}, i = this.layout._getOption(\"originLeft\"), n = this.layout._getOption(\"originTop\"), o = i ? \"paddingLeft\" : \"paddingRight\", s = i ? \"left\" : \"right\", r = i ? \"right\" : \"left\", a = this.position.x + t[o]; e[s] = this.getXValue(a), e[r] = \"\"; var h = n ? \"paddingTop\" : \"paddingBottom\", u = n ? \"top\" : \"bottom\", c = n ? \"bottom\" : \"top\", d = this.position.y + t[h]; e[u] = this.getYValue(d), e[c] = \"\", this.css(e), this.emitEvent(\"layout\", [this]) }, c.getXValue = function (t) { var e = this.layout._getOption(\"horizontal\"); return this.layout.options.percentPosition && !e ? t / this.layout.size.width * 100 + \"%\" : t + \"px\" }, c.getYValue = function (t) { var e = this.layout._getOption(\"horizontal\"); return this.layout.options.percentPosition && e ? t / this.layout.size.height * 100 + \"%\" : t + \"px\" }, c._transitionTo = function (t, e) { this.getPosition(); var i = this.position.x, n = this.position.y, o = parseInt(t, 10), s = parseInt(e, 10), r = o === this.position.x && s === this.position.y; if (this.setPosition(t, e), r && !this.isTransitioning) return void this.layoutPosition(); var a = t - i, h = e - n, u = {}; u.transform = this.getTranslate(a, h), this.transition({ to: u, onTransitionEnd: { transform: this.layoutPosition }, isCleaning: !0 }) }, c.getTranslate = function (t, e) { var i = this.layout._getOption(\"originLeft\"), n = this.layout._getOption(\"originTop\"); return t = i ? t : -t, e = n ? e : -e, \"translate3d(\" + t + \"px, \" + e + \"px, 0)\" }, c.goTo = function (t, e) { this.setPosition(t, e), this.layoutPosition() }, c.moveTo = c._transitionTo, c.setPosition = function (t, e) { this.position.x = parseInt(t, 10), this.position.y = parseInt(e, 10) }, c._nonTransition = function (t) { this.css(t.to), t.isCleaning && this._removeStyles(t.to); for (var e in t.onTransitionEnd) t.onTransitionEnd[e].call(this) }, c.transition = function (t) { if (!parseFloat(this.layout.options.transitionDuration)) return void this._nonTransition(t); var e = this._transn; for (var i in t.onTransitionEnd) e.onEnd[i] = t.onTransitionEnd[i]; for (i in t.to) e.ingProperties[i] = !0, t.isCleaning && (e.clean[i] = !0); if (t.from) { this.css(t.from); var n = this.element.offsetHeight; n = null } this.enableTransition(t.to), this.css(t.to), this.isTransitioning = !0 }; var d = \"opacity,\" + o(a); c.enableTransition = function () { if (!this.isTransitioning) { var t = this.layout.options.transitionDuration; t = \"number\" == typeof t ? t + \"ms\" : t, this.css({ transitionProperty: d, transitionDuration: t, transitionDelay: this.staggerDelay || 0 }), this.element.addEventListener(h, this, !1) } }, c.onwebkitTransitionEnd = function (t) { this.ontransitionend(t) }, c.onotransitionend = function (t) { this.ontransitionend(t) }; var f = { \"-webkit-transform\": \"transform\" }; c.ontransitionend = function (t) { if (t.target === this.element) { var e = this._transn, n = f[t.propertyName] || t.propertyName; if (delete e.ingProperties[n], i(e.ingProperties) && this.disableTransition(), n in e.clean && (this.element.style[t.propertyName] = \"\", delete e.clean[n]), n in e.onEnd) { var o = e.onEnd[n]; o.call(this), delete e.onEnd[n] } this.emitEvent(\"transitionEnd\", [this]) } }, c.disableTransition = function () { this.removeTransitionStyles(), this.element.removeEventListener(h, this, !1), this.isTransitioning = !1 }, c._removeStyles = function (t) { var e = {}; for (var i in t) e[i] = \"\"; this.css(e) }; var l = { transitionProperty: \"\", transitionDuration: \"\", transitionDelay: \"\" }; return c.removeTransitionStyles = function () { this.css(l) }, c.stagger = function (t) { t = isNaN(t) ? 0 : t, this.staggerDelay = t + \"ms\" }, c.removeElem = function () { this.element.parentNode.removeChild(this.element), this.css({ display: \"\" }), this.emitEvent(\"remove\", [this]) }, c.remove = function () { return r && parseFloat(this.layout.options.transitionDuration) ? (this.once(\"transitionEnd\", function () { this.removeElem() }), void this.hide()) : void this.removeElem() }, c.reveal = function () { delete this.isHidden, this.css({ display: \"\" }); var t = this.layout.options, e = {}, i = this.getHideRevealTransitionEndProperty(\"visibleStyle\"); e[i] = this.onRevealTransitionEnd, this.transition({ from: t.hiddenStyle, to: t.visibleStyle, isCleaning: !0, onTransitionEnd: e }) }, c.onRevealTransitionEnd = function () { this.isHidden || this.emitEvent(\"reveal\") }, c.getHideRevealTransitionEndProperty = function (t) { var e = this.layout.options[t]; if (e.opacity) return \"opacity\"; for (var i in e) return i }, c.hide = function () { this.isHidden = !0, this.css({ display: \"\" }); var t = this.layout.options, e = {}, i = this.getHideRevealTransitionEndProperty(\"hiddenStyle\"); e[i] = this.onHideTransitionEnd, this.transition({ from: t.visibleStyle, to: t.hiddenStyle, isCleaning: !0, onTransitionEnd: e }) }, c.onHideTransitionEnd = function () { this.isHidden && (this.css({ display: \"none\" }), this.emitEvent(\"hide\")) }, c.destroy = function () { this.css({ position: \"\", left: \"\", right: \"\", top: \"\", bottom: \"\", transition: \"\", transform: \"\" }) }, n }), function (t, e) { \"use strict\"; \"function\" == typeof define && define.amd ? define(\"outlayer/outlayer\", [\"ev-emitter/ev-emitter\", \"get-size/get-size\", \"fizzy-ui-utils/utils\", \"./item\"], function (i, n, o, s) { return e(t, i, n, o, s) }) : \"object\" == typeof module && module.exports ? module.exports = e(t, require(\"ev-emitter\"), require(\"get-size\"), require(\"fizzy-ui-utils\"), require(\"./item\")) : t.Outlayer = e(t, t.EvEmitter, t.getSize, t.fizzyUIUtils, t.Outlayer.Item) }(window, function (t, e, i, n, o) { \"use strict\"; function s(t, e) { var i = n.getQueryElement(t); if (!i) return void (h && h.error(\"Bad element for \" + this.constructor.namespace + \": \" + (i || t))); this.element = i, u && (this.$element = u(this.element)), this.options = n.extend({}, this.constructor.defaults), this.option(e); var o = ++d; this.element.outlayerGUID = o, f[o] = this, this._create(); var s = this._getOption(\"initLayout\"); s && this.layout() } function r(t) { function e() { t.apply(this, arguments) } return e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e } function a(t) { if (\"number\" == typeof t) return t; var e = t.match(/(^\\d*\\.?\\d*)(\\w*)/), i = e && e[1], n = e && e[2]; if (!i.length) return 0; i = parseFloat(i); var o = p[n] || 1; return i * o } var h = t.console, u = t.jQuery, c = function () { }, d = 0, f = {}; s.namespace = \"outlayer\", s.Item = o, s.defaults = { containerStyle: { position: \"relative\" }, initLayout: !0, originLeft: !0, originTop: !0, resize: !0, resizeContainer: !0, transitionDuration: \"0.4s\", hiddenStyle: { opacity: 0, transform: \"scale(0.001)\" }, visibleStyle: { opacity: 1, transform: \"scale(1)\" } }; var l = s.prototype; n.extend(l, e.prototype), l.option = function (t) { n.extend(this.options, t) }, l._getOption = function (t) { var e = this.constructor.compatOptions[t]; return e && void 0 !== this.options[e] ? this.options[e] : this.options[t] }, s.compatOptions = { initLayout: \"isInitLayout\", horizontal: \"isHorizontal\", layoutInstant: \"isLayoutInstant\", originLeft: \"isOriginLeft\", originTop: \"isOriginTop\", resize: \"isResizeBound\", resizeContainer: \"isResizingContainer\" }, l._create = function () { this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), n.extend(this.element.style, this.options.containerStyle); var t = this._getOption(\"resize\"); t && this.bindResize() }, l.reloadItems = function () { this.items = this._itemize(this.element.children) }, l._itemize = function (t) { for (var e = this._filterFindItemElements(t), i = this.constructor.Item, n = [], o = 0; o < e.length; o++) { var s = e[o], r = new i(s, this); n.push(r) } return n }, l._filterFindItemElements = function (t) { return n.filterFindElements(t, this.options.itemSelector) }, l.getItemElements = function () { return this.items.map(function (t) { return t.element }) }, l.layout = function () { this._resetLayout(), this._manageStamps(); var t = this._getOption(\"layoutInstant\"), e = void 0 !== t ? t : !this._isLayoutInited; this.layoutItems(this.items, e), this._isLayoutInited = !0 }, l._init = l.layout, l._resetLayout = function () { this.getSize() }, l.getSize = function () { this.size = i(this.element) }, l._getMeasurement = function (t, e) { var n, o = this.options[t]; o ? (\"string\" == typeof o ? n = this.element.querySelector(o) : o instanceof HTMLElement && (n = o), this[t] = n ? i(n)[e] : o) : this[t] = 0 }, l.layoutItems = function (t, e) { t = this._getItemsForLayout(t), this._layoutItems(t, e), this._postLayout() }, l._getItemsForLayout = function (t) { return t.filter(function (t) { return !t.isIgnored }) }, l._layoutItems = function (t, e) { if (this._emitCompleteOnItems(\"layout\", t), t && t.length) { var i = []; t.forEach(function (t) { var n = this._getItemLayoutPosition(t); n.item = t, n.isInstant = e || t.isLayoutInstant, i.push(n) }, this), this._processLayoutQueue(i) } }, l._getItemLayoutPosition = function () { return { x: 0, y: 0 } }, l._processLayoutQueue = function (t) { this.updateStagger(), t.forEach(function (t, e) { this._positionItem(t.item, t.x, t.y, t.isInstant, e) }, this) }, l.updateStagger = function () { var t = this.options.stagger; return null === t || void 0 === t ? void (this.stagger = 0) : (this.stagger = a(t), this.stagger) }, l._positionItem = function (t, e, i, n, o) { n ? t.goTo(e, i) : (t.stagger(o * this.stagger), t.moveTo(e, i)) }, l._postLayout = function () { this.resizeContainer() }, l.resizeContainer = function () { var t = this._getOption(\"resizeContainer\"); if (t) { var e = this._getContainerSize(); e && (this._setContainerMeasure(e.width, !0), this._setContainerMeasure(e.height, !1)) } }, l._getContainerSize = c, l._setContainerMeasure = function (t, e) { if (void 0 !== t) { var i = this.size; i.isBorderBox && (t += e ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i.borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i.borderBottomWidth), t = Math.max(t, 0), this.element.style[e ? \"width\" : \"height\"] = t + \"px\" } }, l._emitCompleteOnItems = function (t, e) { function i() { o.dispatchEvent(t + \"Complete\", null, [e]) } function n() { r++ , r == s && i() } var o = this, s = e.length; if (!e || !s) return void i(); var r = 0; e.forEach(function (e) { e.once(t, n) }) }, l.dispatchEvent = function (t, e, i) { var n = e ? [e].concat(i) : i; if (this.emitEvent(t, n), u) if (this.$element = this.$element || u(this.element), e) { var o = u.Event(e); o.type = t, this.$element.trigger(o, i) } else this.$element.trigger(t, i) }, l.ignore = function (t) { var e = this.getItem(t); e && (e.isIgnored = !0) }, l.unignore = function (t) { var e = this.getItem(t); e && delete e.isIgnored }, l.stamp = function (t) { t = this._find(t), t && (this.stamps = this.stamps.concat(t), t.forEach(this.ignore, this)) }, l.unstamp = function (t) { t = this._find(t), t && t.forEach(function (t) { n.removeFrom(this.stamps, t), this.unignore(t) }, this) }, l._find = function (t) { return t ? (\"string\" == typeof t && (t = this.element.querySelectorAll(t)), t = n.makeArray(t)) : void 0 }, l._manageStamps = function () { this.stamps && this.stamps.length && (this._getBoundingRect(), this.stamps.forEach(this._manageStamp, this)) }, l._getBoundingRect = function () { var t = this.element.getBoundingClientRect(), e = this.size; this._boundingRect = { left: t.left + e.paddingLeft + e.borderLeftWidth, top: t.top + e.paddingTop + e.borderTopWidth, right: t.right - (e.paddingRight + e.borderRightWidth), bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth) } }, l._manageStamp = c, l._getElementOffset = function (t) { var e = t.getBoundingClientRect(), n = this._boundingRect, o = i(t), s = { left: e.left - n.left - o.marginLeft, top: e.top - n.top - o.marginTop, right: n.right - e.right - o.marginRight, bottom: n.bottom - e.bottom - o.marginBottom }; return s }, l.handleEvent = n.handleEvent, l.bindResize = function () { t.addEventListener(\"resize\", this), this.isResizeBound = !0 }, l.unbindResize = function () { t.removeEventListener(\"resize\", this), this.isResizeBound = !1 }, l.onresize = function () { this.resize() }, n.debounceMethod(s, \"onresize\", 100), l.resize = function () { this.isResizeBound && this.needsResizeLayout() && this.layout() }, l.needsResizeLayout = function () { var t = i(this.element), e = this.size && t; return e && t.innerWidth !== this.size.innerWidth }, l.addItems = function (t) { var e = this._itemize(t); return e.length && (this.items = this.items.concat(e)), e }, l.appended = function (t) { var e = this.addItems(t); e.length && (this.layoutItems(e, !0), this.reveal(e)) }, l.prepended = function (t) { var e = this._itemize(t); if (e.length) { var i = this.items.slice(0); this.items = e.concat(i), this._resetLayout(), this._manageStamps(), this.layoutItems(e, !0), this.reveal(e), this.layoutItems(i) } }, l.reveal = function (t) { if (this._emitCompleteOnItems(\"reveal\", t), t && t.length) { var e = this.updateStagger(); t.forEach(function (t, i) { t.stagger(i * e), t.reveal() }) } }, l.hide = function (t) { if (this._emitCompleteOnItems(\"hide\", t), t && t.length) { var e = this.updateStagger(); t.forEach(function (t, i) { t.stagger(i * e), t.hide() }) } }, l.revealItemElements = function (t) { var e = this.getItems(t); this.reveal(e) }, l.hideItemElements = function (t) { var e = this.getItems(t); this.hide(e) }, l.getItem = function (t) { for (var e = 0; e < this.items.length; e++) { var i = this.items[e]; if (i.element == t) return i } }, l.getItems = function (t) { t = n.makeArray(t); var e = []; return t.forEach(function (t) { var i = this.getItem(t); i && e.push(i) }, this), e }, l.remove = function (t) { var e = this.getItems(t); this._emitCompleteOnItems(\"remove\", e), e && e.length && e.forEach(function (t) { t.remove(), n.removeFrom(this.items, t) }, this) }, l.destroy = function () { var t = this.element.style; t.height = \"\", t.position = \"\", t.width = \"\", this.items.forEach(function (t) { t.destroy() }), this.unbindResize(); var e = this.element.outlayerGUID; delete f[e], delete this.element.outlayerGUID, u && u.removeData(this.element, this.constructor.namespace) }, s.data = function (t) { t = n.getQueryElement(t); var e = t && t.outlayerGUID; return e && f[e] }, s.create = function (t, e) { var i = r(s); return i.defaults = n.extend({}, s.defaults), n.extend(i.defaults, e), i.compatOptions = n.extend({}, s.compatOptions), i.namespace = t, i.data = s.data, i.Item = r(o), n.htmlInit(i, t), u && u.bridget && u.bridget(t, i), i }; var p = { ms: 1, s: 1e3 }; return s.Item = o, s }), function (t, e) { \"function\" == typeof define && define.amd ? define(\"packery/js/rect\", e) : \"object\" == typeof module && module.exports ? module.exports = e() : (t.Packery = t.Packery || {}, t.Packery.Rect = e()) }(window, function () { \"use strict\"; function t(e) { for (var i in t.defaults) this[i] = t.defaults[i]; for (i in e) this[i] = e[i] } t.defaults = { x: 0, y: 0, width: 0, height: 0 }; var e = t.prototype; return e.contains = function (t) { var e = t.width || 0, i = t.height || 0; return this.x <= t.x && this.y <= t.y && this.x + this.width >= t.x + e && this.y + this.height >= t.y + i }, e.overlaps = function (t) { var e = this.x + this.width, i = this.y + this.height, n = t.x + t.width, o = t.y + t.height; return this.x < n && e > t.x && this.y < o && i > t.y }, e.getMaximalFreeRects = function (e) { if (!this.overlaps(e)) return !1; var i, n = [], o = this.x + this.width, s = this.y + this.height, r = e.x + e.width, a = e.y + e.height; return this.y < e.y && (i = new t({ x: this.x, y: this.y, width: this.width, height: e.y - this.y }), n.push(i)), o > r && (i = new t({ x: r, y: this.y, width: o - r, height: this.height }), n.push(i)), s > a && (i = new t({ x: this.x, y: a, width: this.width, height: s - a }), n.push(i)), this.x < e.x && (i = new t({ x: this.x, y: this.y, width: e.x - this.x, height: this.height }), n.push(i)), n }, e.canFit = function (t) { return this.width >= t.width && this.height >= t.height }, t }), function (t, e) { if (\"function\" == typeof define && define.amd) define(\"packery/js/packer\", [\"./rect\"], e); else if (\"object\" == typeof module && module.exports) module.exports = e(require(\"./rect\")); else { var i = t.Packery = t.Packery || {}; i.Packer = e(i.Rect) } }(window, function (t) { \"use strict\"; function e(t, e, i) { this.width = t || 0, this.height = e || 0, this.sortDirection = i || \"downwardLeftToRight\", this.reset() } var i = e.prototype; i.reset = function () { this.spaces = []; var e = new t({ x: 0, y: 0, width: this.width, height: this.height }); this.spaces.push(e), this.sorter = n[this.sortDirection] || n.downwardLeftToRight }, i.pack = function (t) { for (var e = 0; e < this.spaces.length; e++) { var i = this.spaces[e]; if (i.canFit(t)) { this.placeInSpace(t, i); break } } }, i.columnPack = function (t) { for (var e = 0; e < this.spaces.length; e++) { var i = this.spaces[e], n = i.x <= t.x && i.x + i.width >= t.x + t.width && i.height >= t.height - .01; if (n) { t.y = i.y, this.placed(t); break } } }, i.rowPack = function (t) { for (var e = 0; e < this.spaces.length; e++) { var i = this.spaces[e], n = i.y <= t.y && i.y + i.height >= t.y + t.height && i.width >= t.width - .01; if (n) { t.x = i.x, this.placed(t); break } } }, i.placeInSpace = function (t, e) { t.x = e.x, t.y = e.y, this.placed(t) }, i.placed = function (t) { for (var e = [], i = 0; i < this.spaces.length; i++) { var n = this.spaces[i], o = n.getMaximalFreeRects(t); o ? e.push.apply(e, o) : e.push(n) } this.spaces = e, this.mergeSortSpaces() }, i.mergeSortSpaces = function () { e.mergeRects(this.spaces), this.spaces.sort(this.sorter) }, i.addSpace = function (t) { this.spaces.push(t), this.mergeSortSpaces() }, e.mergeRects = function (t) { var e = 0, i = t[e]; t: for (; i;) { for (var n = 0, o = t[e + n]; o;) { if (o == i) n++; else { if (o.contains(i)) { t.splice(e, 1), i = t[e]; continue t } i.contains(o) ? t.splice(e + n, 1) : n++ } o = t[e + n] } e++ , i = t[e] } return t }; var n = { downwardLeftToRight: function (t, e) { return t.y - e.y || t.x - e.x }, rightwardTopToBottom: function (t, e) { return t.x - e.x || t.y - e.y } }; return e }), function (t, e) { \"function\" == typeof define && define.amd ? define(\"packery/js/item\", [\"outlayer/outlayer\", \"./rect\"], e) : \"object\" == typeof module && module.exports ? module.exports = e(require(\"outlayer\"), require(\"./rect\")) : t.Packery.Item = e(t.Outlayer, t.Packery.Rect) }(window, function (t, e) { \"use strict\"; var i = document.documentElement.style, n = \"string\" == typeof i.transform ? \"transform\" : \"WebkitTransform\", o = function () { t.Item.apply(this, arguments) }, s = o.prototype = Object.create(t.Item.prototype), r = s._create; s._create = function () { r.call(this), this.rect = new e }; var a = s.moveTo; return s.moveTo = function (t, e) { var i = Math.abs(this.position.x - t), n = Math.abs(this.position.y - e), o = this.layout.dragItemCount && !this.isPlacing && !this.isTransitioning && 1 > i && 1 > n; return o ? void this.goTo(t, e) : void a.apply(this, arguments) }, s.enablePlacing = function () { this.removeTransitionStyles(), this.isTransitioning && n && (this.element.style[n] = \"none\"), this.isTransitioning = !1, this.getSize(), this.layout._setRectSize(this.element, this.rect), this.isPlacing = !0 }, s.disablePlacing = function () { this.isPlacing = !1 }, s.removeElem = function () { this.element.parentNode.removeChild(this.element), this.layout.packer.addSpace(this.rect), this.emitEvent(\"remove\", [this]) }, s.showDropPlaceholder = function () { var t = this.dropPlaceholder; t || (t = this.dropPlaceholder = document.createElement(\"div\"), t.className = \"packery-drop-placeholder\", t.style.position = \"absolute\"), t.style.width = this.size.width + \"px\", t.style.height = this.size.height + \"px\", this.positionDropPlaceholder(), this.layout.element.appendChild(t) }, s.positionDropPlaceholder = function () { this.dropPlaceholder.style[n] = \"translate(\" + this.rect.x + \"px, \" + this.rect.y + \"px)\" }, s.hideDropPlaceholder = function () { var t = this.dropPlaceholder.parentNode; t && t.removeChild(this.dropPlaceholder) }, o }), function (t, e) { \"function\" == typeof define && define.amd ? define([\"get-size/get-size\", \"outlayer/outlayer\", \"packery/js/rect\", \"packery/js/packer\", \"packery/js/item\"], e) : \"object\" == typeof module && module.exports ? module.exports = e(require(\"get-size\"), require(\"outlayer\"), require(\"./rect\"), require(\"./packer\"), require(\"./item\")) : t.Packery = e(t.getSize, t.Outlayer, t.Packery.Rect, t.Packery.Packer, t.Packery.Item) }(window, function (t, e, i, n, o) {\n \"use strict\"; function s(t, e) { return t.position.y - e.position.y || t.position.x - e.position.x } function r(t, e) { return t.position.x - e.position.x || t.position.y - e.position.y } function a(t, e) { var i = e.x - t.x, n = e.y - t.y; return Math.sqrt(i * i + n * n) } i.prototype.canFit = function (t) { return this.width >= t.width - 1 && this.height >= t.height - 1 }; var h = e.create(\"packery\"); h.Item = o; var u = h.prototype; u._create = function () { e.prototype._create.call(this), this.packer = new n, this.shiftPacker = new n, this.isEnabled = !0, this.dragItemCount = 0; var t = this; this.handleDraggabilly = { dragStart: function () { t.itemDragStart(this.element) }, dragMove: function () { t.itemDragMove(this.element, this.position.x, this.position.y) }, dragEnd: function () { t.itemDragEnd(this.element) } }, this.handleUIDraggable = { start: function (e, i) { i && t.itemDragStart(e.currentTarget) }, drag: function (e, i) { i && t.itemDragMove(e.currentTarget, i.position.left, i.position.top) }, stop: function (e, i) { i && t.itemDragEnd(e.currentTarget) } } }, u._resetLayout = function () { this.getSize(), this._getMeasurements(); var t, e, i; this._getOption(\"horizontal\") ? (t = 1 / 0, e = this.size.innerHeight + this.gutter, i = \"rightwardTopToBottom\") : (t = this.size.innerWidth + this.gutter, e = 1 / 0, i = \"downwardLeftToRight\"), this.packer.width = this.shiftPacker.width = t, this.packer.height = this.shiftPacker.height = e, this.packer.sortDirection = this.shiftPacker.sortDirection = i, this.packer.reset(), this.maxY = 0, this.maxX = 0 }, u._getMeasurements = function () { this._getMeasurement(\"columnWidth\", \"width\"), this._getMeasurement(\"rowHeight\", \"height\"), this._getMeasurement(\"gutter\", \"width\") }, u._getItemLayoutPosition = function (t) { if (this._setRectSize(t.element, t.rect), this.isShifting || this.dragItemCount > 0) { var e = this._getPackMethod(); this.packer[e](t.rect) } else this.packer.pack(t.rect); return this._setMaxXY(t.rect), t.rect }, u.shiftLayout = function () { this.isShifting = !0, this.layout(), delete this.isShifting }, u._getPackMethod = function () { return this._getOption(\"horizontal\") ? \"rowPack\" : \"columnPack\" }, u._setMaxXY = function (t) { this.maxX = Math.max(t.x + t.width, this.maxX), this.maxY = Math.max(t.y + t.height, this.maxY) }, u._setRectSize = function (e, i) { var n = t(e), o = n.outerWidth, s = n.outerHeight; (o || s) && (o = this._applyGridGutter(o, this.columnWidth), s = this._applyGridGutter(s, this.rowHeight)), i.width = Math.min(o, this.packer.width), i.height = Math.min(s, this.packer.height) }, u._applyGridGutter = function (t, e) { if (!e) return t + this.gutter; e += this.gutter; var i = t % e, n = i && 1 > i ? \"round\" : \"ceil\"; return t = Math[n](t / e) * e }, u._getContainerSize = function () { return this._getOption(\"horizontal\") ? { width: this.maxX - this.gutter } : { height: this.maxY - this.gutter } }, u._manageStamp = function (t) { var e, n = this.getItem(t); if (n && n.isPlacing) e = n.rect; else { var o = this._getElementOffset(t); e = new i({ x: this._getOption(\"originLeft\") ? o.left : o.right, y: this._getOption(\"originTop\") ? o.top : o.bottom }) } this._setRectSize(t, e), this.packer.placed(e), this._setMaxXY(e) }, u.sortItemsByPosition = function () { var t = this._getOption(\"horizontal\") ? r : s; this.items.sort(t) }, u.fit = function (t, e, i) { var n = this.getItem(t); n && (this.stamp(n.element), n.enablePlacing(), this.updateShiftTargets(n), e = void 0 === e ? n.rect.x : e, i = void 0 === i ? n.rect.y : i, this.shift(n, e, i), this._bindFitEvents(n), n.moveTo(n.rect.x, n.rect.y), this.shiftLayout(), this.unstamp(n.element), this.sortItemsByPosition(), n.disablePlacing()) }, u._bindFitEvents = function (t) { function e() { n++ , 2 == n && i.dispatchEvent(\"fitComplete\", null, [t]) } var i = this, n = 0; t.once(\"layout\", e), this.once(\"layoutComplete\", e) }, u.resize = function () { this.isResizeBound && this.needsResizeLayout() && (this.options.shiftPercentResize ? this.resizeShiftPercentLayout() : this.layout()) }, u.needsResizeLayout = function () { var e = t(this.element), i = this._getOption(\"horizontal\") ? \"innerHeight\" : \"innerWidth\"; return e[i] != this.size[i] }, u.resizeShiftPercentLayout = function () { var e = this._getItemsForLayout(this.items), i = this._getOption(\"horizontal\"), n = i ? \"y\" : \"x\", o = i ? \"height\" : \"width\", s = i ? \"rowHeight\" : \"columnWidth\", r = i ? \"innerHeight\" : \"innerWidth\", a = this[s]; if (a = a && a + this.gutter) { this._getMeasurements(); var h = this[s] + this.gutter; e.forEach(function (t) { var e = Math.round(t.rect[n] / a); t.rect[n] = e * h }) } else { var u = t(this.element)[r] + this.gutter, c = this.packer[o]; e.forEach(function (t) { t.rect[n] = t.rect[n] / c * u }) } this.shiftLayout() }, u.itemDragStart = function (t) { if (this.isEnabled) { this.stamp(t); var e = this.getItem(t); e && (e.enablePlacing(), e.showDropPlaceholder(), this.dragItemCount++ , this.updateShiftTargets(e)) } }, u.updateShiftTargets = function (t) { this.shiftPacker.reset(), this._getBoundingRect(); var e = this._getOption(\"originLeft\"), n = this._getOption(\"originTop\"); this.stamps.forEach(function (t) { var o = this.getItem(t); if (!o || !o.isPlacing) { var s = this._getElementOffset(t), r = new i({ x: e ? s.left : s.right, y: n ? s.top : s.bottom }); this._setRectSize(t, r), this.shiftPacker.placed(r) } }, this); var o = this._getOption(\"horizontal\"), s = o ? \"rowHeight\" : \"columnWidth\", r = o ? \"height\" : \"width\"; this.shiftTargetKeys = [], this.shiftTargets = []; var a, h = this[s]; if (h = h && h + this.gutter) { var u = Math.ceil(t.rect[r] / h), c = Math.floor((this.shiftPacker[r] + this.gutter) / h); a = (c - u) * h; for (var d = 0; c > d; d++) { var f = o ? 0 : d * h, l = o ? d * h : 0; this._addShiftTarget(f, l, a) } } else a = this.shiftPacker[r] + this.gutter - t.rect[r], this._addShiftTarget(0, 0, a); var p = this._getItemsForLayout(this.items), g = this._getPackMethod(); p.forEach(function (t) { var e = t.rect; this._setRectSize(t.element, e), this.shiftPacker[g](e), this._addShiftTarget(e.x, e.y, a); var i = o ? e.x + e.width : e.x, n = o ? e.y : e.y + e.height; if (this._addShiftTarget(i, n, a), h) for (var s = Math.round(e[r] / h), u = 1; s > u; u++) { var c = o ? i : e.x + h * u, d = o ? e.y + h * u : n; this._addShiftTarget(c, d, a) } }, this) }, u._addShiftTarget = function (t, e, i) { var n = this._getOption(\"horizontal\") ? e : t; if (!(0 !== n && n > i)) { var o = t + \",\" + e, s = -1 != this.shiftTargetKeys.indexOf(o); s || (this.shiftTargetKeys.push(o), this.shiftTargets.push({ x: t, y: e })) } }, u.shift = function (t, e, i) { var n, o = 1 / 0, s = { x: e, y: i }; this.shiftTargets.forEach(function (t) { var e = a(t, s); o > e && (n = t, o = e) }), t.rect.x = n.x, t.rect.y = n.y }; var c = 120; u.itemDragMove = function (t, e, i) {\n function n() { s.shift(o, e, i), o.positionDropPlaceholder(), s.layout() } var o = this.isEnabled && this.getItem(t); if (o) { e -= this.size.paddingLeft, i -= this.size.paddingTop; var s = this, r = new Date; this._itemDragTime && r - this._itemDragTime < c ? (clearTimeout(this.dragTimeout), this.dragTimeout = setTimeout(n, c)) : (n(), this._itemDragTime = r) }\n }, u.itemDragEnd = function (t) { function e() { n++ , 2 == n && (i.element.classList.remove(\"is-positioning-post-drag\"), i.hideDropPlaceholder(), o.dispatchEvent(\"dragItemPositioned\", null, [i])) } var i = this.isEnabled && this.getItem(t); if (i) { clearTimeout(this.dragTimeout), i.element.classList.add(\"is-positioning-post-drag\"); var n = 0, o = this; i.once(\"layout\", e), this.once(\"layoutComplete\", e), i.moveTo(i.rect.x, i.rect.y), this.layout(), this.dragItemCount = Math.max(0, this.dragItemCount - 1), this.sortItemsByPosition(), i.disablePlacing(), this.unstamp(i.element) } }, u.bindDraggabillyEvents = function (t) { this._bindDraggabillyEvents(t, \"on\") }, u.unbindDraggabillyEvents = function (t) { this._bindDraggabillyEvents(t, \"off\") }, u._bindDraggabillyEvents = function (t, e) { var i = this.handleDraggabilly; t[e](\"dragStart\", i.dragStart), t[e](\"dragMove\", i.dragMove), t[e](\"dragEnd\", i.dragEnd) }, u.bindUIDraggableEvents = function (t) { this._bindUIDraggableEvents(t, \"on\") }, u.unbindUIDraggableEvents = function (t) { this._bindUIDraggableEvents(t, \"off\") }, u._bindUIDraggableEvents = function (t, e) { var i = this.handleUIDraggable; t[e](\"dragstart\", i.start)[e](\"drag\", i.drag)[e](\"dragstop\", i.stop) }; var d = u.destroy; return u.destroy = function () { d.apply(this, arguments), this.isEnabled = !1 }, h.Rect = i, h.Packer = n, h\n});","/*! FileAPI 2.0.19 - BSD | git://github.com/mailru/FileAPI.git\n * FileAPI — a set of javascript tools for working with files. Multiupload, drag'n'drop and chunked file upload. Images: crop, resize and auto orientation by EXIF.\n */\n\n/*\n * JavaScript Canvas to Blob 2.0.5\n * https://github.com/blueimp/JavaScript-Canvas-to-Blob\n *\n * Copyright 2012, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n *\n * Based on stackoverflow user Stoive's code snippet:\n * http://stackoverflow.com/q/4998908\n */\n\n/*jslint nomen: true, regexp: true */\n/*global window, atob, Blob, ArrayBuffer, Uint8Array */\n\n(function (window) {\n 'use strict';\n var CanvasPrototype = window.HTMLCanvasElement &&\n window.HTMLCanvasElement.prototype,\n hasBlobConstructor = window.Blob && (function () {\n try {\n return Boolean(new Blob());\n } catch (e) {\n return false;\n }\n }()),\n hasArrayBufferViewSupport = hasBlobConstructor && window.Uint8Array &&\n (function () {\n try {\n return new Blob([new Uint8Array(100)]).size === 100;\n } catch (e) {\n return false;\n }\n }()),\n BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder ||\n window.MozBlobBuilder || window.MSBlobBuilder,\n dataURLtoBlob = (hasBlobConstructor || BlobBuilder) && window.atob &&\n window.ArrayBuffer && window.Uint8Array && function (dataURI) {\n var byteString,\n arrayBuffer,\n intArray,\n i,\n mimeString,\n bb;\n if (dataURI.split(',')[0].indexOf('base64') >= 0) {\n // Convert base64 to raw binary data held in a string:\n byteString = atob(dataURI.split(',')[1]);\n } else {\n // Convert base64/URLEncoded data component to raw binary data:\n byteString = decodeURIComponent(dataURI.split(',')[1]);\n }\n // Write the bytes of the string to an ArrayBuffer:\n arrayBuffer = new ArrayBuffer(byteString.length);\n intArray = new Uint8Array(arrayBuffer);\n for (i = 0; i < byteString.length; i += 1) {\n intArray[i] = byteString.charCodeAt(i);\n }\n // Separate out the mime component:\n mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\n // Write the ArrayBuffer (or ArrayBufferView) to a blob:\n if (hasBlobConstructor) {\n return new Blob(\n [hasArrayBufferViewSupport ? intArray : arrayBuffer],\n {type: mimeString}\n );\n }\n bb = new BlobBuilder();\n bb.append(arrayBuffer);\n return bb.getBlob(mimeString);\n };\n if (window.HTMLCanvasElement && !CanvasPrototype.toBlob) {\n if (CanvasPrototype.mozGetAsFile) {\n CanvasPrototype.toBlob = function (callback, type, quality) {\n if (quality && CanvasPrototype.toDataURL && dataURLtoBlob) {\n callback(dataURLtoBlob(this.toDataURL(type, quality)));\n } else {\n callback(this.mozGetAsFile('blob', type));\n }\n };\n } else if (CanvasPrototype.toDataURL && dataURLtoBlob) {\n CanvasPrototype.toBlob = function (callback, type, quality) {\n callback(dataURLtoBlob(this.toDataURL(type, quality)));\n };\n }\n }\n window.dataURLtoBlob = dataURLtoBlob;\n})(window);\n\n/*jslint evil: true */\n/*global window, URL, webkitURL, ActiveXObject */\n\n(function (window, undef){\n\t'use strict';\n\n\tvar\n\t\tgid = 1,\n\t\tnoop = function (){},\n\n\t\tdocument = window.document,\n\t\tdoctype = document.doctype || {},\n\t\tuserAgent = window.navigator.userAgent,\n\t\tsafari = /safari\\//i.test(userAgent) && !/chrome\\//i.test(userAgent),\n\t\tiemobile = /iemobile\\//i.test(userAgent),\n\n\t\t// https://github.com/blueimp/JavaScript-Load-Image/blob/master/load-image.js#L48\n\t\tapiURL = (window.createObjectURL && window) || (window.URL && URL.revokeObjectURL && URL) || (window.webkitURL && webkitURL),\n\n\t\tBlob = window.Blob,\n\t\tFile = window.File,\n\t\tFileReader = window.FileReader,\n\t\tFormData = window.FormData,\n\n\n\t\tXMLHttpRequest = window.XMLHttpRequest,\n\t\tjQuery = window.jQuery,\n\n\t\thtml5 = !!(File && (FileReader && (window.Uint8Array || FormData || XMLHttpRequest.prototype.sendAsBinary)))\n\t\t\t\t&& !(safari && /windows/i.test(userAgent) && !iemobile), // BugFix: https://github.com/mailru/FileAPI/issues/25\n\n\t\tcors = html5 && ('withCredentials' in (new XMLHttpRequest)),\n\n\t\tchunked = html5 && !!Blob && !!(Blob.prototype.webkitSlice || Blob.prototype.mozSlice || Blob.prototype.slice),\n\n\t\tnormalize = ('' + ''.normalize).indexOf('[native code]') > 0,\n\n\t\t// https://github.com/blueimp/JavaScript-Canvas-to-Blob\n\t\tdataURLtoBlob = window.dataURLtoBlob,\n\n\n\t\t_rimg = /img/i,\n\t\t_rcanvas = /canvas/i,\n\t\t_rimgcanvas = /img|canvas/i,\n\t\t_rinput = /input/i,\n\t\t_rdata = /^data:[^,]+,/,\n\n\t\t_toString = {}.toString,\n\t\t_supportConsoleLog,\n\t\t_supportConsoleLogApply,\n\n\n\t\tMath = window.Math,\n\n\t\t_SIZE_CONST = function (pow){\n\t\t\tpow = new window.Number(Math.pow(1024, pow));\n\t\t\tpow.from = function (sz){ return Math.round(sz * this); };\n\t\t\treturn\tpow;\n\t\t},\n\n\t\t_elEvents = {}, // element event listeners\n\t\t_infoReader = [], // list of file info processors\n\n\t\t_readerEvents = 'abort progress error load loadend',\n\t\t_xhrPropsExport = 'status statusText readyState response responseXML responseText responseBody'.split(' '),\n\n\t\tcurrentTarget = 'currentTarget', // for minimize\n\t\tpreventDefault = 'preventDefault', // and this too\n\n\t\t_isArray = function (ar) {\n\t\t\treturn\tar && ('length' in ar);\n\t\t},\n\n\t\t/**\n\t\t * Iterate over a object or array\n\t\t */\n\t\t_each = function (obj, fn, ctx){\n\t\t\tif( obj ){\n\t\t\t\tif( _isArray(obj) ){\n\t\t\t\t\tfor( var i = 0, n = obj.length; i < n; i++ ){\n\t\t\t\t\t\tif( i in obj ){\n\t\t\t\t\t\t\tfn.call(ctx, obj[i], i, obj);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tfor( var key in obj ){\n\t\t\t\t\t\tif( obj.hasOwnProperty(key) ){\n\t\t\t\t\t\t\tfn.call(ctx, obj[key], key, obj);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Merge the contents of two or more objects together into the first object\n\t\t */\n\t\t_extend = function (dst){\n\t\t\tvar args = arguments, i = 1, _ext = function (val, key){ dst[key] = val; };\n\t\t\tfor( ; i < args.length; i++ ){\n\t\t\t\t_each(args[i], _ext);\n\t\t\t}\n\t\t\treturn dst;\n\t\t},\n\n\t\t/**\n\t\t * Add event listener\n\t\t */\n\t\t_on = function (el, type, fn){\n\t\t\tif( el ){\n\t\t\t\tvar uid = api.uid(el);\n\n\t\t\t\tif( !_elEvents[uid] ){\n\t\t\t\t\t_elEvents[uid] = {};\n\t\t\t\t}\n\n\t\t\t\tvar isFileReader = (FileReader && el) && (el instanceof FileReader);\n\t\t\t\t_each(type.split(/\\s+/), function (type){\n\t\t\t\t\tif( jQuery && !isFileReader){\n\t\t\t\t\t\tjQuery.event.add(el, type, fn);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif( !_elEvents[uid][type] ){\n\t\t\t\t\t\t\t_elEvents[uid][type] = [];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_elEvents[uid][type].push(fn);\n\n\t\t\t\t\t\tif( el.addEventListener ){ el.addEventListener(type, fn, false); }\n\t\t\t\t\t\telse if( el.attachEvent ){ el.attachEvent('on'+type, fn); }\n\t\t\t\t\t\telse { el['on'+type] = fn; }\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Remove event listener\n\t\t */\n\t\t_off = function (el, type, fn){\n\t\t\tif( el ){\n\t\t\t\tvar uid = api.uid(el), events = _elEvents[uid] || {};\n\n\t\t\t\tvar isFileReader = (FileReader && el) && (el instanceof FileReader);\n\t\t\t\t_each(type.split(/\\s+/), function (type){\n\t\t\t\t\tif( jQuery && !isFileReader){\n\t\t\t\t\t\tjQuery.event.remove(el, type, fn);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar fns = events[type] || [], i = fns.length;\n\n\t\t\t\t\t\twhile( i-- ){\n\t\t\t\t\t\t\tif( fns[i] === fn ){\n\t\t\t\t\t\t\t\tfns.splice(i, 1);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( el.addEventListener ){ el.removeEventListener(type, fn, false); }\n\t\t\t\t\t\telse if( el.detachEvent ){ el.detachEvent('on'+type, fn); }\n\t\t\t\t\t\telse { el['on'+type] = null; }\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\n\t\t_one = function(el, type, fn){\n\t\t\t_on(el, type, function _(evt){\n\t\t\t\t_off(el, type, _);\n\t\t\t\tfn(evt);\n\t\t\t});\n\t\t},\n\n\n\t\t_fixEvent = function (evt){\n\t\t\tif( !evt.target ){ evt.target = window.event && window.event.srcElement || document; }\n\t\t\tif( evt.target.nodeType === 3 ){ evt.target = evt.target.parentNode; }\n\t\t\treturn evt;\n\t\t},\n\n\n\t\t_supportInputAttr = function (attr){\n\t\t\tvar input = document.createElement('input');\n\t\t\tinput.setAttribute('type', \"file\");\n\t\t\treturn attr in input;\n\t\t},\n\n\n\t\t/**\n\t\t * FileAPI (core object)\n\t\t */\n\t\tapi = {\n\t\t\tversion: '2.0.19',\n\n\t\t\tcors: false,\n\t\t\thtml5: true,\n\t\t\tmedia: false,\n\t\t\tformData: true,\n\t\t\tmultiPassResize: true,\n\n\t\t\tdebug: false,\n\t\t\tpingUrl: false,\n\t\t\tmultiFlash: false,\n\t\t\tflashAbortTimeout: 0,\n\t\t\twithCredentials: true,\n\n\t\t\tstaticPath: './dist/',\n\n\t\t\tflashUrl: 0, // @default: './FileAPI.flash.swf'\n\t\t\tflashImageUrl: 0, // @default: './FileAPI.flash.image.swf'\n\n\t\t\tpostNameConcat: function (name, idx){\n\t\t\t\treturn\tname + (idx != null ? '['+ idx +']' : '');\n\t\t\t},\n\n\t\t\text2mime: {\n\t\t\t\t jpg:\t'image/jpeg'\n\t\t\t\t, tif:\t'image/tiff'\n\t\t\t\t, txt:\t'text/plain'\n\t\t\t},\n\n\t\t\t// Fallback for flash\n\t\t\taccept: {\n\t\t\t\t 'image/*': 'art bm bmp dwg dxf cbr cbz fif fpx gif ico iefs jfif jpe jpeg jpg jps jut mcf nap nif pbm pcx pgm pict pm png pnm qif qtif ras rast rf rp svf tga tif tiff xbm xbm xpm xwd'\n\t\t\t\t, 'audio/*': 'm4a flac aac rm mpa wav wma ogg mp3 mp2 m3u mod amf dmf dsm far gdm imf it m15 med okt s3m stm sfx ult uni xm sid ac3 dts cue aif aiff wpl ape mac mpc mpp shn wv nsf spc gym adplug adx dsp adp ymf ast afc hps xs'\n\t\t\t\t, 'video/*': 'm4v 3gp nsv ts ty strm rm rmvb m3u ifo mov qt divx xvid bivx vob nrg img iso pva wmv asf asx ogm m2v avi bin dat dvr-ms mpg mpeg mp4 mkv avc vp3 svq3 nuv viv dv fli flv wpl'\n\t\t\t},\n\n\t\t\tuploadRetry : 0,\n\t\t\tnetworkDownRetryTimeout : 5000, // milliseconds, don't flood when network is down\n\n\t\t\tchunkSize : 0,\n\t\t\tchunkUploadRetry : 0,\n\t\t\tchunkNetworkDownRetryTimeout : 2000, // milliseconds, don't flood when network is down\n\n\t\t\tKB: _SIZE_CONST(1),\n\t\t\tMB: _SIZE_CONST(2),\n\t\t\tGB: _SIZE_CONST(3),\n\t\t\tTB: _SIZE_CONST(4),\n\n\t\t\tEMPTY_PNG: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2NkAAIAAAoAAggA9GkAAAAASUVORK5CYII=',\n\n\t\t\texpando: 'fileapi' + (new Date).getTime(),\n\n\t\t\tuid: function (obj){\n\t\t\t\treturn\tobj\n\t\t\t\t\t? (obj[api.expando] = obj[api.expando] || api.uid())\n\t\t\t\t\t: (++gid, api.expando + gid)\n\t\t\t\t;\n\t\t\t},\n\n\t\t\tlog: function (){\n\t\t\t\tif( api.debug && _supportConsoleLog ){\n\t\t\t\t\tif( _supportConsoleLogApply ){\n\t\t\t\t\t\tconsole.log.apply(console, arguments);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tconsole.log([].join.call(arguments, ' '));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Create new image\n\t\t\t *\n\t\t\t * @param {String} [src]\n\t\t\t * @param {Function} [fn] 1. error -- boolean, 2. img -- Image element\n\t\t\t * @returns {HTMLElement}\n\t\t\t */\n\t\t\tnewImage: function (src, fn){\n\t\t\t\tvar img = document.createElement('img');\n\t\t\t\tif( fn ){\n\t\t\t\t\tapi.event.one(img, 'error load', function (evt){\n\t\t\t\t\t\tfn(evt.type == 'error', img);\n\t\t\t\t\t\timg = null;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\timg.src = src;\n\t\t\t\treturn\timg;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get XHR\n\t\t\t * @returns {XMLHttpRequest}\n\t\t\t */\n\t\t\tgetXHR: function (){\n\t\t\t\tvar xhr;\n\n\t\t\t\tif( XMLHttpRequest ){\n\t\t\t\t\txhr = new XMLHttpRequest;\n\t\t\t\t}\n\t\t\t\telse if( window.ActiveXObject ){\n\t\t\t\t\ttry {\n\t\t\t\t\t\txhr = new ActiveXObject('MSXML2.XMLHttp.3.0');\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\txhr = new ActiveXObject('Microsoft.XMLHTTP');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn xhr;\n\t\t\t},\n\n\t\t\tisArray: _isArray,\n\n\t\t\tsupport: {\n\t\t\t\tdnd: cors && ('ondrop' in document.createElement('div')),\n\t\t\t\tcors: cors,\n\t\t\t\thtml5: html5,\n\t\t\t\tchunked: chunked,\n\t\t\t\tdataURI: true,\n\t\t\t\taccept: _supportInputAttr('accept'),\n\t\t\t\tmultiple: _supportInputAttr('multiple')\n\t\t\t},\n\n\t\t\tevent: {\n\t\t\t\t on: _on\n\t\t\t\t, off: _off\n\t\t\t\t, one: _one\n\t\t\t\t, fix: _fixEvent\n\t\t\t},\n\n\n\t\t\tthrottle: function(fn, delay) {\n\t\t\t\tvar id, args;\n\n\t\t\t\treturn function _throttle(){\n\t\t\t\t\targs = arguments;\n\n\t\t\t\t\tif( !id ){\n\t\t\t\t\t\tfn.apply(window, args);\n\t\t\t\t\t\tid = setTimeout(function (){\n\t\t\t\t\t\t\tid = 0;\n\t\t\t\t\t\t\tfn.apply(window, args);\n\t\t\t\t\t\t}, delay);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\n\t\t\tF: function (){},\n\n\n\t\t\tparseJSON: function (str){\n\t\t\t\tvar json;\n\t\t\t\tif( window.JSON && JSON.parse ){\n\t\t\t\t\tjson = JSON.parse(str);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tjson = (new Function('return ('+str.replace(/([\\r\\n])/g, '\\\\$1')+');'))();\n\t\t\t\t}\n\t\t\t\treturn json;\n\t\t\t},\n\n\n\t\t\ttrim: function (str){\n\t\t\t\tstr = String(str);\n\t\t\t\treturn\tstr.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Simple Defer\n\t\t\t * @return\t{Object}\n\t\t\t */\n\t\t\tdefer: function (){\n\t\t\t\tvar\n\t\t\t\t\t list = []\n\t\t\t\t\t, result\n\t\t\t\t\t, error\n\t\t\t\t\t, defer = {\n\t\t\t\t\t\tresolve: function (err, res){\n\t\t\t\t\t\t\tdefer.resolve = noop;\n\t\t\t\t\t\t\terror\t= err || false;\n\t\t\t\t\t\t\tresult\t= res;\n\n\t\t\t\t\t\t\twhile( res = list.shift() ){\n\t\t\t\t\t\t\t\tres(error, result);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tthen: function (fn){\n\t\t\t\t\t\t\tif( error !== undef ){\n\t\t\t\t\t\t\t\tfn(error, result);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tlist.push(fn);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn\tdefer;\n\t\t\t},\n\n\t\t\tqueue: function (fn){\n\t\t\t\tvar\n\t\t\t\t\t _idx = 0\n\t\t\t\t\t, _length = 0\n\t\t\t\t\t, _fail = false\n\t\t\t\t\t, _end = false\n\t\t\t\t\t, queue = {\n\t\t\t\t\t\tinc: function (){\n\t\t\t\t\t\t\t_length++;\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tnext: function (){\n\t\t\t\t\t\t\t_idx++;\n\t\t\t\t\t\t\tsetTimeout(queue.check, 0);\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tcheck: function (){\n\t\t\t\t\t\t\t(_idx >= _length) && !_fail && queue.end();\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tisFail: function (){\n\t\t\t\t\t\t\treturn _fail;\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tfail: function (){\n\t\t\t\t\t\t\t!_fail && fn(_fail = true);\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tend: function (){\n\t\t\t\t\t\t\tif( !_end ){\n\t\t\t\t\t\t\t\t_end = true;\n\t\t\t\t\t\t\t\tfn();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t;\n\t\t\t\treturn queue;\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * For each object\n\t\t\t *\n\t\t\t * @param\t{Object|Array}\tobj\n\t\t\t * @param\t{Function}\t\tfn\n\t\t\t * @param\t{*}\t\t\t\t[ctx]\n\t\t\t */\n\t\t\teach: _each,\n\n\n\t\t\t/**\n\t\t\t * Async for\n\t\t\t * @param {Array} array\n\t\t\t * @param {Function} callback\n\t\t\t */\n\t\t\tafor: function (array, callback){\n\t\t\t\tvar i = 0, n = array.length;\n\n\t\t\t\tif( _isArray(array) && n-- ){\n\t\t\t\t\t(function _next(){\n\t\t\t\t\t\tcallback(n != i && _next, array[i], i++);\n\t\t\t\t\t})();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallback(false);\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Merge the contents of two or more objects together into the first object\n\t\t\t *\n\t\t\t * @param\t{Object}\tdst\n\t\t\t * @return\t{Object}\n\t\t\t */\n\t\t\textend: _extend,\n\n\n\t\t\t/**\n\t\t\t * Is file?\n\t\t\t * @param {File} file\n\t\t\t * @return {Boolean}\n\t\t\t */\n\t\t\tisFile: function (file){\n\t\t\t\treturn _toString.call(file) === '[object File]';\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Is blob?\n\t\t\t * @param {Blob} blob\n\t\t\t * @returns {Boolean}\n\t\t\t */\n\t\t\tisBlob: function (blob) {\n\t\t\t\treturn this.isFile(blob) || (_toString.call(blob) === '[object Blob]');\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Is canvas element\n\t\t\t *\n\t\t\t * @param\t{HTMLElement}\tel\n\t\t\t * @return\t{Boolean}\n\t\t\t */\n\t\t\tisCanvas: function (el){\n\t\t\t\treturn\tel && _rcanvas.test(el.nodeName);\n\t\t\t},\n\n\n\t\t\tgetFilesFilter: function (filter){\n\t\t\t\tfilter = typeof filter == 'string' ? filter : (filter.getAttribute && filter.getAttribute('accept') || '');\n\t\t\t\treturn\tfilter ? new RegExp('('+ filter.replace(/\\./g, '\\\\.').replace(/,/g, '|') +')$', 'i') : /./;\n\t\t\t},\n\n\n\n\t\t\t/**\n\t\t\t * Read as DataURL\n\t\t\t *\n\t\t\t * @param {File|Element} file\n\t\t\t * @param {Function} fn\n\t\t\t */\n\t\t\treadAsDataURL: function (file, fn){\n\t\t\t\tif( api.isCanvas(file) ){\n\t\t\t\t\t_emit(file, fn, 'load', api.toDataURL(file));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t_readAs(file, fn, 'DataURL');\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Read as Binary string\n\t\t\t *\n\t\t\t * @param {File} file\n\t\t\t * @param {Function} fn\n\t\t\t */\n\t\t\treadAsBinaryString: function (file, fn){\n\t\t\t\tif( _hasSupportReadAs('BinaryString') ){\n\t\t\t\t\t_readAs(file, fn, 'BinaryString');\n\t\t\t\t} else {\n\t\t\t\t\t// Hello IE10!\n\t\t\t\t\t_readAs(file, function (evt){\n\t\t\t\t\t\tif( evt.type == 'load' ){\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t// dataURL -> binaryString\n\t\t\t\t\t\t\t\tevt.result = api.toBinaryString(evt.result);\n\t\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t\t\tevt.type = 'error';\n\t\t\t\t\t\t\t\tevt.message = e.toString();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfn(evt);\n\t\t\t\t\t}, 'DataURL');\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Read as ArrayBuffer\n\t\t\t *\n\t\t\t * @param {File} file\n\t\t\t * @param {Function} fn\n\t\t\t */\n\t\t\treadAsArrayBuffer: function(file, fn){\n\t\t\t\t_readAs(file, fn, 'ArrayBuffer');\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Read as text\n\t\t\t *\n\t\t\t * @param {File} file\n\t\t\t * @param {String} encoding\n\t\t\t * @param {Function} [fn]\n\t\t\t */\n\t\t\treadAsText: function(file, encoding, fn){\n\t\t\t\tif( !fn ){\n\t\t\t\t\tfn\t= encoding;\n\t\t\t\t\tencoding = 'utf-8';\n\t\t\t\t}\n\n\t\t\t\t_readAs(file, fn, 'Text', encoding);\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Convert image or canvas to DataURL\n\t\t\t *\n\t\t\t * @param {Element} el Image or Canvas element\n\t\t\t * @param {String} [type] mime-type\n\t\t\t * @return {String}\n\t\t\t */\n\t\t\ttoDataURL: function (el, type){\n\t\t\t\tif( typeof el == 'string' ){\n\t\t\t\t\treturn el;\n\t\t\t\t}\n\t\t\t\telse if( el.toDataURL ){\n\t\t\t\t\treturn el.toDataURL(type || 'image/png');\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Canvert string, image or canvas to binary string\n\t\t\t *\n\t\t\t * @param {String|Element} val\n\t\t\t * @return {String}\n\t\t\t */\n\t\t\ttoBinaryString: function (val){\n\t\t\t\treturn window.atob(api.toDataURL(val).replace(_rdata, ''));\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Read file or DataURL as ImageElement\n\t\t\t *\n\t\t\t * @param\t{File|String}\tfile\n\t\t\t * @param\t{Function}\t\tfn\n\t\t\t * @param\t{Boolean}\t\t[progress]\n\t\t\t */\n\t\t\treadAsImage: function (file, fn, progress){\n\t\t\t\tif( api.isBlob(file) ){\n\t\t\t\t\tif( apiURL ){\n\t\t\t\t\t\t/** @namespace apiURL.createObjectURL */\n\t\t\t\t\t\tvar data = apiURL.createObjectURL(file);\n\t\t\t\t\t\tif( data === undef ){\n\t\t\t\t\t\t\t_emit(file, fn, 'error');\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tapi.readAsImage(data, fn, progress);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tapi.readAsDataURL(file, function (evt){\n\t\t\t\t\t\t\tif( evt.type == 'load' ){\n\t\t\t\t\t\t\t\tapi.readAsImage(evt.result, fn, progress);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if( progress || evt.type == 'error' ){\n\t\t\t\t\t\t\t\t_emit(file, fn, evt, null, { loaded: evt.loaded, total: evt.total });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( api.isCanvas(file) ){\n\t\t\t\t\t_emit(file, fn, 'load', file);\n\t\t\t\t}\n\t\t\t\telse if( _rimg.test(file.nodeName) ){\n\t\t\t\t\tif( file.complete ){\n\t\t\t\t\t\t_emit(file, fn, 'load', file);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar events = 'error abort load';\n\t\t\t\t\t\t_one(file, events, function _fn(evt){\n\t\t\t\t\t\t\tif( evt.type == 'load' && apiURL ){\n\t\t\t\t\t\t\t\t/** @namespace apiURL.revokeObjectURL */\n\t\t\t\t\t\t\t\tapiURL.revokeObjectURL(file.src);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t_off(file, events, _fn);\n\t\t\t\t\t\t\t_emit(file, fn, evt, file);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( file.iframe ){\n\t\t\t\t\t_emit(file, fn, { type: 'error' });\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Created image\n\t\t\t\t\tvar img = api.newImage(file.dataURL || file);\n\t\t\t\t\tapi.readAsImage(img, fn, progress);\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Make file by name\n\t\t\t *\n\t\t\t * @param\t{String}\tname\n\t\t\t * @return\t{Array}\n\t\t\t */\n\t\t\tcheckFileObj: function (name){\n\t\t\t\tvar file = {}, accept = api.accept;\n\n\t\t\t\tif( typeof name == 'object' ){\n\t\t\t\t\tfile = name;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tfile.name = (name + '').split(/\\\\|\\//g).pop();\n\t\t\t\t}\n\n\t\t\t\tif( file.type == null ){\n\t\t\t\t\tfile.type = file.name.split('.').pop();\n\t\t\t\t}\n\n\t\t\t\t_each(accept, function (ext, type){\n\t\t\t\t\text = new RegExp(ext.replace(/\\s/g, '|'), 'i');\n\t\t\t\t\tif( ext.test(file.type) || api.ext2mime[file.type] ){\n\t\t\t\t\t\tfile.type = api.ext2mime[file.type] || (type.split('/')[0] +'/'+ file.type);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn\tfile;\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Get drop files\n\t\t\t *\n\t\t\t * @param\t{Event}\tevt\n\t\t\t * @param\t{Function} callback\n\t\t\t */\n\t\t\tgetDropFiles: function (evt, callback){\n\t\t\t\tvar\n\t\t\t\t\t files = []\n\t\t\t\t\t, all = []\n\t\t\t\t\t, items\n\t\t\t\t\t, dataTransfer = _getDataTransfer(evt)\n\t\t\t\t\t, transFiles = dataTransfer.files\n\t\t\t\t\t, transItems = dataTransfer.items\n\t\t\t\t\t, entrySupport = _isArray(transItems) && transItems[0] && _getAsEntry(transItems[0])\n\t\t\t\t\t, queue = api.queue(function (){ callback(files, all); })\n\t\t\t\t;\n\n\t\t\t\tif( entrySupport ){\n\t\t\t\t\tif( normalize && transFiles ){\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\ti = transFiles.length\n\t\t\t\t\t\t\t, file\n\t\t\t\t\t\t\t, entry\n\t\t\t\t\t\t;\n\n\t\t\t\t\t\titems = new Array(i);\n\t\t\t\t\t\twhile( i-- ){\n\t\t\t\t\t\t\tfile = transFiles[i];\n\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tentry = _getAsEntry(transItems[i]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch( err ){\n\t\t\t\t\t\t\t\tapi.log('[err] getDropFiles: ', err);\n\t\t\t\t\t\t\t\tentry = null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif( _isEntry(entry) ){\n\t\t\t\t\t\t\t\t// OSX filesystems use Unicode Normalization Form D (NFD),\n\t\t\t\t\t\t\t\t// and entry.file(…) can't read the files with the same names\n\t\t\t\t\t\t\t\tif( entry.isDirectory || (entry.isFile && file.name == file.name.normalize('NFC')) ){\n\t\t\t\t\t\t\t\t\titems[i] = entry;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\titems[i] = file;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\titems[i] = file;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\titems = transItems;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\titems = transFiles;\n\t\t\t\t}\n\n\t\t\t\t_each(items || [], function (item){\n\t\t\t\t\tqueue.inc();\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif( entrySupport && _isEntry(item) ){\n\t\t\t\t\t\t\t_readEntryAsFiles(item, function (err, entryFiles, allEntries){\n\t\t\t\t\t\t\t\tif( err ){\n\t\t\t\t\t\t\t\t\tapi.log('[err] getDropFiles:', err);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tfiles.push.apply(files, entryFiles);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tall.push.apply(all, allEntries);\n\n\t\t\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t_isRegularFile(item, function (yes, err){\n\t\t\t\t\t\t\t\tif( yes ){\n\t\t\t\t\t\t\t\t\tfiles.push(item);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\titem.error = err;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tall.push(item);\n\n\t\t\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch( err ){\n\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\tapi.log('[err] getDropFiles: ', err);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tqueue.check();\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Get file list\n\t\t\t *\n\t\t\t * @param\t{HTMLInputElement|Event}\tinput\n\t\t\t * @param\t{String|Function}\t[filter]\n\t\t\t * @param\t{Function}\t\t\t[callback]\n\t\t\t * @return\t{Array|Null}\n\t\t\t */\n\t\t\tgetFiles: function (input, filter, callback){\n\t\t\t\tvar files = [];\n\n\t\t\t\tif( callback ){\n\t\t\t\t\tapi.filterFiles(api.getFiles(input), filter, callback);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tif( input.jquery ){\n\t\t\t\t\t// jQuery object\n\t\t\t\t\tinput.each(function (){\n\t\t\t\t\t\tfiles = files.concat(api.getFiles(this));\n\t\t\t\t\t});\n\t\t\t\t\tinput\t= files;\n\t\t\t\t\tfiles\t= [];\n\t\t\t\t}\n\n\t\t\t\tif( typeof filter == 'string' ){\n\t\t\t\t\tfilter\t= api.getFilesFilter(filter);\n\t\t\t\t}\n\n\t\t\t\tif( input.originalEvent ){\n\t\t\t\t\t// jQuery event\n\t\t\t\t\tinput = _fixEvent(input.originalEvent);\n\t\t\t\t}\n\t\t\t\telse if( input.srcElement ){\n\t\t\t\t\t// IE Event\n\t\t\t\t\tinput = _fixEvent(input);\n\t\t\t\t}\n\n\n\t\t\t\tif( input.dataTransfer ){\n\t\t\t\t\t// Drag'n'Drop\n\t\t\t\t\tinput = input.dataTransfer;\n\t\t\t\t}\n\t\t\t\telse if( input.target ){\n\t\t\t\t\t// Event\n\t\t\t\t\tinput = input.target;\n\t\t\t\t}\n\n\t\t\t\tif( input.files ){\n\t\t\t\t\t// Input[type=\"file\"]\n\t\t\t\t\tfiles = input.files;\n\n\t\t\t\t\tif( !html5 ){\n\t\t\t\t\t\t// Partial support for file api\n\t\t\t\t\t\tfiles[0].blob\t= input;\n\t\t\t\t\t\tfiles[0].iframe\t= true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( !html5 && isInputFile(input) ){\n\t\t\t\t\tif( api.trim(input.value) ){\n\t\t\t\t\t\tfiles = [api.checkFileObj(input.value)];\n\t\t\t\t\t\tfiles[0].blob = input;\n\t\t\t\t\t\tfiles[0].iframe = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( _isArray(input) ){\n\t\t\t\t\tfiles\t= input;\n\t\t\t\t}\n\n\t\t\t\treturn\tapi.filter(files, function (file){ return !filter || filter.test(file.name); });\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Get total file size\n\t\t\t * @param\t{Array}\tfiles\n\t\t\t * @return\t{Number}\n\t\t\t */\n\t\t\tgetTotalSize: function (files){\n\t\t\t\tvar size = 0, i = files && files.length;\n\t\t\t\twhile( i-- ){\n\t\t\t\t\tsize += files[i].size;\n\t\t\t\t}\n\t\t\t\treturn\tsize;\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Get image information\n\t\t\t *\n\t\t\t * @param\t{File}\t\tfile\n\t\t\t * @param\t{Function}\tfn\n\t\t\t */\n\t\t\tgetInfo: function (file, fn){\n\t\t\t\tvar info = {}, readers = _infoReader.concat();\n\n\t\t\t\tif( api.isBlob(file) ){\n\t\t\t\t\t(function _next(){\n\t\t\t\t\t\tvar reader = readers.shift();\n\t\t\t\t\t\tif( reader ){\n\t\t\t\t\t\t\tif( reader.test(file.type) ){\n\t\t\t\t\t\t\t\treader(file, function (err, res){\n\t\t\t\t\t\t\t\t\tif( err ){\n\t\t\t\t\t\t\t\t\t\tfn(err);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t_extend(info, res);\n\t\t\t\t\t\t\t\t\t\t_next();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t_next();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tfn(false, info);\n\t\t\t\t\t\t}\n\t\t\t\t\t})();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tfn('not_support_info', info);\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Add information reader\n\t\t\t *\n\t\t\t * @param {RegExp} mime\n\t\t\t * @param {Function} fn\n\t\t\t */\n\t\t\taddInfoReader: function (mime, fn){\n\t\t\t\tfn.test = function (type){ return mime.test(type); };\n\t\t\t\t_infoReader.push(fn);\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Filter of array\n\t\t\t *\n\t\t\t * @param\t{Array}\t\tinput\n\t\t\t * @param\t{Function}\tfn\n\t\t\t * @return\t{Array}\n\t\t\t */\n\t\t\tfilter: function (input, fn){\n\t\t\t\tvar result = [], i = 0, n = input.length, val;\n\n\t\t\t\tfor( ; i < n; i++ ){\n\t\t\t\t\tif( i in input ){\n\t\t\t\t\t\tval = input[i];\n\t\t\t\t\t\tif( fn.call(val, val, i, input) ){\n\t\t\t\t\t\t\tresult.push(val);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn\tresult;\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Filter files\n\t\t\t *\n\t\t\t * @param\t{Array}\t\tfiles\n\t\t\t * @param\t{Function}\teachFn\n\t\t\t * @param\t{Function}\tresultFn\n\t\t\t */\n\t\t\tfilterFiles: function (files, eachFn, resultFn){\n\t\t\t\tif( files.length ){\n\t\t\t\t\t// HTML5 or Flash\n\t\t\t\t\tvar queue = files.concat(), file, result = [], deleted = [];\n\n\t\t\t\t\t(function _next(){\n\t\t\t\t\t\tif( queue.length ){\n\t\t\t\t\t\t\tfile = queue.shift();\n\t\t\t\t\t\t\tapi.getInfo(file, function (err, info){\n\t\t\t\t\t\t\t\t(eachFn(file, err ? false : info) ? result : deleted).push(file);\n\t\t\t\t\t\t\t\t_next();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresultFn(result, deleted);\n\t\t\t\t\t\t}\n\t\t\t\t\t})();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tresultFn([], files);\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\tupload: function (options){\n\t\t\t\toptions = _extend({\n\t\t\t\t\t jsonp: 'callback'\n\t\t\t\t\t, prepare: api.F\n\t\t\t\t\t, beforeupload: api.F\n\t\t\t\t\t, upload: api.F\n\t\t\t\t\t, fileupload: api.F\n\t\t\t\t\t, fileprogress: api.F\n\t\t\t\t\t, filecomplete: api.F\n\t\t\t\t\t, progress: api.F\n\t\t\t\t\t, complete: api.F\n\t\t\t\t\t, pause: api.F\n\t\t\t\t\t, imageOriginal: true\n\t\t\t\t\t, chunkSize: api.chunkSize\n\t\t\t\t\t, chunkUploadRetry: api.chunkUploadRetry\n\t\t\t\t\t, uploadRetry: api.uploadRetry\n\t\t\t\t}, options);\n\n\n\t\t\t\tif( options.imageAutoOrientation && !options.imageTransform ){\n\t\t\t\t\toptions.imageTransform = { rotate: 'auto' };\n\t\t\t\t}\n\n\n\t\t\t\tvar\n\t\t\t\t\t proxyXHR = new api.XHR(options)\n\t\t\t\t\t, dataArray = this._getFilesDataArray(options.files)\n\t\t\t\t\t, _this = this\n\t\t\t\t\t, _total = 0\n\t\t\t\t\t, _loaded = 0\n\t\t\t\t\t, _nextFile\n\t\t\t\t\t, _complete = false\n\t\t\t\t;\n\n\n\t\t\t\t// calc total size\n\t\t\t\t_each(dataArray, function (data){\n\t\t\t\t\t_total += data.size;\n\t\t\t\t});\n\n\t\t\t\t// Array of files\n\t\t\t\tproxyXHR.files = [];\n\t\t\t\t_each(dataArray, function (data){\n\t\t\t\t\tproxyXHR.files.push(data.file);\n\t\t\t\t});\n\n\t\t\t\t// Set upload status props\n\t\t\t\tproxyXHR.total\t= _total;\n\t\t\t\tproxyXHR.loaded\t= 0;\n\t\t\t\tproxyXHR.filesLeft = dataArray.length;\n\n\t\t\t\t// emit \"beforeupload\" event\n\t\t\t\toptions.beforeupload(proxyXHR, options);\n\n\t\t\t\t// Upload by file\n\t\t\t\t_nextFile = function (){\n\t\t\t\t\tvar\n\t\t\t\t\t\t data = dataArray.shift()\n\t\t\t\t\t\t, _file = data && data.file\n\t\t\t\t\t\t, _fileLoaded = false\n\t\t\t\t\t\t, _fileOptions = _simpleClone(options)\n\t\t\t\t\t;\n\n\t\t\t\t\tproxyXHR.filesLeft = dataArray.length;\n\n\t\t\t\t\tif( _file && _file.name === api.expando ){\n\t\t\t\t\t\t_file = null;\n\t\t\t\t\t\tapi.log('[warn] FileAPI.upload() — called without files');\n\t\t\t\t\t}\n\n\t\t\t\t\tif( ( proxyXHR.statusText != 'abort' || proxyXHR.current ) && data ){\n\t\t\t\t\t\t// Mark active job\n\t\t\t\t\t\t_complete = false;\n\n\t\t\t\t\t\t// Set current upload file\n\t\t\t\t\t\tproxyXHR.currentFile = _file;\n\n\t\t\t\t\t\t// Prepare file options\n\t\t\t\t\t\tif (_file && options.prepare(_file, _fileOptions) === false) {\n\t\t\t\t\t\t\t_nextFile.call(_this);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_fileOptions.file = _file;\n\n\t\t\t\t\t\t_this._getFormData(_fileOptions, data, function (form){\n\t\t\t\t\t\t\tif( !_loaded ){\n\t\t\t\t\t\t\t\t// emit \"upload\" event\n\t\t\t\t\t\t\t\toptions.upload(proxyXHR, options);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar xhr = new api.XHR(_extend({}, _fileOptions, {\n\n\t\t\t\t\t\t\t\tupload: _file ? function (){\n\t\t\t\t\t\t\t\t\t// emit \"fileupload\" event\n\t\t\t\t\t\t\t\t\toptions.fileupload(_file, xhr, _fileOptions);\n\t\t\t\t\t\t\t\t} : noop,\n\n\t\t\t\t\t\t\t\tprogress: _file ? function (evt){\n\t\t\t\t\t\t\t\t\tif( !_fileLoaded ){\n\t\t\t\t\t\t\t\t\t\t// For ignore the double calls.\n\t\t\t\t\t\t\t\t\t\t_fileLoaded = (evt.loaded === evt.total);\n\n\t\t\t\t\t\t\t\t\t\t// emit \"fileprogress\" event\n\t\t\t\t\t\t\t\t\t\toptions.fileprogress({\n\t\t\t\t\t\t\t\t\t\t\t type: 'progress'\n\t\t\t\t\t\t\t\t\t\t\t, total: data.total = evt.total\n\t\t\t\t\t\t\t\t\t\t\t, loaded: data.loaded = evt.loaded\n\t\t\t\t\t\t\t\t\t\t}, _file, xhr, _fileOptions);\n\n\t\t\t\t\t\t\t\t\t\t// emit \"progress\" event\n\t\t\t\t\t\t\t\t\t\toptions.progress({\n\t\t\t\t\t\t\t\t\t\t\t type: 'progress'\n\t\t\t\t\t\t\t\t\t\t\t, total: _total\n\t\t\t\t\t\t\t\t\t\t\t, loaded: proxyXHR.loaded = (_loaded + data.size * (evt.loaded/evt.total)) || 0\n\t\t\t\t\t\t\t\t\t\t}, _file, xhr, _fileOptions);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} : noop,\n\n\t\t\t\t\t\t\t\tcomplete: function (err){\n\t\t\t\t\t\t\t\t\t_each(_xhrPropsExport, function (name){\n\t\t\t\t\t\t\t\t\t\tproxyXHR[name] = xhr[name];\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif( _file ){\n\t\t\t\t\t\t\t\t\t\tdata.total = (data.total || data.size);\n\t\t\t\t\t\t\t\t\t\tdata.loaded\t= data.total;\n\n\t\t\t\t\t\t\t\t\t\tif( !err ) {\n\t\t\t\t\t\t\t\t\t\t\t// emulate 100% \"progress\"\n\t\t\t\t\t\t\t\t\t\t\tthis.progress(data);\n\n\t\t\t\t\t\t\t\t\t\t\t// fixed throttle event\n\t\t\t\t\t\t\t\t\t\t\t_fileLoaded = true;\n\n\t\t\t\t\t\t\t\t\t\t\t// bytes loaded\n\t\t\t\t\t\t\t\t\t\t\t_loaded += data.size; // data.size != data.total, it's desirable fix this\n\t\t\t\t\t\t\t\t\t\t\tproxyXHR.loaded = _loaded;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// emit \"filecomplete\" event\n\t\t\t\t\t\t\t\t\t\toptions.filecomplete(err, xhr, _file, _fileOptions);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// upload next file\n\t\t\t\t\t\t\t\t\tsetTimeout(function () {_nextFile.call(_this);}, 0);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})); // xhr\n\n\n\t\t\t\t\t\t\t// ...\n\t\t\t\t\t\t\tproxyXHR.abort = function (current){\n\t\t\t\t\t\t\t\tif (!current) { dataArray.length = 0; }\n\t\t\t\t\t\t\t\tthis.current = current;\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Start upload\n\t\t\t\t\t\t\txhr.send(form);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar successful = proxyXHR.status == 200 || proxyXHR.status == 201 || proxyXHR.status == 204;\n\t\t\t\t\t\toptions.complete(successful ? false : (proxyXHR.statusText || 'error'), proxyXHR, options);\n\t\t\t\t\t\t// Mark done state\n\t\t\t\t\t\t_complete = true;\n\t\t\t\t\t}\n\t\t\t\t};\n\n\n\t\t\t\t// Next tick\n\t\t\t\tsetTimeout(_nextFile, 0);\n\n\n\t\t\t\t// Append more files to the existing request\n\t\t\t\t// first - add them to the queue head/tail\n\t\t\t\tproxyXHR.append = function (files, first) {\n\t\t\t\t\tfiles = api._getFilesDataArray([].concat(files));\n\n\t\t\t\t\t_each(files, function (data) {\n\t\t\t\t\t\t_total += data.size;\n\t\t\t\t\t\tproxyXHR.files.push(data.file);\n\t\t\t\t\t\tif (first) {\n\t\t\t\t\t\t\tdataArray.unshift(data);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdataArray.push(data);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tproxyXHR.statusText = \"\";\n\n\t\t\t\t\tif( _complete ){\n\t\t\t\t\t\t_nextFile.call(_this);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\n\t\t\t\t// Removes file from queue by file reference and returns it\n\t\t\t\tproxyXHR.remove = function (file) {\n\t\t\t\t var i = dataArray.length, _file;\n\t\t\t\t while( i-- ){\n\t\t\t\t\t\tif( dataArray[i].file == file ){\n\t\t\t\t\t\t\t_file = dataArray.splice(i, 1);\n\t\t\t\t\t\t\t_total -= _file.size;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn\t_file;\n\t\t\t\t};\n\n\t\t\t\treturn proxyXHR;\n\t\t\t},\n\n\n\t\t\t_getFilesDataArray: function (data){\n\t\t\t\tvar files = [], oFiles = {};\n\n\t\t\t\tif( isInputFile(data) ){\n\t\t\t\t\tvar tmp = api.getFiles(data);\n\t\t\t\t\toFiles[data.name || 'file'] = data.getAttribute('multiple') !== null ? tmp : tmp[0];\n\t\t\t\t}\n\t\t\t\telse if( _isArray(data) && isInputFile(data[0]) ){\n\t\t\t\t\t_each(data, function (input){\n\t\t\t\t\t\toFiles[input.name || 'file'] = api.getFiles(input);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\toFiles = data;\n\t\t\t\t}\n\n\t\t\t\t_each(oFiles, function add(file, name){\n\t\t\t\t\tif( _isArray(file) ){\n\t\t\t\t\t\t_each(file, function (file){\n\t\t\t\t\t\t\tadd(file, name);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse if( file && (file.name || file.image) ){\n\t\t\t\t\t\tfiles.push({\n\t\t\t\t\t\t\t name: name\n\t\t\t\t\t\t\t, file: file\n\t\t\t\t\t\t\t, size: file.size\n\t\t\t\t\t\t\t, total: file.size\n\t\t\t\t\t\t\t, loaded: 0\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif( !files.length ){\n\t\t\t\t\t// Create fake `file` object\n\t\t\t\t\tfiles.push({ file: { name: api.expando } });\n\t\t\t\t}\n\n\t\t\t\treturn\tfiles;\n\t\t\t},\n\n\n\t\t\t_getFormData: function (options, data, fn){\n\t\t\t\tvar\n\t\t\t\t\t file = data.file\n\t\t\t\t\t, name = data.name\n\t\t\t\t\t, filename = file.name\n\t\t\t\t\t, filetype = file.type\n\t\t\t\t\t, trans = api.support.transform && options.imageTransform\n\t\t\t\t\t, Form = new api.Form\n\t\t\t\t\t, queue = api.queue(function (){ fn(Form); })\n\t\t\t\t\t, isOrignTrans = trans && _isOriginTransform(trans)\n\t\t\t\t\t, postNameConcat = api.postNameConcat\n\t\t\t\t;\n\n\t\t\t\t// Append data\n\t\t\t\t_each(options.data, function add(val, name){\n\t\t\t\t\tif( typeof val == 'object' ){\n\t\t\t\t\t\t_each(val, function (v, i){\n\t\t\t\t\t\t\tadd(v, postNameConcat(name, i));\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tForm.append(name, val);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t(function _addFile(file/**Object*/){\n\t\t\t\t\tif( file.image ){ // This is a FileAPI.Image\n\t\t\t\t\t\tqueue.inc();\n\n\t\t\t\t\t\tfile.toData(function (err, image){\n\t\t\t\t\t\t\t// @todo: требует рефакторинга и обработки ошибки\n\t\t\t\t\t\t\tif (file.file) {\n\t\t\t\t\t\t\t\timage.type = file.file.type;\n\t\t\t\t\t\t\t\timage.quality = file.matrix.quality;\n\t\t\t\t\t\t\t\tfilename = file.file && file.file.name;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfilename = filename || (new Date).getTime()+'.png';\n\n\t\t\t\t\t\t\t_addFile(image);\n\t\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse if( api.Image && trans && (/^image/.test(file.type) || _rimgcanvas.test(file.nodeName)) ){\n\t\t\t\t\t\tqueue.inc();\n\n\t\t\t\t\t\tif( isOrignTrans ){\n\t\t\t\t\t\t\t// Convert to array for transform function\n\t\t\t\t\t\t\ttrans = [trans];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tapi.Image.transform(file, trans, options.imageAutoOrientation, function (err, images){\n\t\t\t\t\t\t\tif( isOrignTrans && !err ){\n\t\t\t\t\t\t\t\tif( !dataURLtoBlob && !api.flashEngine ){\n\t\t\t\t\t\t\t\t\t// Canvas.toBlob or Flash not supported, use multipart\n\t\t\t\t\t\t\t\t\tForm.multipart = true;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tForm.append(name, images[0], filename, trans[0].type || filetype);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tvar addOrigin = 0;\n\n\t\t\t\t\t\t\t\tif( !err ){\n\t\t\t\t\t\t\t\t\t_each(images, function (image, idx){\n\t\t\t\t\t\t\t\t\t\tif( !dataURLtoBlob && !api.flashEngine ){\n\t\t\t\t\t\t\t\t\t\t\tForm.multipart = true;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif( !trans[idx].postName ){\n\t\t\t\t\t\t\t\t\t\t\taddOrigin = 1;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tForm.append(trans[idx].postName || postNameConcat(name, idx), image, filename, trans[idx].type || filetype);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif( err || options.imageOriginal ){\n\t\t\t\t\t\t\t\t\tForm.append(postNameConcat(name, (addOrigin ? 'original' : null)), file, filename, filetype);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse if( filename !== api.expando ){\n\t\t\t\t\t\tForm.append(name, file, filename);\n\t\t\t\t\t}\n\t\t\t\t})(file);\n\n\t\t\t\tqueue.check();\n\t\t\t},\n\n\n\t\t\treset: function (inp, notRemove){\n\t\t\t\tvar parent, clone;\n\n\t\t\t\tif( jQuery ){\n\t\t\t\t\tclone = jQuery(inp).clone(true).insertBefore(inp).val('')[0];\n\t\t\t\t\tif( !notRemove ){\n\t\t\t\t\t\tjQuery(inp).remove();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tparent = inp.parentNode;\n\t\t\t\t\tclone = parent.insertBefore(inp.cloneNode(true), inp);\n\t\t\t\t\tclone.value = '';\n\n\t\t\t\t\tif( !notRemove ){\n\t\t\t\t\t\tparent.removeChild(inp);\n\t\t\t\t\t}\n\n\t\t\t\t\t_each(_elEvents[api.uid(inp)], function (fns, type){\n\t\t\t\t\t\t_each(fns, function (fn){\n\t\t\t\t\t\t\t_off(inp, type, fn);\n\t\t\t\t\t\t\t_on(clone, type, fn);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn clone;\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Load remote file\n\t\t\t *\n\t\t\t * @param {String} url\n\t\t\t * @param {Function} fn\n\t\t\t * @return {XMLHttpRequest}\n\t\t\t */\n\t\t\tload: function (url, fn){\n\t\t\t\tvar xhr = api.getXHR();\n\t\t\t\tif( xhr ){\n\t\t\t\t\txhr.open('GET', url, true);\n\n\t\t\t\t\tif( xhr.overrideMimeType ){\n\t\t\t\t xhr.overrideMimeType('text/plain; charset=x-user-defined');\n\t\t\t\t\t}\n\n\t\t\t\t\t_on(xhr, 'progress', function (/**Event*/evt){\n\t\t\t\t\t\t/** @namespace evt.lengthComputable */\n\t\t\t\t\t\tif( evt.lengthComputable ){\n\t\t\t\t\t\t\tfn({ type: evt.type, loaded: evt.loaded, total: evt.total }, xhr);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\txhr.onreadystatechange = function(){\n\t\t\t\t\t\tif( xhr.readyState == 4 ){\n\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\t\t\t\t\t\t\tif( xhr.status == 200 ){\n\t\t\t\t\t\t\t\turl = url.split('/');\n\t\t\t\t\t\t\t\t/** @namespace xhr.responseBody */\n\t\t\t\t\t\t\t\tvar file = {\n\t\t\t\t\t\t\t\t name: url[url.length-1]\n\t\t\t\t\t\t\t\t\t, size: xhr.getResponseHeader('Content-Length')\n\t\t\t\t\t\t\t\t\t, type: xhr.getResponseHeader('Content-Type')\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tfile.dataURL = 'data:'+file.type+';base64,' + api.encode64(xhr.responseBody || xhr.responseText);\n\t\t\t\t\t\t\t\tfn({ type: 'load', result: file }, xhr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tfn({ type: 'error' }, xhr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t }\n\t\t\t\t\t};\n\t\t\t\t xhr.send(null);\n\t\t\t\t} else {\n\t\t\t\t\tfn({ type: 'error' });\n\t\t\t\t}\n\n\t\t\t\treturn xhr;\n\t\t\t},\n\n\t\t\tencode64: function (str){\n\t\t\t\tvar b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', outStr = '', i = 0;\n\n\t\t\t\tif( typeof str !== 'string' ){\n\t\t\t\t\tstr\t= String(str);\n\t\t\t\t}\n\n\t\t\t\twhile( i < str.length ){\n\t\t\t\t\t//all three \"& 0xff\" added below are there to fix a known bug\n\t\t\t\t\t//with bytes returned by xhr.responseText\n\t\t\t\t\tvar\n\t\t\t\t\t\t byte1 = str.charCodeAt(i++) & 0xff\n\t\t\t\t\t\t, byte2 = str.charCodeAt(i++) & 0xff\n\t\t\t\t\t\t, byte3 = str.charCodeAt(i++) & 0xff\n\t\t\t\t\t\t, enc1 = byte1 >> 2\n\t\t\t\t\t\t, enc2 = ((byte1 & 3) << 4) | (byte2 >> 4)\n\t\t\t\t\t\t, enc3, enc4\n\t\t\t\t\t;\n\n\t\t\t\t\tif( isNaN(byte2) ){\n\t\t\t\t\t\tenc3 = enc4 = 64;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tenc3 = ((byte2 & 15) << 2) | (byte3 >> 6);\n\t\t\t\t\t\tenc4 = isNaN(byte3) ? 64 : byte3 & 63;\n\t\t\t\t\t}\n\n\t\t\t\t\toutStr += b64.charAt(enc1) + b64.charAt(enc2) + b64.charAt(enc3) + b64.charAt(enc4);\n\t\t\t\t}\n\n\t\t\t\treturn outStr;\n\t\t\t}\n\n\t\t} // api\n\t;\n\n\n\tfunction _emit(target, fn, name, res, ext){\n\t\tvar evt = {\n\t\t\t type:\t\tname.type || name\n\t\t\t, target:\ttarget\n\t\t\t, result:\tres\n\t\t};\n\t\t_extend(evt, ext);\n\t\tfn(evt);\n\t}\n\n\n\tfunction _hasSupportReadAs(method){\n\t\treturn\tFileReader && !!FileReader.prototype['readAs' + method];\n\t}\n\n\n\tfunction _readAs(file, fn, method, encoding){\n\t\tif( api.isBlob(file) && _hasSupportReadAs(method) ){\n\t\t\tvar Reader = new FileReader;\n\n\t\t\t// Add event listener\n\t\t\t_on(Reader, _readerEvents, function _fn(evt){\n\t\t\t\tvar type = evt.type;\n\t\t\t\tif( type == 'progress' ){\n\t\t\t\t\t_emit(file, fn, evt, evt.target.result, { loaded: evt.loaded, total: evt.total });\n\t\t\t\t}\n\t\t\t\telse if( type == 'loadend' ){\n\t\t\t\t\t_off(Reader, _readerEvents, _fn);\n\t\t\t\t\tReader = null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t_emit(file, fn, evt, evt.target.result);\n\t\t\t\t}\n\t\t\t});\n\n\n\t\t\ttry {\n\t\t\t\t// ReadAs ...\n\t\t\t\tif( encoding ){\n\t\t\t\t\tReader['readAs' + method](file, encoding);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tReader['readAs' + method](file);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (err){\n\t\t\t\t_emit(file, fn, 'error', undef, { error: err.toString() });\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t_emit(file, fn, 'error', undef, { error: 'filreader_not_support_' + method });\n\t\t}\n\t}\n\n\n\tfunction _isRegularFile(file, callback){\n\t\t// http://stackoverflow.com/questions/8856628/detecting-folders-directories-in-javascript-filelist-objects\n\t\tif( !file.type && (safari || ((file.size % 4096) === 0 && (file.size <= 102400))) ){\n\t\t\tif( FileReader ){\n\t\t\t\ttry {\n\t\t\t\t\tvar reader = new FileReader();\n\n\t\t\t\t\t_one(reader, _readerEvents, function (evt){\n\t\t\t\t\t\tvar isFile = evt.type != 'error';\n\t\t\t\t\t\tif( isFile ){\n\t\t\t\t\t\t\tif ( reader.readyState == null || reader.readyState === reader.LOADING ) {\n\t\t\t\t\t\t\t\treader.abort();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcallback(isFile);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tcallback(false, reader.error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\treader.readAsDataURL(file);\n\t\t\t\t} catch( err ){\n\t\t\t\t\tcallback(false, err);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcallback(null, new Error('FileReader is not supported'));\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tcallback(true);\n\t\t}\n\t}\n\n\n\tfunction _isEntry(item){\n\t\treturn item && (item.isFile || item.isDirectory);\n\t}\n\n\n\tfunction _getAsEntry(item){\n\t\tvar entry;\n\t\tif( item.getAsEntry ){ entry = item.getAsEntry(); }\n\t\telse if( item.webkitGetAsEntry ){ entry = item.webkitGetAsEntry(); }\n\t\treturn\tentry;\n\t}\n\n\n\tfunction _readEntryAsFiles(entry, callback){\n\t\tif( !entry ){\n\t\t\t// error\n\t\t\tvar err = new Error('invalid entry');\n\t\t\tentry = new Object(entry);\n\t\t\tentry.error = err;\n\t\t\tcallback(err.message, [], [entry]);\n\t\t}\n\t\telse if( entry.isFile ){\n\t\t\t// Read as file\n\t\t\tentry.file(function (file){\n\t\t\t\t// success\n\t\t\t\tfile.fullPath = entry.fullPath;\n\t\t\t\tcallback(false, [file], [file]);\n\t\t\t}, function (err){\n\t\t\t\t// error\n\t\t\t\tentry.error = err;\n\t\t\t\tcallback('FileError.code: ' + err.code, [], [entry]);\n\t\t\t});\n\t\t}\n\t\telse if( entry.isDirectory ){\n\t\t\tvar\n\t\t\t\treader = entry.createReader()\n\t\t\t\t, firstAttempt = true\n\t\t\t\t, files = []\n\t\t\t\t, all = [entry]\n\t\t\t;\n\n\t\t\tvar onerror = function (err){\n\t\t\t\t// error\n\t\t\t\tentry.error = err;\n\t\t\t\tcallback('DirectoryError.code: ' + err.code, files, all);\n\t\t\t};\n\t\t\tvar ondone = function ondone(entries){\n\t\t\t\tif( firstAttempt ){\n\t\t\t\t\tfirstAttempt = false;\n\t\t\t\t\tif( !entries.length ){\n\t\t\t\t\t\tentry.error = new Error('directory is empty');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// success\n\t\t\t\tif( entries.length ){\n\t\t\t\t\tapi.afor(entries, function (next, entry){\n\t\t\t\t\t\t_readEntryAsFiles(entry, function (err, entryFiles, allEntries){\n\t\t\t\t\t\t\tif( !err ){\n\t\t\t\t\t\t\t\tfiles = files.concat(entryFiles);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tall = all.concat(allEntries);\n\n\t\t\t\t\t\t\tif( next ){\n\t\t\t\t\t\t\t\tnext();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treader.readEntries(ondone, onerror);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallback(false, files, all);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treader.readEntries(ondone, onerror);\n\t\t}\n\t\telse {\n\t\t\t_readEntryAsFiles(_getAsEntry(entry), callback);\n\t\t}\n\t}\n\n\n\tfunction _simpleClone(obj){\n\t\tvar copy = {};\n\t\t_each(obj, function (val, key){\n\t\t\tif( val && (typeof val === 'object') && (val.nodeType === void 0) ){\n\t\t\t\tval = _extend({}, val);\n\t\t\t}\n\t\t\tcopy[key] = val;\n\t\t});\n\t\treturn\tcopy;\n\t}\n\n\n\tfunction isInputFile(el){\n\t\treturn\t_rinput.test(el && el.tagName);\n\t}\n\n\n\tfunction _getDataTransfer(evt){\n\t\treturn\t(evt.originalEvent || evt || '').dataTransfer || {};\n\t}\n\n\n\tfunction _isOriginTransform(trans){\n\t\tvar key;\n\t\tfor( key in trans ){\n\t\t\tif( trans.hasOwnProperty(key) ){\n\t\t\t\tif( !(trans[key] instanceof Object || key === 'overlay' || key === 'filter') ){\n\t\t\t\t\treturn\ttrue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn\tfalse;\n\t}\n\n\n\t// Add default image info reader\n\tapi.addInfoReader(/^image/, function (file/**File*/, callback/**Function*/){\n\t\tif( !file.__dimensions ){\n\t\t\tvar defer = file.__dimensions = api.defer();\n\n\t\t\tapi.readAsImage(file, function (evt){\n\t\t\t\tvar img = evt.target;\n\t\t\t\tdefer.resolve(evt.type == 'load' ? false : 'error', {\n\t\t\t\t\t width: img.width\n\t\t\t\t\t, height: img.height\n\t\t\t\t});\n img.src = api.EMPTY_PNG;\n\t\t\t\timg = null;\n\t\t\t});\n\t\t}\n\n\t\tfile.__dimensions.then(callback);\n\t});\n\n\n\t/**\n\t * Drag'n'Drop special event\n\t *\n\t * @param\t{HTMLElement}\tel\n\t * @param\t{Function}\t\tonHover\n\t * @param\t{Function}\t\tonDrop\n\t */\n\tapi.event.dnd = function (el, onHover, onDrop){\n\t\tvar _id, _type;\n\n\t\tif( !onDrop ){\n\t\t\tonDrop = onHover;\n\t\t\tonHover = api.F;\n\t\t}\n\n\t\tif( FileReader ){\n\t\t\t// Hover\n\t\t\t_on(el, 'dragenter dragleave dragover', onHover.ff = onHover.ff || function (evt){\n\t\t\t\tvar\n\t\t\t\t\t types = _getDataTransfer(evt).types\n\t\t\t\t\t, i = types && types.length\n\t\t\t\t\t, debounceTrigger = false\n\t\t\t\t;\n\n\t\t\t\twhile( i-- ){\n\t\t\t\t\tif( ~types[i].indexOf('File') ){\n\t\t\t\t\t\tevt[preventDefault]();\n\n\t\t\t\t\t\tif( _type !== evt.type ){\n\t\t\t\t\t\t\t_type = evt.type; // Store current type of event\n\n\t\t\t\t\t\t\tif( _type != 'dragleave' ){\n\t\t\t\t\t\t\t\tonHover.call(evt[currentTarget], true, evt);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tdebounceTrigger = true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak; // exit from \"while\"\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif( debounceTrigger ){\n\t\t\t\t\tclearTimeout(_id);\n\t\t\t\t\t_id = setTimeout(function (){\n\t\t\t\t\t\tonHover.call(evt[currentTarget], _type != 'dragleave', evt);\n\t\t\t\t\t}, 50);\n\t\t\t\t}\n\t\t\t});\n\n\n\t\t\t// Drop\n\t\t\t_on(el, 'drop', onDrop.ff = onDrop.ff || function (evt){\n\t\t\t\tevt[preventDefault]();\n\n\t\t\t\t_type = 0;\n\t\t\t\tonHover.call(evt[currentTarget], false, evt);\n\n\t\t\t\tapi.getDropFiles(evt, function (files, all){\n\t\t\t\t\tonDrop.call(evt[currentTarget], files, all, evt);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tapi.log(\"Drag'n'Drop -- not supported\");\n\t\t}\n\t};\n\n\n\t/**\n\t * Remove drag'n'drop\n\t * @param\t{HTMLElement}\tel\n\t * @param\t{Function}\t\tonHover\n\t * @param\t{Function}\t\tonDrop\n\t */\n\tapi.event.dnd.off = function (el, onHover, onDrop){\n\t\t_off(el, 'dragenter dragleave dragover', onHover.ff);\n\t\t_off(el, 'drop', onDrop.ff);\n\t};\n\n\n\t// Support jQuery\n\tif( jQuery && !jQuery.fn.dnd ){\n\t\tjQuery.fn.dnd = function (onHover, onDrop){\n\t\t\treturn this.each(function (){\n\t\t\t\tapi.event.dnd(this, onHover, onDrop);\n\t\t\t});\n\t\t};\n\n\t\tjQuery.fn.offdnd = function (onHover, onDrop){\n\t\t\treturn this.each(function (){\n\t\t\t\tapi.event.dnd.off(this, onHover, onDrop);\n\t\t\t});\n\t\t};\n\t}\n\n\t// @export\n\twindow.FileAPI = _extend(api, window.FileAPI);\n\n\n\t// Debug info\n\tapi.log('FileAPI: ' + api.version);\n\tapi.log('protocol: ' + window.location.protocol);\n\tapi.log('doctype: [' + doctype.name + '] ' + doctype.publicId + ' ' + doctype.systemId);\n\n\n\t// @detect 'x-ua-compatible'\n\t_each(document.getElementsByTagName('meta'), function (meta){\n\t\tif( /x-ua-compatible/i.test(meta.getAttribute('http-equiv')) ){\n\t\t\tapi.log('meta.http-equiv: ' + meta.getAttribute('content'));\n\t\t}\n\t});\n\n\n\t// Configuration\n\ttry {\n\t\t_supportConsoleLog = !!console.log;\n\t\t_supportConsoleLogApply = !!console.log.apply;\n\t}\n\tcatch (err) {}\n\n\tif( !api.flashUrl ){ api.flashUrl = api.staticPath + 'FileAPI.flash.swf'; }\n\tif( !api.flashImageUrl ){ api.flashImageUrl = api.staticPath + 'FileAPI.flash.image.swf'; }\n\tif( !api.flashWebcamUrl ){ api.flashWebcamUrl = api.staticPath + 'FileAPI.flash.camera.swf'; }\n})(window, void 0);\n\n/*global window, FileAPI, document */\n\n(function (api, document, undef) {\n\t'use strict';\n\n\tvar\n\t\tmin = Math.min,\n\t\tround = Math.round,\n\t\tgetCanvas = function () { return document.createElement('canvas'); },\n\t\tsupport = false,\n\t\texifOrientation = {\n\t\t\t 8:\t270\n\t\t\t, 3:\t180\n\t\t\t, 6:\t90\n\t\t\t, 7:\t270\n\t\t\t, 4:\t180\n\t\t\t, 5:\t90\n\t\t}\n\t;\n\n\ttry {\n\t\tsupport = getCanvas().toDataURL('image/png').indexOf('data:image/png') > -1;\n\t}\n\tcatch (e){}\n\n\n\tfunction Image(file){\n\t\tif( file instanceof Image ){\n\t\t\tvar img = new Image(file.file);\n\t\t\tapi.extend(img.matrix, file.matrix);\n\t\t\treturn\timg;\n\t\t}\n\t\telse if( !(this instanceof Image) ){\n\t\t\treturn\tnew Image(file);\n\t\t}\n\n\t\tthis.file = file;\n\t\tthis.size = file.size || 100;\n\n\t\tthis.matrix\t= {\n\t\t\tsx: 0,\n\t\t\tsy: 0,\n\t\t\tsw: 0,\n\t\t\tsh: 0,\n\t\t\tdx: 0,\n\t\t\tdy: 0,\n\t\t\tdw: 0,\n\t\t\tdh: 0,\n\t\t\tresize: 0, // min, max OR preview\n\t\t\tdeg: 0,\n\t\t\tquality: 1, // jpeg quality\n\t\t\tfilter: 0\n\t\t};\n\t}\n\n\n\tImage.prototype = {\n\t\timage: true,\n\t\tconstructor: Image,\n\n\t\tset: function (attrs){\n\t\t\tapi.extend(this.matrix, attrs);\n\t\t\treturn\tthis;\n\t\t},\n\n\t\tcrop: function (x, y, w, h){\n\t\t\tif( w === undef ){\n\t\t\t\tw\t= x;\n\t\t\t\th\t= y;\n\t\t\t\tx = y = 0;\n\t\t\t}\n\t\t\treturn\tthis.set({ sx: x, sy: y, sw: w, sh: h || w });\n\t\t},\n\n\t\tresize: function (w, h, strategy){\n\t\t\tif( /min|max|height|width/.test(h) ){\n\t\t\t\tstrategy = h;\n\t\t\t\th = w;\n\t\t\t}\n\n\t\t\treturn\tthis.set({ dw: w, dh: h || w, resize: strategy });\n\t\t},\n\n\t\tpreview: function (w, h){\n\t\t\treturn\tthis.resize(w, h || w, 'preview');\n\t\t},\n\n\t\trotate: function (deg){\n\t\t\treturn\tthis.set({ deg: deg });\n\t\t},\n\n\t\tfilter: function (filter){\n\t\t\treturn\tthis.set({ filter: filter });\n\t\t},\n\n\t\toverlay: function (images){\n\t\t\treturn\tthis.set({ overlay: images });\n\t\t},\n\n\t\tclone: function (){\n\t\t\treturn\tnew Image(this);\n\t\t},\n\n\t\t_load: function (image, fn){\n\t\t\tvar self = this;\n\n\t\t\tif( /img|video/i.test(image.nodeName) ){\n\t\t\t\tfn.call(self, null, image);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tapi.readAsImage(image, function (evt){\n\t\t\t\t\tfn.call(self, evt.type != 'load', evt.result);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t_apply: function (image, fn){\n\t\t\tvar\n\t\t\t\t canvas = getCanvas()\n\t\t\t\t, m = this.getMatrix(image)\n\t\t\t\t, ctx = canvas.getContext('2d')\n\t\t\t\t, width = image.videoWidth || image.width\n\t\t\t\t, height = image.videoHeight || image.height\n\t\t\t\t, deg = m.deg\n\t\t\t\t, dw = m.dw\n\t\t\t\t, dh = m.dh\n\t\t\t\t, w = width\n\t\t\t\t, h = height\n\t\t\t\t, filter = m.filter\n\t\t\t\t, copy // canvas copy\n\t\t\t\t, buffer = image\n\t\t\t\t, overlay = m.overlay\n\t\t\t\t, queue = api.queue(function (){ image.src = api.EMPTY_PNG; fn(false, canvas); })\n\t\t\t\t, renderImageToCanvas = api.renderImageToCanvas\n\t\t\t;\n\n\t\t\t// Normalize angle\n\t\t\tdeg = deg - Math.floor(deg/360)*360;\n\n\t\t\t// For `renderImageToCanvas`\n\t\t\timage._type = this.file.type;\n\n\t\t\twhile(m.multipass && min(w/dw, h/dh) > 2 ){\n\t\t\t\tw = (w/2 + 0.5)|0;\n\t\t\t\th = (h/2 + 0.5)|0;\n\n\t\t\t\tcopy = getCanvas();\n\t\t\t\tcopy.width = w;\n\t\t\t\tcopy.height = h;\n\n\t\t\t\tif( buffer !== image ){\n\t\t\t\t\trenderImageToCanvas(copy, buffer, 0, 0, buffer.width, buffer.height, 0, 0, w, h);\n\t\t\t\t\tbuffer = copy;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tbuffer = copy;\n\t\t\t\t\trenderImageToCanvas(buffer, image, m.sx, m.sy, m.sw, m.sh, 0, 0, w, h);\n\t\t\t\t\tm.sx = m.sy = m.sw = m.sh = 0;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\tcanvas.width = (deg % 180) ? dh : dw;\n\t\t\tcanvas.height = (deg % 180) ? dw : dh;\n\n\t\t\tcanvas.type = m.type;\n\t\t\tcanvas.quality = m.quality;\n\n\t\t\tctx.rotate(deg * Math.PI / 180);\n\t\t\trenderImageToCanvas(ctx.canvas, buffer\n\t\t\t\t, m.sx, m.sy\n\t\t\t\t, m.sw || buffer.width\n\t\t\t\t, m.sh || buffer.height\n\t\t\t\t, (deg == 180 || deg == 270 ? -dw : 0)\n\t\t\t\t, (deg == 90 || deg == 180 ? -dh : 0)\n\t\t\t\t, dw, dh\n\t\t\t);\n\t\t\tdw = canvas.width;\n\t\t\tdh = canvas.height;\n\n\t\t\t// Apply overlay\n\t\t\toverlay && api.each([].concat(overlay), function (over){\n\t\t\t\tqueue.inc();\n\t\t\t\t// preload\n\t\t\t\tvar img = new window.Image, fn = function (){\n\t\t\t\t\tvar\n\t\t\t\t\t\t x = over.x|0\n\t\t\t\t\t\t, y = over.y|0\n\t\t\t\t\t\t, w = over.w || img.width\n\t\t\t\t\t\t, h = over.h || img.height\n\t\t\t\t\t\t, rel = over.rel\n\t\t\t\t\t;\n\n\t\t\t\t\t// center | right | left\n\t\t\t\t\tx = (rel == 1 || rel == 4 || rel == 7) ? (dw - w + x)/2 : (rel == 2 || rel == 5 || rel == 8 ? dw - (w + x) : x);\n\n\t\t\t\t\t// center | bottom | top\n\t\t\t\t\ty = (rel == 3 || rel == 4 || rel == 5) ? (dh - h + y)/2 : (rel >= 6 ? dh - (h + y) : y);\n\n\t\t\t\t\tapi.event.off(img, 'error load abort', fn);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tctx.globalAlpha = over.opacity || 1;\n\t\t\t\t\t\tctx.drawImage(img, x, y, w, h);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (er){}\n\n\t\t\t\t\tqueue.next();\n\t\t\t\t};\n\n\t\t\t\tapi.event.on(img, 'error load abort', fn);\n\t\t\t\timg.src = over.src;\n\n\t\t\t\tif( img.complete ){\n\t\t\t\t\tfn();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif( filter ){\n\t\t\t\tqueue.inc();\n\t\t\t\tImage.applyFilter(canvas, filter, queue.next);\n\t\t\t}\n\n\t\t\tqueue.check();\n\t\t},\n\n\t\tgetMatrix: function (image){\n\t\t\tvar\n\t\t\t\t m = api.extend({}, this.matrix)\n\t\t\t\t, sw = m.sw = m.sw || image.videoWidth || image.naturalWidth || image.width\n\t\t\t\t, sh = m.sh = m.sh || image.videoHeight || image.naturalHeight || image.height\n\t\t\t\t, dw = m.dw = m.dw || sw\n\t\t\t\t, dh = m.dh = m.dh || sh\n\t\t\t\t, sf = sw/sh, df = dw/dh\n\t\t\t\t, strategy = m.resize\n\t\t\t;\n\n\t\t\tif( strategy == 'preview' ){\n\t\t\t\tif( dw != sw || dh != sh ){\n\t\t\t\t\t// Make preview\n\t\t\t\t\tvar w, h;\n\n\t\t\t\t\tif( df >= sf ){\n\t\t\t\t\t\tw\t= sw;\n\t\t\t\t\t\th\t= w / df;\n\t\t\t\t\t} else {\n\t\t\t\t\t\th\t= sh;\n\t\t\t\t\t\tw\t= h * df;\n\t\t\t\t\t}\n\n\t\t\t\t\tif( w != sw || h != sh ){\n\t\t\t\t\t\tm.sx\t= ~~((sw - w)/2);\n\t\t\t\t\t\tm.sy\t= ~~((sh - h)/2);\n\t\t\t\t\t\tsw\t\t= w;\n\t\t\t\t\t\tsh\t\t= h;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if( strategy == 'height' ){\n\t\t\t\tdw = dh * sf;\n\t\t\t}\n\t\t\telse if( strategy == 'width' ){\n\t\t\t\tdh = dw / sf;\n\t\t\t}\n\t\t\telse if( strategy ){\n\t\t\t\tif( !(sw > dw || sh > dh) ){\n\t\t\t\t\tdw = sw;\n\t\t\t\t\tdh = sh;\n\t\t\t\t}\n\t\t\t\telse if( strategy == 'min' ){\n\t\t\t\t\tdw = round(sf < df ? min(sw, dw) : dh*sf);\n\t\t\t\t\tdh = round(sf < df ? dw/sf : min(sh, dh));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdw = round(sf >= df ? min(sw, dw) : dh*sf);\n\t\t\t\t\tdh = round(sf >= df ? dw/sf : min(sh, dh));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tm.sw = sw;\n\t\t\tm.sh = sh;\n\t\t\tm.dw = dw;\n\t\t\tm.dh = dh;\n\t\t\tm.multipass = api.multiPassResize;\n\t\t\treturn\tm;\n\t\t},\n\n\t\t_trans: function (fn){\n\t\t\tthis._load(this.file, function (err, image){\n\t\t\t\tif( err ){\n\t\t\t\t\tfn(err);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis._apply(image, fn);\n\t\t\t\t\t} catch (err){\n\t\t\t\t\t\tapi.log('[err] FileAPI.Image.fn._apply:', err);\n\t\t\t\t\t\tfn(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\tget: function (fn){\n\t\t\tif( api.support.transform ){\n\t\t\t\tvar _this = this, matrix = _this.matrix;\n\n\t\t\t\tif( matrix.deg == 'auto' ){\n\t\t\t\t\tapi.getInfo(_this.file, function (err, info){\n\t\t\t\t\t\t// rotate by exif orientation\n\t\t\t\t\t\tmatrix.deg = exifOrientation[info && info.exif && info.exif.Orientation] || 0;\n\t\t\t\t\t\t_this._trans(fn);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t_this._trans(fn);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tfn('not_support_transform');\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\n\t\ttoData: function (fn){\n\t\t\treturn this.get(fn);\n\t\t}\n\n\t};\n\n\n\tImage.exifOrientation = exifOrientation;\n\n\n\tImage.transform = function (file, transform, autoOrientation, fn){\n\t\tfunction _transform(err, img){\n\t\t\t// img -- info object\n\t\t\tvar\n\t\t\t\t images = {}\n\t\t\t\t, queue = api.queue(function (err){\n\t\t\t\t\tfn(err, images);\n\t\t\t\t})\n\t\t\t;\n\n\t\t\tif( !err ){\n\t\t\t\tapi.each(transform, function (params, name){\n\t\t\t\t\tif( !queue.isFail() ){\n\t\t\t\t\t\tvar ImgTrans = new Image(img.nodeType ? img : file), isFn = typeof params == 'function';\n\n\t\t\t\t\t\tif( isFn ){\n\t\t\t\t\t\t\tparams(img, ImgTrans);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( params.width ){\n\t\t\t\t\t\t\tImgTrans[params.preview ? 'preview' : 'resize'](params.width, params.height, params.strategy);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif( params.maxWidth && (img.width > params.maxWidth || img.height > params.maxHeight) ){\n\t\t\t\t\t\t\t\tImgTrans.resize(params.maxWidth, params.maxHeight, 'max');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( params.crop ){\n\t\t\t\t\t\t\tvar crop = params.crop;\n\t\t\t\t\t\t\tImgTrans.crop(crop.x|0, crop.y|0, crop.w || crop.width, crop.h || crop.height);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( params.rotate === undef && autoOrientation ){\n\t\t\t\t\t\t\tparams.rotate = 'auto';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tImgTrans.set({ type: ImgTrans.matrix.type || params.type || file.type || 'image/png' });\n\n\t\t\t\t\t\tif( !isFn ){\n\t\t\t\t\t\t\tImgTrans.set({\n\t\t\t\t\t\t\t\t deg: params.rotate\n\t\t\t\t\t\t\t\t, overlay: params.overlay\n\t\t\t\t\t\t\t\t, filter: params.filter\n\t\t\t\t\t\t\t\t, quality: params.quality || 1\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tqueue.inc();\n\t\t\t\t\t\tImgTrans.toData(function (err, image){\n\t\t\t\t\t\t\tif( err ){\n\t\t\t\t\t\t\t\tqueue.fail();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\timages[name] = image;\n\t\t\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tqueue.fail();\n\t\t\t}\n\t\t}\n\n\n\t\t// @todo: Оло-ло, нужно рефакторить это место\n\t\tif( file.width ){\n\t\t\t_transform(false, file);\n\t\t} else {\n\t\t\tapi.getInfo(file, _transform);\n\t\t}\n\t};\n\n\n\t// @const\n\tapi.each(['TOP', 'CENTER', 'BOTTOM'], function (x, i){\n\t\tapi.each(['LEFT', 'CENTER', 'RIGHT'], function (y, j){\n\t\t\tImage[x+'_'+y] = i*3 + j;\n\t\t\tImage[y+'_'+x] = i*3 + j;\n\t\t});\n\t});\n\n\n\t/**\n\t * Trabsform element to canvas\n\t *\n\t * @param {Image|HTMLVideoElement} el\n\t * @returns {Canvas}\n\t */\n\tImage.toCanvas = function(el){\n\t\tvar canvas\t\t= document.createElement('canvas');\n\t\tcanvas.width\t= el.videoWidth || el.width;\n\t\tcanvas.height\t= el.videoHeight || el.height;\n\t\tcanvas.getContext('2d').drawImage(el, 0, 0);\n\t\treturn\tcanvas;\n\t};\n\n\n\t/**\n\t * Create image from DataURL\n\t * @param {String} dataURL\n\t * @param {Object} size\n\t * @param {Function} callback\n\t */\n\tImage.fromDataURL = function (dataURL, size, callback){\n\t\tvar img = api.newImage(dataURL);\n\t\tapi.extend(img, size);\n\t\tcallback(img);\n\t};\n\n\n\t/**\n\t * Apply filter (caman.js)\n\t *\n\t * @param {Canvas|Image} canvas\n\t * @param {String|Function} filter\n\t * @param {Function} doneFn\n\t */\n\tImage.applyFilter = function (canvas, filter, doneFn){\n\t\tif( typeof filter == 'function' ){\n\t\t\tfilter(canvas, doneFn);\n\t\t}\n\t\telse if( window.Caman ){\n\t\t\t// http://camanjs.com/guides/\n\t\t\twindow.Caman(canvas.tagName == 'IMG' ? Image.toCanvas(canvas) : canvas, function (){\n\t\t\t\tif( typeof filter == 'string' ){\n\t\t\t\t\tthis[filter]();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tapi.each(filter, function (val, method){\n\t\t\t\t\t\tthis[method](val);\n\t\t\t\t\t}, this);\n\t\t\t\t}\n\t\t\t\tthis.render(doneFn);\n\t\t\t});\n\t\t}\n\t};\n\n\n\t/**\n\t * For load-image-ios.js\n\t */\n\tapi.renderImageToCanvas = function (canvas, img, sx, sy, sw, sh, dx, dy, dw, dh){\n\t\ttry {\n\t\t\treturn canvas.getContext('2d').drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh);\n\t\t} catch (ex) {\n\t\t\tapi.log('renderImageToCanvas failed');\n\t\t\tthrow ex;\n\t\t}\n\t};\n\n\n\t// @export\n\tapi.support.canvas = api.support.transform = support;\n\tapi.Image = Image;\n})(FileAPI, document);\n\n/*\n * JavaScript Load Image iOS scaling fixes 1.0.3\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * iOS image scaling fixes based on\n * https://github.com/stomita/ios-imagefile-megapixel\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/*jslint nomen: true, bitwise: true */\n/*global FileAPI, window, document */\n\n(function (factory) {\n\t'use strict';\n\tfactory(FileAPI);\n}(function (loadImage) {\n 'use strict';\n\n // Only apply fixes on the iOS platform:\n if (!window.navigator || !window.navigator.platform ||\n !(/iP(hone|od|ad)/).test(window.navigator.platform)) {\n return;\n }\n\n var originalRenderMethod = loadImage.renderImageToCanvas;\n\n // Detects subsampling in JPEG images:\n loadImage.detectSubsampling = function (img) {\n var canvas,\n context;\n if (img.width * img.height > 1024 * 1024) { // only consider mexapixel images\n canvas = document.createElement('canvas');\n canvas.width = canvas.height = 1;\n context = canvas.getContext('2d');\n context.drawImage(img, -img.width + 1, 0);\n // subsampled image becomes half smaller in rendering size.\n // check alpha channel value to confirm image is covering edge pixel or not.\n // if alpha value is 0 image is not covering, hence subsampled.\n return context.getImageData(0, 0, 1, 1).data[3] === 0;\n }\n return false;\n };\n\n // Detects vertical squash in JPEG images:\n loadImage.detectVerticalSquash = function (img, subsampled) {\n var naturalHeight = img.naturalHeight || img.height,\n canvas = document.createElement('canvas'),\n context = canvas.getContext('2d'),\n data,\n sy,\n ey,\n py,\n alpha;\n if (subsampled) {\n naturalHeight /= 2;\n }\n canvas.width = 1;\n canvas.height = naturalHeight;\n context.drawImage(img, 0, 0);\n data = context.getImageData(0, 0, 1, naturalHeight).data;\n // search image edge pixel position in case it is squashed vertically:\n sy = 0;\n ey = naturalHeight;\n py = naturalHeight;\n while (py > sy) {\n alpha = data[(py - 1) * 4 + 3];\n if (alpha === 0) {\n ey = py;\n } else {\n sy = py;\n }\n py = (ey + sy) >> 1;\n }\n return (py / naturalHeight) || 1;\n };\n\n // Renders image to canvas while working around iOS image scaling bugs:\n // https://github.com/blueimp/JavaScript-Load-Image/issues/13\n loadImage.renderImageToCanvas = function (\n canvas,\n img,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n destX,\n destY,\n destWidth,\n destHeight\n ) {\n if (img._type === 'image/jpeg') {\n var context = canvas.getContext('2d'),\n tmpCanvas = document.createElement('canvas'),\n tileSize = 1024,\n tmpContext = tmpCanvas.getContext('2d'),\n subsampled,\n vertSquashRatio,\n tileX,\n tileY;\n tmpCanvas.width = tileSize;\n tmpCanvas.height = tileSize;\n context.save();\n subsampled = loadImage.detectSubsampling(img);\n if (subsampled) {\n sourceX /= 2;\n sourceY /= 2;\n sourceWidth /= 2;\n sourceHeight /= 2;\n }\n vertSquashRatio = loadImage.detectVerticalSquash(img, subsampled);\n if (subsampled || vertSquashRatio !== 1) {\n sourceY *= vertSquashRatio;\n destWidth = Math.ceil(tileSize * destWidth / sourceWidth);\n destHeight = Math.ceil(\n tileSize * destHeight / sourceHeight / vertSquashRatio\n );\n destY = 0;\n tileY = 0;\n while (tileY < sourceHeight) {\n destX = 0;\n tileX = 0;\n while (tileX < sourceWidth) {\n tmpContext.clearRect(0, 0, tileSize, tileSize);\n tmpContext.drawImage(\n img,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n -tileX,\n -tileY,\n sourceWidth,\n sourceHeight\n );\n context.drawImage(\n tmpCanvas,\n 0,\n 0,\n tileSize,\n tileSize,\n destX,\n destY,\n destWidth,\n destHeight\n );\n tileX += tileSize;\n destX += destWidth;\n }\n tileY += tileSize;\n destY += destHeight;\n }\n context.restore();\n return canvas;\n }\n }\n return originalRenderMethod(\n canvas,\n img,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n destX,\n destY,\n destWidth,\n destHeight\n );\n };\n\n}));\n\n/*global window, FileAPI */\n\n(function (api, window){\n\t\"use strict\";\n\n\tvar\n\t\t document = window.document\n\t\t, FormData = window.FormData\n\t\t, Form = function (){ this.items = []; }\n\t\t, encodeURIComponent = window.encodeURIComponent\n\t;\n\n\n\tForm.prototype = {\n\n\t\tappend: function (name, blob, file, type){\n\t\t\tthis.items.push({\n\t\t\t\t name: name\n\t\t\t\t, blob: blob && blob.blob || (blob == void 0 ? '' : blob)\n\t\t\t\t, file: blob && (file || blob.name)\n\t\t\t\t, type:\tblob && (type || blob.type)\n\t\t\t});\n\t\t},\n\n\t\teach: function (fn){\n\t\t\tvar i = 0, n = this.items.length;\n\t\t\tfor( ; i < n; i++ ){\n\t\t\t\tfn.call(this, this.items[i]);\n\t\t\t}\n\t\t},\n\n\t\ttoData: function (fn, options){\n\t\t // allow chunked transfer if we have only one file to send\n\t\t // flag is used below and in XHR._send\n\t\t options._chunked = api.support.chunked && options.chunkSize > 0 && api.filter(this.items, function (item){ return item.file; }).length == 1;\n\n\t\t\tif( !api.support.html5 ){\n\t\t\t\tapi.log('FileAPI.Form.toHtmlData');\n\t\t\t\tthis.toHtmlData(fn);\n\t\t\t}\n\t\t\telse if( !api.formData || this.multipart || !FormData ){\n\t\t\t\tapi.log('FileAPI.Form.toMultipartData');\n\t\t\t\tthis.toMultipartData(fn);\n\t\t\t}\n\t\t\telse if( options._chunked ){\n\t\t\t\tapi.log('FileAPI.Form.toPlainData');\n\t\t\t\tthis.toPlainData(fn);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tapi.log('FileAPI.Form.toFormData');\n\t\t\t\tthis.toFormData(fn);\n\t\t\t}\n\t\t},\n\n\t\t_to: function (data, complete, next, arg){\n\t\t\tvar queue = api.queue(function (){\n\t\t\t\tcomplete(data);\n\t\t\t});\n\n\t\t\tthis.each(function (file){\n\t\t\t\ttry{\n\t\t\t\t\tnext(file, data, queue, arg);\n\t\t\t\t}\n\t\t\t\tcatch( err ){\n\t\t\t\t\tapi.log('FileAPI.Form._to: ' + err.message);\n\t\t\t\t\tcomplete(err);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tqueue.check();\n\t\t},\n\n\n\t\ttoHtmlData: function (fn){\n\t\t\tthis._to(document.createDocumentFragment(), fn, function (file, data/**DocumentFragment*/){\n\t\t\t\tvar blob = file.blob, hidden;\n\n\t\t\t\tif( file.file ){\n\t\t\t\t\tapi.reset(blob, true);\n\t\t\t\t\t// set new name\n\t\t\t\t\tblob.name = file.name;\n\t\t\t\t\tblob.disabled = false;\n\t\t\t\t\tdata.appendChild(blob);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\thidden = document.createElement('input');\n\t\t\t\t\thidden.name = file.name;\n\t\t\t\t\thidden.type = 'hidden';\n\t\t\t\t\thidden.value = blob;\n\t\t\t\t\tdata.appendChild(hidden);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\ttoPlainData: function (fn){\n\t\t\tthis._to({}, fn, function (file, data, queue){\n\t\t\t\tif( file.file ){\n\t\t\t\t\tdata.type = file.file;\n\t\t\t\t}\n\n\t\t\t\tif( file.blob.toBlob ){\n\t\t\t\t // canvas\n\t\t\t\t\tqueue.inc();\n\t\t\t\t\t_convertFile(file, function (file, blob){\n\t\t\t\t\t\tdata.name = file.name;\n\t\t\t\t\t\tdata.file = blob;\n\t\t\t\t\t\tdata.size = blob.length;\n\t\t\t\t\t\tdata.type = file.type;\n\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse if( file.file ){\n\t\t\t\t // file\n\t\t\t\t\tdata.name = file.blob.name;\n\t\t\t\t\tdata.file = file.blob;\n\t\t\t\t\tdata.size = file.blob.size;\n\t\t\t\t\tdata.type = file.type;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t // additional data\n\t\t\t\t if( !data.params ){\n\t\t\t\t data.params = [];\n\t\t\t\t }\n\t\t\t\t data.params.push(encodeURIComponent(file.name) +\"=\"+ encodeURIComponent(file.blob));\n\t\t\t\t}\n\n\t\t\t\tdata.start = -1;\n\t\t\t\tdata.end = data.file && data.file.FileAPIReadPosition || -1;\n\t\t\t\tdata.retry = 0;\n\t\t\t});\n\t\t},\n\n\t\ttoFormData: function (fn){\n\t\t\tthis._to(new FormData, fn, function (file, data, queue){\n\t\t\t\tif( file.blob && file.blob.toBlob ){\n\t\t\t\t\tqueue.inc();\n\t\t\t\t\t_convertFile(file, function (file, blob){\n\t\t\t\t\t\tdata.append(file.name, blob, file.file);\n\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse if( file.file ){\n\t\t\t\t\tdata.append(file.name, file.blob, file.file);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdata.append(file.name, file.blob);\n\t\t\t\t}\n\n\t\t\t\tif( file.file ){\n\t\t\t\t\tdata.append('_'+file.name, file.file);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\ttoMultipartData: function (fn){\n\t\t\tthis._to([], fn, function (file, data, queue, boundary){\n\t\t\t\tqueue.inc();\n\t\t\t\t_convertFile(file, function (file, blob){\n\t\t\t\t\tdata.push(\n\t\t\t\t\t\t '--_' + boundary + ('\\r\\nContent-Disposition: form-data; name=\"'+ file.name +'\"'+ (file.file ? '; filename=\"'+ encodeURIComponent(file.file) +'\"' : '')\n\t\t\t\t\t\t+ (file.file ? '\\r\\nContent-Type: '+ (file.type || 'application/octet-stream') : '')\n\t\t\t\t\t\t+ '\\r\\n'\n\t\t\t\t\t\t+ '\\r\\n'+ (file.file ? blob : encodeURIComponent(blob))\n\t\t\t\t\t\t+ '\\r\\n')\n\t\t\t\t\t);\n\t\t\t\t\tqueue.next();\n\t\t\t\t}, true);\n\t\t\t}, api.expando);\n\t\t}\n\t};\n\n\n\tfunction _convertFile(file, fn, useBinaryString){\n\t\tvar blob = file.blob, filename = file.file;\n\n\t\tif( filename ){\n\t\t\tif( !blob.toDataURL ){\n\t\t\t\t// The Blob is not an image.\n\t\t\t\tapi.readAsBinaryString(blob, function (evt){\n\t\t\t\t\tif( evt.type == 'load' ){\n\t\t\t\t\t\tfn(file, evt.result);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar\n\t\t\t\t mime = { 'image/jpeg': '.jpe?g', 'image/png': '.png' }\n\t\t\t\t, type = mime[file.type] ? file.type : 'image/png'\n\t\t\t\t, ext = mime[type] || '.png'\n\t\t\t\t, quality = blob.quality || 1\n\t\t\t;\n\n\t\t\tif( !filename.match(new RegExp(ext+'$', 'i')) ){\n\t\t\t\t// Does not change the current extension, but add a new one.\n\t\t\t\tfilename += ext.replace('?', '');\n\t\t\t}\n\n\t\t\tfile.file = filename;\n\t\t\tfile.type = type;\n\n\t\t\tif( !useBinaryString && blob.toBlob ){\n\t\t\t\tblob.toBlob(function (blob){\n\t\t\t\t\tfn(file, blob);\n\t\t\t\t}, type, quality);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tfn(file, api.toBinaryString(blob.toDataURL(type, quality)));\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tfn(file, blob);\n\t\t}\n\t}\n\n\n\t// @export\n\tapi.Form = Form;\n})(FileAPI, window);\n\n/*global window, FileAPI, Uint8Array */\n\n(function (window, api){\n\t\"use strict\";\n\n\tvar\n\t\t noop = function (){}\n\t\t, document = window.document\n\n\t\t, XHR = function (options){\n\t\t\tthis.uid = api.uid();\n\t\t\tthis.xhr = {\n\t\t\t\t abort: noop\n\t\t\t\t, getResponseHeader: noop\n\t\t\t\t, getAllResponseHeaders: noop\n\t\t\t};\n\t\t\tthis.options = options;\n\t\t},\n\n\t\t_xhrResponsePostfix = { '': 1, XML: 1, Text: 1, Body: 1 }\n\t;\n\n\n\tXHR.prototype = {\n\t\tstatus: 0,\n\t\tstatusText: '',\n\t\tconstructor: XHR,\n\n\t\tgetResponseHeader: function (name){\n\t\t\treturn this.xhr.getResponseHeader(name);\n\t\t},\n\n\t\tgetAllResponseHeaders: function (){\n\t\t\treturn this.xhr.getAllResponseHeaders() || {};\n\t\t},\n\n\t\tend: function (status, statusText){\n\t\t\tvar _this = this, options = _this.options;\n\n\t\t\t_this.end\t\t=\n\t\t\t_this.abort\t\t= noop;\n\t\t\t_this.status\t= status;\n\n\t\t\tif( statusText ){\n\t\t\t\t_this.statusText = statusText;\n\t\t\t}\n\n\t\t\tapi.log('xhr.end:', status, statusText);\n\t\t\toptions.complete(status == 200 || status == 201 ? false : _this.statusText || 'unknown', _this);\n\n\t\t\tif( _this.xhr && _this.xhr.node ){\n\t\t\t\tsetTimeout(function (){\n\t\t\t\t\tvar node = _this.xhr.node;\n\t\t\t\t\ttry { node.parentNode.removeChild(node); } catch (e){}\n\t\t\t\t\ttry { delete window[_this.uid]; } catch (e){}\n\t\t\t\t\twindow[_this.uid] = _this.xhr.node = null;\n\t\t\t\t}, 9);\n\t\t\t}\n\t\t},\n\n\t\tabort: function (){\n\t\t\tthis.end(0, 'abort');\n\n\t\t\tif( this.xhr ){\n\t\t\t\tthis.xhr.aborted = true;\n\t\t\t\tthis.xhr.abort();\n\t\t\t}\n\t\t},\n\n\t\tsend: function (FormData){\n\t\t\tvar _this = this, options = this.options;\n\n\t\t\tFormData.toData(function (data){\n\t\t\t\tif( data instanceof Error ){\n\t\t\t\t\t_this.end(0, data.message);\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\t// Start uploading\n\t\t\t\t\toptions.upload(options, _this);\n\t\t\t\t\t_this._send.call(_this, options, data);\n\t\t\t\t}\n\t\t\t}, options);\n\t\t},\n\n\t\t_send: function (options, data){\n\t\t\tvar _this = this, xhr, uid = _this.uid, onLoadFnName = _this.uid + \"Load\", url = options.url;\n\n\t\t\tapi.log('XHR._send:', data);\n\n\t\t\tif( !options.cache ){\n\t\t\t\t// No cache\n\t\t\t\turl += (~url.indexOf('?') ? '&' : '?') + api.uid();\n\t\t\t}\n\n\t\t\tif( data.nodeName ){\n\t\t\t\tvar jsonp = options.jsonp;\n\n\t\t\t\t// prepare callback in GET\n\t\t\t\turl = url.replace(/([a-z]+)=(\\?)/i, '$1='+uid);\n\n\t\t\t\t// legacy\n\t\t\t\toptions.upload(options, _this);\n\n\t\t\t\tvar\n\t\t\t\t\tonPostMessage = function (evt){\n\t\t\t\t\t\tif( ~url.indexOf(evt.origin) ){\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tvar result = api.parseJSON(evt.data);\n\t\t\t\t\t\t\t\tif( result.id == uid ){\n\t\t\t\t\t\t\t\t\tcomplete(result.status, result.statusText, result.response);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch( err ){\n\t\t\t\t\t\t\t\tcomplete(0, err.message);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t\t// jsonp-callack\n\t\t\t\t\tcomplete = window[uid] = function (status, statusText, response){\n\t\t\t\t\t\t_this.readyState\t= 4;\n\t\t\t\t\t\t_this.responseText\t= response;\n\t\t\t\t\t\t_this.end(status, statusText);\n\n\t\t\t\t\t\tapi.event.off(window, 'message', onPostMessage);\n\t\t\t\t\t\twindow[uid] = xhr = transport = window[onLoadFnName] = null;\n\t\t\t\t\t}\n\t\t\t\t;\n\n\t\t\t\t_this.xhr.abort = function (){\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif( transport.stop ){ transport.stop(); }\n\t\t\t\t\t\telse if( transport.contentWindow.stop ){ transport.contentWindow.stop(); }\n\t\t\t\t\t\telse { transport.contentWindow.document.execCommand('Stop'); }\n\t\t\t\t\t}\n\t\t\t\t\tcatch (er) {}\n\t\t\t\t\tcomplete(0, \"abort\");\n\t\t\t\t};\n\n\t\t\t\tapi.event.on(window, 'message', onPostMessage);\n\n\t\t\t\twindow[onLoadFnName] = function (){\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\t win = transport.contentWindow\n\t\t\t\t\t\t\t, doc = win.document\n\t\t\t\t\t\t\t, result = win.result || api.parseJSON(doc.body.innerHTML)\n\t\t\t\t\t\t;\n\t\t\t\t\t\tcomplete(result.status, result.statusText, result.response);\n\t\t\t\t\t} catch (e){\n\t\t\t\t\t\tapi.log('[transport.onload]', e);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\txhr = document.createElement('div');\n\t\t\t\txhr.innerHTML = '
    '\n\t\t\t\t\t\t\t+ ''\n\t\t\t\t\t\t\t+ (jsonp && (options.url.indexOf('=?') < 0) ? '' : '')\n\t\t\t\t\t\t\t+ '
    '\n\t\t\t\t;\n\n\t\t\t\t// get form-data & transport\n\t\t\t\tvar\n\t\t\t\t\t form = xhr.getElementsByTagName('form')[0]\n\t\t\t\t\t, transport = xhr.getElementsByTagName('iframe')[0]\n\t\t\t\t;\n\n\t\t\t\tform.appendChild(data);\n\n\t\t\t\tapi.log(form.parentNode.innerHTML);\n\n\t\t\t\t// append to DOM\n\t\t\t\tdocument.body.appendChild(xhr);\n\n\t\t\t\t// keep a reference to node-transport\n\t\t\t\t_this.xhr.node = xhr;\n\n\t\t\t\t// send\n\t\t\t\t_this.readyState = 2; // loaded\n\t\t\t\ttry {\n\t\t\t\t\tform.submit();\n\t\t\t\t} catch (err) {\n\t\t\t\t\tapi.log('iframe.error: ' + err);\n\t\t\t\t}\n\t\t\t\tform = null;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Clean url\n\t\t\t\turl = url.replace(/([a-z]+)=(\\?)&?/i, '');\n\n\t\t\t\t// html5\n\t\t\t\tif (this.xhr && this.xhr.aborted) {\n\t\t\t\t\tapi.log(\"Error: already aborted\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\txhr = _this.xhr = api.getXHR();\n\n\t\t\t\tif (data.params) {\n\t\t\t\t\turl += (url.indexOf('?') < 0 ? \"?\" : \"&\") + data.params.join(\"&\");\n\t\t\t\t}\n\n\t\t\t\txhr.open('POST', url, true);\n\n\t\t\t\tif( api.withCredentials ){\n\t\t\t\t\txhr.withCredentials = \"true\";\n\t\t\t\t}\n\n\t\t\t\tif( !options.headers || !options.headers['X-Requested-With'] ){\n\t\t\t\t\txhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n\t\t\t\t}\n\n\t\t\t\tapi.each(options.headers, function (val, key){\n\t\t\t\t\txhr.setRequestHeader(key, val);\n\t\t\t\t});\n\n\n\t\t\t\tif ( options._chunked ) {\n\t\t\t\t\t// chunked upload\n\t\t\t\t\tif( xhr.upload ){\n\t\t\t\t\t\txhr.upload.addEventListener('progress', api.throttle(function (/**Event*/evt){\n\t\t\t\t\t\t\tif (!data.retry) {\n\t\t\t\t\t\t\t\t// show progress only for correct chunk uploads\n\t\t\t\t\t\t\t\toptions.progress({\n\t\t\t\t\t\t\t\t\t type:\t\t\tevt.type\n\t\t\t\t\t\t\t\t\t, total:\t\tdata.size\n\t\t\t\t\t\t\t\t\t, loaded:\t\tdata.start + evt.loaded\n\t\t\t\t\t\t\t\t\t, totalSize:\tdata.size\n\t\t\t\t\t\t\t\t}, _this, options);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 100), false);\n\t\t\t\t\t}\n\n\t\t\t\t\txhr.onreadystatechange = function (){\n\t\t\t\t\t\tvar lkb = parseInt(xhr.getResponseHeader('X-Last-Known-Byte'), 10);\n\n\t\t\t\t\t\t_this.status = xhr.status;\n\t\t\t\t\t\t_this.statusText = xhr.statusText;\n\t\t\t\t\t\t_this.readyState = xhr.readyState;\n\n\t\t\t\t\t\tif( xhr.readyState == 4 ){\n\t\t\t\t\t\t\tfor( var k in _xhrResponsePostfix ){\n\t\t\t\t\t\t\t\t_this['response'+k] = xhr['response'+k];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif (!xhr.status || xhr.status - 201 > 0) {\n\t\t\t\t\t\t\t\tapi.log(\"Error: \" + xhr.status);\n\t\t\t\t\t\t\t\t// some kind of error\n\t\t\t\t\t\t\t\t// 0 - connection fail or timeout, if xhr.aborted is true, then it's not recoverable user action\n\t\t\t\t\t\t\t\t// up - server error\n\t\t\t\t\t\t\t\tif (((!xhr.status && !xhr.aborted) || 500 == xhr.status || 416 == xhr.status) && ++data.retry <= options.chunkUploadRetry) {\n\t\t\t\t\t\t\t\t\t// let's try again the same chunk\n\t\t\t\t\t\t\t\t\t// only applicable for recoverable error codes 500 && 416\n\t\t\t\t\t\t\t\t\tvar delay = xhr.status ? 0 : api.chunkNetworkDownRetryTimeout;\n\n\t\t\t\t\t\t\t\t\t// inform about recoverable problems\n\t\t\t\t\t\t\t\t\toptions.pause(data.file, options);\n\n\t\t\t\t\t\t\t\t\t// smart restart if server reports about the last known byte\n\t\t\t\t\t\t\t\t\tapi.log(\"X-Last-Known-Byte: \" + lkb);\n\t\t\t\t\t\t\t\t\tif (lkb) {\n\t\t\t\t\t\t\t\t\t\tdata.end = lkb;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tdata.end = data.start - 1;\n\t\t\t\t\t\t\t\t\t\tif (416 == xhr.status) {\n\t\t\t\t\t\t\t\t\t\t\tdata.end = data.end - options.chunkSize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t\t\t_this._send(options, data);\n\t\t\t\t\t\t\t\t\t}, delay);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// no mo retries\n\t\t\t\t\t\t\t\t\t_this.end(xhr.status);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// success\n\t\t\t\t\t\t\t\tdata.retry = 0;\n\n\t\t\t\t\t\t\t\tif (data.end == data.size - 1) {\n\t\t\t\t\t\t\t\t\t// finished\n\t\t\t\t\t\t\t\t\t_this.end(xhr.status);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// next chunk\n\n\t\t\t\t\t\t\t\t\t// shift position if server reports about the last known byte\n\t\t\t\t\t\t\t\t\tapi.log(\"X-Last-Known-Byte: \" + lkb);\n\t\t\t\t\t\t\t\t\tif (lkb) {\n\t\t\t\t\t\t\t\t\t\tdata.end = lkb;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdata.file.FileAPIReadPosition = data.end;\n\n\t\t\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t\t\t_this._send(options, data);\n\t\t\t\t\t\t\t\t\t}, 0);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\txhr = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tdata.start = data.end + 1;\n\t\t\t\t\tdata.end = Math.max(Math.min(data.start + options.chunkSize, data.size) - 1, data.start);\n\n\t\t\t\t\t// Retrieve a slice of file\n\t\t\t\t\tvar\n\t\t\t\t\t\t file = data.file\n\t\t\t\t\t\t, slice = (file.slice || file.mozSlice || file.webkitSlice).call(file, data.start, data.end + 1)\n\t\t\t\t\t;\n\n\t\t\t\t\tif( data.size && !slice.size ){\n\t\t\t\t\t\tsetTimeout(function (){\n\t\t\t\t\t\t\t_this.end(-1);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\txhr.setRequestHeader(\"Content-Range\", \"bytes \" + data.start + \"-\" + data.end + \"/\" + data.size);\n\t\t\t\t\t\txhr.setRequestHeader(\"Content-Disposition\", 'attachment; filename=' + encodeURIComponent(data.name));\n\t\t\t\t\t\txhr.setRequestHeader(\"Content-Type\", data.type || \"application/octet-stream\");\n\n\t\t\t\t\t\txhr.send(slice);\n\t\t\t\t\t}\n\n\t\t\t\t\tfile = slice = null;\n\t\t\t\t} else {\n\t\t\t\t\t// single piece upload\n\t\t\t\t\tif( xhr.upload ){\n\t\t\t\t\t\t// https://github.com/blueimp/jQuery-File-Upload/wiki/Fixing-Safari-hanging-on-very-high-speed-connections-%281Gbps%29\n\t\t\t\t\t\txhr.upload.addEventListener('progress', api.throttle(function (/**Event*/evt){\n\t\t\t\t\t\t\toptions.progress(evt, _this, options);\n\t\t\t\t\t\t}, 100), false);\n\t\t\t\t\t}\n\n\t\t\t\t\txhr.onreadystatechange = function (){\n\t\t\t\t\t\t_this.status = xhr.status;\n\t\t\t\t\t\t_this.statusText = xhr.statusText;\n\t\t\t\t\t\t_this.readyState = xhr.readyState;\n\n\t\t\t\t\t\tif( xhr.readyState == 4 ){\n\t\t\t\t\t\t\tfor( var k in _xhrResponsePostfix ){\n\t\t\t\t\t\t\t\t_this['response'+k] = xhr['response'+k];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif (!xhr.status || xhr.status > 201) {\n\t\t\t\t\t\t\t\tapi.log(\"Error: \" + xhr.status);\n\t\t\t\t\t\t\t\tif (((!xhr.status && !xhr.aborted) || 500 == xhr.status) && (options.retry || 0) < options.uploadRetry) {\n\t\t\t\t\t\t\t\t\toptions.retry = (options.retry || 0) + 1;\n\t\t\t\t\t\t\t\t\tvar delay = api.networkDownRetryTimeout;\n\n\t\t\t\t\t\t\t\t\t// inform about recoverable problems\n\t\t\t\t\t\t\t\t\toptions.pause(options.file, options);\n\n\t\t\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t\t\t_this._send(options, data);\n\t\t\t\t\t\t\t\t\t}, delay);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t//success\n\t\t\t\t\t\t\t\t\t_this.end(xhr.status);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t//success\n\t\t\t\t\t\t\t\t_this.end(xhr.status);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\txhr = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tif( api.isArray(data) ){\n\t\t\t\t\t\t// multipart\n\t\t\t\t\t\txhr.setRequestHeader('Content-Type', 'multipart/form-data; boundary=_'+api.expando);\n\t\t\t\t\t\tvar rawData = data.join('') +'--_'+ api.expando +'--';\n\n\t\t\t\t\t\t/** @namespace xhr.sendAsBinary https://developer.mozilla.org/ru/XMLHttpRequest#Sending_binary_content */\n\t\t\t\t\t\tif( xhr.sendAsBinary ){\n\t\t\t\t\t\t\txhr.sendAsBinary(rawData);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar bytes = Array.prototype.map.call(rawData, function(c){ return c.charCodeAt(0) & 0xff; });\n\t\t\t\t\t\t\txhr.send(new Uint8Array(bytes).buffer);\n\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// FormData\n\t\t\t\t\t\txhr.send(data);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\n\t// @export\n\tapi.XHR = XHR;\n})(window, FileAPI);\n\n/**\n * @class\tFileAPI.Camera\n * @author\tRubaXa\t\n * @support\tChrome 21+, FF 18+, Opera 12+\n */\n\n/*global window, FileAPI, jQuery */\n/** @namespace LocalMediaStream -- https://developer.mozilla.org/en-US/docs/WebRTC/MediaStream_API#LocalMediaStream */\n(function (window, api){\n\t\"use strict\";\n\n\tvar\n\t\tURL = window.URL || window.webkitURL,\n\n\t\tdocument = window.document,\n\t\tnavigator = window.navigator,\n\n\t\tgetMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia,\n\n\t\thtml5 = !!getMedia\n\t;\n\n\n\t// Support \"media\"\n\tapi.support.media = html5;\n\n\n\tvar Camera = function (video){\n\t\tthis.video = video;\n\t};\n\n\n\tCamera.prototype = {\n\t\tisActive: function (){\n\t\t\treturn\t!!this._active;\n\t\t},\n\n\n\t\t/**\n\t\t * Start camera streaming\n\t\t * @param\t{Function}\tcallback\n\t\t */\n\t\tstart: function (callback){\n\t\t\tvar\n\t\t\t\t _this = this\n\t\t\t\t, video = _this.video\n\t\t\t\t, _successId\n\t\t\t\t, _failId\n\t\t\t\t, _complete = function (err){\n\t\t\t\t\t_this._active = !err;\n\t\t\t\t\tclearTimeout(_failId);\n\t\t\t\t\tclearTimeout(_successId);\n//\t\t\t\t\tapi.event.off(video, 'loadedmetadata', _complete);\n\t\t\t\t\tcallback && callback(err, _this);\n\t\t\t\t}\n\t\t\t;\n\n\t\t\tgetMedia.call(navigator, { video: true }, function (stream/**LocalMediaStream*/){\n\t\t\t\t// Success\n\t\t\t\t_this.stream = stream;\n\n//\t\t\t\tapi.event.on(video, 'loadedmetadata', function (){\n//\t\t\t\t\t_complete(null);\n//\t\t\t\t});\n\n\t\t\t\t// Set camera stream\n\t\t\t\tvideo.src = URL.createObjectURL(stream);\n\n\t\t\t\t// Note: onloadedmetadata doesn't fire in Chrome when using it with getUserMedia.\n\t\t\t\t// See crbug.com/110938.\n\t\t\t\t_successId = setInterval(function (){\n\t\t\t\t\tif( _detectVideoSignal(video) ){\n\t\t\t\t\t\t_complete(null);\n\t\t\t\t\t}\n\t\t\t\t}, 1000);\n\n\t\t\t\t_failId = setTimeout(function (){\n\t\t\t\t\t_complete('timeout');\n\t\t\t\t}, 5000);\n\n\t\t\t\t// Go-go-go!\n\t\t\t\tvideo.play();\n\t\t\t}, _complete/*error*/);\n\t\t},\n\n\n\t\t/**\n\t\t * Stop camera streaming\n\t\t */\n\t\tstop: function (){\n\t\t\ttry {\n\t\t\t\tthis._active = false;\n\t\t\t\tthis.video.pause();\n\n\t\t\t\ttry {\n\t\t\t\t\tthis.stream.stop();\n\t\t\t\t} catch (err) {\n\t\t\t\t\tapi.each(this.stream.getTracks(), function (track) {\n\t\t\t\t\t\ttrack.stop();\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.stream = null;\n\t\t\t} catch( err ){\n\t\t\t\tapi.log('[FileAPI.Camera] stop:', err);\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Create screenshot\n\t\t * @return {FileAPI.Camera.Shot}\n\t\t */\n\t\tshot: function (){\n\t\t\treturn\tnew Shot(this.video);\n\t\t}\n\t};\n\n\n\t/**\n\t * Get camera element from container\n\t *\n\t * @static\n\t * @param\t{HTMLElement}\tel\n\t * @return\t{Camera}\n\t */\n\tCamera.get = function (el){\n\t\treturn\tnew Camera(el.firstChild);\n\t};\n\n\n\t/**\n\t * Publish camera element into container\n\t *\n\t * @static\n\t * @param\t{HTMLElement}\tel\n\t * @param\t{Object}\t\toptions\n\t * @param\t{Function}\t\t[callback]\n\t */\n\tCamera.publish = function (el, options, callback){\n\t\tif( typeof options == 'function' ){\n\t\t\tcallback = options;\n\t\t\toptions = {};\n\t\t}\n\n\t\t// Dimensions of \"camera\"\n\t\toptions = api.extend({}, {\n\t\t\t width:\t'100%'\n\t\t\t, height:\t'100%'\n\t\t\t, start:\ttrue\n\t\t}, options);\n\n\n\t\tif( el.jquery ){\n\t\t\t// Extract first element, from jQuery collection\n\t\t\tel = el[0];\n\t\t}\n\n\n\t\tvar doneFn = function (err){\n\t\t\tif( err ){\n\t\t\t\tcallback(err);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Get camera\n\t\t\t\tvar cam = Camera.get(el);\n\t\t\t\tif( options.start ){\n\t\t\t\t\tcam.start(callback);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallback(null, cam);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\n\t\tel.style.width\t= _px(options.width);\n\t\tel.style.height\t= _px(options.height);\n\n\n\t\tif( api.html5 && html5 ){\n\t\t\t// Create video element\n\t\t\tvar video = document.createElement('video');\n\n\t\t\t// Set dimensions\n\t\t\tvideo.style.width\t= _px(options.width);\n\t\t\tvideo.style.height\t= _px(options.height);\n\n\t\t\t// Clean container\n\t\t\tif( window.jQuery ){\n\t\t\t\tjQuery(el).empty();\n\t\t\t} else {\n\t\t\t\tel.innerHTML = '';\n\t\t\t}\n\n\t\t\t// Add \"camera\" to container\n\t\t\tel.appendChild(video);\n\n\t\t\t// end\n\t\t\tdoneFn();\n\t\t}\n\t\telse {\n\t\t\tCamera.fallback(el, options, doneFn);\n\t\t}\n\t};\n\n\n\tCamera.fallback = function (el, options, callback){\n\t\tcallback('not_support_camera');\n\t};\n\n\n\t/**\n\t * @class\tFileAPI.Camera.Shot\n\t */\n\tvar Shot = function (video){\n\t\tvar canvas\t= video.nodeName ? api.Image.toCanvas(video) : video;\n\t\tvar shot\t= api.Image(canvas);\n\t\tshot.type\t= 'image/png';\n\t\tshot.width\t= canvas.width;\n\t\tshot.height\t= canvas.height;\n\t\tshot.size\t= canvas.width * canvas.height * 4;\n\t\treturn\tshot;\n\t};\n\n\n\t/**\n\t * Add \"px\" postfix, if value is a number\n\t *\n\t * @private\n\t * @param\t{*} val\n\t * @return\t{String}\n\t */\n\tfunction _px(val){\n\t\treturn\tval >= 0 ? val + 'px' : val;\n\t}\n\n\n\t/**\n\t * @private\n\t * @param\t{HTMLVideoElement} video\n\t * @return\t{Boolean}\n\t */\n\tfunction _detectVideoSignal(video){\n\t\tvar canvas = document.createElement('canvas'), ctx, res = false;\n\t\ttry {\n\t\t\tctx = canvas.getContext('2d');\n\t\t\tctx.drawImage(video, 0, 0, 1, 1);\n\t\t\tres = ctx.getImageData(0, 0, 1, 1).data[4] != 255;\n\t\t}\n\t\tcatch( err ){\n\t\t\tapi.log('[FileAPI.Camera] detectVideoSignal:', err);\n\t\t}\n\t\treturn\tres;\n\t}\n\n\n\t// @export\n\tCamera.Shot\t= Shot;\n\tapi.Camera\t= Camera;\n})(window, FileAPI);\n\n/**\n * FileAPI fallback to Flash\n *\n * @flash-developer \"Vladimir Demidov\" \n */\n\n/*global window, FileAPI */\n(function (window, jQuery, api) {\n \"use strict\";\n\n var _each = api.each,\n _cameraQueue = [];\n\n if (api.support.flash && (api.media && (!api.support.media || !api.html5))) {\n (function () {\n function _wrap(fn) {\n var id = fn.wid = api.uid();\n api.Flash._fn[id] = fn;\n return 'FileAPI.Flash._fn.' + id;\n }\n\n\n function _unwrap(fn) {\n try {\n api.Flash._fn[fn.wid] = null;\n delete api.Flash._fn[fn.wid];\n } catch (e) {\n }\n }\n\n var flash = api.Flash;\n api.extend(api.Flash, {\n\n patchCamera: function () {\n api.Camera.fallback = function (el, options, callback) {\n var camId = api.uid();\n api.log('FlashAPI.Camera.publish: ' + camId);\n flash.publish(el, camId, api.extend(options, {\n camera: true,\n onEvent: _wrap(function _(evt) {\n if (evt.type === 'camera') {\n _unwrap(_);\n\n if (evt.error) {\n api.log('FlashAPI.Camera.publish.error: ' + evt.error);\n callback(evt.error);\n } else {\n api.log('FlashAPI.Camera.publish.success: ' + camId);\n callback(null);\n }\n }\n })\n }));\n };\n // Run\n _each(_cameraQueue, function (args) {\n api.Camera.fallback.apply(api.Camera, args);\n });\n _cameraQueue = [];\n\n\n // FileAPI.Camera:proto\n api.extend(api.Camera.prototype, {\n _id: function () {\n return this.video.id;\n },\n\n start: function (callback) {\n var _this = this;\n flash.cmd(this._id(), 'camera.on', {\n callback: _wrap(function _(evt) {\n _unwrap(_);\n\n if (evt.error) {\n api.log('FlashAPI.camera.on.error: ' + evt.error);\n callback(evt.error, _this);\n } else {\n api.log('FlashAPI.camera.on.success: ' + _this._id());\n _this._active = true;\n callback(null, _this);\n }\n })\n });\n },\n\n stop: function () {\n this._active = false;\n flash.cmd(this._id(), 'camera.off');\n },\n\n shot: function () {\n api.log('FlashAPI.Camera.shot:', this._id());\n\n var shot = api.Flash.cmd(this._id(), 'shot', {});\n shot.type = 'image/png';\n shot.flashId = this._id();\n shot.isShot = true;\n\n return new api.Camera.Shot(shot);\n }\n });\n }\n });\n\n api.Camera.fallback = function () {\n _cameraQueue.push(arguments);\n };\n\n }());\n }\n}(window, window.jQuery, FileAPI));\nif( typeof define === \"function\" && define.amd ){ define(\"FileAPI\", [], function (){ return FileAPI; }); }","/*!\n * Knockout JavaScript library v3.3.0\n * (c) Steven Sanderson - http://knockoutjs.com/\n * License: MIT (http://www.opensource.org/licenses/mit-license.php)\n */\n\n(function () {\n var DEBUG = true;\n (function (undefined) {\n // (0, eval)('this') is a robust way of getting a reference to the global object\n // For details, see http://stackoverflow.com/questions/14119988/return-this-0-evalthis/14120023#14120023\n var window = this || (0, eval)('this'),\n document = window['document'],\n navigator = window['navigator'],\n jQueryInstance = window[\"jQuery\"],\n JSON = window[\"JSON\"];\n (function (factory) {\n // Support three module loading scenarios\n if (typeof define === 'function' && define['amd']) {\n // [1] AMD anonymous module\n define(['exports', 'require'], factory);\n } else if (typeof require === 'function' && typeof exports === 'object' && typeof module === 'object') {\n // [2] CommonJS/Node.js\n factory(module['exports'] || exports); // module.exports is for Node.js\n } else {\n // [3] No module loader (plain