{"version":3,"sources":["node_modules/globalize/lib/globalize.js","facade/shared/js/jquery-touchpunch.js","facade/shared/js/js-compat.js","facade/shared/js/jquery-qstring.js","facade/shared/js/jquery-cookie.js","facade/shared/js/jquery-popup.js","facade/shared/js/jquery-sticky.js","facade/shared/js/jquery-toolaction.js","facade/shared/js/jquery-quicksearch.js","facade/shared/js/jquery-highlight.js","facade/shared/js/jquery-colorpicker.js","facade/shared/js/js-checkfiletype.js","facade/shared/js/jquery-filepicker.js","facade/shared/js/jquery-theadscroll.js","facade/shared/js/jquery-inittz.js","facade/shared/js/jquery-komodel.js","facade/shared/js/fs-initdp.js","facade/shared/js/fs-form.js","facade/shared/js/fs-initgrids.js","facade/appinit.js","facade/shared/js/fs.js"],"names":["window","undefined","Globalize","regexHex","regexInfinity","regexParseFloat","regexTrim","arrayIndexOf","endsWith","extend","isArray","isFunction","isObject","startsWith","trim","truncate","zeroPad","appendPreOrPostMatch","expandFormat","formatDate","formatNumber","getTokenRegExp","getEra","getEraYear","parseExact","parseNegativePattern","expandNumber","expandYear","getDayIndex","getMonthIndex","getParseRegExp","outOfRange","toUpper","toUpperArray","cultureSelector","prototype","init","require","module","exports","cultures","constructor","this","name","englishName","nativeName","isRTL","language","numberFormat","pattern","decimals","groupSizes","NaN","negativeInfinity","positiveInfinity","percent","symbol","currency","calendars","standard","firstDay","days","names","namesAbbr","namesShort","months","AM","PM","eras","start","offset","twoDigitYearMax","patterns","d","D","t","T","f","F","M","Y","S","messages","calendar","en","array","item","indexOf","i","length","value","substr","options","src","copy","copyIsArray","clone","target","arguments","deep","_typeof","Array","obj","Object","toString","call","replace","isNaN","Math","str","count","left","l","preMatch","strings","quoteCount","escaped","il","c","charAt","push","cal","format","len","culture","ret","convert","eraDate","Date","getTime","era","setFullYear","toLocaleString","sortable","hour","foundDay","checkedDay","converted","zeros","dayPartRegExp","tokenRegExp","padZeros","num","r","s","getPart","date","part","getFullYear","getMonth","getDate","fromGregorian","index","lastIndex","ar","exec","slice","current","clength","getDay","monthsGenitive","test","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffset","floor","abs","join","number","precision","formatInfo","curSize","curGroupIndex","factor","pow","rounded","round","isFinite","numberString","right","split","exponent","parseInt","stringIndex","sep","Infinity","nf","toUpperCase","patternParts","ticks","year","now","curr","abbr","upperDays","_upperDays","monthsGen","upperMonths","_upperMonths","upperMonthsGen","_upperMonthsGen","re","_parseRegExp","reFormat","match","expFormat","regexp","groups","add","m","parseRegExp","regExp","low","high","arr","results","parseInfo","RegExp","hourOffset","month","weekDay","min","sec","msec","tzMinOffset","pmHour","j","jl","matchGroup","matchInt","offsets","minOffset","eraName","toLowerCase","defaultYear","result","toGregorian","setHours","adjustedMin","negativePattern","neg","pos","findClosestCulture","localize","key","radix","parseFloat","addCultureInfo","cultureName","baseCultureName","info","base","isNew","lang","list","prioritized","pri","parts","sort","a","b","lastIndexOf","cultureKey","parseDate","formats","prop","signInfo","sign","intAndFraction","exponentPos","integer","fraction","decSep","decimalPos","groupSep","altGroupSep","p","expSignInfo","global","o","x","Type","_formatRE","String","compare","s1","s2","ignoreCase","concat","fromChar","ch","v","substring","_htmlDecMap","_htmlDecRE","_htmlEncMap","_htmlEncRE","contains","includes","toArray","htmlDecode","_str","htmlEncode","padLeft","padStart","padRight","padEnd","insert","remove","ua","navigator","userAgent","isIOS","$","support","touch","maxTouchPoints","msMaxTouchPoints","touchHandled","mouseProto","ui","mouse","_mouseInit","_mouseDestroy","simulateMouseEvent","event","simulatedType","originalEvent","touches","cancelable","preventDefault","changedTouches","simulatedEvent","document","createEvent","initMouseEvent","screenX","screenY","clientX","clientY","dispatchEvent","_touchStart","_mouseCapture","_touchMoved","_touchMove","_touchEnd","self","element","bind","touchstart","proxy","touchmove","touchend","unbind","Qstring","qs","parse","each","y","exists","get","defval","getValues","set","clear","location","search","de","decodeURIComponent","args","arg","encodeURIComponent","k","qstring","cookie","expires","path","domain","secure","ck","seconds","setSeconds","toUTCString","fn","popup","trigger","position","hideCallback","e","hide","data","addClass","trg","parent","on","is","my","at","of","show","jpos","top","css","setTimeout","one","placeholderKey","setPos","elt","viewPort","ofp","offsetParent","syncPos","eltRect","isDoc","anchor","anc","ancRect","width","height","outerWidth","outerHeight","pref","max","bottom","isEmptyObject","stop","placeholder","placeholderClass","visibility","display","insertAfter","css1","initPos","style","removeData","removeClass","parentNode","removeChild","delayRemoveClone","doScroll","w","scrollLeft","scrollTop","doResize","syncSize","placeholderStrategy","fixSize","cloneNode","fixHeight","menuFromObjectArray","ul","href","class","confirmation","text","attr","li","append","testContent","textContent","innerText","defaultFindHook","container","children","ww","toggle","unhighlight","highlight","tableFindHook","_children","find","suppressEnter","keyCode","sticky","fitFar","fnScroll","fnResize","off","scrollIntoView","eq","block","behavior","select","me","mePort","eltPort","dy","scrollBy","scroll","toolaction","from","appendMenuTo","body","menuFactory","button","menu","hasNonDef","defItem","defUrl","defConfirm","getMenu","closest","after","next","uniqueId","appendTo","evt","darr","pageX","confirm","stopImmediatePropagation","getButtonClickFn","jQuery","node","nodeName","className","nodeType","createElement","wordNode","splitText","wordClone","appendChild","replaceChild","childNodes","tagName","settings","firstChild","normalize","end","words","caseSensitive","wordsOnly","grep","word","map","flag","defaults","selector","quicksearch","timer","oldvalue","clearTimeout","Color","contrast","_rgba","createValidator","typeOrExt","file","type","colorpicker","namedColors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","defaultColors","cp","focus","id","random","val","tbody","tr","cc","title","textColor","color","stopPropagation","ee","sync","setUI","background","cid","tddef","label","labelMultiple","labelNoFile","labelUndo","labelRemove","labelConfirm","labelWrongType","filepicker","param","removeSelectedFile","setFileName","removePreSelectedFile","filename","fileurl","allowremove","checked","onremove","multiple","url","allowRemove","size","empty","remover","unit","ext","prepend","html","toFixed","onSetFileName","files","accept","suppressTypeCheck","invalidFile","input","acceptedTypes","validators","some","checkFileTypes","alert","dataset","message","nextSibling","n","TD","Res","btn","wrap","click","optionsDataKey","sectionClass","scrollData","THeadScroll","table","frow","scX","scY","h","zIndex","trows","rows","comparer","binarySearch","tHead","offsetHeight","rt","offsetTop","tsec","prev","fbodies","cloned","replaceAll","cells","scrollGroups","tho","thn","tro","trn","expando","resize","ensureVisible","winTop","newTop","winBottom","innerHeight","eltTop","eltBottom","grid","gridTop","gridTopOffset","tHeadScroll","th","winTZ","olsonTZ","PST8PDT","MST7MDT","CST6CDT","EST5EDT","selectByTextPrefix","oo","selected","defaultSelected","initTZ","tz","Intl","DateTimeFormat","resolvedOptions","timeZone","tzString","getTZString","originalDatePicker","ko","bindingHandlers","initKOForm","model","els","elements","el","db","getAttribute","mm","makeArray","def","observableArray","observable","applyBindings","getCalendarOptions","g","ci","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","dateFormat","$1","dddd","ddd","dd","MMMM","MMM","MM","yyyy","yyy","yy","showMonthAfterYear","getDatePickerOptions","opts","showAnim","showOn","constrainInput","buttonText","showOtherMonths","selectOtherMonths","prevText","nextText","classes","newDatePicker","apply","hasClass","allOptions","overrideDatePicker","$target","datepicker","valueAccessor","allBindingsAccessor","viewModel","bindingContext","utils","arrayMap","update","unwrap","accessor","dependsOn","opt","arrayFilter","makeFilter","filter","updateValue","elementValue","valueSetter","splice","registerEventHandler","lastModified","komodel","recordItemSelector","getHash","findLabel","toggleInvalid","lbl","invalid","form","_i","hasValue","toggleClass","lteIE7","ctx","isCollapsed","disableButtons","enable","onbeforeunload","disabled","noop","findForm","Event","postback","actions","confirmText","postbackaction","ff","actualSize","serializeArray","checkSize","maxAllowedContentLength","FS","Form","submit","postbackCell","action","currentcellid","checkRows","state","subset","not","_updateButtons","cursor","_c","ids","ele","fix","which","jt","currentTarget","nodef","currentrowid","postbackanchor","postbackRow","postbackSection","platform","metaKey","ctrlKey","isNewTab","dflt","isSafari","addScript","scripts","addScriptImpl","shift","script","onload","onreadystatechange","readyState","async","head","mq","mediaQuery","matchMedia","matches","initGrids","doNotProcessHash","scrollOptions","safariFixCallback","grids","hash","forms"],"mappings":"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wCACA,uBACA,4CACA,qBACA,6BACA,mCACA,yBACA,gDACA,kCACA,+DACA,gEACA,kDACA,+CACA,kCACA,uBACA,oBACA,gCACA,qBACA,oBACA,uBACA,uBACA,2BACA,+BACA,4DACA,uBACA,wBACA,0BACA,sBACA,sBACA,6BACA,oBACA,gDACA,sBACA,qBACA,gCACA,mCACA,mBACA,8BACA,yBACA,sBACA,sBACA,oBACA,iCACA,2BACA,iCACA,kDACA,kCACA,wBACA,qBACA,oBACA,mBACA,+BACA,sCACA,qCACA,mBACA,0BACA,0BACA,oBACA,oDACA,sBACA,sCACA,oBACA,qBACA,0BACA,wBACA,oBACA,oBACA,oCACA,oBACA,sBACA,uBACA,qBACA,uBACA,0CACA,iCACA,qBACA,0BACA,+BACA,kCACA,yBACA,sBACA,6BACA,uBACA,yCACA,+CACA,mCACA,4CACA,mBACA,8BACA,yBACA,oBACA,iCAETC,EAAU,CACN,aAAc,EACd,oBAAqB,EACrB,eAAgB,EAChB,iBAAkB,EAClB,aAAc,EACd,eAAgB,EAChB,oBAAqB,EACrB,iBAAkB,EAClB,mBAAoB,EACpB,mBAAoB,EACpB,aAAc,EACd,oBAAqB,EACrB,oBAAqB,EACrB,iBAAkB,EAClB,qBAAsB,EACtB,eAAgB,EAChB,gBAAiB,EACjB,kBAAmB,EACnB,kBAAmB,EACnB,YAAa,EACb,kBAAmB,EACnB,uBAAwB,EACxB,mBAAoB,EACpB,YAAa,EACb,oBAAqB,EACrB,iBAAkB,EAClB,qBAAsB,EACtB,sBAAuB,EACvBC,QAAW,EACX,uBAAwB,GACxB,kBAAmB,GACnB,sBAAuB,GACvB,qBAAsB,GACtB,kBAAmB,GACnB,YAAa,GACb,oBAAqB,GACrB,mBAAoB,GACpB,mBAAoB,GACpB,wBAAyB,GACzB,iBAAkB,GAClB,sBAAuB,GACvB,kBAAmB,GACnB,iBAAkB,GAClB,gBAAiB,GACjBC,QAAW,GACX,iBAAkB,GAClB,qBAAsB,GACtB,oBAAqB,GACrB,oBAAqB,GACrB,sBAAuB,GACvB,kBAAmB,GACnB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","file":"fscorlib.min.js","sourcesContent":["/*!\n * Globalize\n *\n * http://github.com/jquery/globalize\n *\n * Copyright Software Freedom Conservancy, Inc.\n * Dual licensed under the MIT or GPL Version 2 licenses.\n * http://jquery.org/license\n */\n\n(function( window, undefined ) {\n\nvar Globalize,\n\t// private variables\n\tregexHex,\n\tregexInfinity,\n\tregexParseFloat,\n\tregexTrim,\n\t// private JavaScript utility functions\n\tarrayIndexOf,\n\tendsWith,\n\textend,\n\tisArray,\n\tisFunction,\n\tisObject,\n\tstartsWith,\n\ttrim,\n\ttruncate,\n\tzeroPad,\n\t// private Globalization utility functions\n\tappendPreOrPostMatch,\n\texpandFormat,\n\tformatDate,\n\tformatNumber,\n\tgetTokenRegExp,\n\tgetEra,\n\tgetEraYear,\n\tparseExact,\n\tparseNegativePattern;\n\n// Global variable (Globalize) or CommonJS module (globalize)\nGlobalize = function( cultureSelector ) {\n\treturn new Globalize.prototype.init( cultureSelector );\n};\n\nif ( typeof require !== \"undefined\" &&\n\ttypeof exports !== \"undefined\" &&\n\ttypeof module !== \"undefined\" ) {\n\t// Assume CommonJS\n\tmodule.exports = Globalize;\n} else {\n\t// Export as global variable\n\twindow.Globalize = Globalize;\n}\n\nGlobalize.cultures = {};\n\nGlobalize.prototype = {\n\tconstructor: Globalize,\n\tinit: function( cultureSelector ) {\n\t\tthis.cultures = Globalize.cultures;\n\t\tthis.cultureSelector = cultureSelector;\n\n\t\treturn this;\n\t}\n};\nGlobalize.prototype.init.prototype = Globalize.prototype;\n\n// 1. When defining a culture, all fields are required except the ones stated as optional.\n// 2. Each culture should have a \".calendars\" object with at least one calendar named \"standard\"\n// which serves as the default calendar in use by that culture.\n// 3. Each culture should have a \".calendar\" object which is the current calendar being used,\n// it may be dynamically changed at any time to one of the calendars in \".calendars\".\nGlobalize.cultures[ \"default\" ] = {\n\t// A unique name for the culture in the form -\n\tname: \"en\",\n\t// the name of the culture in the english language\n\tenglishName: \"English\",\n\t// the name of the culture in its own language\n\tnativeName: \"English\",\n\t// whether the culture uses right-to-left text\n\tisRTL: false,\n\t// \"language\" is used for so-called \"specific\" cultures.\n\t// For example, the culture \"es-CL\" means \"Spanish, in Chili\".\n\t// It represents the Spanish-speaking culture as it is in Chili,\n\t// which might have different formatting rules or even translations\n\t// than Spanish in Spain. A \"neutral\" culture is one that is not\n\t// specific to a region. For example, the culture \"es\" is the generic\n\t// Spanish culture, which may be a more generalized version of the language\n\t// that may or may not be what a specific culture expects.\n\t// For a specific culture like \"es-CL\", the \"language\" field refers to the\n\t// neutral, generic culture information for the language it is using.\n\t// This is not always a simple matter of the string before the dash.\n\t// For example, the \"zh-Hans\" culture is netural (Simplified Chinese).\n\t// And the \"zh-SG\" culture is Simplified Chinese in Singapore, whose lanugage\n\t// field is \"zh-CHS\", not \"zh\".\n\t// This field should be used to navigate from a specific culture to it's\n\t// more general, neutral culture. If a culture is already as general as it\n\t// can get, the language may refer to itself.\n\tlanguage: \"en\",\n\t// numberFormat defines general number formatting rules, like the digits in\n\t// each grouping, the group separator, and how negative numbers are displayed.\n\tnumberFormat: {\n\t\t// [negativePattern]\n\t\t// Note, numberFormat.pattern has no \"positivePattern\" unlike percent and currency,\n\t\t// but is still defined as an array for consistency with them.\n\t\t// negativePattern: one of \"(n)|-n|- n|n-|n -\"\n\t\tpattern: [ \"-n\" ],\n\t\t// number of decimal places normally shown\n\t\tdecimals: 2,\n\t\t// string that separates number groups, as in 1,000,000\n\t\t\",\": \",\",\n\t\t// string that separates a number from the fractional portion, as in 1.99\n\t\t\".\": \".\",\n\t\t// array of numbers indicating the size of each number group.\n\t\t// TODO: more detailed description and example\n\t\tgroupSizes: [ 3 ],\n\t\t// symbol used for positive numbers\n\t\t\"+\": \"+\",\n\t\t// symbol used for negative numbers\n\t\t\"-\": \"-\",\n\t\t// symbol used for NaN (Not-A-Number)\n\t\t\"NaN\": \"NaN\",\n\t\t// symbol used for Negative Infinity\n\t\tnegativeInfinity: \"-Infinity\",\n\t\t// symbol used for Positive Infinity\n\t\tpositiveInfinity: \"Infinity\",\n\t\tpercent: {\n\t\t\t// [negativePattern, positivePattern]\n\t\t\t// negativePattern: one of \"-n %|-n%|-%n|%-n|%n-|n-%|n%-|-% n|n %-|% n-|% -n|n- %\"\n\t\t\t// positivePattern: one of \"n %|n%|%n|% n\"\n\t\t\tpattern: [ \"-n %\", \"n %\" ],\n\t\t\t// number of decimal places normally shown\n\t\t\tdecimals: 2,\n\t\t\t// array of numbers indicating the size of each number group.\n\t\t\t// TODO: more detailed description and example\n\t\t\tgroupSizes: [ 3 ],\n\t\t\t// string that separates number groups, as in 1,000,000\n\t\t\t\",\": \",\",\n\t\t\t// string that separates a number from the fractional portion, as in 1.99\n\t\t\t\".\": \".\",\n\t\t\t// symbol used to represent a percentage\n\t\t\tsymbol: \"%\"\n\t\t},\n\t\tcurrency: {\n\t\t\t// [negativePattern, positivePattern]\n\t\t\t// negativePattern: one of \"($n)|-$n|$-n|$n-|(n$)|-n$|n-$|n$-|-n $|-$ n|n $-|$ n-|$ -n|n- $|($ n)|(n $)\"\n\t\t\t// positivePattern: one of \"$n|n$|$ n|n $\"\n\t\t\tpattern: [ \"($n)\", \"$n\" ],\n\t\t\t// number of decimal places normally shown\n\t\t\tdecimals: 2,\n\t\t\t// array of numbers indicating the size of each number group.\n\t\t\t// TODO: more detailed description and example\n\t\t\tgroupSizes: [ 3 ],\n\t\t\t// string that separates number groups, as in 1,000,000\n\t\t\t\",\": \",\",\n\t\t\t// string that separates a number from the fractional portion, as in 1.99\n\t\t\t\".\": \".\",\n\t\t\t// symbol used to represent currency\n\t\t\tsymbol: \"$\"\n\t\t}\n\t},\n\t// calendars defines all the possible calendars used by this culture.\n\t// There should be at least one defined with name \"standard\", and is the default\n\t// calendar used by the culture.\n\t// A calendar contains information about how dates are formatted, information about\n\t// the calendar's eras, a standard set of the date formats,\n\t// translations for day and month names, and if the calendar is not based on the Gregorian\n\t// calendar, conversion functions to and from the Gregorian calendar.\n\tcalendars: {\n\t\tstandard: {\n\t\t\t// name that identifies the type of calendar this is\n\t\t\tname: \"Gregorian_USEnglish\",\n\t\t\t// separator of parts of a date (e.g. \"/\" in 11/05/1955)\n\t\t\t\"/\": \"/\",\n\t\t\t// separator of parts of a time (e.g. \":\" in 05:44 PM)\n\t\t\t\":\": \":\",\n\t\t\t// the first day of the week (0 = Sunday, 1 = Monday, etc)\n\t\t\tfirstDay: 0,\n\t\t\tdays: {\n\t\t\t\t// full day names\n\t\t\t\tnames: [ \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\" ],\n\t\t\t\t// abbreviated day names\n\t\t\t\tnamesAbbr: [ \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\" ],\n\t\t\t\t// shortest day names\n\t\t\t\tnamesShort: [ \"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\" ]\n\t\t\t},\n\t\t\tmonths: {\n\t\t\t\t// full month names (13 months for lunar calendards -- 13th month should be \"\" if not lunar)\n\t\t\t\tnames: [ \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", \"\" ],\n\t\t\t\t// abbreviated month names\n\t\t\t\tnamesAbbr: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"\" ]\n\t\t\t},\n\t\t\t// AM and PM designators in one of these forms:\n\t\t\t// The usual view, and the upper and lower case versions\n\t\t\t// [ standard, lowercase, uppercase ]\n\t\t\t// The culture does not use AM or PM (likely all standard date formats use 24 hour time)\n\t\t\t// null\n\t\t\tAM: [ \"AM\", \"am\", \"AM\" ],\n\t\t\tPM: [ \"PM\", \"pm\", \"PM\" ],\n\t\t\teras: [\n\t\t\t\t// eras in reverse chronological order.\n\t\t\t\t// name: the name of the era in this culture (e.g. A.D., C.E.)\n\t\t\t\t// start: when the era starts in ticks (gregorian, gmt), null if it is the earliest supported era.\n\t\t\t\t// offset: offset in years from gregorian calendar\n\t\t\t\t{\n\t\t\t\t\t\"name\": \"A.D.\",\n\t\t\t\t\t\"start\": null,\n\t\t\t\t\t\"offset\": 0\n\t\t\t\t}\n\t\t\t],\n\t\t\t// when a two digit year is given, it will never be parsed as a four digit\n\t\t\t// year greater than this year (in the appropriate era for the culture)\n\t\t\t// Set it as a full year (e.g. 2029) or use an offset format starting from\n\t\t\t// the current year: \"+19\" would correspond to 2029 if the current year 2010.\n\t\t\ttwoDigitYearMax: 2029,\n\t\t\t// set of predefined date and time patterns used by the culture\n\t\t\t// these represent the format someone in this culture would expect\n\t\t\t// to see given the portions of the date that are shown.\n\t\t\tpatterns: {\n\t\t\t\t// short date pattern\n\t\t\t\td: \"M/d/yyyy\",\n\t\t\t\t// long date pattern\n\t\t\t\tD: \"dddd, MMMM dd, yyyy\",\n\t\t\t\t// short time pattern\n\t\t\t\tt: \"h:mm tt\",\n\t\t\t\t// long time pattern\n\t\t\t\tT: \"h:mm:ss tt\",\n\t\t\t\t// long date, short time pattern\n\t\t\t\tf: \"dddd, MMMM dd, yyyy h:mm tt\",\n\t\t\t\t// long date, long time pattern\n\t\t\t\tF: \"dddd, MMMM dd, yyyy h:mm:ss tt\",\n\t\t\t\t// month/day pattern\n\t\t\t\tM: \"MMMM dd\",\n\t\t\t\t// month/year pattern\n\t\t\t\tY: \"yyyy MMMM\",\n\t\t\t\t// S is a sortable format that does not vary by culture\n\t\t\t\tS: \"yyyy\\u0027-\\u0027MM\\u0027-\\u0027dd\\u0027T\\u0027HH\\u0027:\\u0027mm\\u0027:\\u0027ss\"\n\t\t\t}\n\t\t\t// optional fields for each calendar:\n\t\t\t/*\n\t\t\tmonthsGenitive:\n\t\t\t\tSame as months but used when the day preceeds the month.\n\t\t\t\tOmit if the culture has no genitive distinction in month names.\n\t\t\t\tFor an explaination of genitive months, see http://blogs.msdn.com/michkap/archive/2004/12/25/332259.aspx\n\t\t\tconvert:\n\t\t\t\tAllows for the support of non-gregorian based calendars. This convert object is used to\n\t\t\t\tto convert a date to and from a gregorian calendar date to handle parsing and formatting.\n\t\t\t\tThe two functions:\n\t\t\t\t\tfromGregorian( date )\n\t\t\t\t\t\tGiven the date as a parameter, return an array with parts [ year, month, day ]\n\t\t\t\t\t\tcorresponding to the non-gregorian based year, month, and day for the calendar.\n\t\t\t\t\ttoGregorian( year, month, day )\n\t\t\t\t\t\tGiven the non-gregorian year, month, and day, return a new Date() object\n\t\t\t\t\t\tset to the corresponding date in the gregorian calendar.\n\t\t\t*/\n\t\t}\n\t},\n\t// For localized strings\n\tmessages: {}\n};\n\nGlobalize.cultures[ \"default\" ].calendar = Globalize.cultures[ \"default\" ].calendars.standard;\n\nGlobalize.cultures.en = Globalize.cultures[ \"default\" ];\n\nGlobalize.cultureSelector = \"en\";\n\n//\n// private variables\n//\n\nregexHex = /^0x[a-f0-9]+$/i;\nregexInfinity = /^[+\\-]?infinity$/i;\nregexParseFloat = /^[+\\-]?\\d*\\.?\\d*(e[+\\-]?\\d+)?$/;\nregexTrim = /^\\s+|\\s+$/g;\n\n//\n// private JavaScript utility functions\n//\n\narrayIndexOf = function( array, item ) {\n\tif ( array.indexOf ) {\n\t\treturn array.indexOf( item );\n\t}\n\tfor ( var i = 0, length = array.length; i < length; i++ ) {\n\t\tif ( array[i] === item ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\nendsWith = function( value, pattern ) {\n\treturn value.substr( value.length - pattern.length ) === pattern;\n};\n\nextend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( isObject(copy) || (copyIsArray = isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && isObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\nisArray = Array.isArray || function( obj ) {\n\treturn Object.prototype.toString.call( obj ) === \"[object Array]\";\n};\n\nisFunction = function( obj ) {\n\treturn Object.prototype.toString.call( obj ) === \"[object Function]\";\n};\n\nisObject = function( obj ) {\n\treturn Object.prototype.toString.call( obj ) === \"[object Object]\";\n};\n\nstartsWith = function( value, pattern ) {\n\treturn value.indexOf( pattern ) === 0;\n};\n\ntrim = function( value ) {\n\treturn ( value + \"\" ).replace( regexTrim, \"\" );\n};\n\ntruncate = function( value ) {\n\tif ( isNaN( value ) ) {\n\t\treturn NaN;\n\t}\n\treturn Math[ value < 0 ? \"ceil\" : \"floor\" ]( value );\n};\n\nzeroPad = function( str, count, left ) {\n\tvar l;\n\tfor ( l = str.length; l < count; l += 1 ) {\n\t\tstr = ( left ? (\"0\" + str) : (str + \"0\") );\n\t}\n\treturn str;\n};\n\n//\n// private Globalization utility functions\n//\n\nappendPreOrPostMatch = function( preMatch, strings ) {\n\t// appends pre- and post- token match strings while removing escaped characters.\n\t// Returns a single quote count which is used to determine if the token occurs\n\t// in a string literal.\n\tvar quoteCount = 0,\n\t\tescaped = false;\n\tfor ( var i = 0, il = preMatch.length; i < il; i++ ) {\n\t\tvar c = preMatch.charAt( i );\n\t\tswitch ( c ) {\n\t\t\tcase \"\\'\":\n\t\t\t\tif ( escaped ) {\n\t\t\t\t\tstrings.push( \"\\'\" );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tquoteCount++;\n\t\t\t\t}\n\t\t\t\tescaped = false;\n\t\t\t\tbreak;\n\t\t\tcase \"\\\\\":\n\t\t\t\tif ( escaped ) {\n\t\t\t\t\tstrings.push( \"\\\\\" );\n\t\t\t\t}\n\t\t\t\tescaped = !escaped;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tstrings.push( c );\n\t\t\t\tescaped = false;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\treturn quoteCount;\n};\n\nexpandFormat = function( cal, format ) {\n\t// expands unspecified or single character date formats into the full pattern.\n\tformat = format || \"F\";\n\tvar pattern,\n\t\tpatterns = cal.patterns,\n\t\tlen = format.length;\n\tif ( len === 1 ) {\n\t\tpattern = patterns[ format ];\n\t\tif ( !pattern ) {\n\t\t\tthrow \"Invalid date format string \\'\" + format + \"\\'.\";\n\t\t}\n\t\tformat = pattern;\n\t}\n\telse if ( len === 2 && format.charAt(0) === \"%\" ) {\n\t\t// %X escape format -- intended as a custom format string that is only one character, not a built-in format.\n\t\tformat = format.charAt( 1 );\n\t}\n\treturn format;\n};\n\nformatDate = function( value, format, culture ) {\n\tvar cal = culture.calendar,\n\t\tconvert = cal.convert,\n\t\tret;\n\n\tif ( !format || !format.length || format === \"i\" ) {\n\t\tif ( culture && culture.name.length ) {\n\t\t\tif ( convert ) {\n\t\t\t\t// non-gregorian calendar, so we cannot use built-in toLocaleString()\n\t\t\t\tret = formatDate( value, cal.patterns.F, culture );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar eraDate = new Date( value.getTime() ),\n\t\t\t\t\tera = getEra( value, cal.eras );\n\t\t\t\teraDate.setFullYear( getEraYear(value, cal, era) );\n\t\t\t\tret = eraDate.toLocaleString();\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tret = value.toString();\n\t\t}\n\t\treturn ret;\n\t}\n\n\tvar eras = cal.eras,\n\t\tsortable = format === \"s\";\n\tformat = expandFormat( cal, format );\n\n\t// Start with an empty string\n\tret = [];\n\tvar hour,\n\t\tzeros = [ \"0\", \"00\", \"000\" ],\n\t\tfoundDay,\n\t\tcheckedDay,\n\t\tdayPartRegExp = /([^d]|^)(d|dd)([^d]|$)/g,\n\t\tquoteCount = 0,\n\t\ttokenRegExp = getTokenRegExp(),\n\t\tconverted;\n\n\tfunction padZeros( num, c ) {\n\t\tvar r, s = num + \"\";\n\t\tif ( c > 1 && s.length < c ) {\n\t\t\tr = ( zeros[c - 2] + s);\n\t\t\treturn r.substr( r.length - c, c );\n\t\t}\n\t\telse {\n\t\t\tr = s;\n\t\t}\n\t\treturn r;\n\t}\n\n\tfunction hasDay() {\n\t\tif ( foundDay || checkedDay ) {\n\t\t\treturn foundDay;\n\t\t}\n\t\tfoundDay = dayPartRegExp.test( format );\n\t\tcheckedDay = true;\n\t\treturn foundDay;\n\t}\n\n\tfunction getPart( date, part ) {\n\t\tif ( converted ) {\n\t\t\treturn converted[ part ];\n\t\t}\n\t\tswitch ( part ) {\n\t\t\tcase 0:\n\t\t\t\treturn date.getFullYear();\n\t\t\tcase 1:\n\t\t\t\treturn date.getMonth();\n\t\t\tcase 2:\n\t\t\t\treturn date.getDate();\n\t\t\tdefault:\n\t\t\t\tthrow \"Invalid part value \" + part;\n\t\t}\n\t}\n\n\tif ( !sortable && convert ) {\n\t\tconverted = convert.fromGregorian( value );\n\t}\n\n\tfor ( ; ; ) {\n\t\t// Save the current index\n\t\tvar index = tokenRegExp.lastIndex,\n\t\t\t// Look for the next pattern\n\t\t\tar = tokenRegExp.exec( format );\n\n\t\t// Append the text before the pattern (or the end of the string if not found)\n\t\tvar preMatch = format.slice( index, ar ? ar.index : format.length );\n\t\tquoteCount += appendPreOrPostMatch( preMatch, ret );\n\n\t\tif ( !ar ) {\n\t\t\tbreak;\n\t\t}\n\n\t\t// do not replace any matches that occur inside a string literal.\n\t\tif ( quoteCount % 2 ) {\n\t\t\tret.push( ar[0] );\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar current = ar[ 0 ],\n\t\t\tclength = current.length;\n\n\t\tswitch ( current ) {\n\t\t\tcase \"ddd\":\n\t\t\t\t//Day of the week, as a three-letter abbreviation\n\t\t\tcase \"dddd\":\n\t\t\t\t// Day of the week, using the full name\n\t\t\t\tvar names = ( clength === 3 ) ? cal.days.namesAbbr : cal.days.names;\n\t\t\t\tret.push( names[value.getDay()] );\n\t\t\t\tbreak;\n\t\t\tcase \"d\":\n\t\t\t\t// Day of month, without leading zero for single-digit days\n\t\t\tcase \"dd\":\n\t\t\t\t// Day of month, with leading zero for single-digit days\n\t\t\t\tfoundDay = true;\n\t\t\t\tret.push(\n\t\t\t\t\tpadZeros( getPart(value, 2), clength )\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"MMM\":\n\t\t\t\t// Month, as a three-letter abbreviation\n\t\t\tcase \"MMMM\":\n\t\t\t\t// Month, using the full name\n\t\t\t\tvar part = getPart( value, 1 );\n\t\t\t\tret.push(\n\t\t\t\t\t( cal.monthsGenitive && hasDay() ) ?\n\t\t\t\t\t( cal.monthsGenitive[ clength === 3 ? \"namesAbbr\" : \"names\" ][ part ] ) :\n\t\t\t\t\t( cal.months[ clength === 3 ? \"namesAbbr\" : \"names\" ][ part ] )\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"M\":\n\t\t\t\t// Month, as digits, with no leading zero for single-digit months\n\t\t\tcase \"MM\":\n\t\t\t\t// Month, as digits, with leading zero for single-digit months\n\t\t\t\tret.push(\n\t\t\t\t\tpadZeros( getPart(value, 1) + 1, clength )\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"y\":\n\t\t\t\t// Year, as two digits, but with no leading zero for years less than 10\n\t\t\tcase \"yy\":\n\t\t\t\t// Year, as two digits, with leading zero for years less than 10\n\t\t\tcase \"yyyy\":\n\t\t\t\t// Year represented by four full digits\n\t\t\t\tpart = converted ? converted[ 0 ] : getEraYear( value, cal, getEra(value, eras), sortable );\n\t\t\t\tif ( clength < 4 ) {\n\t\t\t\t\tpart = part % 100;\n\t\t\t\t}\n\t\t\t\tret.push(\n\t\t\t\t\tpadZeros( part, clength )\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"h\":\n\t\t\t\t// Hours with no leading zero for single-digit hours, using 12-hour clock\n\t\t\tcase \"hh\":\n\t\t\t\t// Hours with leading zero for single-digit hours, using 12-hour clock\n\t\t\t\thour = value.getHours() % 12;\n\t\t\t\tif ( hour === 0 ) hour = 12;\n\t\t\t\tret.push(\n\t\t\t\t\tpadZeros( hour, clength )\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"H\":\n\t\t\t\t// Hours with no leading zero for single-digit hours, using 24-hour clock\n\t\t\tcase \"HH\":\n\t\t\t\t// Hours with leading zero for single-digit hours, using 24-hour clock\n\t\t\t\tret.push(\n\t\t\t\t\tpadZeros( value.getHours(), clength )\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"m\":\n\t\t\t\t// Minutes with no leading zero for single-digit minutes\n\t\t\tcase \"mm\":\n\t\t\t\t// Minutes with leading zero for single-digit minutes\n\t\t\t\tret.push(\n\t\t\t\t\tpadZeros( value.getMinutes(), clength )\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"s\":\n\t\t\t\t// Seconds with no leading zero for single-digit seconds\n\t\t\tcase \"ss\":\n\t\t\t\t// Seconds with leading zero for single-digit seconds\n\t\t\t\tret.push(\n\t\t\t\t\tpadZeros( value.getSeconds(), clength )\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"t\":\n\t\t\t\t// One character am/pm indicator (\"a\" or \"p\")\n\t\t\tcase \"tt\":\n\t\t\t\t// Multicharacter am/pm indicator\n\t\t\t\tpart = value.getHours() < 12 ? ( cal.AM ? cal.AM[0] : \" \" ) : ( cal.PM ? cal.PM[0] : \" \" );\n\t\t\t\tret.push( clength === 1 ? part.charAt(0) : part );\n\t\t\t\tbreak;\n\t\t\tcase \"f\":\n\t\t\t\t// Deciseconds\n\t\t\tcase \"ff\":\n\t\t\t\t// Centiseconds\n\t\t\tcase \"fff\":\n\t\t\t\t// Milliseconds\n\t\t\t\tret.push(\n\t\t\t\t\tpadZeros( value.getMilliseconds(), 3 ).substr( 0, clength )\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"z\":\n\t\t\t\t// Time zone offset, no leading zero\n\t\t\tcase \"zz\":\n\t\t\t\t// Time zone offset with leading zero\n\t\t\t\thour = value.getTimezoneOffset() / 60;\n\t\t\t\tret.push(\n\t\t\t\t\t( hour <= 0 ? \"+\" : \"-\" ) + padZeros( Math.floor(Math.abs(hour)), clength )\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"zzz\":\n\t\t\t\t// Time zone offset with leading zero\n\t\t\t\thour = value.getTimezoneOffset() / 60;\n\t\t\t\tret.push(\n\t\t\t\t\t( hour <= 0 ? \"+\" : \"-\" ) + padZeros( Math.floor(Math.abs(hour)), 2 ) +\n\t\t\t\t\t// Hard coded \":\" separator, rather than using cal.TimeSeparator\n\t\t\t\t\t// Repeated here for consistency, plus \":\" was already assumed in date parsing.\n\t\t\t\t\t\":\" + padZeros( Math.abs(value.getTimezoneOffset() % 60), 2 )\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"g\":\n\t\t\tcase \"gg\":\n\t\t\t\tif ( cal.eras ) {\n\t\t\t\t\tret.push(\n\t\t\t\t\t\tcal.eras[ getEra(value, eras) ].name\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\tcase \"/\":\n\t\t\tret.push( cal[\"/\"] );\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow \"Invalid date format pattern \\'\" + current + \"\\'.\";\n\t\t}\n\t}\n\treturn ret.join( \"\" );\n};\n\n// formatNumber\n(function() {\n\tvar expandNumber;\n\n\texpandNumber = function( number, precision, formatInfo ) {\n\t\tvar groupSizes = formatInfo.groupSizes,\n\t\t\tcurSize = groupSizes[ 0 ],\n\t\t\tcurGroupIndex = 1,\n\t\t\tfactor = Math.pow( 10, precision ),\n\t\t\trounded = Math.round( number * factor ) / factor;\n\n\t\tif ( !isFinite(rounded) ) {\n\t\t\trounded = number;\n\t\t}\n\t\tnumber = rounded;\n\n\t\tvar numberString = number+\"\",\n\t\t\tright = \"\",\n\t\t\tsplit = numberString.split( /e/i ),\n\t\t\texponent = split.length > 1 ? parseInt( split[1], 10 ) : 0;\n\t\tnumberString = split[ 0 ];\n\t\tsplit = numberString.split( \".\" );\n\t\tnumberString = split[ 0 ];\n\t\tright = split.length > 1 ? split[ 1 ] : \"\";\n\n\t\tvar l;\n\t\tif ( exponent > 0 ) {\n\t\t\tright = zeroPad( right, exponent, false );\n\t\t\tnumberString += right.slice( 0, exponent );\n\t\t\tright = right.substr( exponent );\n\t\t}\n\t\telse if ( exponent < 0 ) {\n\t\t\texponent = -exponent;\n\t\t\tnumberString = zeroPad( numberString, exponent + 1, true );\n\t\t\tright = numberString.slice( -exponent, numberString.length ) + right;\n\t\t\tnumberString = numberString.slice( 0, -exponent );\n\t\t}\n\n\t\tif ( precision > 0 ) {\n\t\t\tright = formatInfo[ \".\" ] +\n\t\t\t\t( (right.length > precision) ? right.slice(0, precision) : zeroPad(right, precision) );\n\t\t}\n\t\telse {\n\t\t\tright = \"\";\n\t\t}\n\n\t\tvar stringIndex = numberString.length - 1,\n\t\t\tsep = formatInfo[ \",\" ],\n\t\t\tret = \"\";\n\n\t\twhile ( stringIndex >= 0 ) {\n\t\t\tif ( curSize === 0 || curSize > stringIndex ) {\n\t\t\t\treturn numberString.slice( 0, stringIndex + 1 ) + ( ret.length ? (sep + ret + right) : right );\n\t\t\t}\n\t\t\tret = numberString.slice( stringIndex - curSize + 1, stringIndex + 1 ) + ( ret.length ? (sep + ret) : \"\" );\n\n\t\t\tstringIndex -= curSize;\n\n\t\t\tif ( curGroupIndex < groupSizes.length ) {\n\t\t\t\tcurSize = groupSizes[ curGroupIndex ];\n\t\t\t\tcurGroupIndex++;\n\t\t\t}\n\t\t}\n\n\t\treturn numberString.slice( 0, stringIndex + 1 ) + sep + ret + right;\n\t};\n\n\tformatNumber = function( value, format, culture ) {\n\t\tif ( !isFinite(value) ) {\n\t\t\tif ( value === Infinity ) {\n\t\t\t\treturn culture.numberFormat.positiveInfinity;\n\t\t\t}\n\t\t\tif ( value === -Infinity ) {\n\t\t\t\treturn culture.numberFormat.negativeInfinity;\n\t\t\t}\n\t\t\treturn culture.numberFormat[ \"NaN\" ];\n\t\t}\n\t\tif ( !format || format === \"i\" ) {\n\t\t\treturn culture.name.length ? value.toLocaleString() : value.toString();\n\t\t}\n\t\tformat = format || \"D\";\n\n\t\tvar nf = culture.numberFormat,\n\t\t\tnumber = Math.abs( value ),\n\t\t\tprecision = -1,\n\t\t\tpattern;\n\t\tif ( format.length > 1 ) precision = parseInt( format.slice(1), 10 );\n\n\t\tvar current = format.charAt( 0 ).toUpperCase(),\n\t\t\tformatInfo;\n\n\t\tswitch ( current ) {\n\t\t\tcase \"D\":\n\t\t\t\tpattern = \"n\";\n\t\t\t\tnumber = truncate( number );\n\t\t\t\tif ( precision !== -1 ) {\n\t\t\t\t\tnumber = zeroPad( \"\" + number, precision, true );\n\t\t\t\t}\n\t\t\t\tif ( value < 0 ) number = \"-\" + number;\n\t\t\t\tbreak;\n\t\t\tcase \"N\":\n\t\t\t\tformatInfo = nf;\n\t\t\t\t/* falls through */\n\t\t\tcase \"C\":\n\t\t\t\tformatInfo = formatInfo || nf.currency;\n\t\t\t\t/* falls through */\n\t\t\tcase \"P\":\n\t\t\t\tformatInfo = formatInfo || nf.percent;\n\t\t\t\tpattern = value < 0 ? formatInfo.pattern[ 0 ] : ( formatInfo.pattern[1] || \"n\" );\n\t\t\t\tif ( precision === -1 ) precision = formatInfo.decimals;\n\t\t\t\tnumber = expandNumber( number * (current === \"P\" ? 100 : 1), precision, formatInfo );\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow \"Bad number format specifier: \" + current;\n\t\t}\n\n\t\tvar patternParts = /n|\\$|-|%/g,\n\t\t\tret = \"\";\n\t\tfor ( ; ; ) {\n\t\t\tvar index = patternParts.lastIndex,\n\t\t\t\tar = patternParts.exec( pattern );\n\n\t\t\tret += pattern.slice( index, ar ? ar.index : pattern.length );\n\n\t\t\tif ( !ar ) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tswitch ( ar[0] ) {\n\t\t\t\tcase \"n\":\n\t\t\t\t\tret += number;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"$\":\n\t\t\t\t\tret += nf.currency.symbol;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"-\":\n\t\t\t\t\t// don't make 0 negative\n\t\t\t\t\tif ( /[1-9]/.test(number) ) {\n\t\t\t\t\t\tret += nf[ \"-\" ];\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"%\":\n\t\t\t\t\tret += nf.percent.symbol;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t};\n\n}());\n\ngetTokenRegExp = function() {\n\t// regular expression for matching date and time tokens in format strings.\n\treturn (/\\/|dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z|gg|g/g);\n};\n\ngetEra = function( date, eras ) {\n\tif ( !eras ) return 0;\n\tvar start, ticks = date.getTime();\n\tfor ( var i = 0, l = eras.length; i < l; i++ ) {\n\t\tstart = eras[ i ].start;\n\t\tif ( start === null || ticks >= start ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn 0;\n};\n\ngetEraYear = function( date, cal, era, sortable ) {\n\tvar year = date.getFullYear();\n\tif ( !sortable && cal.eras ) {\n\t\t// convert normal gregorian year to era-shifted gregorian\n\t\t// year by subtracting the era offset\n\t\tyear -= cal.eras[ era ].offset;\n\t}\n\treturn year;\n};\n\n// parseExact\n(function() {\n\tvar expandYear,\n\t\tgetDayIndex,\n\t\tgetMonthIndex,\n\t\tgetParseRegExp,\n\t\toutOfRange,\n\t\ttoUpper,\n\t\ttoUpperArray;\n\n\texpandYear = function( cal, year ) {\n\t\t// expands 2-digit year into 4 digits.\n\t\tif ( year < 100 ) {\n\t\t\tvar now = new Date(),\n\t\t\t\tera = getEra( now ),\n\t\t\t\tcurr = getEraYear( now, cal, era ),\n\t\t\t\ttwoDigitYearMax = cal.twoDigitYearMax;\n\t\t\ttwoDigitYearMax = typeof twoDigitYearMax === \"string\" ? new Date().getFullYear() % 100 + parseInt( twoDigitYearMax, 10 ) : twoDigitYearMax;\n\t\t\tyear += curr - ( curr % 100 );\n\t\t\tif ( year > twoDigitYearMax ) {\n\t\t\t\tyear -= 100;\n\t\t\t}\n\t\t}\n\t\treturn year;\n\t};\n\n\tgetDayIndex = function\t( cal, value, abbr ) {\n\t\tvar ret,\n\t\t\tdays = cal.days,\n\t\t\tupperDays = cal._upperDays;\n\t\tif ( !upperDays ) {\n\t\t\tcal._upperDays = upperDays = [\n\t\t\t\ttoUpperArray( days.names ),\n\t\t\t\ttoUpperArray( days.namesAbbr ),\n\t\t\t\ttoUpperArray( days.namesShort )\n\t\t\t];\n\t\t}\n\t\tvalue = toUpper( value );\n\t\tif ( abbr ) {\n\t\t\tret = arrayIndexOf( upperDays[1], value );\n\t\t\tif ( ret === -1 ) {\n\t\t\t\tret = arrayIndexOf( upperDays[2], value );\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tret = arrayIndexOf( upperDays[0], value );\n\t\t}\n\t\treturn ret;\n\t};\n\n\tgetMonthIndex = function( cal, value, abbr ) {\n\t\tvar months = cal.months,\n\t\t\tmonthsGen = cal.monthsGenitive || cal.months,\n\t\t\tupperMonths = cal._upperMonths,\n\t\t\tupperMonthsGen = cal._upperMonthsGen;\n\t\tif ( !upperMonths ) {\n\t\t\tcal._upperMonths = upperMonths = [\n\t\t\t\ttoUpperArray( months.names ),\n\t\t\t\ttoUpperArray( months.namesAbbr )\n\t\t\t];\n\t\t\tcal._upperMonthsGen = upperMonthsGen = [\n\t\t\t\ttoUpperArray( monthsGen.names ),\n\t\t\t\ttoUpperArray( monthsGen.namesAbbr )\n\t\t\t];\n\t\t}\n\t\tvalue = toUpper( value );\n\t\tvar i = arrayIndexOf( abbr ? upperMonths[1] : upperMonths[0], value );\n\t\tif ( i < 0 ) {\n\t\t\ti = arrayIndexOf( abbr ? upperMonthsGen[1] : upperMonthsGen[0], value );\n\t\t}\n\t\treturn i;\n\t};\n\n\tgetParseRegExp = function( cal, format ) {\n\t\t// converts a format string into a regular expression with groups that\n\t\t// can be used to extract date fields from a date string.\n\t\t// check for a cached parse regex.\n\t\tvar re = cal._parseRegExp;\n\t\tif ( !re ) {\n\t\t\tcal._parseRegExp = re = {};\n\t\t}\n\t\telse {\n\t\t\tvar reFormat = re[ format ];\n\t\t\tif ( reFormat ) {\n\t\t\t\treturn reFormat;\n\t\t\t}\n\t\t}\n\n\t\t// expand single digit formats, then escape regular expression characters.\n\t\tvar expFormat = expandFormat( cal, format ).replace( /([\\^\\$\\.\\*\\+\\?\\|\\[\\]\\(\\)\\{\\}])/g, \"\\\\\\\\$1\" ),\n\t\t\tregexp = [ \"^\" ],\n\t\t\tgroups = [],\n\t\t\tindex = 0,\n\t\t\tquoteCount = 0,\n\t\t\ttokenRegExp = getTokenRegExp(),\n\t\t\tmatch;\n\n\t\t// iterate through each date token found.\n\t\twhile ( (match = tokenRegExp.exec(expFormat)) !== null ) {\n\t\t\tvar preMatch = expFormat.slice( index, match.index );\n\t\t\tindex = tokenRegExp.lastIndex;\n\n\t\t\t// don't replace any matches that occur inside a string literal.\n\t\t\tquoteCount += appendPreOrPostMatch( preMatch, regexp );\n\t\t\tif ( quoteCount % 2 ) {\n\t\t\t\tregexp.push( match[0] );\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// add a regex group for the token.\n\t\t\tvar m = match[ 0 ],\n\t\t\t\tlen = m.length,\n\t\t\t\tadd;\n\t\t\tswitch ( m ) {\n\t\t\t\tcase \"dddd\": case \"ddd\":\n\t\t\t\tcase \"MMMM\": case \"MMM\":\n\t\t\t\tcase \"gg\": case \"g\":\n\t\t\t\t\tadd = \"(\\\\D+)\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"tt\": case \"t\":\n\t\t\t\t\tadd = \"(\\\\D*)\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"yyyy\":\n\t\t\t\tcase \"fff\":\n\t\t\t\tcase \"ff\":\n\t\t\t\tcase \"f\":\n\t\t\t\t\tadd = \"(\\\\d{\" + len + \"})\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"dd\": case \"d\":\n\t\t\t\tcase \"MM\": case \"M\":\n\t\t\t\tcase \"yy\": case \"y\":\n\t\t\t\tcase \"HH\": case \"H\":\n\t\t\t\tcase \"hh\": case \"h\":\n\t\t\t\tcase \"mm\": case \"m\":\n\t\t\t\tcase \"ss\": case \"s\":\n\t\t\t\t\tadd = \"(\\\\d\\\\d?)\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"zzz\":\n\t\t\t\t\tadd = \"([+-]?\\\\d\\\\d?:\\\\d{2})\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"zz\": case \"z\":\n\t\t\t\t\tadd = \"([+-]?\\\\d\\\\d?)\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"/\":\n\t\t\t\t\tadd = \"(\\\\/)\";\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow \"Invalid date format pattern \\'\" + m + \"\\'.\";\n\t\t\t}\n\t\t\tif ( add ) {\n\t\t\t\tregexp.push( add );\n\t\t\t}\n\t\t\tgroups.push( match[0] );\n\t\t}\n\t\tappendPreOrPostMatch( expFormat.slice(index), regexp );\n\t\tregexp.push( \"$\" );\n\n\t\t// allow whitespace to differ when matching formats.\n\t\tvar regexpStr = regexp.join( \"\" ).replace( /\\s+/g, \"\\\\s+\" ),\n\t\t\tparseRegExp = { \"regExp\": regexpStr, \"groups\": groups };\n\n\t\t// cache the regex for this format.\n\t\treturn re[ format ] = parseRegExp;\n\t};\n\n\toutOfRange = function( value, low, high ) {\n\t\treturn value < low || value > high;\n\t};\n\n\ttoUpper = function( value ) {\n\t\t// \"he-IL\" has non-breaking space in weekday names.\n\t\treturn value.split( \"\\u00A0\" ).join( \" \" ).toUpperCase();\n\t};\n\n\ttoUpperArray = function( arr ) {\n\t\tvar results = [];\n\t\tfor ( var i = 0, l = arr.length; i < l; i++ ) {\n\t\t\tresults[ i ] = toUpper( arr[i] );\n\t\t}\n\t\treturn results;\n\t};\n\n\tparseExact = function( value, format, culture ) {\n\t\t// try to parse the date string by matching against the format string\n\t\t// while using the specified culture for date field names.\n\t\tvalue = trim( value );\n\t\tvar cal = culture.calendar,\n\t\t\t// convert date formats into regular expressions with groupings.\n\t\t\t// use the regexp to determine the input format and extract the date fields.\n\t\t\tparseInfo = getParseRegExp( cal, format ),\n\t\t\tmatch = new RegExp( parseInfo.regExp ).exec( value );\n\t\tif ( match === null ) {\n\t\t\treturn null;\n\t\t}\n\t\t// found a date format that matches the input.\n\t\tvar groups = parseInfo.groups,\n\t\t\tera = null, year = null, month = null, date = null, weekDay = null,\n\t\t\thour = 0, hourOffset, min = 0, sec = 0, msec = 0, tzMinOffset = null,\n\t\t\tpmHour = false;\n\t\t// iterate the format groups to extract and set the date fields.\n\t\tfor ( var j = 0, jl = groups.length; j < jl; j++ ) {\n\t\t\tvar matchGroup = match[ j + 1 ];\n\t\t\tif ( matchGroup ) {\n\t\t\t\tvar current = groups[ j ],\n\t\t\t\t\tclength = current.length,\n\t\t\t\t\tmatchInt = parseInt( matchGroup, 10 );\n\t\t\t\tswitch ( current ) {\n\t\t\t\t\tcase \"dd\": case \"d\":\n\t\t\t\t\t\t// Day of month.\n\t\t\t\t\t\tdate = matchInt;\n\t\t\t\t\t\t// check that date is generally in valid range, also checking overflow below.\n\t\t\t\t\t\tif ( outOfRange(date, 1, 31) ) return null;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"MMM\": case \"MMMM\":\n\t\t\t\t\t\tmonth = getMonthIndex( cal, matchGroup, clength === 3 );\n\t\t\t\t\t\tif ( outOfRange(month, 0, 11) ) return null;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"M\": case \"MM\":\n\t\t\t\t\t\t// Month.\n\t\t\t\t\t\tmonth = matchInt - 1;\n\t\t\t\t\t\tif ( outOfRange(month, 0, 11) ) return null;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"y\": case \"yy\":\n\t\t\t\t\tcase \"yyyy\":\n\t\t\t\t\t\tyear = clength < 4 ? expandYear( cal, matchInt ) : matchInt;\n\t\t\t\t\t\tif ( outOfRange(year, 0, 9999) ) return null;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"h\": case \"hh\":\n\t\t\t\t\t\t// Hours (12-hour clock).\n\t\t\t\t\t\thour = matchInt;\n\t\t\t\t\t\tif ( hour === 12 ) hour = 0;\n\t\t\t\t\t\tif ( outOfRange(hour, 0, 11) ) return null;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"H\": case \"HH\":\n\t\t\t\t\t\t// Hours (24-hour clock).\n\t\t\t\t\t\thour = matchInt;\n\t\t\t\t\t\tif ( outOfRange(hour, 0, 23) ) return null;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"m\": case \"mm\":\n\t\t\t\t\t\t// Minutes.\n\t\t\t\t\t\tmin = matchInt;\n\t\t\t\t\t\tif ( outOfRange(min, 0, 59) ) return null;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"s\": case \"ss\":\n\t\t\t\t\t\t// Seconds.\n\t\t\t\t\t\tsec = matchInt;\n\t\t\t\t\t\tif ( outOfRange(sec, 0, 59) ) return null;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"tt\": case \"t\":\n\t\t\t\t\t\t// AM/PM designator.\n\t\t\t\t\t\t// see if it is standard, upper, or lower case PM. If not, ensure it is at least one of\n\t\t\t\t\t\t// the AM tokens. If not, fail the parse for this format.\n\t\t\t\t\t\tpmHour = cal.PM && ( matchGroup === cal.PM[0] || matchGroup === cal.PM[1] || matchGroup === cal.PM[2] );\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!pmHour && (\n\t\t\t\t\t\t\t\t!cal.AM || ( matchGroup !== cal.AM[0] && matchGroup !== cal.AM[1] && matchGroup !== cal.AM[2] )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) return null;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"f\":\n\t\t\t\t\t\t// Deciseconds.\n\t\t\t\t\tcase \"ff\":\n\t\t\t\t\t\t// Centiseconds.\n\t\t\t\t\tcase \"fff\":\n\t\t\t\t\t\t// Milliseconds.\n\t\t\t\t\t\tmsec = matchInt * Math.pow( 10, 3 - clength );\n\t\t\t\t\t\tif ( outOfRange(msec, 0, 999) ) return null;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"ddd\":\n\t\t\t\t\t\t// Day of week.\n\t\t\t\t\tcase \"dddd\":\n\t\t\t\t\t\t// Day of week.\n\t\t\t\t\t\tweekDay = getDayIndex( cal, matchGroup, clength === 3 );\n\t\t\t\t\t\tif ( outOfRange(weekDay, 0, 6) ) return null;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"zzz\":\n\t\t\t\t\t\t// Time zone offset in +/- hours:min.\n\t\t\t\t\t\tvar offsets = matchGroup.split( /:/ );\n\t\t\t\t\t\tif ( offsets.length !== 2 ) return null;\n\t\t\t\t\t\thourOffset = parseInt( offsets[0], 10 );\n\t\t\t\t\t\tif ( outOfRange(hourOffset, -12, 13) ) return null;\n\t\t\t\t\t\tvar minOffset = parseInt( offsets[1], 10 );\n\t\t\t\t\t\tif ( outOfRange(minOffset, 0, 59) ) return null;\n\t\t\t\t\t\ttzMinOffset = ( hourOffset * 60 ) + ( startsWith(matchGroup, \"-\") ? -minOffset : minOffset );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"z\": case \"zz\":\n\t\t\t\t\t\t// Time zone offset in +/- hours.\n\t\t\t\t\t\thourOffset = matchInt;\n\t\t\t\t\t\tif ( outOfRange(hourOffset, -12, 13) ) return null;\n\t\t\t\t\t\ttzMinOffset = hourOffset * 60;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"g\": case \"gg\":\n\t\t\t\t\t\tvar eraName = matchGroup;\n\t\t\t\t\t\tif ( !eraName || !cal.eras ) return null;\n\t\t\t\t\t\teraName = trim( eraName.toLowerCase() );\n\t\t\t\t\t\tfor ( var i = 0, l = cal.eras.length; i < l; i++ ) {\n\t\t\t\t\t\t\tif ( eraName === cal.eras[i].name.toLowerCase() ) {\n\t\t\t\t\t\t\t\tera = i;\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\t\t\t\t\t\t// could not find an era with that name\n\t\t\t\t\t\tif ( era === null ) return null;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tvar result = new Date(), defaultYear, convert = cal.convert;\n\t\tdefaultYear = convert ? convert.fromGregorian( result )[ 0 ] : result.getFullYear();\n\t\tif ( year === null ) {\n\t\t\tyear = defaultYear;\n\t\t}\n\t\telse if ( cal.eras ) {\n\t\t\t// year must be shifted to normal gregorian year\n\t\t\t// but not if year was not specified, its already normal gregorian\n\t\t\t// per the main if clause above.\n\t\t\tyear += cal.eras[( era || 0 )].offset;\n\t\t}\n\t\t// set default day and month to 1 and January, so if unspecified, these are the defaults\n\t\t// instead of the current day/month.\n\t\tif ( month === null ) {\n\t\t\tmonth = 0;\n\t\t}\n\t\tif ( date === null ) {\n\t\t\tdate = 1;\n\t\t}\n\t\t// now have year, month, and date, but in the culture's calendar.\n\t\t// convert to gregorian if necessary\n\t\tif ( convert ) {\n\t\t\tresult = convert.toGregorian( year, month, date );\n\t\t\t// conversion failed, must be an invalid match\n\t\t\tif ( result === null ) return null;\n\t\t}\n\t\telse {\n\t\t\t// have to set year, month and date together to avoid overflow based on current date.\n\t\t\tresult.setFullYear( year, month, date );\n\t\t\t// check to see if date overflowed for specified month (only checked 1-31 above).\n\t\t\tif ( result.getDate() !== date ) return null;\n\t\t\t// invalid day of week.\n\t\t\tif ( weekDay !== null && result.getDay() !== weekDay ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\t// if pm designator token was found make sure the hours fit the 24-hour clock.\n\t\tif ( pmHour && hour < 12 ) {\n\t\t\thour += 12;\n\t\t}\n\t\tresult.setHours( hour, min, sec, msec );\n\t\tif ( tzMinOffset !== null ) {\n\t\t\t// adjust timezone to utc before applying local offset.\n\t\t\tvar adjustedMin = result.getMinutes() - ( tzMinOffset + result.getTimezoneOffset() );\n\t\t\t// Safari limits hours and minutes to the range of -127 to 127. We need to use setHours\n\t\t\t// to ensure both these fields will not exceed this range.\tadjustedMin will range\n\t\t\t// somewhere between -1440 and 1500, so we only need to split this into hours.\n\t\t\tresult.setHours( result.getHours() + parseInt(adjustedMin / 60, 10), adjustedMin % 60 );\n\t\t}\n\t\treturn result;\n\t};\n}());\n\nparseNegativePattern = function( value, nf, negativePattern ) {\n\tvar neg = nf[ \"-\" ],\n\t\tpos = nf[ \"+\" ],\n\t\tret;\n\tswitch ( negativePattern ) {\n\t\tcase \"n -\":\n\t\t\tneg = \" \" + neg;\n\t\t\tpos = \" \" + pos;\n\t\t\t/* falls through */\n\t\tcase \"n-\":\n\t\t\tif ( endsWith(value, neg) ) {\n\t\t\t\tret = [ \"-\", value.substr(0, value.length - neg.length) ];\n\t\t\t}\n\t\t\telse if ( endsWith(value, pos) ) {\n\t\t\t\tret = [ \"+\", value.substr(0, value.length - pos.length) ];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"- n\":\n\t\t\tneg += \" \";\n\t\t\tpos += \" \";\n\t\t\t/* falls through */\n\t\tcase \"-n\":\n\t\t\tif ( startsWith(value, neg) ) {\n\t\t\t\tret = [ \"-\", value.substr(neg.length) ];\n\t\t\t}\n\t\t\telse if ( startsWith(value, pos) ) {\n\t\t\t\tret = [ \"+\", value.substr(pos.length) ];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"(n)\":\n\t\t\tif ( startsWith(value, \"(\") && endsWith(value, \")\") ) {\n\t\t\t\tret = [ \"-\", value.substr(1, value.length - 2) ];\n\t\t\t}\n\t\t\tbreak;\n\t}\n\treturn ret || [ \"\", value ];\n};\n\n//\n// public instance functions\n//\n\nGlobalize.prototype.findClosestCulture = function( cultureSelector ) {\n\treturn Globalize.findClosestCulture.call( this, cultureSelector );\n};\n\nGlobalize.prototype.format = function( value, format, cultureSelector ) {\n\treturn Globalize.format.call( this, value, format, cultureSelector );\n};\n\nGlobalize.prototype.localize = function( key, cultureSelector ) {\n\treturn Globalize.localize.call( this, key, cultureSelector );\n};\n\nGlobalize.prototype.parseInt = function( value, radix, cultureSelector ) {\n\treturn Globalize.parseInt.call( this, value, radix, cultureSelector );\n};\n\nGlobalize.prototype.parseFloat = function( value, radix, cultureSelector ) {\n\treturn Globalize.parseFloat.call( this, value, radix, cultureSelector );\n};\n\nGlobalize.prototype.culture = function( cultureSelector ) {\n\treturn Globalize.culture.call( this, cultureSelector );\n};\n\n//\n// public singleton functions\n//\n\nGlobalize.addCultureInfo = function( cultureName, baseCultureName, info ) {\n\n\tvar base = {},\n\t\tisNew = false;\n\n\tif ( typeof cultureName !== \"string\" ) {\n\t\t// cultureName argument is optional string. If not specified, assume info is first\n\t\t// and only argument. Specified info deep-extends current culture.\n\t\tinfo = cultureName;\n\t\tcultureName = this.culture().name;\n\t\tbase = this.cultures[ cultureName ];\n\t} else if ( typeof baseCultureName !== \"string\" ) {\n\t\t// baseCultureName argument is optional string. If not specified, assume info is second\n\t\t// argument. Specified info deep-extends specified culture.\n\t\t// If specified culture does not exist, create by deep-extending default\n\t\tinfo = baseCultureName;\n\t\tisNew = ( this.cultures[ cultureName ] == null );\n\t\tbase = this.cultures[ cultureName ] || this.cultures[ \"default\" ];\n\t} else {\n\t\t// cultureName and baseCultureName specified. Assume a new culture is being created\n\t\t// by deep-extending an specified base culture\n\t\tisNew = true;\n\t\tbase = this.cultures[ baseCultureName ];\n\t}\n\n\tthis.cultures[ cultureName ] = extend(true, {},\n\t\tbase,\n\t\tinfo\n\t);\n\t// Make the standard calendar the current culture if it's a new culture\n\tif ( isNew ) {\n\t\tthis.cultures[ cultureName ].calendar = this.cultures[ cultureName ].calendars.standard;\n\t}\n};\n\nGlobalize.findClosestCulture = function( name ) {\n\tvar match;\n\tif ( !name ) {\n\t\treturn this.findClosestCulture( this.cultureSelector ) || this.cultures[ \"default\" ];\n\t}\n\tif ( typeof name === \"string\" ) {\n\t\tname = name.split( \",\" );\n\t}\n\tif ( isArray(name) ) {\n\t\tvar lang,\n\t\t\tcultures = this.cultures,\n\t\t\tlist = name,\n\t\t\ti, l = list.length,\n\t\t\tprioritized = [];\n\t\tfor ( i = 0; i < l; i++ ) {\n\t\t\tname = trim( list[i] );\n\t\t\tvar pri, parts = name.split( \";\" );\n\t\t\tlang = trim( parts[0] );\n\t\t\tif ( parts.length === 1 ) {\n\t\t\t\tpri = 1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tname = trim( parts[1] );\n\t\t\t\tif ( name.indexOf(\"q=\") === 0 ) {\n\t\t\t\t\tname = name.substr( 2 );\n\t\t\t\t\tpri = parseFloat( name );\n\t\t\t\t\tpri = isNaN( pri ) ? 0 : pri;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tpri = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tprioritized.push({ lang: lang, pri: pri });\n\t\t}\n\t\tprioritized.sort(function( a, b ) {\n\t\t\tif ( a.pri < b.pri ) {\n\t\t\t\treturn 1;\n\t\t\t} else if ( a.pri > b.pri ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\treturn 0;\n\t\t});\n\t\t// exact match\n\t\tfor ( i = 0; i < l; i++ ) {\n\t\t\tlang = prioritized[ i ].lang;\n\t\t\tmatch = cultures[ lang ];\n\t\t\tif ( match ) {\n\t\t\t\treturn match;\n\t\t\t}\n\t\t}\n\n\t\t// neutral language match\n\t\tfor ( i = 0; i < l; i++ ) {\n\t\t\tlang = prioritized[ i ].lang;\n\t\t\tdo {\n\t\t\t\tvar index = lang.lastIndexOf( \"-\" );\n\t\t\t\tif ( index === -1 ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\t// strip off the last part. e.g. en-US => en\n\t\t\t\tlang = lang.substr( 0, index );\n\t\t\t\tmatch = cultures[ lang ];\n\t\t\t\tif ( match ) {\n\t\t\t\t\treturn match;\n\t\t\t\t}\n\t\t\t}\n\t\t\twhile ( 1 );\n\t\t}\n\n\t\t// last resort: match first culture using that language\n\t\tfor ( i = 0; i < l; i++ ) {\n\t\t\tlang = prioritized[ i ].lang;\n\t\t\tfor ( var cultureKey in cultures ) {\n\t\t\t\tvar culture = cultures[ cultureKey ];\n\t\t\t\tif ( culture.language == lang ) {\n\t\t\t\t\treturn culture;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\telse if ( typeof name === \"object\" ) {\n\t\treturn name;\n\t}\n\treturn match || null;\n};\n\nGlobalize.format = function( value, format, cultureSelector ) {\n\tvar culture = this.findClosestCulture( cultureSelector );\n\tif ( value instanceof Date ) {\n\t\tvalue = formatDate( value, format, culture );\n\t}\n\telse if ( typeof value === \"number\" ) {\n\t\tvalue = formatNumber( value, format, culture );\n\t}\n\treturn value;\n};\n\nGlobalize.localize = function( key, cultureSelector ) {\n\treturn this.findClosestCulture( cultureSelector ).messages[ key ] ||\n\t\tthis.cultures[ \"default\" ].messages[ key ];\n};\n\nGlobalize.parseDate = function( value, formats, culture ) {\n\tculture = this.findClosestCulture( culture );\n\n\tvar date, prop, patterns;\n\tif ( formats ) {\n\t\tif ( typeof formats === \"string\" ) {\n\t\t\tformats = [ formats ];\n\t\t}\n\t\tif ( formats.length ) {\n\t\t\tfor ( var i = 0, l = formats.length; i < l; i++ ) {\n\t\t\t\tvar format = formats[ i ];\n\t\t\t\tif ( format ) {\n\t\t\t\t\tdate = parseExact( value, format, culture );\n\t\t\t\t\tif ( date ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tpatterns = culture.calendar.patterns;\n\t\tfor ( prop in patterns ) {\n\t\t\tdate = parseExact( value, patterns[prop], culture );\n\t\t\tif ( date ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn date || null;\n};\n\nGlobalize.parseInt = function( value, radix, cultureSelector ) {\n\treturn truncate( Globalize.parseFloat(value, radix, cultureSelector) );\n};\n\nGlobalize.parseFloat = function( value, radix, cultureSelector ) {\n\t// radix argument is optional\n\tif ( typeof radix !== \"number\" ) {\n\t\tcultureSelector = radix;\n\t\tradix = 10;\n\t}\n\n\tvar culture = this.findClosestCulture( cultureSelector );\n\tvar ret = NaN,\n\t\tnf = culture.numberFormat;\n\n\tif ( value.indexOf(culture.numberFormat.currency.symbol) > -1 ) {\n\t\t// remove currency symbol\n\t\tvalue = value.replace( culture.numberFormat.currency.symbol, \"\" );\n\t\t// replace decimal seperator\n\t\tvalue = value.replace( culture.numberFormat.currency[\".\"], culture.numberFormat[\".\"] );\n\t}\n\n\t//Remove percentage character from number string before parsing\n\tif ( value.indexOf(culture.numberFormat.percent.symbol) > -1){\n\t\tvalue = value.replace( culture.numberFormat.percent.symbol, \"\" );\n\t}\n\n\t// remove spaces: leading, trailing and between - and number. Used for negative currency pt-BR\n\tvalue = value.replace( / /g, \"\" );\n\n\t// allow infinity or hexidecimal\n\tif ( regexInfinity.test(value) ) {\n\t\tret = parseFloat( value );\n\t}\n\telse if ( !radix && regexHex.test(value) ) {\n\t\tret = parseInt( value, 16 );\n\t}\n\telse {\n\n\t\t// determine sign and number\n\t\tvar signInfo = parseNegativePattern( value, nf, nf.pattern[0] ),\n\t\t\tsign = signInfo[ 0 ],\n\t\t\tnum = signInfo[ 1 ];\n\n\t\t// #44 - try parsing as \"(n)\"\n\t\tif ( sign === \"\" && nf.pattern[0] !== \"(n)\" ) {\n\t\t\tsignInfo = parseNegativePattern( value, nf, \"(n)\" );\n\t\t\tsign = signInfo[ 0 ];\n\t\t\tnum = signInfo[ 1 ];\n\t\t}\n\n\t\t// try parsing as \"-n\"\n\t\tif ( sign === \"\" && nf.pattern[0] !== \"-n\" ) {\n\t\t\tsignInfo = parseNegativePattern( value, nf, \"-n\" );\n\t\t\tsign = signInfo[ 0 ];\n\t\t\tnum = signInfo[ 1 ];\n\t\t}\n\n\t\tsign = sign || \"+\";\n\n\t\t// determine exponent and number\n\t\tvar exponent,\n\t\t\tintAndFraction,\n\t\t\texponentPos = num.indexOf( \"e\" );\n\t\tif ( exponentPos < 0 ) exponentPos = num.indexOf( \"E\" );\n\t\tif ( exponentPos < 0 ) {\n\t\t\tintAndFraction = num;\n\t\t\texponent = null;\n\t\t}\n\t\telse {\n\t\t\tintAndFraction = num.substr( 0, exponentPos );\n\t\t\texponent = num.substr( exponentPos + 1 );\n\t\t}\n\t\t// determine decimal position\n\t\tvar integer,\n\t\t\tfraction,\n\t\t\tdecSep = nf[ \".\" ],\n\t\t\tdecimalPos = intAndFraction.indexOf( decSep );\n\t\tif ( decimalPos < 0 ) {\n\t\t\tinteger = intAndFraction;\n\t\t\tfraction = null;\n\t\t}\n\t\telse {\n\t\t\tinteger = intAndFraction.substr( 0, decimalPos );\n\t\t\tfraction = intAndFraction.substr( decimalPos + decSep.length );\n\t\t}\n\t\t// handle groups (e.g. 1,000,000)\n\t\tvar groupSep = nf[ \",\" ];\n\t\tinteger = integer.split( groupSep ).join( \"\" );\n\t\tvar altGroupSep = groupSep.replace( /\\u00A0/g, \" \" );\n\t\tif ( groupSep !== altGroupSep ) {\n\t\t\tinteger = integer.split( altGroupSep ).join( \"\" );\n\t\t}\n\t\t// build a natively parsable number string\n\t\tvar p = sign + integer;\n\t\tif ( fraction !== null ) {\n\t\t\tp += \".\" + fraction;\n\t\t}\n\t\tif ( exponent !== null ) {\n\t\t\t// exponent itself may have a number patternd\n\t\t\tvar expSignInfo = parseNegativePattern( exponent, nf, \"-n\" );\n\t\t\tp += \"e\" + ( expSignInfo[0] || \"+\" ) + expSignInfo[ 1 ];\n\t\t}\n\t\tif ( regexParseFloat.test(p) ) {\n\t\t\tret = parseFloat( p );\n\t\t}\n\t}\n\treturn ret;\n};\n\nGlobalize.culture = function( cultureSelector ) {\n\t// setter\n\tif ( typeof cultureSelector !== \"undefined\" ) {\n\t\tthis.cultureSelector = cultureSelector;\n\t}\n\t// getter\n\treturn this.findClosestCulture( cultureSelector ) || this.cultures[ \"default\" ];\n};\n\n}( this ));\n","import $ from \"jquery\"; // Detect touch support\r\n\r\n$.support.touch = ('ontouchend' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0);\r\n\r\n// Ignore browsers without touch support\r\nif ($.support.touch) {\r\n\r\n\tvar mouseProto = $.ui.mouse.prototype,\r\n\t\t_mouseInit = mouseProto._mouseInit,\r\n\t\t_mouseDestroy = mouseProto._mouseDestroy,\r\n\t\ttouchHandled;\r\n\r\n\t/**\r\n\t* Simulate a mouse event based on a corresponding touch event\r\n\t* @param {Object} event A touch event\r\n\t* @param {String} simulatedType The corresponding mouse event\r\n\t*/\r\n\tvar simulateMouseEvent = function (event, simulatedType) {\r\n\r\n\t\t// Ignore multi-touch events\r\n\t\tif (event.originalEvent.touches.length > 1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (event.cancelable) {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\r\n\t\tvar touch = event.originalEvent.changedTouches[0],\r\n\t\t\tsimulatedEvent = document.createEvent('MouseEvents');\r\n\r\n\t\t// Initialize the simulated mouse event using the touch event's coordinates\r\n\t\tsimulatedEvent.initMouseEvent(\r\n\t\t\tsimulatedType, // type\r\n\t\t\ttrue, // bubbles \r\n\t\t\ttrue, // cancelable \r\n\t\t\twindow, // view \r\n\t\t\t1, // detail \r\n\t\t\ttouch.screenX, // screenX \r\n\t\t\ttouch.screenY, // screenY \r\n\t\t\ttouch.clientX, // clientX \r\n\t\t\ttouch.clientY, // clientY \r\n\t\t\tfalse, // ctrlKey \r\n\t\t\tfalse, // altKey \r\n\t\t\tfalse, // shiftKey \r\n\t\t\tfalse, // metaKey \r\n\t\t\t0, // button \r\n\t\t\tnull // relatedTarget \r\n\t\t);\r\n\r\n\t\t// Dispatch the simulated event to the target element\r\n\t\tevent.target.dispatchEvent(simulatedEvent);\r\n\t};\r\n\r\n\t/**\r\n\t* Handle the jQuery UI widget's touchstart events\r\n\t* @param {Object} event The widget element's touchstart event\r\n\t*/\r\n\tmouseProto._touchStart = function (event) {\r\n\r\n\t\tvar self = this;\r\n\r\n\t\t// Ignore the event if another widget is already being handled\r\n\t\tif (touchHandled || !self._mouseCapture(event.originalEvent.changedTouches[0])) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Set the flag to prevent other widgets from inheriting the touch event\r\n\t\ttouchHandled = true;\r\n\r\n\t\t// Track movement to determine if interaction was a click\r\n\t\tself._touchMoved = false;\r\n\r\n\t\t// Simulate the mouseover event\r\n\t\tsimulateMouseEvent(event, 'mouseover');\r\n\r\n\t\t// Simulate the mousemove event\r\n\t\tsimulateMouseEvent(event, 'mousemove');\r\n\r\n\t\t// Simulate the mousedown event\r\n\t\tsimulateMouseEvent(event, 'mousedown');\r\n\t};\r\n\r\n\t/**\r\n\t* Handle the jQuery UI widget's touchmove events\r\n\t* @param {Object} event The document's touchmove event\r\n\t*/\r\n\tmouseProto._touchMove = function (event) {\r\n\r\n\t\t// Ignore event if not handled\r\n\t\tif (!touchHandled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Interaction was not a click\r\n\t\tthis._touchMoved = true;\r\n\r\n\t\t// Simulate the mousemove event\r\n\t\tsimulateMouseEvent(event, 'mousemove');\r\n\t};\r\n\r\n\t/**\r\n\t* Handle the jQuery UI widget's touchend events\r\n\t* @param {Object} event The document's touchend event\r\n\t*/\r\n\tmouseProto._touchEnd = function (event) {\r\n\r\n\t\t// Ignore event if not handled\r\n\t\tif (!touchHandled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Simulate the mouseup event\r\n\t\tsimulateMouseEvent(event, 'mouseup');\r\n\r\n\t\t// Simulate the mouseout event\r\n\t\tsimulateMouseEvent(event, 'mouseout');\r\n\r\n\t\t// If the touch interaction did not move, it should trigger a click\r\n\t\tif (!this._touchMoved) {\r\n\r\n\t\t\t// Simulate the click event\r\n\t\t\tsimulateMouseEvent(event, 'click');\r\n\t\t}\r\n\r\n\t\t// Unset the flag to allow other widgets to inherit the touch event\r\n\t\ttouchHandled = false;\r\n\t};\r\n\r\n\t/**\r\n\t* A duck punch of the $.ui.mouse _mouseInit method to support touch events.\r\n\t* This method extends the widget with bound touch event handlers that\r\n\t* translate touch events to mouse events and pass them to the widget's\r\n\t* original mouse event handling methods.\r\n\t*/\r\n\tmouseProto._mouseInit = function () {\r\n\r\n\t\tvar self = this;\r\n\r\n\t\t// Delegate the touch handlers to the widget's element\r\n\t\tself.element.bind({\r\n\t\t\ttouchstart: $.proxy(self, '_touchStart'),\r\n\t\t\ttouchmove: $.proxy(self, '_touchMove'),\r\n\t\t\ttouchend: $.proxy(self, '_touchEnd')\r\n\t\t});\r\n\r\n\t\t// Call the original $.ui.mouse init method\r\n\t\t_mouseInit.call(self);\r\n\t};\r\n\r\n\t/**\r\n\t* Remove the touch event handlers\r\n\t*/\r\n\tmouseProto._mouseDestroy = function () {\r\n\r\n\t\tvar self = this;\r\n\r\n\t\t// Delegate the touch handlers to the widget's element\r\n\t\tself.element.unbind({\r\n\t\t\ttouchstart: $.proxy(self, '_touchStart'),\r\n\t\t\ttouchmove: $.proxy(self, '_touchMove'),\r\n\t\t\ttouchend: $.proxy(self, '_touchEnd')\r\n\t\t});\r\n\r\n\t\t// Call the original $.ui.mouse destroy method\r\n\t\t_mouseDestroy.call(self);\r\n\t};\r\n}","(function(global) {\r\n\r\n\t\"use strict\";\r\n\r\n\t// emu for tdclient.js\r\n\tif(global.Type === undefined) global.Type = {};\r\n\r\n\tfunction extend(o, p) {\r\n\t\tfor(var x in p) {\r\n\t\t\tif(o[x] === undefined)\r\n\t\t\t\to[x] = p[x];\r\n\t\t}\r\n\t}\r\n\r\n\tvar _formatRE = /(\\{[^}{]+\\})/g;\r\n\r\n\t// String extensions\r\n\textend(String, {\r\n\r\n\t\tcompare: function String$compare(s1, s2, ignoreCase) {\r\n\t\t\ts1 = s1 || \"\";\r\n\t\t\ts2 = s2 || \"\";\r\n\t\t\tif(ignoreCase) {\r\n\t\t\t\ts1 = s1.toUpperCase();\r\n\t\t\t\ts2 = s2.toUpperCase();\r\n\t\t\t}\r\n\t\t\treturn s1 == s2 ? 0 : s1 < s2 ? -1 : 1;\r\n\t\t},\r\n\r\n\t\tconcat: function String$concat(/*arg1, arg2, argN*/) {\r\n\t\t\treturn arguments.length == 2 ? arguments[0] + arguments[1] : Array.prototype.join.call(arguments, \"\");\r\n\t\t},\r\n\r\n\t\tfromChar: function String$fromChar(ch, count) {\r\n\t\t\treturn count ? new Array(count + 1).join(ch) : ch;\r\n\t\t},\r\n\r\n\t\tformat: function String$format(format/*, value1, value2, valueN*/) {\r\n\t\t\tvar a = arguments;\r\n\t\t\treturn format.replace(_formatRE, function(str, m) {\r\n\t\t\t\tvar v = a[parseInt(m.substring(1)) + 1];\r\n\t\t\t\treturn v != null ? v.toString() : \"\";\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\r\n\t// String prototype extensions\r\n\tvar _htmlDecMap = { '&': '&', '<': '<', '>': '>', '"': '\"' };\r\n\tvar _htmlDecRE = /(&|<|>|")/gi;\r\n\tvar _htmlEncMap = { '&': '&', '<': '<', '>': '>', '\"': '"' };\r\n\tvar _htmlEncRE = /([&<>\"])/g;\r\n\r\n\textend(String.prototype, {\r\n\r\n\t\tcontains: String.prototype.includes,\r\n\r\n\t\ttoArray: function String$toArray() {\r\n\t\t\treturn this.split('');\r\n\t\t},\r\n\r\n\t\thtmlDecode: function String$htmlDecode() {\r\n\t\t\treturn this.replace(_htmlDecRE, function(_str, m) { return _htmlDecMap[m]; });\r\n\t\t},\r\n\r\n\t\thtmlEncode: function String$htmlEncode() {\r\n\t\t\treturn this.replace(_htmlEncRE, function (_str, m) { return _htmlEncMap[m]; });\r\n\t\t},\r\n\r\n\t\tpadLeft: String.prototype.padStart,\r\n\r\n\t\tpadRight: String.prototype.padEnd,\r\n\r\n\t\tinsert: function String$insert(index, value) {\r\n\t\t\tif(!value) return this;\r\n\t\t\tif(!index) return value + this;\r\n\t\t\treturn this.substring(0, index) + value + this.substring(index);\r\n\t\t},\r\n\r\n\t\tremove: function String$remove(index, count) {\r\n\t\t\tif(!count || ((index + count) > this.length))\r\n\t\t\t\treturn this.substring(0, index);\r\n\t\t\treturn this.substring(0, index) + this.substring(index + count);\r\n\t\t}\r\n\t});\r\n\r\n\tvar ua = navigator.userAgent;\r\n\tglobal.isIOS = /iP(ad|od|hone)/.test(ua) && /AppleWebKit\\//.test(ua) && !/CriOS\\//.test(ua);\r\n})(window);","import $ from \"jquery\";\r\n\r\nfunction Qstring(qs) {\r\n\t///\t\r\n\t///\t$.qstring([qs]) - creates querystring object\r\n\t///\t\r\n\t///\t\r\n\t///\t\r\n\tif(this === $)\r\n\t\treturn new Qstring(qs);\r\n\tthis.parse(qs);\r\n}\r\n\r\nQstring.prototype = {\r\n\r\n\teach: function(f) {\r\n\t\t///\t\r\n\t\t///\teach(f) - iterates over querystring items, calling function f on each\r\n\t\t///\t\r\n\t\t///\t\r\n\t\tx: for(var key in this.p) {\r\n\t\t\tvar y = this.p[key];\r\n\t\t\tfor(var i = 0; i < y.length; i++)\r\n\t\t\t\tif(f(key, y[i]) === false)\r\n\t\t\t\t\tbreak x;\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\texists: function(name) {\r\n\t\t///\t\r\n\t\t///\texists(name) - checks whether parameter exists\r\n\t\t///\t\r\n\t\t///\t\r\n\t\t///\t\r\n\t\treturn this.p[name] != null;\r\n\t},\r\n\r\n\tget: function(name, defval) {\r\n\t\t///\t\r\n\t\t///\tget(name[, defval]) - gets the value of parameter, uses defval if not found\r\n\t\t///\t\r\n\t\t///\t\r\n\t\t///\t\r\n\t\t///\t\r\n\t\tvar result = this.p[name];\r\n\t\treturn (result != null) ? result.join(\",\") : defval;\r\n\t},\r\n\r\n\tgetValues: function(name) {\r\n\t\t///\t\r\n\t\t///\tgetValues(name) - gets multiple values as array, or empty array\r\n\t\t///\t\r\n\t\t///\t\r\n\t\t///\t\r\n\t\treturn (this.p[name] || []).concat();\r\n\t},\r\n\r\n\tadd: function(name, value) {\r\n\t\t///\t\r\n\t\t///\tadd(name, value) - adds a value\r\n\t\t///\t\r\n\t\t///\t\r\n\t\t///\t\r\n\t\tif(value != null)\r\n\t\t\tthis.p[name] = (this.p[name] || []).concat(value);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tset: function(name, value) {\r\n\t\t///\t\r\n\t\t///\tset(name, value) - [re]sets single value\r\n\t\t///\t\r\n\t\t///\t\r\n\t\t///\t\r\n\t\tif(value != null)\r\n\t\t\tthis.p[name] = [].concat(value);\r\n\t\telse\r\n\t\t\tdelete this.p[name];\r\n\t\treturn this;\r\n\t},\r\n\r\n\tremove: function(name) {\r\n\t\t///\t\r\n\t\t///\tremove(name) - removes value\r\n\t\t///\t\r\n\t\t///\t\r\n\t\treturn this.set(name, null);\r\n\t},\r\n\r\n\tclear: function() {\r\n\t\t///\t\r\n\t\t///\tclear() - clears all values\r\n\t\t///\t\r\n\t\tthis.p = {};\r\n\t\treturn this;\r\n\t},\r\n\r\n\tparse: function(qs) {\r\n\t\t///\t\r\n\t\t///\tparse([qs]) - parses query string\r\n\t\t///\t\r\n\t\t/// query string\r\n\t\tthis.clear();\r\n\t\tif(qs == null)\r\n\t\t\tqs = location.search;\r\n\t\tif(qs.length > 0 && qs.charAt(0) == \"?\")\r\n\t\t\tqs = qs.substring(1);\r\n\t\tif(qs.length === 0)\r\n\t\t\treturn;\r\n\t\tvar de = decodeURIComponent;\r\n\t\tvar args = qs.split(\"+\").join(\" \").split(\"&\");\r\n\t\tfor(var i = 0; i < args.length; i++) {\r\n\t\t\tvar arg = args[i].split(\"=\");\r\n\t\t\tvar name = de(arg[0]);\r\n\t\t\tvar value = arg.length == 2 ? de(arg[1]) : \"\";\r\n\t\t\tthis.add(name, value);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\ttoString: function() {\r\n\t\t///\t\r\n\t\t///\ttoString(qs) - returns query string\r\n\t\t///\t\r\n\t\t///\t\r\n\t\tvar en = encodeURIComponent, result = [];\r\n\t\tthis.each(function(k, v) {\r\n\t\t\tresult.push(en(k) + \"=\" + en(v));\r\n\t\t});\r\n\t\treturn result.join(\"&\");\r\n\t}\r\n};\r\n\r\n$.qstring = Qstring;\r\n","import $ from \"jquery\";\r\n\r\n/**\r\n * $.cookie(name) - Gets cookie value, or undefined;\r\n * $.cookie(name, value[, options/expire, path, domain, secure]) - Sets the cookie;\r\n * $.cookie(name, null) - Clears the cookie;\r\n * \r\n * @param {string} name\r\n * @param {string?|null} value\r\n * @param {Date|number|null} expires\r\n * @param {string?} path\r\n * @param {string?} domain\r\n * @param {boolean?} secure\r\n * @returns string\r\n */\r\n\r\nfunction cookie(name, value, expires, path, domain, secure) {\r\n\tif(arguments.length == 1) {\r\n\t\tvar args = document.cookie.split(';');\r\n\t\tfor(var i = 0; i < args.length; i++) {\r\n\t\t\tvar arg = args[i].split('=');\r\n\t\t\tif(arg.length == 2) {\r\n\t\t\t\tif(name == decodeURIComponent(arg[0]).trim())\r\n\t\t\t\t\treturn decodeURIComponent(arg[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\telse {\r\n\t\tif(value == null) { value = \"\"; expires = -1; }\r\n\t\t// this is an object with settings.\r\n\t\tif(expires != null && typeof expires == \"object\" && !(expires instanceof Date)) {\r\n\t\t\tpath = expires.path;\r\n\t\t\tdomain = expires.domain;\r\n\t\t\tsecure = expires.secure;\r\n\t\t\texpires = expires.expires;\r\n\t\t}\r\n\t\tvar ck = [];\r\n\t\tck.push(encodeURIComponent(name) + \"=\" + encodeURIComponent(value));\r\n\t\tif(expires != null) {\r\n\t\t\tif(typeof expires == \"number\") {\r\n\t\t\t\tvar seconds = expires;\r\n\t\t\t\texpires = new Date();\r\n\t\t\t\texpires.setSeconds(expires.getSeconds() + seconds);\r\n\t\t\t}\r\n\t\t\tck.push(\"expires=\" + expires.toUTCString());\r\n\t\t}\r\n\t\tif(path)\r\n\t\t\tck.push(\"path=\" + path);\r\n\t\tif(domain)\r\n\t\t\tck.push(\"domain=\" + domain);\r\n\t\tif(secure)\r\n\t\t\tck.push(\"secure\");\r\n\t\tdocument.cookie = ck.join(\";\");\r\n\t}\r\n}\r\n\r\n$.cookie = cookie;","import $ from \"jquery\";\r\n\r\n$.fn.popup = function (trigger, position, hideCallback) {\r\n\treturn this.each(function () {\r\n\t\tvar e = $(this);\r\n\t\tfunction hide() {\r\n\t\t\te.hide();\r\n\t\t\tif (hideCallback) hideCallback(e);\r\n\t\t}\r\n\r\n\t\tif (e.data(\"ui-popup-attached\"))\r\n\t\t\treturn;\r\n\t\te.data(\"ui-popup-attached\", true);\r\n\t\te.addClass(\"ui-popup\");\r\n\t\tvar trg = typeof trigger === \"function\" ? trigger(e) : trigger == \"parent\" ? e.parent() : $(trigger);\r\n\t\ttrg.on(\"click\", function (x) {\r\n\t\t\tif (trg.is(\":disabled\"))\r\n\t\t\t\treturn false;\r\n\t\t\tx.preventDefault();\r\n\t\t\tif (e.is(\":visible\")) {\r\n\t\t\t\treturn hide();\r\n\t\t\t}\r\n\t\t\tvar pos = $.extend({}, { my: \"left top\", at: \"left bottom\", of: this }, position);\r\n\t\t\te.show().position(pos);\r\n\t\t\t/* do not let popup have negative offset */\r\n\t\t\tvar offset = e.offset();\r\n\t\t\tvar jpos = e.position();\r\n\t\t\tif (offset.left < 0) jpos.left -= offset.left;\r\n\t\t\tif (offset.top < 0) jpos.top -= offset.top;\r\n\t\t\te.css(jpos);\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\t$(document).one(\"click\", hide);\r\n\t\t\t}, 0);\r\n\t\t});\r\n\t});\r\n};","import $ from \"jquery\";\r\n\r\nvar placeholderKey = \"scrollfit.placeholder\";\r\n\r\nvar setPos = window.isIOS ?\r\nfunction(elt, css, viewPort) {\r\n\t// use absolute positioning for iOS as \"fixed\" is weird\r\n\tvar ofp = elt[0].offsetParent;\r\n\tofp = ofp != null ? $(ofp).offset() : { left: 0, top: 0 };\r\n\tcss.position = \"absolute\";\r\n\tcss.left += viewPort.left - ofp.left;\r\n\tcss.top += viewPort.top - ofp.top;\r\n\telt.css(css);\r\n} :\r\nfunction(elt, css) {\r\n\telt.css(css);\r\n};\r\n\r\nfunction initPos(elt, clone, css, viewPort) {\r\n\telt.css({ display: \"none\" });\r\n\tclone.css({ display: \"\" });\r\n\t$.extend(css, { width: clone.width(), height: clone.height() });\r\n\tvar css1 = $.extend({}, css, { display: \"\" });\r\n\tsetPos(elt, css1, viewPort);\r\n}\r\n\r\nfunction syncPos(elt, options, viewPort) {\r\n\telt = $(elt);\r\n\tvar eltRect;\r\n\tvar isDoc = options.anchor === \"window\";\r\n\tvar anc = options.anchor === \"parent\" ? elt.parent()\r\n\t\t: isDoc ? $(document)\r\n\t\t\t: $(options.anchor);\r\n\tvar ancRect = $.extend({ left: 0, top: 0 }, isDoc ? {} : anc.offset(), { width: anc.width(), height: anc.height() });\r\n\tvar clone = elt.data(placeholderKey);\r\n\tif(clone != null) {\r\n\t\tclone = $(clone);\r\n\t\teltRect = $.extend(clone.offset(), { width: clone.outerWidth(), height: clone.outerHeight() });\r\n\t} else {\r\n\t\teltRect = $.extend(elt.offset(), { width: elt.outerWidth(), height: elt.outerHeight() });\r\n\t}\r\n\r\n\tvar css = {}, pref;\r\n\r\n\t// is there a place to scroll\r\n\tif(eltRect.left + eltRect.width <= ancRect.left + ancRect.width) {\r\n\t\tif(options.left != null) {\r\n\t\t\tif(eltRect.left < viewPort.left + options.left) {\r\n\t\t\t\tcss.left = Math.min(options.left, ancRect.left + ancRect.width - (viewPort.left + eltRect.width));\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(options.right != null) {\r\n\t\t\tpref = Math.min(\r\n\t\t\t\t\tMath.max(\r\n\t\t\t\t\t\tancRect.left - viewPort.left,\r\n\t\t\t\t\t\tviewPort.width - options.right - eltRect.width),\r\n\t\t\t\t\tancRect.left + ancRect.width - (viewPort.left + eltRect.width));\r\n\t\t\tif(options.left != null)\r\n\t\t\t\tpref = Math.min(css.left != null ? css.left : Math.max(options.left, eltRect.left - viewPort.left), pref);\r\n\t\t\tcss.left = pref;\r\n\t\t}\r\n\t}\r\n\tif(eltRect.top + eltRect.height <= ancRect.top + ancRect.height) {\r\n\t\tif(options.top != null) {\r\n\t\t\tif(eltRect.top < viewPort.top + options.top) {\r\n\t\t\t\tcss.top = Math.min(options.top, ancRect.top + ancRect.height - (viewPort.top + eltRect.height));\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(options.bottom != null) {\r\n\t\t\tpref = Math.min(\r\n\t\t\t\t\tMath.max(\r\n\t\t\t\t\t\tancRect.top - viewPort.top,\r\n\t\t\t\t\t\tviewPort.height - options.bottom - eltRect.height),\r\n\t\t\t\t\tancRect.top + ancRect.height - (viewPort.top + eltRect.height));\r\n\t\t\tif(options.top != null) {\r\n\t\t\t\tif(css.top != null) {\r\n\t\t\t\t\tcss.top = Math.min(css.top, pref);\r\n\t\t\t\t} else if(options.top > eltRect.top - viewPort.top) {\r\n\t\t\t\t\tcss.top = options.top;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tcss.top = pref;\r\n\t\t}\r\n\t}\r\n\t// we have at least one position calculated, calculate another\r\n\tif(css.top != null && css.left == null) {\r\n\t\tcss.left = eltRect.left - viewPort.left;\r\n\t} else if(css.left != null && css.top == null) {\r\n\t\tcss.top = eltRect.top - viewPort.top;\r\n\t}\r\n\r\n\tif(!$.isEmptyObject(css)) {\r\n\t\tif(clone == null) {\r\n\t\t\tclone = options.placeholder(elt).addClass(options.placeholderClass).css({ \"visibility\": \"hidden\", \"display\": \"none\" }).insertAfter(elt);\r\n\t\t\telt.data(placeholderKey, clone[0]).addClass(\"ui-sticky\");\r\n\t\t\t$.extend(css, { position: \"fixed\" });\r\n\t\t\tinitPos(elt, clone, css, viewPort);\r\n\t\t} else {\r\n\t\t\tsetPos(elt, css, viewPort);\r\n\t\t}\r\n\t} else if(clone != null) {\r\n\t\tstop(elt);\r\n\t}\r\n}\r\n\r\nfunction syncSize(elt, options, viewPort) {\r\n\telt = $(elt);\r\n\tvar clone = elt.data(placeholderKey);\r\n\tif(clone != null) {\r\n\t\tclone = $(clone);\r\n\t\telt.css({ width: clone.width(), height: clone.height() });\r\n\t\tsyncPos(elt, options, viewPort);\r\n\t}\r\n}\r\n\r\nfunction delayRemoveClone(clone) {\r\n\treturn function() { clone.parentNode.removeChild(clone); };\r\n}\r\n\r\nfunction stop(elt) {\r\n\telt = $(elt);\r\n\tvar clone = elt.data(placeholderKey);\r\n\tif(clone != null) {\r\n\t\tclone.style.display = \"none\";\r\n\t\telt.removeData(placeholderKey).removeClass(\"ui-sticky\").css({ position: \"\", left: \"\", top: \"\", width: \"\", height: \"\" });\r\n\t\tsetTimeout(delayRemoveClone(clone), 1);\r\n\t}\r\n}\r\n\r\nfunction doScroll(options) {\r\n\t/* jshint validthis: true */\r\n\tvar w = $(window);\r\n\tvar viewPort = {\r\n\t\tleft: w.scrollLeft(),\r\n\t\ttop: w.scrollTop(),\r\n\t\twidth: w.width(),\r\n\t\theight: w.height()\r\n\t};\r\n\tthis.each(function() { syncPos(this, options, viewPort); });\r\n}\r\n\r\nfunction doResize(options) {\r\n\t/* jshint validthis: true */\r\n\tvar w = $(window);\r\n\tvar viewPort = {\r\n\t\tleft: w.scrollLeft(),\r\n\t\ttop: w.scrollTop(),\r\n\t\twidth: w.width(),\r\n\t\theight: w.height()\r\n\t};\r\n\tthis.each(function() { syncSize(this, options, viewPort); });\r\n}\r\n\r\nvar placeholderStrategy = {\r\n\tfixSize: function(elt) {\r\n\t\treturn $(elt[0].cloneNode(false)).css({ width: elt.width(), height: elt.height() });\r\n\t},\r\n\tfixHeight: function(elt) {\r\n\t\treturn $(elt[0].cloneNode(false)).css({ height: elt.height() });\r\n\t},\r\n\tclone: function(elt) {\r\n\t\treturn elt.clone(false);\r\n\t}\r\n};\r\n\r\n$.fn.sticky = function(options) {\r\n\tif(options !== \"stop\") {\r\n\t\toptions = $.extend({\r\n\t\t\tfitFar: false,\r\n\t\t\tplaceholderClass: \"ui-sticky-placeholder\",\r\n\t\t\tanchor: \"parent\",\r\n\t\t\tplaceholder: \"clone\"\r\n\t\t}, options);\r\n\r\n\t\toptions.placeholder = placeholderStrategy[options.placeholder] || options.placeholder;\r\n\t\tif(typeof options.placeholder !== \"function\")\r\n\t\t\tthrow \"placeholder is not a function or predefined constant\";\r\n\t}\r\n\r\n\tvar fnScroll = $.proxy(doScroll, this, options);\r\n\tvar fnResize = $.proxy(doResize, this, options);\r\n\r\n\tif(options === \"stop\") {\r\n\t\t$(window).off(\"scroll\", fnScroll).off(\"resize\", fnResize);\r\n\t\treturn this.each(stop);\r\n\t}\r\n\t$(window).on(\"scroll\", fnScroll).on(\"resize\", fnResize);\r\n\treturn this;\r\n};\r\n\r\n$.scrollIntoView = function(elt, options) {\r\n\r\n\telt = $(elt).eq(0);\r\n\tif(!elt.length)\r\n\t\treturn;\r\n\r\n\tif(options === undefined)\r\n\t\toptions = true;\r\n\tif(options === true || options === false)\r\n\t\toptions = { block: options ? \"start\" : \"end\" };\r\n\r\n\toptions = $.extend({}, { behavior: \"auto\", block: \"start\", select: \".ui-sticky\" }, options);\r\n\r\n\tvar w = $(window);\r\n\r\n\t// do it two times. position, update stickies, position\r\n\r\n\tfunction doScroll() {\r\n\r\n\t\tvar viewPort = {\r\n\t\t\t// left: w.scrollLeft(),\r\n\t\t\ttop: w.scrollTop(),\r\n\t\t\t// width: w.width(),\r\n\t\t\theight: w.height()\r\n\t\t};\r\n\r\n\t\t$(options.select).each(function() {\r\n\t\t\tvar me = $(this);\r\n\r\n\t\t\tvar mePort = me.offset();\r\n\t\t\t// mePort.width = me.outerWidth();\r\n\t\t\tmePort.height = me.outerHeight();\r\n\r\n\t\t\t// vertically on screen\r\n\t\t\tif(mePort.top + mePort.height > viewPort.top && mePort.top < viewPort.top + viewPort.height) {\r\n\t\t\t\tif(mePort.top <= viewPort.top) // top align\r\n\t\t\t\t\tviewPort.top += mePort.height;\r\n\t\t\t\tviewPort.height -= mePort.height;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar eltPort = elt.offset();\r\n\t\t// eltPort.width = elt.outerWidth();\r\n\t\teltPort.height = elt.outerHeight();\r\n\r\n\t\tif(eltPort.top < viewPort.top || eltPort.top + eltPort.height > viewPort.top + viewPort.height) {\r\n\t\t\tvar dy = viewPort.top - eltPort.top;\r\n\t\t\tif(options.block === \"end\") {\r\n\t\t\t\tdy += viewPort.height - eltPort.height;\r\n\t\t\t}\r\n\t\t\tif(dy !== 0) {\r\n\t\t\t\twindow.scrollBy(0, -dy);\r\n\t\t\t\t$(window).scroll();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tdoScroll();\r\n\tsetTimeout(function() { doScroll(); }, 100);\r\n};\r\n","import $ from \"jquery\";\r\nimport \"./jquery-popup\";\r\n\r\nfunction menuFromObjectArray(o) {\r\n\tvar i, l, ul = $(\"