{"version":3,"file":"ink-all.min.js","sources":["../../src/js/Ink/1/lib.js","../../src/js/Ink/Net/Ajax/1/lib.js","../../src/js/Ink/Net/JsonP/1/lib.js","../../src/js/Ink/Dom/Browser/1/lib.js","../../src/js/Ink/Dom/Css/1/lib.js","../../src/js/Ink/Dom/Element/1/lib.js","../../src/js/Ink/Dom/Event/1/lib.js","../../src/js/Ink/Dom/FormSerialize/1/lib.js","../../src/js/Ink/Dom/Loaded/1/lib.js","../../src/js/Ink/Dom/Selector/1/lib.js","../../src/js/Ink/UI/Animate/1/lib.js","../../src/js/Ink/UI/Carousel/1/lib.js","../../src/js/Ink/UI/Close/1/lib.js","../../src/js/Ink/UI/Common/1/lib.js","../../src/js/Ink/UI/DatePicker/1/lib.js","../../src/js/Ink/UI/DragDrop/1/lib.js","../../src/js/Ink/UI/Draggable/1/lib.js","../../src/js/Ink/UI/Drawer/1/lib.js","../../src/js/Ink/UI/Dropdown/1/lib.js","../../src/js/Ink/UI/Droppable/1/lib.js","../../src/js/Ink/UI/FormValidator/1/lib.js","../../src/js/Ink/UI/FormValidator/2/lib.js","../../src/js/Ink/UI/ImageQuery/1/lib.js","../../src/js/Ink/UI/LazyLoad/1/lib.js","../../src/js/Ink/UI/Modal/1/lib.js","../../src/js/Ink/UI/Pagination/1/lib.js","../../src/js/Ink/UI/ProgressBar/1/lib.js","../../src/js/Ink/UI/SmoothScroller/1/lib.js","../../src/js/Ink/UI/SortableList/1/lib.js","../../src/js/Ink/UI/Spy/1/lib.js","../../src/js/Ink/UI/Stacker/1/lib.js","../../src/js/Ink/UI/Sticky/1/lib.js","../../src/js/Ink/UI/Swipe/1/lib.js","../../src/js/Ink/UI/Table/1/lib.js","../../src/js/Ink/UI/Tabs/1/lib.js","../../src/js/Ink/UI/TagField/1/lib.js","../../src/js/Ink/UI/Toggle/1/lib.js","../../src/js/Ink/UI/Tooltip/1/lib.js","../../src/js/Ink/UI/TreeView/1/lib.js","../../src/js/Ink/UI/Upload/1/lib.js","../../src/js/Ink/Util/Array/1/lib.js","../../src/js/Ink/Util/BinPack/1/lib.js","../../src/js/Ink/Util/Cookie/1/lib.js","../../src/js/Ink/Util/Date/1/lib.js","../../src/js/Ink/Util/Dumper/1/lib.js","../../src/js/Ink/Util/I18n/1/lib.js","../../src/js/Ink/Util/Json/1/lib.js","../../src/js/Ink/Util/String/1/lib.js","../../src/js/Ink/Util/Url/1/lib.js","../../src/js/Ink/Util/Validator/1/lib.js"],"names":["window","document","Ink","requireModules","paths","modules","modulesLoadOrder","modulesRequested","pendingRMs","modulesWaitingForDeps","apply","Function","prototype","isEmptyObject","o","k","hasOwnProperty","VERSION","_checkPendingRequireModules","I","F","dep","mod","cb","pRMs","toApply","length","left","args","remaining","push","i","setTimeout","getPath","key","noLib","split","curKey","root","path","slice","join","test","setPath","rootURI","replace","loadScript","uri","contentType","indexOf","givenUri","this","Error","scriptEl","createElement","setAttribute","onerror","error","head","getElementsByTagName","appendChild","_loadLater","namespace","ns","returnParentAndKey","levels","nsobj","parent","f","getModule","version","createModule","deps","modFn","modAll","Array","call","arguments","moduleContent","_version","isInkModule","t","cbFn","undefined","_moduleRenames","warn","Ink.UI.Aux_1","getModulesLoadOrder","getModuleScripts","mlo","unshift","map","m","getModuleURL","createExt","moduleName","dependencies","bind","fn","context","innerArgs","finalArgs","concat","bindMethod","object","methodName","bindEvent","event","id","getElementById","ss","selector","from","Dom","Selector","select","s","extendObj","destination","sources","len","property","Object","log","console","Ajax","url","options","init","globalOptions","parameters","requestHeaders","xMLHttpRequestWithCredentials","XMLHttpRequest","userOptions","asynchronous","cors","validateCors","debug","delay","evalJS","method","postBody","sanitizeJSON","signRequest","timeout","useCredentials","xhrProxy","onComplete","onCreate","onException","onFailure","onHeaders","onInit","onSuccess","onTimeout","globalParameters","paramsObjToStr","safeCall","urlLocation","_locationFromURL","isHTTP","_locationIsHTTP","isCrossDomain","_locationIsCrossDomain","location","requestHasBody","search","transport","getTransport","request","createElementNS","href","match","protocol","widget","split1","split2","protocol1","protocol2","colonOrSlash","host1","host2","usingXDomainReq","XDomainRequest","ActiveXObject","e","setHeaders","headers","Accept","Accept-Language","navigator","language","X-Requested-With","X-Ink-Version","headerReqName","overrideMimeType","userAgent","Connection","headerName","setRequestHeader","optParams","p","a","params","toString","isNaN","encodeURIComponent","pop","setParams","getHeader","name","getResponseHeader","getAllHeaders","getAllResponseHeaders","getResponse","r","headerJSON","responseJSON","timeTaken","Date","startTime","requestedUrl","readyState","responseText","responseXML","status","statusText","abort","clearTimeout","delayTimeout","stoTimeout","_aborted","ex","finish","runStateChange","rs","getTime","responseContent","response","curStatus","isSuccess","headerContentType","evalJSON","mimeType","xmlDoc","DOMParser","parseFromString","xml","onreadystatechange","destroy","handlerName","value","nodeType","crossDomain","open","withCredentials","onload","send","isJSON","str","strJSON","sanitize","JSON","parse","eval","load","callback","ping","JsonP","failureObj","callbackParam","internalCallback","randVar","parseInt","Math","random","Net","_cleanUp","_addScriptTag","_addParamsToGet","hasQuestionMark","sep","pKey","pValue","parts","_getScriptContainer","body","documentElement","rnd_seed","_scriptEl","type","src","scriptCtn","_removeScriptTag","parentNode","removeChild","Browser","IE","GECKO","OPERA","SAFARI","KONQUEROR","CHROME","model","cssPrefix","domPrefix","detectBrowser","setDimensions","setReferrer","myWidth","myHeight","innerWidth","innerHeight","clientWidth","clientHeight","windowWidth","windowHeight","referrer","escape","_sniffUserAgent","sAgent","toLowerCase","rVersion","re","RegExp","reVersion","alert","getCs","defaultView","getComputedStyle","Css","addRemoveClassName","elm","className","addRemState","addClassName","removeClassName","classList","add","hasClassName","remove","elmClassName","setClassName","all","has","contains","blinkClass","element","negate","Number","toggleClassName","forceAdd","toggle","setOpacity","val","style","opacity","filter","_camelCase","_","$1","toUpperCase","getStyle","currentStyle","charAt","css","parseFloat","setStyle","cssText","prop","styleFloat","cssFloat","show","forceDisplayProperty","display","hide","showHide","forceShow","_getRefTag","firstElementChild","child","firstChild","nextSibling","appendStyleTag","force","styles","oldStyle","l","innerHTML","defStyle","refTag","styleStr","styleSheet","createTextNode","insertBefore","appendStylesheet","media","rel","_loadingCSSFiles","_loadedCSSFiles","appendStylesheetCb","cbs","linkEl","headEl","imgEl","_url","callbacks","decToHex","dec","normalizeTo2","rDec","gDec","g","bDec","b","rgb","hexToDec","hex","substr","getPropertyFromStylesheet","rule","getRuleFromStylesheet","getPropertyFromStylesheet2","rules","getRulesFromStylesheet","x","sheet","ri","rf","styleSheets","si","sf","cssRules","selectorText","res","getPropertiesFromRule","props","steps","pre","pos","substring","borderTopLeftRadius","borderBottomRightRadius","borderTopRightRadius","borderBottomLeftRadius","changeFontSize","delta","op","minVal","maxVal","that","TypeError","el","els","fontSize","rect","elem","dimensions","getBoundingClientRect","top","offsetTop","offsetLeft","createContextualFragmentSupport","createRange","Range","createContextualFragment","deleteThisTbodyToken","browserCreatesTbodies","div","InkElement","isDOMElement","get","create","tag","properties","parEl","scrollTo","scrollIntoView","elmOffset","elmTop","elmLeft","offsetParent","y","offset","positionedOffset","valueTop","valueLeft","tagName","position","doc","ownerDocument","docElem","box","clientTop","clientLeft","scrollTop","pageYOffset","scrollLeft","pageXOffset","scroll","_getPropPx","cs","n","c","getPropertyValue","offset2","hasAttribute","attr","getAttribute","insertAfter","newElm","targetElm","insertTop","insertBottom","textContent","node","text","innerText","lastChild","childNodes","nodeValue","setTextContent","isLink","hasAttributeNS","isAncestorOf","ancestor","compareDocumentPosition","descendantOf","descendant","lastElementChild","previousSibling","nextElementSibling","sibling","previousElementSibling","elementWidth","offsetWidth","elementHeight","offsetHeight","elementLeft","elementTop","elementDimensions","outerDimensions","bbox","right","bottom","inViewport","dims","partial","margin","viewportWidth","viewportHeight","isHidden","w","h","isVisible","clonePosition","cloneTo","cloneFrom","ellipsizeText","overflow","whiteSpace","textOverflow","findUpwardsHaving","boolTest","findUpwardsByClass","tst","cls","findUpwardsByTag","nodeName","findUpwardsById","findUpwardsBySelector","sel","matchesSelector","getChildrenText","removeIt","j","part","nodes","jLen","_trimString","String","data","trim","getSelectValues","selectEl","values","_normalizeData","d","data2","fillSelect","container","skipEmpty","defaultValue","containerEl","optionEl","fillRadios","insertAfterEl","splitEl","inputEl","checked","fillChecks","parentIndexOf","parentEl","childEl","children","nextSiblings","elements","siblings","index","previousSiblings","childElementCount","_wrapElements","TABLE","html","TBODY","THEAD","TFOOT","TR","_getWrapper","wrapper","wrapFunc","tds","tbody","appendHTML","prependHTML","setHTML","clear","wrap","target","nextNode","unwrap","wrapperSelector","replacement","replaceChild","removeTextNodeChildren","prevEl","toRemove","htmlToFragment","range","createDocumentFragment","selectNode","fragment","tempElement","current","InkDomSelector","dataset","attrs","attributes","curAttr","curAttrName","curAttrValue","total","moveCursorTo","setSelectionRange","createTextRange","collapse","moveEnd","moveStart","pageWidth","xScroll","scrollMaxX","scrollWidth","self","pageHeight","yScroll","scrollMaxY","scrollHeight","bean","definition","win","old","namespaceRegex","nameRegex","addEvent","removeEvent","W3C_MODEL","eventSupport","ONE","str2arr","isString","isFunction","standardNativeEvents","w3cNativeEvents","nativeEvents","hash","events","customEvents","isAncestor","check","related","relatedTarget","prefix","mouseenter","base","condition","mouseleave","mousewheel","Event","commonProps","mouseProps","mouseWheelProps","keyProps","textProps","touchProps","messageProps","stateProps","overOutRegex","typeFixers","reg","fix","newEvent","keyCode","which","rightClick","button","pageX","pageY","clientX","clientY","typeFixerMap","isNative","parentWindow","originalEvent","isBean","srcElement","fixer","preventDefault","returnValue","stopPropagation","cancelBubble","stop","stopped","stopImmediatePropagation","isImmediatePropagationStopped","clone","currentTarget","ne","targetElement","RegEntry","wrappedHandler","eargs","findTarget","eventElement","__beanDel","ft","handler","original","namespaces","customType","once","removeListener","eventType","inNamespaces","checkNamespaces","matches","checkElement","checkOriginal","checkHandler","registry","forAll","pfx","list","entries","entry","put","del","splice","removed","selectorEngine","setSelectorEngine","querySelectorAll","rootListener","propertyName","listeners","listener","custom","attachEvent","detachEvent","rm","originalFn","orgType","handlers","delegate","array","fireListener","evt","createEvent","dispatchEvent","fireEvent","createEventObject","off","typeSpec","isTypeStr","on","types","first","delfn","one","fire","names","beanDel","noConflict","cleanup","CollectGarbage","InkEvent","KEY_BACKSPACE","KEY_TAB","KEY_RETURN","KEY_ESC","KEY_SPACE","KEY_LEFT","KEY_UP","KEY_RIGHT","KEY_DOWN","KEY_DELETE","KEY_HOME","KEY_END","KEY_PAGEUP","KEY_PAGEDOWN","KEY_INSERT","throttle","func","wait","opt","throttled","maybeEvent","now","timeDiff","lastCall","ev","delegationTarget","fromElement","toElement","findElement","elmTagName","observe","eventName","callBack","useCapture","addEventListener","observeOnce","onceBack","stopObserving","observeMulti","observeDelegated","cursor","Selector_1","removeEventListener","cancel","stopDefault","pointer","pointerX","pointerY","touches","isLeftClick","isRightClick","isMiddleClick","getCharFromKeyboardEvent","changeCasing","fromCharCode","shiftOn","shiftKey","InkArray","isArrayIsh","obj","isArray","toArray","FormSerialize","serialize","form","out","emptyArrayToken","pairs","asPairs","emptyArray","outputUnchecked","forEach","pair","phpArray","_resultsInArray","emit","serializeEl","elNodeName","elType","multiple","didEmit","thisOption","inputs","_isSerialized","fillIn","map2","_objToPairs","_fillInPairs","groupBy","adjacentGroups","reduce","_fillInOne","firstOne","firstNodeName","firstType","isSelectMulti","_fillInBoolean","min","checkAttr","input","isChecked","inArray","Loaded","_contexts","run","cbQueue","done","checkState","_checkState","poll","_poll","ael","rem","det","wet","csf","alreadyLoaded","frameElement","doScroll","where","_ready","rnative","createCache","cache","keys","Expr","cacheLength","shift","markFunction","expando","assert","Sizzle","results","seed","groups","nid","newContext","newSelector","preferredDoc","setDocument","documentIsHTML","rquickExpr","exec","support","getElementsByClassName","qsa","rbuggyQSA","tokenize","rescape","toSelector","rsibling","qsaError","removeAttribute","rtrim","siblingCheck","cur","diff","sourceIndex","MAX_NEGATIVE","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","parseOnly","matched","tokens","soFar","preFilters","cached","tokenCache","preFilter","rcomma","rcombinators","matchExpr","addCombinator","matcher","combinator","dir","checkNonElements","doneName","outerCache","dirkey","dirruns","cachedruns","elementMatcher","matchers","condense","unmatched","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","elems","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","matcherCachedRuns","bySet","byElement","superMatcher","expandContext","setMatched","matchedCount","outermost","contextBackup","find","dirrunsUnique","uniqueSort","contexts","token","runescape","funescape","compile","setFilters","getText","isXML","recompare","sortInput","rbuggyMatches","classCache","compilerCache","hasDuplicate","sortOrder","strundefined","arr","push_native","whitespace","characterEncoding","identifier","operators","pseudos","rpseudo","ridentifier","ID","CLASS","NAME","TAG","ATTR","PSEUDO","CHILD","needsContext","rinputs","rheader","rattributeQuotes","escaped","high","createComment","getByName","pass","getElementsByName","sortDetached","div1","attrHandle","attrId","getAttributeNode","tmp","mozMatchesSelector","webkitMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","adown","bup","compare","aup","ap","bp","expr","ret","specified","msg","duplicates","detectDuplicates","sortStable","sort","selectors","createPseudo",">"," ","+","~","excess","unquoted","pattern","operator","result","what","last","simple","forward","ofType","nodeIndex","start","useCache","pseudo","idx","not","lang","elemLang","focus","activeElement","hasFocus","tabIndex","enabled","disabled","selected","selectedIndex","empty","header","eq","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","group","filters","Common","Animate","BaseUIComponent","animationPrefix","animationEndEventName","animation","webkitAnimation","_name","_optionDefinition","trigger","duration","removeClass","onEnd","_init","_options","animate","_element","_animationPrefix","animationSupported","onAnimationEnd","animationName","elOrSelector","createUIComponent","Pagination","limitRange","max","Carousel","setTransitionProperty","newTransition","transitionProperty","oTransitionProperty","msTransitionProperty","mozTransitionProperty","webkitTransitionProperty","requestAnimationFrame","autoAdvance","axis","initialPage","spaceAfterLastSlide","keyboardSupport","pagination","onChange","swipe","_validate","ulEl","_handlers","paginationChange","windowResize","_isY","width","_ulEl","_currentPage","refit","_setUpPagination","_setUpAutoAdvance","size","perpendicular","_liEls","numSlides","contRect","_ctnLength","_elLength","_slidesPerPage","floor","isFinite","numPages","ceil","numPagesChanged","_numPages","_deltaLength","_IE7","_pagination","setSize","setPage","getPage","setOnChange","setCurrent","ms","nextPage","_autoAdvanceSto","stopAutoAdvance","slides","stl","_onTouchStart","_swipeData","ulRect","firstUlPos","inUlX","inUlY","_touchMoveIsFirstTouchMove","_onTouchMove","deltaY","deltaX","aDeltaY","abs","aDeltaX","_scrolling","_onAnimationFrame","pointerDelta","pointerPos","swipeData","elRect","newPos","_onTouchEnd","snapToNext","curPage","progressInPages","_onPaginationChange","pgn","_setPage","getCurrent","getPagination","page","_lengthToGo","isLastPage","_itemsInLastPage","previousPage","getSlidesPerPage","getTotalPages","getStageElm","getSlidesList","getTotalSlides","Close","Url","warnStub","constructor","stub","_componentOptions","elementIsOptional","elsOrSelector","isValidInstance","_validateInstance","registerInstance","_stubInstance","nothing","es6WeakMapSupport","instances","WeakMap","_reg","domRegistry","set","thing","Layouts","TINY","SMALL","MEDIUM","LARGE","XLARGE","isInteger","fieldName","required","fieldId","defaults","overrides","optionValue","lType","defaultVal","invalidThrow","_coerce_funcs","fromDataAttrs","dataAttrs","_coerce_from_string","_options_validate","invalid","quote","invalidStr","paramName","_options_validate_types","number","boolean","string","function","integer","round","stringify","childIndex","ajaxJSON","endpoint","message","currentLayout","v","detectorEl","hashSet","hashParams","getAnchorString","genQueryString","cleanChildren","storeIdAndClasses","fromEl","inObj","_id","classes","_classes","restoreIdAndClasses","toEl","_instanceId","_warnDoubleInstantiation","newInstance","getName","getInstance","nameWithoutVersion","inst","unregisterInstance","UIComponent","givenEl","getInstanceFromSelector","getInstanceIds","getInstances","destroyComponent","instance","err","_validationError","getOption","setOption","getElement","theConstructor","assertProp","propType","propVal","_oldProto","hideF","InkDate","I18n","clamp","dateishFromYMDString","YMD","dateishFromYMD","year","month","day","_year","_month","_day","dateishFromDate","date","getFullYear","getMonth","getDate","getDecade","DatePicker","datePickerI18n","pt_PT","datepicker.clean","datepicker.close","datepicker.format","datepicker.of","datepicker.next_button","datepicker.prev_button","datepicker.months",1,2,3,4,5,6,7,8,9,10,11,12,"datepicker.week_days","en_US","autoOpen","pickerField","containerElement","cssClass","dateRange","displayInSelect","dayField","monthField","yearField","createSelectOptions","format","onFocus","onMonthSelected","onSetDate","onYearSelected","showClean","showClose","shy","startDate","startWeekDay","validDayFn","validMonthFn","validYearFn","nextValidDateFn","prevValidDateFn","yearRange","wDay","nextLinkText","prevLinkText","ofText","cleanText","closeText","i18n","dict","append","_dateParsers","_hoverPicker","_picker","_setMinMax","setDate","_createSelectOptions","_lang","_render","_listenToContainerObjectEvents","_containerObject","_renderSuperTopBar","calendarTop","_monthDescContainer","_monthPrev","_monthNext","_monthContainer","_monthSelector","_renderMonthSelector","_yearSelector","_appendDatePickerToDom","_renderMonth","_monthChanger","getKey","_ofText","_yearChanger","inline","_addOpenCloseEvents","_addDateChangeHandlersToInputs","fields","_updateDate","_showDefaultView","_inline","_hide","opener","cannotBe","ulSelector","mon","_renderMonthButton","liMonth","data-cal-month","appendTarget","parentIsControl","_wrapper","_wrapperIsControl","_superTopBar","_onClick","_onRelativeChangerClick","_onAbsoluteChangerClick","_showMonthSelector","_showYearSelector","_clean","_updateDescription","changeYear","change_year_next","change_year_prev","changeMonth","change_month_next","change_month_prev","_updateCal","elemData","calDay","calMonth","calYear","_changeYear","blur","noLimits","_min","noMinLimit","_max","noMaxLimit","MAX_VALUE","dates","rDate","each","noLim","lim","_daysInMonth","valid","_dateCmp","_fitDateToRange","_isValidDate","_dateWithinRange","_dateAboveMax","_dateBelowMin","oth","_dateCmpUntil","depth","updateDays","daysInMonth","monthName","_getPrevMonth","_getNextMonth","dataParsed","_parseDate","_setDate","inc","_incrementViewingYear","firstYear","thisYear","yearUl","prevYearLi","_getYearButton","nextYearLi","_acceptableYear","li","data-cal-year","_addMonthClassNames","dateStr","yearRegExp","validOneOrTwo","_isDate","_acceptableDay","_acceptableDateComponent","_acceptableMonth","userCb","_callUserCallbackBool","_writeDateInFormat","dateString","objClicked","auxDate","dt","formattedDate","_updateMonth","_y","_m","exceptions","incValue","_tryLeap","_getPrevYear","_getNextYear","atomName","directionName","advancer","maxOrMin","boundary","leapUserCb","_callUserCallbackDate","daysInThisMonth","_getNextDecade","decade","_getCurrentDecade","_getPrevDecade","_callUserCallbackBase","yyyy-mm-dd","yyyy/mm/dd","yy-mm-dd","yy/mm/dd","dd-mm-yyyy","dd/mm/yyyy","dd-mm-yy","dd/mm/yy","mm/dd/yyyy","mm-dd-yyyy","_getMonthCalendarHeader","_getDayButtons","_getFirstDayIndex","wDayFirst","getDay","ul","firstDayIndex","_getDayButton","dayButton","_addMonthButtonClassNames","btn","toDisable","setI18n","getI18n","setLanguage","getLanguage","showMonth","isMonthRendered","InkCss","UICommon","findElementUnderMouse","exceptFor","elementFromPoint","DragDrop","dragItem","dragHandle","dropZone","ignoreDrag","draggedCloneClass","placeholderClass","onDrag","onDrop","_dragActive","_draggedElm","_clonedElm","_placeholderElm","_originalDrop","_mouseDelta","_addEvents","_onMouseDown","tgt","draggedElm","elmIgnoreDraggable","handleElm","_startDrag","cloneNode","dragElmDims","height","visibility","zIndex","mousePos","dragElmPos","hasOnDrag","hasOnDrop","dragEvent","getDropZone","mouseMoveThrottled","_onMouseMove","_onMouseUp","elUnderMouse","dropZoneUnderMouse","isMyDropZone","otherDragItem","isDragItem","_insertPlaceholder","_dropZoneIsEmpty","dragItems","some","origin","getDraggedElement","dragActive","goesAfter","between","Draggable","constraint","constraintElm","handle","revert","fps","droppableProxy","mouseAnchor","dragClass","skipChildren","onStart","elmStartPosition","active","dragged","prevCoords","placeholder","zindex","firstDrag","deltaMs","lastRunAt","_onStart","dragFacade","_onDragFacade","drag","_onDrag","end","_onEnd","selectStart","_getCoords","ps","_cloneStyle","dst","borderWidth","padding","tgtEl","originalPosition","marginTop","marginBottom","marginLeft","marginRight","delta2","ad","applyDelta","dragHandlerName","proxy","fs","backgroundColor","firstEl","mouseCoords","mPosX","mPosY","newX","newY","draggableSize","constTop","constBottom","constLeft","constRight","Droppable","updateAll","mouseCoords2","action","pt","Element","pageWideFocusListener","onlyWrapper","_removePageWideFocusListener","mouseIsDown","focusFirstFocusableElementInside","withTabIndex","lowestTabIndex","lowestTabIndexElm","ind","firstFocusable","sFocusableElms","elNotFound","Drawer","transitionSupport","transitions","WebkitTransitionProperty","styleProp","parentSelector","leftDrawer","leftTrigger","rightDrawer","rightTrigger","contentDrawer","mode","sides","validateSide","side","drawer","triggers","atLeastOneSide","errorMsg","drawerOption","triggerOption","_contentDrawers","_leftDrawer","_leftTriggers","_rightDrawer","_rightTriggers","_triggers","_isOpen","_direction","click","afterTransition","_afterTransition","clickedTrigger","_onTriggerClicked","clickedInContent","clickedInLink","close","_getRecentDrawer","direction","drawerEl","_transitionWillOccur","uselessValue","lastFocused","didFocus","insideDrawer","transitioning","Toggle","Dropdown","hoverOpen","dismissOnInsideClick","dismissOnOutsideClick","dismissAfter","onInsideClick","onOutsideClick","onOpen","onDismiss","_toggle","closeOnInsideClick","closeOnClick","onChangeState","newState","_openOrDismiss","_onMouseOver","getState","_openTimeout","_dismissTimeout","_onMouseOut","_onInsideClick","_handlerCall","dismiss","_onOutsideClick","foundElem","needle","foundTarget","callHandler","_doNotInformToggle","setState","hAddClassName","hRemoveClassName","_droppables","_draggables","cleanStyle","draggable","hoverClass","hoverclass","accept","onHover","onDropOut","namedEventHandlers","move","droppable","copy","_findDraggable","originalParent","elementData","_update","_findData","elms","update","coords","InkValidator","elementsWithSameName","everything","FormValidator","_flagMap","ink-fv-required","ink-fv-email","ink-fv-url","ink-fv-number","ink-fv-phone_pt","ink-fv-phone_cv","ink-fv-phone_mz","ink-fv-phone_ao","ink-fv-date","ink-fv-confirm","ink-fv-custom","confirmElms","hasConfirm","_errorClassName","_errorValidationClassName","_errorTypeWarningClassName","_errorTypeErrorClassName","validate","_free","onError","customFlag","confirmGroup","fail","_validateElements","_showError","_clearError","_clearCache","_getElements","formElms","curElm","totalElm","flag","flag2","oGroups","_makeConfirmGroups","errors","customErrors","_isValid","_isCustomValid","_validateConfirmGroups","curGroup","totalG","curFlag","tCustom","fieldType","inputType","_trim","aFormRadios","totalRadio","mail","isPTPhone","isCVPhone","isAOPhone","isMZPhone","validFormat","validValues","isDate","formElm","aFail","tFail","_showAnErrorOnElement","controlGroupElm","controlElm","errorClasses","_errorTypeClassName","aErrorLabel","control","aErrorLabel2","getValue","checkedOpt","FormElement","validationFunctions","min_length","minSize","max_length","maxSize","exact_length","exactSize","email","fullCheck","ip","ipType","isIP","phone","phoneType","countryCode","credit_card","cardType","isCreditCard","alpha","supportSpaces","ascii","singleLineWhitespace","punctuation","unicode","numbers","unicodePunctuation","latin","latin1","latin1Punctuation","alpha_numeric","alpha_dash","dash","underscore","digit","positive","negative","decimalPlaces","decimal","decimalSeparator","leftDigits","decimalSep","maxDigits","numeric","minValue","maxValue","multipleOf","color","isColor","fieldToCompare","otherField","getFormElements","possibleFields","otherFieldValue","_rules","ean","isEAN","validationMessages","formvalidator.generic_error","formvalidator.required","formvalidator.min_length","formvalidator.max_length","formvalidator.exact_length","formvalidator.email","formvalidator.url","formvalidator.ip","formvalidator.phone","formvalidator.credit_card","formvalidator.date","formvalidator.alpha","formvalidator.text","formvalidator.latin","formvalidator.alpha_numeric","formvalidator.alpha_dash","formvalidator.digit","formvalidator.integer","formvalidator.decimal","formvalidator.numeric","formvalidator.range","formvalidator.color","formvalidator.matches","label","autoReparse","_errors","_value","_forceInvalid","_forceValid","_errorParagraph","_getLabel","_elementHadDataRules","_parseRules","rulesLength","paramStartPos","_addError","paramObj","field","i18nKey","getLabel","getErrors","_formElements","setRules","rulesStr","forceInvalid","unforceInvalid","forceValid","unforceValid","getControlGroup","getControl","removeErrors","controlGroup","displayErrors","errorArr","controlGroupElement","controlElement","paragraph","doValidate","eventTrigger","neverSubmit","searchFor","beforeValidation","extraValidation","setRule","errorMessage","langObj","dictObj","appendI18n","getRules","_rootElement","_errorMessages","_markedErrorElements","getElements","formElements","formElement","_getOrCreateFormElementInstance","validator","errorElements","counter","isValid","param","errorCount","_invalid","ImageQuery","retina","queries","onLoad","lastIndexOf","_filename","sortMulti","reverse","_onLoad","_onResize","_findCurrentQuery","getQuerySrc","query","devicePixelRatio","LazyLoad","scrollSupport","operamini","item","loadedClass","source","scrollElement","touchEvents","onInsideViewport","onAfterAttributeChange","autoInit","_aData","_hasEvents","_activate","_getData","_elInViewport","_onScrollThrottled","aElms","_onScroll","_removeEvents","_userCallback","reload","Modal","opacitySupported","vhVwSupported","compHeight","compWidth","flexSupported","cleanDimension","dim","hasPercent","hasPx","dimensionOfLayout","dimensionList","needleLayout","theDefault","_dim","layout","openModals","shadeClass","modalClass","triggerEvent","autoDisplay","markup","onShow","closeOnEscape","responsive","_onShadeClick","keyDown","_onKeyDown","resize","_dimensionIsVariant","_markupMode","_modalDiv","_modalShadow","_contentContainer","setContentMarkup","triggerElements","_dimensionIsPercentage","_getDimensions","dynamic","isPercentage","maxWidth","maxHeight","_reposition","largerThan90Percent","dimensionIsPercentage","_heightWasLargerThan90Percent","_widthWasLargerThan90Percent","dimensionsAreVariant","dimensionsArePercentage","_resize","_avoidModalLargerThanScreen","_resizeContainer","_shadeElement","alertsInTheModal","alertsLength","containerHeight","_modalHeader","_modalFooter","_resizeContainerFlex","flex","flexDirection","currentViewport","dimension","isOpen","_contentElement","needResizeHandler","_waitForFade","keyValue","htmlEl","fadeChecks","fadeChecker","getContentElement","getModalElement","getShadeElement","contentMarkup","tempHeader","tempFooter","toAdd","_vhVwSupported","_flexSupported","genAEl","aEl","wrapText","spanEl","totalItemCount","itemsPerPage","sideButtons","firstLabel","lastLabel","previousLabel","nextLabel","previousPageLabel","nextPageLabel","hashParameter","parentTag","childTag","wrapperClass","paginationClass","activeClass","disabledClass","hideClass","previousClass","previousPageClass","nextClass","nextPageClass","firstClass","lastClass","numberFormatter","autoWrap","_size","_calculateSize","_current","_itemLiEls","_generateMarkup","_updateItems","_observe","count","liEls","isSimpleToggle","liEl","_nextEl","pi","pf","_pageStart","_pageEnd","_page","_prevPageEl","hasPreviousPage","_nextPageEl","hasNextPage","_firstEl","isFirst","_lastEl","isLast","_prevEl","hasPrevious","hasNext","hasUlAlready","isChevron","isDotted","createLiEl","showSideButtons","isPrev","isNext","isPrevPage","isNextPage","aElem","nr","sz","setSizeInItems","totalItems","pageNumber","isRelative","next","previous","getSize","ProgressBar","startValue","_elementBar","setValue","newValue","cancelAnimationFrame","SmoothScroller","speed","changeHash","endPos","interval","onDone","onClick","render","link","thisDocument","linkedDocument","closestUL","currentlyActive","Events","SortableList","hasTouch","maxTouchPoints","msMaxTouchPoints","draggedClass","draggingClass","dragSelector","handleSelector","moveSelector","swap","cancelMouseOut","down","_onDown","_onMove","up","_onUp","_isMoving","_down","_move","_up","stopMoving","_placeholder","_currentTarget","_movePlaceholder","_addMovingClasses","touch","validateMove","droppedElement","_removeMovingClasses","target_position","placeholder_position","from_top","from_left","targetIndex","spyTargets","addSpied","spied","observeOnScroll","observingOnScroll","onScroll","onScrollForTarget","activeEl","findActiveElement","toDeactivate","menuLinkSelector","toActivate","closest","Infinity","closestIndex","Spy","Stacker","column","customBreakPoints","largeMax","largeMin","mediumMax","mediumMin","smallMax","smallMin","largeCols","mediumCols","smallCols","isOrdered","onRunCallback","onResizeCallback","onAPIReloadCallback","_aList","_curLayout","_runFirstTime","_getPageItemsToList","_canApplyLayoutChange","_applyLayoutChange","addItem","reloadItems","_removeDomItems","_setCurLayout","customBreakpoints","_getColumnsToShow","cols","curLayout","_aColumn","totalCols","aItems","aNewList","ii","countCol","Sticky","offsetBottom","topElement","stickyClass","inlineDimensions","inlinePosition","bottomElement","activateInLayouts","_dims","scrollTarget","_isDisabledInLayout","_getDims","unstick","_unstick","bottomOfSticky","maxBottomOfSticky","_stickTo","_inlineDimensions","_getBottomOffset","bottomOfViewport","toBottomOfDocument","oldPosition","oldWidth","dimensionsInStatic","Swipe","onMove","minDist","maxDist","minDuration","maxDuration","storeGesture","stopEvents","_supported","db","_isOn","_isMeOrParent","_pushGesture","_gesture","_time","changedTouches","_target","_t0","_p0","t1","gesture","p1","dr","dist","sqrt","time","overallMovement","overallTime","InkUrl","InkString","Json","maybeTurnIntoNumber","rNumber","cmp","numberishEnabledCmp","aValue","bValue","Table","sameSame","pageSize","caretUpClass","caretDownClass","createEndpointUrl","createEndpointURL","getDataFromEndPoint","getDataFromEndpoint","processJSONRows","rows","processJSONRow","processJSONField","processJSONHeaders","processJSONTotalRows","totalRows","getSortKey","allowResetSorting","visibleFields","tdClassNames","paginationOptions","_thead","tHead","createTHead","_headers","thClick","_originalFields","_sortableFields","_originalData","_data","_totalRows","_resetSortOrder","_addHeadersClasses","_setPagination","headerLabel","classNames","_onThClick","paginated","sortable","_invertSortOrder","_setSortOrderOfColumn","row","_paginate","sortAndReverse","isAscending","_sort","caretHtml","order","firstIndex","lastIndex","_registerFieldNames","_fieldIsVisible","userKey","keyFunction","columnIndex","columnName","trA","trB","elementA","elementB","_createHeadersFromJson","tr","insertRow","th","_createSingleHeaderFromJson","_createRowsFromJSON","trIndex","_createSingleRowFromJson","rowIndex","_createFieldFromJson","fieldData","processor","_elOrFieldData","processed","isNumber","setEndpoint","currentPage","paginationEl","pageNo","_getSortOrder","_getDataViaAjax","_getUrl","urlCreator","parseUrl","sortField","endpointUri","success","JSONData","_onAjaxSuccess","jsonResponse","_rowLength","Tabs","preventUrlChange","onBeforeChange","menuSelector","contentSelector","triggerEventsOnLoad","_menu","_initializeDom","_setFirstActive","contentTabs","activeMenuLink","_findLinkByHref","_firstTime","_changeTab","runCallbacks","activeTabs","_activeMenuTab","_activeSection","_activeMenuLink","_onTabClickedGeneric","doChangeTab","_onTabClicked","tabElm","_dehashify","changeTab","_hashify","links","disable","enable","activeTab","activeSection","TagField","enterKey","backspaceKey","isTruthy","buggySplit","splitFunction","nativeSplit","compliantExecNpcg","separator","limit","output","flags","ignoreCase","multiline","extended","sticky","lastLastIndex","separator2","lastLength","tags","allowRepeated","maxTags","outSeparator","autoSplit","_readInput","_viewElm","_input","_tagsFromMarkup","_tags","_onKeyUp","_onBlur","_refocus","tagname","option","_tagsToMarkup","_addTag","_removeTag","spc","_onEnterKeyDown","_onBackspaceKeyDown","_removeConfirm","_unsetRemovingVisual","_setRemovingVisual","tagIndex","_removeRemovingVisualTimeout","canToggleAnAncestor","isAccordion","initialState","classNameOn","classNameOff","_targets","_accordionContainer","_constructing","_bindEvents","state","_onTriggerEvent","isAncestorOfClickedElement","thisOne","_updateAccordion","otherToggle","shades","ancestorOfTargets","shadesLength","_group","Tooltip","EachTooltip","transitionDurationName","transitionPropertyName","transitionTimingFunctionName","bodies","spacing","forever","template","templatefield","fade","tooltips","tooltip","_destroy","_oppositeDirections","_delayTimeout","_makeTooltip","mousePosition","_getOpt","_createTooltipElement","_removeTooltip","_fadeInTooltipElement","_placeTooltipElement","_onTooltipMouseOver","_getFloatOpt","outerHTML","_getIntOpt","fadeTime","mPos","_setPos","targetElementPos","tleft","ttop","centerh","centerv","tooltipDims","elementDims","maxX","maxY","_getWhereValueInsideViewport","arrow","tooltipLeft","tooltipTop","toBottom","toRight","toLeft","toTop","viewport","dataAttrVal","instanceOption","_getMousePosition","pageDims","_getPageXY","elmDims","scrollDim","_getScroll","cWidth","cHeight","dd","TreeView","parentClass","openNodeClass","openClass","closedClass","iconTag","isParent","_getIcon","_setNodeOpen","_getChild","beOpen","icon","DirectoryReader","maxDepth","_read","_readDirectories","running","_readEntries","currentEntry","createReader","readEntries","isDirectory","clearArray","fullPath","_stopActivityTimeout","readError","activity","checkActivity","clearInterval","readComplete","setInterval","Queue","lists","items","getItems","parentId","purge","keepList","pid","priority","view","_searchByPid","UI","Upload","_fileButton","fileButton","_dropzone","dropzone","_setDropEvent","_setFileButton","dropzones","ondrop","_dropEventHandler","ondragleave","_onDragLeave","ondragend","_onDragEndEventHandler","ondragdrop","ondragenter","_onDragEnterHandler","ondragover","_onDragOverHandler","publish","btns","_fileChangeHandler","files","FormData","_addFilesToQueue","_events","fileFormName","maxFilesize","INVALID_FILE_NAME","extraData","useChunks","chunkSize","minSizeToUseChunks","endpointChunk","endpointChunkCommit","foldersEnabled","directoryMaxDepth","_queueId","_queueRunning","_folders","_supportChunks","Blob","dataTransfer","_files","webkitGetAsEntry","folders","_addFolderToQueue","invalidFolders","getFiles","isFile","convertToFile","hasParent","getSubDirs","created","fileID","directory","_processQueue","internalUpload","queueLen","canceled","_doRequest","_upload","xhr","forceAbort","showError","lengthComputable","loaded","lastModifiedDate","upload","onprogress","chunk_offset","chunk_upload_id","fd","blob","upload_path","parentID","rootPath","invalidOffset","upload_id","chunk_expires","expires","onabort","abortAll","abortOne","subscribe","arrayProto","testedObject","outKey","newGroup","latestKey","pushTo","initial","aKeys","shuffle","tmp1","rnd","forEachObj","mapFn","filtered","intersect","arr1","arr2","shared","J","convert","unique","newArr","step","insert","rLen","iLen","Packer","fit","blocks","block","findNode","splitNode","used","GrowingPacker","growNode","canGrowDown","canGrowRight","shouldGrowRight","shouldGrowDown","growRight","growDown","sorts","area","msort","maxside","criteria","BinPack","binPack","bl","packer","sorter","dims2","fitted","unfitted","filled","Cookie","cookie","_Cookie","aCookie","aItem","decodeURIComponent","domain","secure","sName","sExpires","sPath","sDomain","sSecure","oDate","sDate","valueOf","nDate","expiresString","toGMTString","hostname","cookieName","expiresDate","_months","_iMonth","janeiro","jan","fevereiro","fev","março","mar","abril","abr","maio","mai","junho","jun","julho","jul","agosto","ago","setembro","outubro","novembro","nov","dezembro","dez","_wDays","_d","_iWeek","week","segunda","seg","terça","ter","quarta","qua","quinta","qui","sexta","sex","sábado","sáb","domingo","dom","nDays","_date","iFormat","escapeChar","jsDate","jsFirstDay","jsThisDay","jsHour","jsDay","suffixes","suffix","UTC","jsYearStart","days","jsMonth","getYear","jsYear","getHours","jsMinute","getMinutes","jsSecond","getSeconds","getTimezoneOffset","jsMinZone","jsMinutes","jsDayName","jsMonthName","str_date","mList","objIndex","dayY","dayW","hour","hourD","sec","msec","ampm","diffM","diffH","pattr","_haveDatetime","_haveYear","_haveYDay","_haveDay","_haveMonth","_haveMonthDay","_haveOnlyDay","_haveWDay","_haveWeek","_haveWeekWDay","_haveOnlyWDay","_validDate","_noDate","_haveHour12","_haveHour24","_haveHour","_haveMin","_haveSec","_haveMSec","_haveMoreM","_haveMoreS","_haveDiffM","_haveDiffH","dList","gmt","aux","Dumper","_tab","_formatParam","formated","_outputFormat","_getTabs","numberOfTabs","tabs","_i","indent","_typeof","printDump","write","returnDump","alertDump","windowDump","dumperwindow","pattrText","funcOrVal","testMode","_dicts","_dict","_testMode","_gLang","theClone","newTestMode","gLang","langGlobal","_gDict","pars","isObj","$2","$3","ntext","strSin","strPlur","ordinal","num","lastDig","ordDict","byLastDigit","alias","_gDicts","appendGlobal","twoDigits","function_call","cx","dateToISOString","toISOString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","toFixed","InkJson","_nativeJSON","_convertToUnicode","_escape","theString","\b","\t","\n","\f","\r","\"","\\","charCodeAt","_toUnicode","unicodeString","inInt","theUnicode","_stringifyValue","toJSON","arrayString","objectString","convertToUnicode","reviver","walk","holder","SyntaxError","InkUtilString","_chars","_entities","_accentedChars","_accentedRemovedChars","_htmlUnsafeChars","<","&","'","ucFirst","firstWordOnly","replacer","stripTags","allowed","aAllowed","aNewAllowed","cleanedTag","strAllowed","reAllowed","aFoundTags","htmlEntitiesEncode","htmlEntitiesDecode","$0","utf8Encode","utfstring","shortString","words","resultstr","truncateString","utf8Decode","c2","c3","removeAccentedChars","newString","substrCount","haystack","htmlEscapeUnsafe","chars","normalizeWhitespace","toUnicode","unescape","es","hexNum","escapeText","txt","whiteList","txt2","C","escapedCharRegex","unescapeText","strcmp","str1","str2","packetize","maxLen","_keyStr","getUrl","getQueryString","aParams","queryStr","aQueryStr","pairVar","getAnchor","anchor","anchorStr","aAnchorStr","aURL","scheme","host","re1","re2","re3","regPort","tmpHost1","port","tmpHost2","tmpUserPass","user","urlObj","frag","currentScriptElement","aScripts","curScript","Validator","_countryCodes","_internacionalPT","_indicativosPT",21,22,231,232,233,234,235,236,238,239,241,242,243,244,245,249,251,252,253,254,255,256,258,259,261,262,263,265,266,268,269,271,272,273,274,275,276,277,278,279,281,282,283,284,285,286,289,291,292,295,296,91,93,96,92,707,760,800,808,30,"_internacionalCV","_indicativosCV",95,97,98,99,"_internacionalAO","_indicativosAO","_internacionalMZ","_indicativosMZ",82,84,"_internacionalTL","_indicativosTL","_characterGroups","asciiAlpha","latin1Alpha","unicodeAlpha","space","nicknamePunctuation","newline","asciiPunctuation","createRegExp","checkCharacterGroups","numb","thousandSep","returnNumber","maxExcl","minExcl","_isLeapYear","parser","emailValido","full","reHTTP","reUrl","aInd","strInd","re351","reSpecialChars","reInt","reValid","isPortuguesePhone","re238","re244","re258","isTLPhone","re670","isPhone","codPostal","cp1","cp2","returnBothResults","cPostalSep","cPostal4","cPostal3","parserCPostal","cPostal","yearIndex","monthIndex","dayIndex","dateParser","keyword","hexa","rgba","hsl","hsla","_creditCardSpecs","default","luhn","american express","diners club","discover","jcb","maestro","mastercard","visa","_luhn","checksum","dbl","creditCardType","ccLength","getEANCheckDigit","digits","sum","code","eanType","givenCheck"],"mappings":"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","sourcesContent":["/**\n * Ink Core.\n * @module Ink_1\n * This module provides the necessary methods to create and load the modules using Ink.\n */\n\n;(function(window, document) {\n\n 'use strict';\n\n // skip redefinition of Ink core\n if ('Ink' in window && typeof Ink.requireModules === 'function') { return; }\n\n\n // internal data\n\n /*\n * NOTE:\n * invoke Ink.setPath('Ink', '/Ink/'); before requiring local modules\n */\n var paths = {};\n var modules = {};\n var modulesLoadOrder = [];\n var modulesRequested = {};\n var pendingRMs = [];\n var modulesWaitingForDeps = {};\n\n var apply = Function.prototype.apply;\n\n // auxiliary fns\n var isEmptyObject = function(o) {\n /*jshint unused:false */\n if (typeof o !== 'object') { return false; }\n for (var k in o) {\n if (o.hasOwnProperty(k)) {\n return false;\n }\n }\n return true;\n };\n\n /**\n * @namespace Ink_1\n */\n\n window.Ink = {\n /**\n * @property {String} VERSION\n **/\n VERSION: '3.1.10',\n _checkPendingRequireModules: function() {\n var I, F, o, dep, mod, cb, pRMs = [];\n var toApply = [];\n for (I = 0, F = pendingRMs.length; I < F; ++I) {\n o = pendingRMs[I];\n\n if (!o) { continue; }\n\n for (dep in o.left) {\n if (o.left.hasOwnProperty(dep)) {\n mod = modules[dep];\n if (mod) {\n o.args[o.left[dep] ] = mod;\n delete o.left[dep];\n --o.remaining;\n }\n }\n }\n\n if (o.remaining > 0) {\n pRMs.push(o);\n } else {\n cb = o.cb;\n if (!cb) { continue; }\n delete o.cb; // to make sure I won't call this more than once!\n toApply.push([cb, o.args]);\n }\n }\n\n pendingRMs = pRMs;\n\n for (var i = 0; i < toApply.length; i++) {\n toApply[i][0].apply(false, toApply[i][1]);\n }\n\n if (pendingRMs.length > 0) {\n setTimeout( function() { Ink._checkPendingRequireModules(); }, 0 );\n }\n },\n\n /**\n * Get the full path of a module.\n * This method looks up the paths given in setPath (and ultimately the default Ink's path).\n *\n * @method getPath\n * @param {String} key Name of the module you want to get the path\n * @param {Boolean} [noLib] Flag to skip appending 'lib.js' to the returned path.\n *\n * @return {String} The URI to the module, according to what you added in setPath for the given `key`.\n */\n getPath: function(key, noLib) {\n var split = key.split(/[._]/g);\n var curKey;\n var i;\n var root;\n var path;\n\n // Look for Ink.Dom.Element.1, Ink.Dom.Element, Ink.Dom, Ink in this order.\n for (i = split.length; i >= 0; i -= 1) {\n curKey = split.slice(0, i + 1).join('.'); // See comment in setPath\n if (paths[curKey]) {\n root = curKey;\n break;\n }\n }\n\n if (root in paths) {\n path = paths[root];\n } else {\n return null;\n }\n\n if (!/\\/$/.test(path)) {\n path += '/';\n }\n if (i < split.length) {\n // Add the rest of the path. For example, if we found\n // paths['Ink.Dom'] to be 'http://example.com/Ink/Dom/',\n // we now add '/Element/' to get the full path.\n path += split.slice(i + 1).join('/') + '/';\n }\n if (!noLib) {\n path += 'lib.js';\n }\n return path;\n },\n\n /**\n * Sets the URL path for a namespace.\n * Use this to customize where requireModules and createModule will load dependencies from.\n * This can be useful to set your own CDN for dynamic module loading or simply to change your module folder structure\n *\n * @method setPath\n *\n * @param {String} key Module or namespace\n * @param {String} rootURI Base URL path and schema to be appended to the module or namespace\n * @return {void}\n *\n * @example\n * Ink.setPath('Ink', 'http://my-cdn/Ink/');\n * Ink.setPath('Lol', 'http://my-cdn/Lol/');\n *\n * // Loads from http://my-cdn/Ink/Dom/Whatever/lib.js\n * Ink.requireModules(['Ink.Dom.Whatever'], function () { ... });\n * // Loads from http://my-cdn/Lol/Whatever/lib.js\n * Ink.requireModules(['Lol.Whatever'], function () { ... });\n */\n setPath: function(key, rootURI) {\n // Replacing version separator with dot because the difference\n // between a submodule and a version doesn't matter here.\n // It would also overcomplicate the implementation of getPath\n paths[key.replace(/_/, '.')] = rootURI;\n },\n\n /**\n * Loads a script URL.\n * This creates a `script` tag in the `head` of the document.\n * Reports errors by listening to 'error' and 'readystatechange' events.\n *\n * @method loadScript\n * @param {String} uri Can be an external URL or a module name\n * @param {String} [contentType]='text/javascript' The `type` attribute of the new script tag.\n * @return {Element} The newly created script element.\n */\n loadScript: function(uri, contentType) {\n /*jshint evil:true */\n\n if (uri.indexOf('/') === -1) {\n var givenUri = uri; // For the error message\n uri = this.getPath(uri);\n if (uri === null) {\n throw new Error('Could not load script \"' + givenUri + '\". ' +\n 'Path not found in the registry. Did you misspell ' +\n 'the name, or forgot to call setPath()?');\n }\n }\n\n var scriptEl = document.createElement('script');\n scriptEl.setAttribute('type', contentType || 'text/javascript');\n scriptEl.setAttribute('src', uri);\n\n if ('onerror' in scriptEl) {\n scriptEl.onerror = function () {\n Ink.error(['Failed to load script from ', uri, '.'].join(''));\n };\n }\n\n var head = document.head ||\n document.getElementsByTagName('head')[0];\n\n if (head) {\n return head.appendChild(scriptEl);\n }\n },\n\n _loadLater: function (dep) {\n setTimeout(function () {\n if (modules[dep] || modulesRequested[dep] ||\n modulesWaitingForDeps[dep]) {\n return;\n }\n modulesRequested[dep] = true;\n Ink.loadScript(dep);\n }, 0);\n },\n\n /**\n * Defines a module namespace.\n *\n * @method namespace\n * @param {String} ns Namespace to define.\n * @param {Boolean} [returnParentAndKey] Flag to change the return value to an array containing the namespace parent and the namespace key\n * @return {Object|Array} Returns the created namespace object\n */\n namespace: function(ns, returnParentAndKey) {\n if (!ns || !ns.length) { return null; }\n\n var levels = ns.split('.');\n var nsobj = window;\n var parent;\n\n for (var i = 0, f = levels.length; i < f; ++i) {\n nsobj[ levels[i] ] = nsobj[ levels[i] ] || {};\n parent = nsobj;\n nsobj = nsobj[ levels[i] ];\n }\n\n if (returnParentAndKey) {\n return [\n parent,\n levels[i-1]\n ];\n }\n\n return nsobj;\n },\n\n /**\n * Loads a module.\n * A synchronous method to get the module from the internal registry.\n * It assumes the module is defined and loaded already!\n *\n * @method getModule\n * @param {String} mod Module name\n * @param {Number} [version] Version number of the module\n * @return {Object|Function} Module object or function, depending how the module is defined\n */\n getModule: function(mod, version) {\n var key = version ? [mod, '_', version].join('') : mod;\n return modules[key];\n },\n\n /**\n * Creates a new module.\n * Use this to wrap your code and benefit from the module loading used throughout the Ink library\n *\n * @method createModule\n * @param {String} mod Module name, separated by dots. Like Ink.Dom.Selector, Ink.UI.Modal\n * @param {Number} version Version number\n * @param {Array} deps Array of module names which are dependencies of the module being created. The order in which they are passed here will define the order they will be passed to the callback function.\n * @param {Function} modFn The callback function to be executed when all the dependencies are resolved. The dependencies are passed as arguments, in the same order they were declared. The function itself should return the module.\n * @return {void}\n * @sample Ink_1_createModule.html\n *\n */\n createModule: function(mod, version, deps, modFn) { // define\n if (typeof mod !== 'string') {\n throw new Error('module name must be a string!');\n }\n\n // validate version correctness\n if (!(typeof version === 'number' || (typeof version === 'string' && version.length > 0))) {\n throw new Error('version number missing!');\n }\n\n var modAll = [mod, '_', version].join('');\n\n modulesWaitingForDeps[modAll] = true;\n\n var cb = function() {\n //console.log(['createModule(', mod, ', ', version, ', [', deps.join(', '), '], ', !!modFn, ')'].join(''));\n\n // make sure module in not loaded twice\n if (modules[modAll]) {\n //console.warn(['Ink.createModule ', modAll, ': module has been defined already.'].join(''));\n return;\n }\n\n\n // delete related pending tasks\n delete modulesRequested[modAll];\n delete modulesRequested[mod];\n\n\n // run module's supplied factory\n var args = Array.prototype.slice.call(arguments);\n var moduleContent = modFn.apply(window, args);\n modulesLoadOrder.push(modAll);\n // console.log('** loaded module ' + modAll + '**');\n\n\n // set version\n if (typeof moduleContent === 'object') { // Dom.Css Dom.Event\n moduleContent._version = version;\n }\n else if (typeof moduleContent === 'function') {\n moduleContent.prototype._version = version; // if constructor\n moduleContent._version = version; // if regular function\n }\n\n\n // add to global namespace...\n var isInkModule = mod.indexOf('Ink.') === 0;\n var t;\n if (isInkModule) {\n t = Ink.namespace(mod, true); // for mod 'Ink.Dom.Css', t[0] gets 'Ink.Dom' object and t[1] 'Css'\n }\n\n\n // versioned\n modules[ modAll ] = moduleContent; // in modules\n delete modulesWaitingForDeps[ modAll ];\n\n if (isInkModule) {\n t[0][ t[1] + '_' + version ] = moduleContent; // in namespace\n }\n\n\n // unversioned\n modules[ mod ] = moduleContent; // in modules\n\n if (isInkModule) {\n if (isEmptyObject( t[0][ t[1] ] )) {\n t[0][ t[1] ] = moduleContent; // in namespace\n }\n // else {\n // console.warn(['Ink.createModule ', modAll, ': module has been defined already with a different version!'].join(''));\n // }\n }\n\n\n if (this) { // there may be pending requires expecting this module, check...\n Ink._checkPendingRequireModules();\n }\n };\n\n this.requireModules(deps, cb);\n },\n\n /**\n * Requires modules asynchronously\n * Use this to get modules, even if they're not loaded yet\n *\n * @method requireModules\n * @param {Array} deps Array of module names. The order in which they are passed here will define the order they will be passed to the callback function.\n * @param {Function} cbFn The callback function to be executed when all the dependencies are resolved. The dependencies are passed as arguments, in the same order they were declared.\n * @return {void}\n * @sample Ink_1_requireModules.html\n */\n requireModules: function(deps, cbFn) { // require\n //console.log(['requireModules([', deps.join(', '), '], ', !!cbFn, ')'].join(''));\n var i, f, o, dep, mod;\n f = deps && deps.length;\n o = {\n args: new Array(f),\n left: {},\n remaining: f,\n cb: cbFn\n };\n\n if (!(typeof deps === 'object' && deps.length !== undefined)) {\n throw new Error('Dependency list should be an array!');\n }\n if (typeof cbFn !== 'function') {\n throw new Error('Callback should be a function!');\n }\n\n for (i = 0; i < f; ++i) {\n if (Ink._moduleRenames[deps[i]]) {\n Ink.warn(deps[i] + ' was renamed to ' + Ink._moduleRenames[deps[i]]);\n dep = Ink._moduleRenames[deps[i]];\n } else {\n dep = deps[i];\n }\n\n // Because trailing commas in oldIE bring us undefined values here\n if (!dep) {\n --o.remaining;\n continue;\n }\n\n mod = modules[dep];\n if (mod) {\n o.args[i] = mod;\n --o.remaining;\n continue;\n }\n else if (!modulesRequested[dep]) {\n Ink._loadLater(dep);\n }\n o.left[dep] = i;\n }\n\n if (o.remaining > 0) {\n pendingRMs.push(o);\n }\n else {\n cbFn.apply(true, o.args);\n }\n },\n\n _moduleRenames: {\n 'Ink.UI.Aux_1': 'Ink.UI.Common_1'\n },\n\n /**\n * Lists loaded module names.\n * The list is ordered by loaded time (oldest module comes first)\n *\n * @method getModulesLoadOrder\n * @return {Array} returns the order in which modules were resolved and correctly loaded\n */\n getModulesLoadOrder: function() {\n return modulesLoadOrder.slice();\n },\n\n /**\n * Builds the markup needed to load the modules.\n * This method builds the script tags needed to load the currently used modules\n *\n * @method getModuleScripts\n * @uses getModulesLoadOrder\n * @return {String} The script markup\n */\n getModuleScripts: function() {\n var mlo = this.getModulesLoadOrder();\n mlo.unshift('Ink_1');\n mlo = mlo.map(function(m) {\n return [''].join('');\n });\n\n return mlo.join('\\n');\n },\n\n /**\n * Creates an Ink.Ext module\n *\n * Does exactly the same as createModule but creates the module in the Ink.Ext namespace\n *\n * @method createExt\n * @uses createModule\n * @param {String} moduleName Extension name\n * @param {String} version Extension version\n * @param {Array} dependencies Extension dependencies\n * @param {Function} modFn Function returning the extension\n * @return {void}\n * @sample Ink_1_createExt.html\n */\n createExt: function (moduleName, version, dependencies, modFn) {\n return Ink.createModule('Ink.Ext.' + moduleName, version, dependencies, modFn);\n },\n\n /**\n * Function.prototype.bind alternative/fallback.\n * Creates a new function that, when called, has its this keyword set to the provided value, with a given sequence of arguments preceding any provided when the new function is called.\n *\n * @method bind\n * @param {Function} fn The function\n * @param {Object} context The value to be passed as the this parameter to the target function when the bound function is called. If used as false, it preserves the original context and just binds the arguments.\n * @param {Mixed} [more...] Additional arguments will be sent to the original function as prefix arguments.\n * @return {Function} A copy of `fn` bound to the given `context`. Calling this function causes a call to `fn` with the new `context` and any `more` arguments.\n * @sample Ink_1_bind.html\n */\n bind: function(fn, context) {\n var args = Array.prototype.slice.call(arguments, 2);\n return function() {\n var innerArgs = Array.prototype.slice.call(arguments);\n var finalArgs = args.concat(innerArgs);\n return fn.apply(context === false ? this : context, finalArgs);\n };\n },\n\n /**\n * Function.prototype.bind alternative for class methods\n * See Ink.bind. The difference between `bindMethod` and `bind` is that `bindMethod` fetches a method from an object. It can be useful, for instance, to bind a function which is a property of an object returned by another function.\n *\n * @method bindMethod\n * @uses bind\n * @param {Object} object The object that contains the method to bind\n * @param {String} methodName The name of the method that will be bound\n * @param {Mixed} [more...] Additional arguments will be sent to the new method as prefix arguments.\n * @return {Function} See Ink.bind.\n * @sample Ink_1_bindMethod.html\n */\n bindMethod: function (object, methodName) {\n return Ink.bind.apply(Ink,\n [object[methodName], object].concat([].slice.call(arguments, 2)));\n },\n\n /**\n * Function.prototype.bind alternative for event handlers.\n * Same as bind but keeps first argument of the call the original event.\n * Set `context` to `false` to preserve the original context of the function and just bind the arguments.\n *\n * @method bindEvent\n * @param {Function} fn The function\n * @param {Object} context The value to be passed as the this parameter to the target\n * @param {Mixed} [more...] Additional arguments will be sent to the original function as prefix arguments\n * @return {Function} A function which will always call `fn` with the given event (or window.event, in IE) as the first argument.\n * @sample Ink_1_bindEvent.html\n */\n bindEvent: function(fn, context) {\n var args = Array.prototype.slice.call(arguments, 2);\n return function(event) {\n var finalArgs = args.slice();\n finalArgs.unshift(event || window.event);\n return fn.apply(context === false ? this : context, finalArgs);\n };\n },\n\n /**\n * Shorter alias to document.getElementById.\n * Just calls `document.getElementById(id)`, unless `id` happens to be an element.\n * If `id` is an element, `Ink.i` just returns it.\n *\n * You can use this in situations where you want to accept an element id, but a raw element is also okay.\n *\n * @method i\n * @param {String} id Element ID\n * @return {DOMElement} The element returned by `document.getElementById(id)` if `id` was a string, and `id` otherwise.\n * @sample Ink_1_i.html\n */\n i: function(id) {\n if(typeof(id) === 'string') {\n return document.getElementById(id) || null;\n }\n return id;\n },\n\n /**\n * Alias for Ink.Dom.Selector\n *\n * Using sizzle-specific selectors is NOT encouraged!\n *\n * @method ss\n * @uses Ink.Dom.Selector.select\n * @param {String} selector CSS3 selector string\n * @param {DOMElement} [from=document] Context element. If set to a DOM element, the `selector` will only look for descendants of this DOM Element.\n * @return {Array} array of DOMElements\n * @sample Ink_1_ss.html\n */\n ss: function(selector, from)\n {\n if(typeof(Ink.Dom) === 'undefined' || typeof(Ink.Dom.Selector) === 'undefined') {\n throw new Error('This method requires Ink.Dom.Selector');\n }\n return Ink.Dom.Selector.select(selector, (from || document));\n },\n\n /**\n * Selects elements like `Ink.ss`, but only returns the first element found.\n *\n * Using sizzle-specific selectors is NOT encouraged!\n *\n * @method s\n * @uses Ink.Dom.Selector.select\n * @param {String} selector CSS3 selector string\n * @param {DOMElement} [from=document] Context element. If set to a DOM element, the `selector` will only look for descendants of this DOM Element.\n * @return {DOMElement} The first element found which matches the `selector`, or `null` if nothing is found.\n * @sample Ink_1_s.html\n */\n s: function(selector, from)\n {\n if(typeof(Ink.Dom) === 'undefined' || typeof(Ink.Dom.Selector) === 'undefined') {\n throw new Error('This method requires Ink.Dom.Selector');\n }\n return Ink.Dom.Selector.select(selector, (from || document))[0] || null;\n },\n\n /**\n * Extends an object with another\n * Copy all of the properties in one or more source objects over to the destination object, and return the destination object. It's in-order, so the last source will override properties of the same name in previous arguments.\n *\n * @method extendObj\n * @param {Object} destination The object that will receive the new/updated properties\n * @param {Object} source The object whose properties will be copied over to the destination object\n * @param {Object} [more...] Additional source objects. The last source will override properties of the same name in the previous defined sources\n * @return {Object} destination object, enriched with defaults from the sources\n * @sample Ink_1_extendObj.html\n */\n extendObj: function(destination/*, source... */) {\n var sources = [].slice.call(arguments, 1);\n\n for (var i = 0, len = sources.length; i < len; i++) {\n if (!sources[i]) { continue; }\n for (var property in sources[i]) {\n if(Object.prototype.hasOwnProperty.call(sources[i], property)) {\n destination[property] = sources[i][property];\n }\n }\n }\n\n return destination;\n },\n\n /**\n * Calls native console.log if available.\n *\n * @method log\n * @param {Mixed} [more...] Arguments to be evaluated\n * @return {void}\n * @sample Ink_1_log.html\n **/\n log: function () {\n // IE does not have console.log.apply in IE10 emulated mode\n var console = window.console;\n if (console && console.log) {\n apply.call(console.log, console, arguments);\n }\n },\n\n /**\n * Calls native console.warn if available.\n *\n * @method warn\n * @param {Mixed} [more...] Arguments to be evaluated\n * @return {void}\n * @sample Ink_1_warn.html\n **/\n warn: function () {\n // IE does not have console.log.apply in IE10 emulated mode\n var console = window.console;\n if (console && console.warn) {\n apply.call(console.warn, console, arguments);\n }\n },\n\n /**\n * Calls native console.error if available.\n *\n * @method error\n * @param {Mixed} [more...] Arguments to be evaluated\n * @return {void}\n * @sample Ink_1_error.html\n **/\n error: function () {\n // IE does not have console.log.apply in IE10 emulated mode\n var console = window.console;\n if (console && console.error) {\n apply.call(console.error, console, arguments);\n }\n }\n };\n\n\n // TODO for debug - to detect pending stuff\n /*\n var failCount = {}; // fail count per module name\n var maxFails = 3; // times\n var checkDelta = 0.5; //seconds\n\n var tmpTmr = setInterval(function() {\n var mk = Object.keys(modulesRequested);\n var l = mk.length;\n\n if (l > 0) {\n // console.log('** waiting for modules: ' + mk.join(', ') + ' **');\n\n for (var i = 0, f = mk.length, k, v; i < f; ++i) {\n k = mk[i];\n v = failCount[k];\n failCount[k] = (v === undefined) ? 1 : ++v;\n\n if (v >= maxFails) {\n console.error('** Loading of module ' + k + ' failed! **');\n delete modulesRequested[k];\n }\n }\n }\n else {\n // console.log('** Module loads complete. **');\n clearInterval(tmpTmr);\n }\n }, checkDelta*1000);\n */\n}(window, document));\n","/**\n * Cross Browser Ajax requests\n * @module Ink.Net.Ajax_1\n * @version 1\n */\n\nInk.createModule('Ink.Net.Ajax', '1', [], function() {\n 'use strict';\n\n /**\n * Creates a new XMLHttpRequest object\n *\n * @class Ink.Net.Ajax\n * @constructor\n *\n * @param {String} url Request URL\n * @param {Object} [options] Request options, containing:\n * @param {Boolean} [options.asynchronous=true] If false, the request synchronous.\n * @param {String} [options.contentType] Content-type header to be sent. Defaults to 'application/x-www-form-urlencoded'\n * @param {Boolean} [options.cors] Flag to activate CORS. Set this to true if you're doing a cross-origin request\n * @param {Boolean} [options.validateCors] If this is set to `true`, perform a CORS request automatically based on the URL being cross-domain or not.\n * @param {Number} [options.delay] Artificial delay. If the request is completed faster than this delay, wait the remaining time before executing the callbacks\n * @param {Boolean|String} [options.evalJS=true] If the request Content-type header is application/json, evaluates the response and populates responseJSON. Use 'force' if you want to force the response evaluation, no matter what Content-type it's using.\n * @param {String} [options.method='POST'] HTTP request method. POST by default.\n * @param {Object|String} [options.parameters] Request parameters to be sent with the request\n * @param {String} [options.postBody] POST request body. If not specified, it's filled with the contents from parameters\n * @param {Object} [options.requestHeaders] Key-value pairs for additional request headers\n * @param {Boolean} [options.sanitizeJSON] Flag to sanitize the content of responseText before evaluation\n * @xparam {Boolean} [options.signRequest=false] Send a \"X-Requested-With: XMLHttpRequest\" header in the request.\n * @param {Number} [options.timeout] Request timeout in seconds\n * @param {String} [options.xhrProxy] URI for proxy service hosted on the same server as the web app, that can fetch documents from other domains. The service must pipe all input and output untouched (some input sanitization is allowed, like clearing cookies). e.g., requesting http://example.org/doc can become /proxy/http%3A%2F%2Fexample.org%2Fdoc The proxy service will be used for cross-domain requests, if set, else a network error is returned as exception.\n * @param {Function} [options.onComplete] Callback executed after the request is completed, regardless of what happened during the request.\n * @param {Function} [options.onCreate] Callback executed after object initialization but before the request is made\n * @param {Function} [options.onException] Callback executed if an exception occurs. Receives the exception as a parameter.\n * @param {Function} [options.onFailure] Callback executed if the request fails (requests with status codes different from 2xx)\n * @param {Function} [options.onHeaders] Callback executed when headers of the response arrive.\n * @param {Function} [options.onInit] Callback executed before any initialization\n * @param {Function} [options.onSuccess] Callback executed if the request is successful (requests with 2xx status codes)\n * @param {Function} [options.onTimeout] Callback executed if the request times out\n *\n * @sample Ink_Net_Ajax_1.html \n */\n var Ajax = function(url, options){\n this.init(url, options);\n };\n\n /**\n * Options for all requests. These can then be overriden for individual ones.\n */\n Ajax.globalOptions = {\n parameters: {},\n requestHeaders: {}\n };\n\n\n // IE10 does not need XDomainRequest\n var xMLHttpRequestWithCredentials = 'XMLHttpRequest' in window && 'withCredentials' in (new XMLHttpRequest());\n\n\n\n Ajax.prototype = {\n\n init: function(url, userOptions) {\n if (!url) {\n throw new Error(\"new Ink.Net.Ajax: Pass a url as the first argument!\");\n }\n var options = Ink.extendObj({\n asynchronous: true,\n contentType: 'application/x-www-form-urlencoded',\n cors: false,\n validateCors: false,\n debug: false,\n delay: 0,\n evalJS: true,\n method: 'POST',\n parameters: null,\n postBody: '',\n requestHeaders: null,\n sanitizeJSON: false,\n signRequest: false,\n timeout: 0,\n useCredentials: false,\n xhrProxy: '',\n onComplete: null,\n onCreate: null,\n onException: null,\n onFailure: null,\n onHeaders: null,\n onInit: null,\n onSuccess: null,\n onTimeout: null\n }, Ajax.globalOptions);\n\n if (userOptions && typeof userOptions === 'object') {\n options = Ink.extendObj(options, userOptions);\n\n\n if (typeof userOptions.parameters === 'object') {\n options.parameters = Ink.extendObj(Ink.extendObj({}, Ajax.globalOptions.parameters), userOptions.parameters);\n } else if (userOptions.parameters !== null) {\n var globalParameters = this.paramsObjToStr(Ajax.globalOptions.parameters);\n if (globalParameters) {\n options.parameters = userOptions.parameters + '&' + globalParameters;\n }\n }\n\n options.requestHeaders = Ink.extendObj({}, Ajax.globalOptions.requestHeaders);\n options.requestHeaders = Ink.extendObj(options.requestHeaders, userOptions.requestHeaders);\n }\n\n this.options = options;\n\n this.safeCall('onInit');\n\n this.url = url;\n\n var urlLocation = this._locationFromURL(url);\n this.isHTTP = this._locationIsHTTP(urlLocation);\n this.isCrossDomain = this._locationIsCrossDomain(urlLocation, location);\n\n this.requestHasBody = options.method.search(/^get|head$/i) < 0;\n\n if (this.options.validateCors === true) {\n this.options.cors = this.isCrossDomain;\n }\n\n if(this.options.cors) {\n this.isCrossDomain = false;\n }\n\n this.transport = this.getTransport();\n\n this.request();\n },\n\n /**\n * Returns a location object from an URL\n *\n * @method _locationFromUrl\n * @param {String} url Input url\n * @return {Location} An `` element with `href` set to the given URL.\n * @private\n **/\n _locationFromURL: function (url) {\n var urlLocation = document.createElementNS ?\n document.createElementNS('http://www.w3.org/1999/xhtml', 'a') :\n document.createElement('a');\n urlLocation.setAttribute('href', url);\n return urlLocation;\n },\n\n /**\n * Checks whether a location is HTTP or HTTPS\n *\n * @method locationIsHttp\n * @param {Location} urlLocation Location object or `` element representing the current location.\n * @return {Boolean} `true` if the location is HTTP or HTTPS, `false` otherwise.\n * @private\n */\n _locationIsHTTP: function (urlLocation) {\n return urlLocation.href.match(/^https?:/i) ? true : false;\n },\n\n /**\n * Checks whether a location is cross-domain from ours.\n *\n * @method _locationIsCrossDomain\n * @param {Location} urlLocation A Location object or an `` elemnt.\n * @param {Location} [location=window.location] A location representing this one. This argument only exists for testing. Don't use it.\n * @return {Boolean} `true` if the locations are in different domains (in which case we need to perform a cross-domain request)\n * @private\n */\n _locationIsCrossDomain: function (urlLocation, location) {\n // TODO because of oldIE compatibility, we can only use .href (the full URL), and none of the other useful properties one can find in Location elements. So we should just pass pure strings around. Not only here.\n location = location || window.location;\n if (!Ajax.prototype._locationIsHTTP(urlLocation) || location.protocol === 'widget:' || typeof window.widget === 'object') {\n return false;\n } else {\n var split1 = urlLocation.href.split('//');\n var split2 = location.href.split('//');\n\n if (split1.length === 1 || split2.length === 1) {\n // This occurs when there's no protocol string in either URL\n // Only happens in IE7 because setting the \"href\" of a link doesn't make that link show you the full URL when the URI is relative to this host.\n // So we have our answer.\n // If there's no protocol string\n // We know for sure that our `urlLocation` is relative\n // In which case, they are in the same domain.\n return false;\n }\n\n var protocol1 = split1[0];\n var protocol2 = split2[0];\n\n var colonOrSlash = /:|\\//; // Finds colons or slashes, which are the end of hostnames (without ports)\n\n var host1 = split1[1].split(colonOrSlash)[0];\n var host2 = split2[1].split(colonOrSlash)[0];\n\n return protocol1 !== protocol2 ||\n host1 !== host2;\n }\n },\n\n /**\n * Creates the appropriate XMLHttpRequest object, depending on our browser and whether we're trying to perform a cross-domain request.\n *\n * @method getTransport\n * @return {Object} XMLHttpRequest object\n * @private\n */\n getTransport: function()\n {\n /*global XDomainRequest:false, ActiveXObject:false */\n if (!xMLHttpRequestWithCredentials && this.options.cors && 'XDomainRequest' in window) {\n this.usingXDomainReq = true;\n return new XDomainRequest();\n }\n else if (typeof XMLHttpRequest !== 'undefined') {\n return new XMLHttpRequest();\n }\n else if (typeof ActiveXObject !== 'undefined') {\n try {\n return new ActiveXObject('Msxml2.XMLHTTP');\n } catch (e) {\n return new ActiveXObject('Microsoft.XMLHTTP');\n }\n } else {\n return null;\n }\n },\n\n /**\n * Set the necessary headers for an ajax request.\n *\n * @method setHeaders\n * @return {void}\n */\n setHeaders: function()\n {\n if (this.transport) {\n try {\n var headers = {\n \"Accept\": \"text/javascript,text/xml,application/xml,application/xhtml+xml,text/html,application/json;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1\",\n \"Accept-Language\": navigator.language,\n \"X-Requested-With\": \"XMLHttpRequest\",\n \"X-Ink-Version\": \"3\"\n };\n if (this.options.cors) {\n if (!this.options.signRequest) {\n delete headers['X-Requested-With'];\n }\n delete headers['X-Ink-Version'];\n }\n\n if (this.options.requestHeaders && typeof this.options.requestHeaders === 'object') {\n for(var headerReqName in this.options.requestHeaders) {\n if (this.options.requestHeaders.hasOwnProperty(headerReqName)) {\n headers[headerReqName] = this.options.requestHeaders[headerReqName];\n }\n }\n }\n\n if (this.transport.overrideMimeType && (navigator.userAgent.match(/Gecko\\/(\\d{4})/) || [0,2005])[1] < 2005) {\n headers.Connection = 'close';\n }\n\n for (var headerName in headers) {\n if(headers.hasOwnProperty(headerName)) {\n this.transport.setRequestHeader(headerName, headers[headerName]);\n }\n }\n } catch(e) {}\n }\n },\n\n /**\n * Converts an object with parameters to a querystring\n *\n * @method paramsObjToStr\n * @param {Object} optParams Parameters object, example: `{ a: 2, b: 3 }`\n * @return {String} A query string. Example: `'a=2&b=3'`\n * @private\n */\n paramsObjToStr: function(optParams) {\n var k, m, p, a, params = [];\n if (typeof optParams === 'object') {\n for (p in optParams){\n if (optParams.hasOwnProperty(p)) {\n a = optParams[p];\n if (Object.prototype.toString.call(a) === '[object Array]' && !isNaN(a.length)) {\n for (k = 0, m = a.length; k < m; k++) {\n params = params.concat([\n encodeURIComponent(p), '[]', '=',\n encodeURIComponent(a[k]), '&'\n ]);\n }\n }\n else {\n params = params.concat([\n encodeURIComponent(p), '=',\n encodeURIComponent(a), '&'\n ]);\n }\n }\n }\n if (params.length > 0) {\n params.pop();\n }\n }\n else\n {\n return optParams;\n }\n return params.join('');\n },\n\n /**\n * Set the url parameters for a GET request\n *\n * @method setParams\n * @return {void}\n * @private\n */\n setParams: function()\n {\n var params = null, optParams = this.options.parameters;\n\n if(typeof optParams === \"object\"){\n params = this.paramsObjToStr(optParams);\n } else {\n params = '' + optParams;\n }\n\n if(params){\n if(this.url.indexOf('?') > -1) {\n this.url = this.url.split('#')[0] + '&' + params;\n } else {\n this.url = this.url.split('#')[0] + '?' + params;\n }\n }\n },\n\n /**\n * Gets an HTTP header from the response\n *\n * @method getHeader\n * @param {String} name Header name\n * @return {String} Header content\n * @public\n */\n getHeader: function(name)\n {\n if (this.usingXDomainReq && name === 'Content-Type') {\n return this.transport.contentType;\n }\n try{\n return this.transport.getResponseHeader(name);\n } catch(e) {\n return null;\n }\n },\n\n /**\n * Gets all the HTTP headers from the response\n *\n * @method getAllHeaders\n * @return {String} The headers, each separated by a newline\n * @public\n */\n getAllHeaders: function()\n {\n try {\n return this.transport.getAllResponseHeaders();\n } catch(e) {\n return null;\n }\n },\n\n /**\n * Gets the ajax response object\n *\n * @method getResponse\n * @return {Object} The response object\n * @public\n */\n getResponse: function(){\n // setup our own stuff\n var t = this.transport,\n r = {\n headerJSON: null,\n responseJSON: null,\n getHeader: this.getHeader,\n getAllHeaders: this.getAllHeaders,\n request: this,\n transport: t,\n timeTaken: new Date() - this.startTime,\n requestedUrl: this.url\n };\n\n // setup things expected from the native object\n r.readyState = t.readyState;\n try { r.responseText = t.responseText; } catch(e) {}\n try { r.responseXML = t.responseXML; } catch(e) {}\n try { r.status = t.status; } catch(e) { r.status = 0; }\n try { r.statusText = t.statusText; } catch(e) { r.statusText = ''; }\n\n return r;\n },\n\n /**\n * Aborts the request if still running. No callbacks are called\n *\n * @method abort\n * @return {void}\n * @public\n */\n abort: function(){\n if (this.transport) {\n clearTimeout(this.delayTimeout);\n clearTimeout(this.stoTimeout);\n this._aborted = true;\n try { this.transport.abort(); } catch(ex) {}\n this.finish();\n }\n },\n\n /**\n * Executes the state changing phase of an ajax request\n *\n * @method runStateChange\n * @return {void}\n * @public\n */\n runStateChange: function() {\n if (this._aborted) { return; } // We don't care!\n var rs = this.transport.readyState;\n if (rs === 3) {\n if (this.isHTTP) {\n this.safeCall('onHeaders');\n }\n } else if (rs === 4 || this.usingXDomainReq) {\n\n if (this.options.asynchronous && this.options.delay && (this.startTime + this.options.delay > new Date().getTime())) {\n this.delayTimeout = setTimeout(Ink.bind(this.runStateChange, this), this.options.delay + this.startTime - new Date().getTime());\n return;\n }\n\n var responseJSON,\n responseContent = this.transport.responseText,\n response = this.getResponse(),\n curStatus = this.transport.status;\n\n if (this.isHTTP && !this.options.asynchronous) {\n this.safeCall('onHeaders');\n }\n\n clearTimeout(this.stoTimeout);\n\n if (curStatus === 0) {\n // Status 0 indicates network error for http requests.\n // For http less requests, 0 is always returned.\n if (this.isHTTP) {\n this.safeCall('onException', new Error('Ink.Net.Ajax: network error! (HTTP status 0)'));\n } else {\n curStatus = responseContent ? 200 : 404;\n }\n }\n else if (curStatus === 304) {\n curStatus = 200;\n }\n var isSuccess = this.usingXDomainReq || 200 <= curStatus && curStatus < 300;\n\n var headerContentType = this.getHeader('Content-Type') || '';\n if (this.options.evalJS &&\n (headerContentType.indexOf(\"application/json\") >= 0 || this.options.evalJS === 'force')){\n try {\n responseJSON = this.evalJSON(responseContent, this.sanitizeJSON);\n\n if(responseJSON){\n responseContent = response.responseJSON = responseJSON;\n }\n } catch(e){\n if (isSuccess) {\n // If the request failed, then this is perhaps an error page\n // so don't notify error.\n this.safeCall('onException', e);\n }\n }\n }\n\n if (this.usingXDomainReq && headerContentType.indexOf('xml') !== -1 && 'DOMParser' in window) {\n // http://msdn.microsoft.com/en-us/library/ie/ff975278(v=vs.85).aspx\n var mimeType;\n switch (headerContentType) {\n case 'application/xml':\n case 'application/xhtml+xml':\n case 'image/svg+xml':\n mimeType = headerContentType;\n break;\n default:\n mimeType = 'text/xml';\n }\n var xmlDoc = (new DOMParser()).parseFromString( this.transport.responseText, mimeType);\n this.transport.responseXML = xmlDoc;\n response.responseXML = xmlDoc;\n }\n\n if (this.transport.responseXML != null && response.responseJSON == null && this.transport.responseXML.xml !== \"\"){\n responseContent = this.transport.responseXML;\n }\n\n if (curStatus || this.usingXDomainReq) {\n if (isSuccess) {\n this.safeCall('onSuccess', response, responseContent);\n } else {\n this.safeCall('onFailure', response, responseContent);\n }\n this.safeCall('on'+curStatus, response, responseContent);\n }\n this.finish(response, responseContent);\n }\n },\n\n /**\n * Last step after XHR is complete. Call onComplete and cleanup object\n *\n * @method finish\n * @param {Mixed} response Response object as returned from getResponse().\n * @param {Mixed} responseContent Content of the response.\n * @return {void}\n * @private\n */\n finish: function(response, responseContent){\n if (response) {\n this.safeCall('onComplete', response, responseContent);\n }\n clearTimeout(this.stoTimeout);\n\n if (this.transport) {\n // IE6 sometimes barfs on this one\n try{ this.transport.onreadystatechange = null; } catch(e){}\n\n if (typeof this.transport.destroy === 'function') {\n // Stuff for Samsung.\n this.transport.destroy();\n }\n\n // Let XHR be collected.\n this.transport = null;\n }\n },\n\n /**\n * Safely calls a callback function.\n * Verifies that the callback is well defined and traps errors\n *\n * If you pass in an error as the second argument, it gets thrown if there is no default listener.\n *\n * @method safeCall\n * @param {Function} handlerName Name of the handler we wish to call\n * @param {Error} error This error gets reported to the console using Ink.error if there's no listener to `handlerName`.\n * @param {Mixed} [args...] Arguments to get passed to the `handlerName` handler.\n * @return {void}\n * @private\n */\n safeCall: function(handlerName /*[error or rest...]*/) {\n var error = arguments[1] instanceof Error ? arguments[1] : null;\n if (typeof this.options[handlerName] === 'function') {\n try {\n this.options[handlerName].apply(this, [].slice.call(arguments, 1));\n } catch(ex) {\n Ink.error('Ink.Net.Ajax: an error was raised while executing ' + handlerName + '.', ex);\n }\n } else if (error) {\n Ink.error('Ink.Net.Ajax: ' + error);\n }\n },\n\n /**\n * Sets a new request header for the next http request\n *\n * @method setRequestHeader\n * @param {String} name Header name.\n * @param {String} value New header value.\n * @return {void}\n * @public\n */\n setRequestHeader: function(name, value){\n if (!this.options.requestHeaders) {\n this.options.requestHeaders = {};\n }\n this.options.requestHeaders[name] = value;\n },\n\n /**\n * Executes the request\n *\n * @method request\n * @return {void}\n * @private\n */\n request: function()\n {\n if(this.transport) {\n var params = null;\n if(this.requestHasBody) {\n if(this.options.postBody !== null && this.options.postBody !== '') {\n params = this.options.postBody;\n this.setParams();\n } else if (this.options.parameters !== null && this.options.parameters !== ''){\n params = this.options.parameters;\n }\n\n if (typeof params === \"object\" && !params.nodeType) {\n params = this.paramsObjToStr(params);\n } else if (typeof params !== \"object\" && params !== null){\n params = '' + params;\n }\n\n if(this.options.contentType) {\n this.setRequestHeader('Content-Type', this.options.contentType);\n }\n } else {\n this.setParams();\n }\n\n var url = this.url;\n var method = this.options.method;\n var crossDomain = this.isCrossDomain;\n\n if (crossDomain && this.options.xhrProxy) {\n this.setRequestHeader('X-Url', url);\n url = this.options.xhrProxy + encodeURIComponent(url);\n crossDomain = false;\n }\n\n try {\n this.transport.open(method, url, this.options.asynchronous);\n } catch(e) {\n this.safeCall('onException', e);\n return this.finish(this.getResponse(), null);\n }\n\n this.setHeaders();\n\n this.safeCall('onCreate');\n\n if(this.options.timeout && !isNaN(this.options.timeout)) {\n this.stoTimeout = setTimeout(Ink.bind(function() {\n if(this.options.onTimeout) {\n this.safeCall('onTimeout');\n this.abort();\n }\n }, this), (this.options.timeout * 1000));\n }\n\n if(this.options.useCredentials && !this.usingXDomainReq) {\n this.transport.withCredentials = true;\n }\n\n if(this.options.asynchronous && !this.usingXDomainReq) {\n this.transport.onreadystatechange = Ink.bind(this.runStateChange, this);\n }\n else if (this.usingXDomainReq) {\n this.transport.onload = Ink.bind(this.runStateChange, this);\n }\n\n try {\n if (crossDomain) {\n // Need explicit handling because Mozila aborts\n // the script and Chrome fails silently.per the spec\n Ink.error('Ink.Net.Ajax: You are attempting to request a URL which is cross-domain from this one. To do this, you *must* enable the `cors` option!');\n return;\n } else {\n this.startTime = new Date().getTime();\n this.transport.send(params);\n }\n } catch(e) {\n this.safeCall('onException', e);\n return this.finish(this.getResponse(), null);\n }\n\n if(!this.options.asynchronous) {\n this.runStateChange();\n }\n }\n },\n\n /**\n * Checks if a given string is valid JSON\n *\n * @method isJSON\n * @param {String} str String to be evaluated\n * @return {Boolean} True if the string is valid JSON\n * @public\n */\n isJSON: function(str)\n {\n if (typeof str !== \"string\" || !str){ return false; }\n str = str.replace(/\\\\./g, '@').replace(/\"[^\"\\\\\\n\\r]*\"/g, '');\n return (/^[,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]*$/).test(str);\n },\n\n /**\n * Evaluates a given string as JSON\n *\n * @method evalJSON\n * @param {String} strJSON String to be evaluated\n * @param {Boolean} sanitize Flag to sanitize the content\n * @return {Object} JSON content as an object\n * @public\n */\n evalJSON: function(strJSON, sanitize)\n {\n if (strJSON && (!sanitize || this.isJSON(strJSON))) {\n try {\n if (typeof JSON !== \"undefined\" && typeof JSON.parse !== 'undefined'){\n return JSON.parse(strJSON);\n }\n /*jshint evil:true */\n return eval('(' + strJSON + ')');\n } catch(e) {\n throw new Error('Ink.Net.Ajax: Bad JSON string. ' + e);\n }\n }\n return null;\n }\n };\n\n /**\n * Loads content from a given url through an XMLHttpRequest.\n *\n * Shortcut function for simple AJAX use cases. Works with JSON, XML and plain text.\n *\n * @method load\n * @param {String} url Request URL\n * @param {Function} callback Callback to be executed if the request is successful\n * @return {Object} XMLHttpRequest object\n * @public\n *\n * @sample Ink_Net_Ajax_load.html \n */\n Ajax.load = function(url, callback){\n var isCrossDomain = Ajax.prototype._locationIsCrossDomain(window.location, Ajax.prototype._locationFromURL(url));\n return new Ajax(url, {\n method: 'GET',\n cors: isCrossDomain,\n onSuccess: function(response){\n callback(response.responseJSON || response.responseText, response);\n }\n });\n };\n\n /**\n * Loads content from a given url through an XMLHttpRequest.\n * Shortcut function for simple AJAX use cases.\n *\n * @method ping\n * @param {String} url Request url\n * @param {Function} callback Callback to be executed if the request is successful\n * @public\n * @return {Object} XMLHttpRequest object\n */\n Ajax.ping = function(url, callback){\n var isCrossDomain = Ajax.prototype._locationIsCrossDomain(window.location, Ajax.prototype._locationFromURL(url));\n return new Ajax(url, {\n method: 'HEAD',\n cors: isCrossDomain,\n onSuccess: function(response){\n if (typeof callback === 'function'){\n callback(response);\n }\n }\n });\n };\n\n\n return Ajax;\n});\n","/**\n * Cross Browser JsonP requests\n * @module Ink.Net.JsonP_1\n * @version 1\n */\n\nInk.createModule('Ink.Net.JsonP', '1', [], function() {\n\n 'use strict';\n\n /**\n * Executes a JSONP request\n *\n * @class Ink.Net.JsonP\n * @constructor\n *\n * @param {String} uri Request URL\n * @param {Object} options Request options\n * @param {Function} options.onSuccess Success callback. Called with the JSONP response.\n * @param {Function} [options.onFailure] Failure callback. Called when there is a timeout.\n * @param {Object} [options.failureObj] Object to be passed as argument to failure callback\n * @param {Number} [options.timeout] Timeout for the request, in seconds. defaults to 10.\n * @param {Object} [options.params] Object with URL parameters.\n * @param {String} [options.callbackParam] URL parameter which gets the name of the JSONP function to call. defaults to 'jsoncallback'.\n * @param {String} [options.randVar] (Advanced, not recommended unless you know what you're doing) A string to append to the callback name. By default, generate a random number. Use an empty string if you already passed the correct name in the internalCallback option.\n * @param {String} [options.internalCallback] (Advanced) Name of the callback function stored in the Ink.Net.JsonP object (before it's prefixed).\n *\n * @sample Ink_Net_JsonP_1.html \n */\n var JsonP = function(uri, options) {\n this.init(uri, options);\n };\n\n JsonP.prototype = {\n\n init: function(uri, options) {\n this.options = Ink.extendObj( {\n onSuccess: undefined,\n onFailure: undefined,\n failureObj: {},\n timeout: 10,\n params: {},\n callbackParam: 'jsoncallback',\n internalCallback: '_cb',\n randVar: false\n }, options || {});\n\n if(this.options.randVar !== false) {\n this.randVar = this.options.randVar;\n } else {\n this.randVar = parseInt(Math.random() * 100000, 10);\n }\n\n this.options.internalCallback += this.randVar;\n\n this.uri = uri;\n\n // prevent SAPO legacy onComplete - make it onSuccess\n if(typeof(this.options.onComplete) === 'function') {\n this.options.onSuccess = this.options.onComplete;\n }\n\n if (typeof this.uri !== 'string') {\n throw new Error('Ink.Net.JsonP: Please define an URI');\n }\n\n if (typeof this.options.onSuccess !== 'function') {\n throw new Error('Ink.Net.JsonP: please define a callback function on option onSuccess!');\n }\n\n Ink.Net.JsonP[this.options.internalCallback] = Ink.bind(function() {\n this.options.onSuccess(arguments[0]);\n this._cleanUp();\n }, this);\n\n this.timeout = setTimeout(Ink.bind(function () {\n this.abort();\n if(typeof this.options.onFailure === 'function'){\n this.options.onFailure(this.options.failureObj);\n }\n }, this),\n this.options.timeout * 1000);\n\n this._addScriptTag();\n },\n\n /**\n * Abort the request, avoiding onSuccess or onFailure being called.\n * @method abort\n * @return {void}\n **/\n abort: function () {\n Ink.Net.JsonP[this.options.internalCallback] = Ink.bindMethod(this, '_cleanUp');\n },\n\n _addParamsToGet: function(uri, params) {\n var hasQuestionMark = uri.indexOf('?') !== -1;\n var sep, pKey, pValue, parts = [uri];\n\n for (pKey in params) {\n if (params.hasOwnProperty(pKey)) {\n if (!hasQuestionMark) { sep = '?'; hasQuestionMark = true; }\n else { sep = '&'; }\n pValue = params[pKey];\n if (typeof pValue !== 'number' && !pValue) { pValue = ''; }\n parts = parts.concat([sep, pKey, '=', encodeURIComponent(pValue)]);\n }\n }\n\n return parts.join('');\n },\n\n _getScriptContainer: function() {\n return document.body ||\n document.getElementsByTagName('body')[0] ||\n document.getElementsByTagName('head')[0] ||\n document.documentElement;\n },\n\n _addScriptTag: function() {\n // enrich options will callback and random seed\n this.options.params[this.options.callbackParam] = 'Ink.Net.JsonP.' + this.options.internalCallback;\n this.options.params.rnd_seed = this.randVar;\n this.uri = this._addParamsToGet(this.uri, this.options.params);\n // create script tag\n this._scriptEl = document.createElement('script');\n this._scriptEl.type = 'text/javascript';\n this._scriptEl.src = this.uri;\n var scriptCtn = this._getScriptContainer();\n scriptCtn.appendChild(this._scriptEl);\n },\n\n _cleanUp: function () {\n if (this.timeout) {\n window.clearTimeout(this.timeout);\n }\n delete this.options.onSuccess;\n delete this.options.onFailure;\n delete Ink.Net.JsonP[this.options.internalCallback];\n this._removeScriptTag();\n },\n\n _removeScriptTag: function() {\n if (!this._scriptEl) { return; /* already removed */ }\n this._scriptEl.parentNode.removeChild(this._scriptEl);\n delete this._scriptEl;\n }\n };\n\n return JsonP;\n\n});\n","/**\n * Browser Detection and User Agent sniffing\n * @module Ink.Dom.Browser_1\n * @version 1\n */\nInk.createModule('Ink.Dom.Browser', '1', [], function() {\n 'use strict'; \n\n /**\n * @namespace Ink.Dom.Browser\n * @version 1\n * @static\n * @example\n * \n */\n var Browser = {\n /**\n * True if the browser is Internet Explorer\n *\n * @property IE\n * @type {Boolean}\n * @public\n * @static\n */\n IE: false,\n\n /**\n * True if the browser is Gecko based\n *\n * @property GECKO\n * @type {Boolean}\n * @public\n * @static\n */\n GECKO: false,\n\n /**\n * True if the browser is Opera\n *\n * @property OPERA\n * @type {Boolean}\n * @public\n * @static\n */\n OPERA: false,\n\n /**\n * True if the browser is Safari\n *\n * @property SAFARI\n * @type {Boolean}\n * @public\n * @static\n */\n SAFARI: false,\n\n /**\n * True if the browser is Konqueror\n *\n * @property KONQUEROR\n * @type {Boolean}\n * @public\n * @static\n */\n KONQUEROR: false,\n\n /**\n * True if browser is Chrome\n *\n * @property CHROME\n * @type {Boolean}\n * @public\n * @static\n */\n CHROME: false,\n\n /**\n * The specific browser model.\n * False if it is unavailable.\n *\n * @property model\n * @type {Boolean|String}\n * @public\n * @static\n */\n model: false,\n\n /**\n * The browser version.\n * False if it is unavailable.\n *\n * @property version\n * @type {Boolean|String}\n * @public\n * @static\n */\n version: false,\n\n /**\n * The user agent string.\n * False if it is unavailable.\n *\n * @property userAgent\n * @type {Boolean|String}\n * @public\n * @static\n */\n userAgent: false,\n\n /**\n * The CSS prefix (-moz-, -webkit-, -ms-, ...)\n * False if it is unavailable \n *\n * @property cssPrefix \n * @type {Boolean|String}\n * @public \n * @static \n */\n cssPrefix: false, \n\n /**\n * The DOM prefix (Moz, Webkit, ms, ...)\n * False if it is unavailable \n * @property domPrefix \n * @type {Boolean|String}\n * @public \n * @static \n */\n domPrefix: false,\n\n /**\n * Initialization function for the Browser object.\n *\n * Is called automatically when this module is loaded, and calls setDimensions, setBrowser and setReferrer.\n *\n * @method init\n * @return {void}\n * @public\n */\n init: function() {\n this.detectBrowser();\n this.setDimensions();\n this.setReferrer();\n },\n\n /**\n * Retrieves and stores window dimensions in this object. Called automatically when this module is loaded.\n *\n * @method setDimensions\n * @return {void}\n * @public\n */\n setDimensions: function() {\n //this.windowWidth=window.innerWidth !== null? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body !== null ? document.body.clientWidth : null;\n //this.windowHeight=window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;\n var myWidth = 0, myHeight = 0;\n if ( typeof window.innerWidth=== 'number' ) {\n myWidth = window.innerWidth;\n myHeight = window.innerHeight;\n } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {\n myWidth = document.documentElement.clientWidth;\n myHeight = document.documentElement.clientHeight;\n } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {\n myWidth = document.body.clientWidth;\n myHeight = document.body.clientHeight;\n }\n this.windowWidth = myWidth;\n this.windowHeight = myHeight;\n },\n\n /**\n * Stores the referrer. Called automatically when this module is loaded.\n *\n * @method setReferrer\n * @return {void}\n * @public\n */\n setReferrer: function() {\n if (document.referrer && document.referrer.length) {\n this.referrer = window.escape(document.referrer);\n } else {\n this.referrer = false;\n }\n },\n\n /**\n * Detects the browser and stores the found properties. Called automatically when this module is loaded.\n *\n * @method detectBrowser\n * @return {void}\n * @public\n */\n detectBrowser: function() {\n this._sniffUserAgent(navigator.userAgent);\n },\n\n _sniffUserAgent: function (sAgent) {\n this.userAgent = sAgent;\n\n sAgent = sAgent.toLowerCase();\n\n if (/applewebkit\\//.test(sAgent) && !/iemobile/.test(sAgent)) {\n this.cssPrefix = '-webkit-';\n this.domPrefix = 'Webkit';\n if(/(chrome|crios)\\//.test(sAgent)) {\n // Chrome\n this.CHROME = true;\n this.model = 'chrome';\n this.version = sAgent.replace(/(.*)chrome\\/([^\\s]+)(.*)/, \"$2\");\n } else {\n // Safari\n this.SAFARI = true;\n this.model = 'safari';\n var rVersion = /version\\/([^) ]+)/;\n if (rVersion.test(sAgent)) {\n this.version = sAgent.match(rVersion)[1];\n } else {\n this.version = sAgent.replace(/(.*)applewebkit\\/([^\\s]+)(.*)/, \"$2\");\n }\n }\n } else if (/opera/.test(sAgent)) {\n // Opera\n this.OPERA = true;\n this.model = 'opera';\n this.version = sAgent.replace(/(.*)opera.([^\\s$]+)(.*)/, \"$2\");\n this.cssPrefix = '-o-';\n this.domPrefix = 'O';\n } else if (/konqueror/.test(sAgent)) {\n // Konqueroh\n this.KONQUEROR = true;\n this.model = 'konqueror';\n this.version = sAgent.replace(/(.*)konqueror\\/([^;]+);(.*)/, \"$2\");\n this.cssPrefix = '-khtml-';\n this.domPrefix = 'Khtml';\n } else if (/(msie|trident)/i.test(sAgent)) {\n // MSIE\n this.IE = true;\n this.model = 'ie';\n if (/rv:((?:\\d|\\.)+)/.test(sAgent)) { // IE 11\n this.version = sAgent.match(/rv:((?:\\d|\\.)+)/)[1];\n } else {\n this.version = sAgent.replace(/(.*)\\smsie\\s([^;]+);(.*)/, \"$2\");\n }\n this.cssPrefix = '-ms-';\n this.domPrefix = 'ms';\n } else if (/gecko/.test(sAgent)) {\n // GECKO\n // Supports only:\n // Camino, Chimera, Epiphany, Minefield (firefox 3), Firefox, Firebird, Phoenix, Galeon,\n // Iceweasel, K-Meleon, SeaMonkey, Netscape, Songbird, Sylera,\n this.cssPrefix = '-moz-';\n this.domPrefix = 'Moz';\n\n this.GECKO = true;\n\n var re = /(camino|chimera|epiphany|minefield|firefox|firebird|phoenix|galeon|iceweasel|k\\-meleon|seamonkey|netscape|songbird|sylera)/;\n if(re.test(sAgent)) {\n this.model = sAgent.match(re)[1];\n this.version = sAgent.replace(new RegExp(\"(.*)\"+this.model+\"\\/([^;\\\\s$]+)(.*)\"), \"$2\");\n } else {\n // probably is mozilla\n this.model = 'mozilla';\n var reVersion = /(.*)rv:([^)]+)(.*)/;\n if(reVersion.test(sAgent)) {\n this.version = sAgent.replace(reVersion, \"$2\");\n }\n }\n }\n },\n\n /**\n * Debug function which displays browser (and Ink.Dom.Browser) information as an alert message.\n *\n * @method debug\n * @return {void}\n * @public\n * @sample Ink_Dom_Browser_1_debug.html\n */\n debug: function() {\n /*global alert:false */\n var str = \"known browsers: (ie, gecko, opera, safari, konqueror) \\n\";\n str += [this.IE, this.GECKO, this.OPERA, this.SAFARI, this.KONQUEROR] +\"\\n\";\n str += \"cssPrefix -> \"+this.cssPrefix+\"\\n\";\n str += \"domPrefix -> \"+this.domPrefix+\"\\n\";\n str += \"model -> \"+this.model+\"\\n\";\n str += \"version -> \"+this.version+\"\\n\";\n str += \"\\n\";\n str += \"original UA -> \"+this.userAgent;\n\n alert(str);\n }\n };\n\n Browser.init();\n\n return Browser;\n});\n","/**\n * CSS Utilities and toolbox\n * @module Ink.Dom.Css_1\n * @version 1\n */\n\nInk.createModule( 'Ink.Dom.Css', 1, [], function() {\n\n 'use strict';\n\n // getComputedStyle feature detection.\n var getCs = (\"defaultView\" in document) && (\"getComputedStyle\" in document.defaultView) ? document.defaultView.getComputedStyle : window.getComputedStyle;\n\n /**\n * @namespace Ink.Dom.Css\n * @static\n */\n\n var Css = {\n /**\n * Adds of removes a class.\n * Depending on addRemState, this method either adds a class if it's true or removes if if false.\n *\n * @method addRemoveClassName\n * @param {DOMElement|string} elm DOM element or element id\n * @param {string} className class name to add or remove.\n * @param {boolean} addRemState Whether to add or remove. `true` to add, `false` to remove.\n * @return {void}\n * @public\n * @sample Ink_Dom_Css_addRemoveClassName.html \n */\n addRemoveClassName: function(elm, className, addRemState) {\n if (addRemState) {\n return this.addClassName(elm, className);\n }\n this.removeClassName(elm, className);\n },\n\n /**\n * Adds a class to a given element\n *\n * @method addClassName\n * @param {Element|String} elm Element or element id\n * @param {String|Array} className Class or classes to add. Examples: 'my-class', ['my-class', 'other-class'], 'my-class other-class'\n * @return {void}\n * @public\n * @sample Ink_Dom_Css_addClassName.html\n */\n addClassName: function(elm, className) {\n elm = Ink.i(elm);\n if (!elm || !className) { return null; }\n className = ('' + className).split(/[, ]+/);\n var i = 0;\n var len = className.length;\n\n for (; i < len; i++) {\n // remove whitespace and ignore on empty string\n if (className[i].replace(/^\\s+|\\s+$/g, '')) {\n if (typeof elm.classList !== \"undefined\") {\n elm.classList.add(className[i]);\n } else if (!Css.hasClassName(elm, className[i])) {\n elm.className += (elm.className ? ' ' : '') + className[i];\n }\n }\n }\n },\n\n /**\n * Removes a class from a given element\n *\n * @method removeClassName\n * @param {DOMElement|String} elm DOM element or element id\n * @param {String|Array} className Class names to remove. You can either use a space separated string of classnames, comma-separated list or an array\n * @return {void}\n * @public\n * @sample Ink_Dom_Css_removeClassName.html \n */\n removeClassName: function(elm, className) {\n elm = Ink.i(elm);\n if (!elm || !className) { return null; }\n \n className = ('' + className).split(/[, ]+/);\n var i = 0;\n var len = className.length;\n\n if (typeof elm.classList !== \"undefined\"){\n for (; i < len; i++) {\n elm.classList.remove(className[i]);\n }\n } else {\n var elmClassName = elm.className || '';\n var re;\n for (; i < len; i++) {\n re = new RegExp(\"(^|\\\\s+)\" + className[i] + \"(\\\\s+|$)\");\n elmClassName = elmClassName.replace(re, ' ');\n }\n elm.className = (elmClassName\n .replace(/^\\s+/, '')\n .replace(/\\s+$/, ''));\n }\n },\n\n /**\n * Alias to addRemoveClassName. \n * Utility function, saves many if/elses.\n *\n * @method setClassName\n * @uses addRemoveClassName\n * @param {DOMElement|String} elm DOM element or element id\n * @param {String|Array} className Class names to add\\remove. Comma separated, space separated or simply an Array\n * @param {Boolean} [add]=false Flag to switch behavior from removal to addition. true to add, false to remove\n * @return {void}\n * @public\n */\n setClassName: function(elm, className, add) {\n this.addRemoveClassName(elm, className, add || false);\n },\n\n /**\n * Checks if an element has a class.\n * This method verifies if an element has ONE of a list of classes. If the last argument is flagged as true, instead checks if the element has ALL the classes\n * \n * @method hasClassName\n * @param {DOMElement|String} elm DOM element or element id\n * @param {String|Array} className Class name(s) to test\n * @param {Boolean} [all=false] Irrelevant if only one `className` is passed. If `true`, check if the element contains ALL the CSS classes. If `false`, check whether the element contains ANY of the given classes.\n * @return {Boolean} `true` if a given class is applied to a given element, `false` if it isn't.\n * @public\n * @sample Ink_Dom_Css_hasClassName.html \n */\n hasClassName: function(elm, className, all) {\n elm = Ink.i(elm);\n if (!elm || !className) { return false; }\n\n className = ('' + className).split(/[, ]+/);\n var i = 0;\n var len = className.length;\n var has;\n var re;\n\n for ( ; i < len; i++) {\n if (typeof elm.classList !== \"undefined\"){\n has = elm.classList.contains(className[i]);\n } else {\n var elmClassName = elm.className;\n if (elmClassName === className[i]) {\n has = true;\n } else {\n re = new RegExp(\"(^|\\\\s)\" + className[i] + \"(\\\\s|$)\");\n has = re.test(elmClassName);\n }\n }\n if (has && !all) { return true; } // return if looking for any class\n if (!has && all) { return false; } // return if looking for all classes\n }\n\n if (all) {\n // if we got here, all classes were found so far\n return true;\n } else {\n // if we got here with all == false, no class was found\n return false;\n }\n },\n\n /**\n * Blinks a class from an element\n * Add and removes the class from the element with a timeout, so it blinks\n *\n * @method blinkClass\n * @uses addRemoveClassName\n * @param {Element|String} element DOM element or element id\n * @param {String|Array} className Class name(s) to blink\n * @param {Number} timeout timeout in ms between adding and removing, default 100 ms\n * @param {Boolean} negate is true, class is removed then added\n * @return {void}\n * @public\n * @sample Ink_Dom_Css_blinkClass.html \n */\n blinkClass: function(element, className, timeout, negate){\n element = Ink.i(element);\n Css.addRemoveClassName(element, className, !negate);\n setTimeout(function() {\n Css.addRemoveClassName(element, className, negate);\n }, Number(timeout) || 100);\n },\n\n /**\n * Toggles a class name from a given element\n *\n * @method toggleClassName\n * @param {DOMElement|String} elm DOM element or element id\n * @param {String} className Class name\n * @param {Boolean} [forceAdd] Flag to force adding the the classe names if they don't exist yet.\n * @return {void}\n * @public\n * @sample Ink_Dom_Css_toggleClassName.html \n */\n toggleClassName: function(elm, className, forceAdd) {\n if (!elm || !className) { return false; }\n\n if (typeof forceAdd !== 'undefined') {\n return Css.addRemoveClassName(elm, className, forceAdd);\n } else if (typeof elm.classList !== \"undefined\" && !/[, ]/.test(className)) {\n elm = Ink.i(elm);\n if (elm !== null){\n elm.classList.toggle(className);\n }\n } else {\n if (Css.hasClassName(elm, className)) {\n Css.removeClassName(elm, className);\n } else {\n Css.addClassName(elm, className);\n }\n }\n },\n\n /**\n * Sets the opacity of given element \n *\n * @method setOpacity\n * @param {DOMElement|String} elm DOM element or element id\n * @param {Number} value allows 0 to 1(default mode decimal) or percentage (warning using 0 or 1 will reset to default mode)\n * @return {void}\n * @public\n * @sample Ink_Dom_Css_setOpacity.html \n */\n setOpacity: function(elm, value) {\n elm = Ink.i(elm);\n if (elm !== null){\n var val = 1;\n\n if (!isNaN(Number(value))){\n if (value <= 0) { val = 0; }\n else if (value <= 1) { val = value; }\n else if (value <= 100) { val = value / 100; }\n else { val = 1; }\n }\n\n if (typeof elm.style.opacity !== 'undefined') {\n elm.style.opacity = val;\n }\n else {\n elm.style.filter = \"alpha(opacity:\"+(val*100|0)+\")\";\n }\n }\n },\n\n /**\n * Converts a css property name to a string in camelcase to be used with CSSStyleDeclaration.\n * @method _camelCase\n * @private\n * @param {String} str String to convert\n * @return {String} Converted string\n */\n _camelCase: function(str) {\n return str ? str.replace(/-(\\w)/g, function (_, $1) {\n return $1.toUpperCase();\n }) : str;\n },\n\n\n /**\n * Gets the value for an element's style attribute\n *\n * @method getStyle\n * @param {DOMElement|String} elm DOM element or element id\n * @param {String} style Which css attribute to fetch\n * @return {Mixed} Style value\n * @public\n * @sample Ink_Dom_Css_getStyle.html \n */\n getStyle: function(elm, style) {\n elm = Ink.i(elm);\n if (elm !== null && elm.style) {\n style = style === 'float' ? 'cssFloat': this._camelCase(style);\n\n var value = elm.style[style];\n\n if (getCs && (!value || value === 'auto')) {\n var css = getCs(elm, null);\n value = css ? css[style] : null;\n }\n else if (!value && elm.currentStyle) {\n value = elm.currentStyle[style];\n if (value === 'auto' && (style === 'width' || style === 'height')) {\n value = elm[\"offset\" + style.charAt(0).toUpperCase() + style.slice(1)] + \"px\";\n }\n }\n\n if (style === 'opacity') {\n return value ? parseFloat(value, 10) : 1.0;\n }\n else if (style === 'borderTopWidth' || style === 'borderBottomWidth' ||\n style === 'borderRightWidth' || style === 'borderLeftWidth' ) {\n if (value === 'thin') { return '1px'; }\n else if (value === 'medium') { return '3px'; }\n else if (value === 'thick') { return '5px'; }\n }\n\n return value === 'auto' ? null : value;\n }\n },\n\n\n /**\n * Adds CSS rules to an element's style attribute.\n *\n * @method setStyle\n * @param {DOMElement|String} elm DOM element or element id\n * @param {String} style Which css attribute to set\n * @return {void}\n * @public\n * @sample Ink_Dom_Css_setStyle.html \n */\n setStyle: function(elm, style) {\n elm = Ink.i(elm);\n if (elm === null) { return; }\n if (typeof style === 'string') {\n elm.style.cssText += '; '+style;\n\n if (style.indexOf('opacity') !== -1) {\n this.setOpacity(elm, style.match(/opacity:\\s*(\\d?\\.?\\d*)/)[1]);\n }\n }\n else {\n for (var prop in style) {\n if (style.hasOwnProperty(prop)){\n if (prop === 'opacity') {\n this.setOpacity(elm, style[prop]);\n }\n else if (prop === 'float' || prop === 'cssFloat') {\n if (typeof elm.style.styleFloat === 'undefined') {\n elm.style.cssFloat = style[prop];\n }\n else {\n elm.style.styleFloat = style[prop];\n }\n } else {\n elm.style[prop] = style[prop];\n }\n }\n }\n }\n },\n\n\n /**\n * Shows an element.\n * Internally it unsets the display property of an element. You can force a specific display property using forceDisplayProperty\n *\n * @method show\n * @param {DOMElement|String} elm DOM element or element id\n * @param {String} [forceDisplayProperty] Css display property to apply on show\n * @return {void}\n * @public\n * @sample Ink_Dom_Css_show.html \n */\n show: function(elm, forceDisplayProperty) {\n elm = Ink.i(elm);\n if (elm !== null) {\n elm.style.display = forceDisplayProperty || '';\n }\n },\n\n /**\n * Hides an element.\n *\n * @method hide\n * @param {DOMElement|String} elm DOM element or element id\n * @return {void}\n * @public\n * @sample Ink_Dom_Css_hide.html \n */\n hide: function(elm) {\n elm = Ink.i(elm);\n if (elm !== null) {\n elm.style.display = 'none';\n }\n },\n\n /**\n * Shows or hides an element.\n * If the show parameter is true, it shows the element. Otherwise, hides it.\n *\n * @method showHide\n * @param {DOMElement|String} elm DOM element or element id\n * @param {boolean} [show]=false Whether to show or hide `elm`.\n * @return {void}\n * @public\n * @sample Ink_Dom_Css_showHide.html \n */\n showHide: function(elm, show) {\n elm = Ink.i(elm);\n if (elm) {\n elm.style.display = show ? '' : 'none';\n }\n },\n\n /**\n * Toggles an element visibility.\n * \n * @method toggle\n * @param {DOMElement|String} elm DOM element or element id\n * @param {Boolean} forceShow Forces showing if element is hidden\n * @return {void}\n * @public\n * @sample Ink_Dom_Css_toggle.html \n */\n toggle: function(elm, forceShow) {\n elm = Ink.i(elm);\n if (elm !== null) {\n if (typeof forceShow !== 'undefined') {\n if (forceShow === true) {\n this.show(elm);\n } else {\n this.hide(elm);\n }\n } else {\n if (this.getStyle(elm,'display').toLowerCase() === 'none') {\n this.show(elm);\n }\n else {\n this.hide(elm);\n }\n }\n }\n },\n\n _getRefTag: function(head){\n if (head.firstElementChild) {\n return head.firstElementChild;\n }\n\n for (var child = head.firstChild; child; child = child.nextSibling){\n if (child.nodeType === 1){\n return child;\n }\n }\n return null;\n },\n\n /**\n * Injects style tags with rules to the page.\n *\n * @method appendStyleTag\n * @param {String} selector The css selector for the rule\n * @param {String} style The content of the style rule\n * @param {Object} options Options for the tag\n * @param {String} [options.type]='text/css' File type\n * @param {Boolean} [options.force]=false If true, the style tag will be appended to end of head\n * @return {void}\n * @public\n * \n * @sample Ink_Dom_Css_appendStyleTag.html \n */\n appendStyleTag: function(selector, style, options){\n options = Ink.extendObj({\n type: 'text/css',\n force: false\n }, options || {});\n\n var styles = document.getElementsByTagName(\"style\"),\n oldStyle = false, setStyle = true, i, l;\n\n for (i=0, l=styles.length; i= 0) {\n setStyle = false;\n }\n }\n\n if (setStyle) {\n var defStyle = document.createElement(\"style\"),\n head = document.getElementsByTagName(\"head\")[0],\n refTag = false, styleStr = '';\n\n defStyle.type = options.type;\n\n styleStr += selector +\" {\";\n styleStr += style;\n styleStr += \"} \";\n\n if (typeof defStyle.styleSheet !== \"undefined\") {\n defStyle.styleSheet.cssText = styleStr;\n } else {\n defStyle.appendChild(document.createTextNode(styleStr));\n }\n\n if (options.force){\n head.appendChild(defStyle);\n } else {\n refTag = this._getRefTag(head);\n if (refTag){\n head.insertBefore(defStyle, refTag);\n }\n }\n }\n },\n\n /**\n * Injects an external link tag.\n * This method add a stylesheet to the head of a page\n *\n * @method appendStylesheet\n * @param {String} path File path\n * @param {Object} options Options for the tag\n * @param {String} [options.media='screen'] Media type\n * @param {String} [options.type='text/css'] File type\n * @param {Boolean} [options.force=false] If true, tag will be appended to end of head\n * @return {void}\n * @public\n * @sample Ink_Dom_Css_appendStylesheet.html \n */\n appendStylesheet: function(path, options){\n options = Ink.extendObj({\n media: 'screen',\n type: 'text/css',\n force: false\n }, options || {});\n\n var refTag,\n style = document.createElement(\"link\"),\n head = document.getElementsByTagName(\"head\")[0];\n\n style.media = options.media;\n style.type = options.type;\n style.href = path;\n style.rel = \"Stylesheet\";\n\n if (options.force){\n head.appendChild(style);\n }\n else {\n refTag = this._getRefTag(head);\n if (refTag){\n head.insertBefore(style, refTag);\n }\n }\n },\n\n /**\n * Injects an external link tag.\n * Loads CSS via LINK element inclusion in HEAD (skips append if already there)\n *\n * Works similarly to appendStylesheet but:\n * supports optional callback which gets invoked once the CSS has been applied\n *\n * @method appendStylesheetCb\n * @param {String} cssURI URI of the CSS to load, if empty ignores and just calls back directly\n * @param {Function(cssURI)} [callback] optional callback which will be called once the CSS is loaded\n * @return {void}\n * @public\n * @sample Ink_Dom_Css_appendStylesheetCb.html \n */\n _loadingCSSFiles: {},\n _loadedCSSFiles: {},\n appendStylesheetCb: function(url, callback) {\n if (!url) {\n return callback(url);\n }\n\n if (this._loadedCSSFiles[url]) {\n return callback(url);\n }\n\n var cbs = this._loadingCSSFiles[url];\n if (cbs) {\n return cbs.push(callback);\n }\n\n this._loadingCSSFiles[url] = [callback];\n\n var linkEl = document.createElement('link');\n linkEl.type = 'text/css';\n linkEl.rel = 'stylesheet';\n linkEl.href = url;\n\n var headEl = document.getElementsByTagName('head')[0];\n headEl.appendChild(linkEl);\n\n var imgEl = document.createElement('img');\n /*\n var _self = this;\n (function(_url) {\n imgEl.onerror = function() {\n //var url = this;\n var url = _url;\n _self._loadedCSSFiles[url] = true;\n var callbacks = _self._loadingCSSFiles[url];\n for (var i = 0, f = callbacks.length; i < f; ++i) {\n callbacks[i](url);\n }\n delete _self._loadingCSSFiles[url];\n };\n })(url);\n */\n imgEl.onerror = Ink.bindEvent(function(event, _url) {\n //var url = this;\n var url = _url;\n this._loadedCSSFiles[url] = true;\n var callbacks = this._loadingCSSFiles[url];\n for (var i = 0, f = callbacks.length; i < f; ++i) {\n callbacks[i](url);\n }\n delete this._loadingCSSFiles[url];\n }, this, url);\n imgEl.src = url;\n },\n\n /**\n * Converts decimal to hexadecimal values\n * Useful to convert colors to their hexadecimal representation.\n *\n * @method decToHex\n * @param {String} dec Either a single decimal value, an rgb(r, g, b) string or an Object with r, g and b properties\n * @return {String} Hexadecimal value\n * @sample Ink_Dom_Css_decToHex.html \n */\n decToHex: function(dec) {\n var normalizeTo2 = function(val) {\n if (val.length === 1) {\n val = '0' + val;\n }\n val = val.toUpperCase();\n return val;\n };\n\n if (typeof dec === 'object') {\n var rDec = normalizeTo2(parseInt(dec.r, 10).toString(16));\n var gDec = normalizeTo2(parseInt(dec.g, 10).toString(16));\n var bDec = normalizeTo2(parseInt(dec.b, 10).toString(16));\n return rDec+gDec+bDec;\n }\n else {\n dec += '';\n var rgb = dec.match(/\\((\\d+),\\s?(\\d+),\\s?(\\d+)\\)/);\n if (rgb !== null) {\n return normalizeTo2(parseInt(rgb[1], 10).toString(16)) +\n normalizeTo2(parseInt(rgb[2], 10).toString(16)) +\n normalizeTo2(parseInt(rgb[3], 10).toString(16));\n }\n else {\n return normalizeTo2(parseInt(dec, 10).toString(16));\n }\n }\n },\n\n /**\n * Converts hexadecimal values to decimal\n * Useful to use with CSS colors\n *\n * @method hexToDec\n * @param {String} hex hexadecimal Value with 6, 3, 2 or 1 characters\n * @return {Number} Object with properties r, g, b if length of number is >= 3 or decimal value instead.\n * @sample Ink_Dom_Css_hexToDec.html \n */\n hexToDec: function(hex){\n if (hex.indexOf('#') === 0) {\n hex = hex.substr(1);\n }\n if (hex.length === 6) { // will return object RGB\n return {\n r: parseInt(hex.substr(0,2), 16),\n g: parseInt(hex.substr(2,2), 16),\n b: parseInt(hex.substr(4,2), 16)\n };\n }\n else if (hex.length === 3) { // will return object RGB\n return {\n r: parseInt(hex.charAt(0) + hex.charAt(0), 16),\n g: parseInt(hex.charAt(1) + hex.charAt(1), 16),\n b: parseInt(hex.charAt(2) + hex.charAt(2), 16)\n };\n }\n else if (hex.length <= 2) { // will return int\n return parseInt(hex, 16);\n }\n },\n\n /**\n * Get a single property from a stylesheet.\n * Use this to obtain the value of a CSS property (searched from loaded CSS documents)\n *\n * @method getPropertyFromStylesheet\n * @param {String} selector a CSS rule. must be an exact match\n * @param {String} property a CSS property\n * @return {String} value of the found property, or null if it wasn't matched\n */\n getPropertyFromStylesheet: function(selector, property) {\n var rule = this.getRuleFromStylesheet(selector);\n if (rule) {\n return rule.style[property];\n }\n return null;\n },\n\n getPropertyFromStylesheet2: function(selector, property) {\n var rules = this.getRulesFromStylesheet(selector);\n /*\n rules.forEach(function(rule) {\n var x = rule.style[property];\n if (x !== null && x !== undefined) {\n return x;\n }\n });\n */\n var x;\n for(var i=0, t=rules.length; i < t; i++) {\n x = rules[i].style[property];\n if (x !== null && x !== undefined) {\n return x;\n }\n }\n return null;\n },\n\n getRuleFromStylesheet: function(selector) {\n var sheet, rules, ri, rf, rule;\n var s = document.styleSheets;\n if (!s) {\n return null;\n }\n\n for (var si = 0, sf = document.styleSheets.length; si < sf; ++si) {\n sheet = document.styleSheets[si];\n rules = sheet.rules ? sheet.rules : sheet.cssRules;\n if (!rules) { return null; }\n\n for (ri = 0, rf = rules.length; ri < rf; ++ri) {\n rule = rules[ri];\n if (!rule.selectorText) { continue; }\n if (rule.selectorText === selector) {\n return rule;\n }\n }\n }\n\n return null;\n },\n\n getRulesFromStylesheet: function(selector) {\n var res = [];\n var sheet, rules, ri, rf, rule;\n var s = document.styleSheets;\n if (!s) { return res; }\n\n for (var si = 0, sf = document.styleSheets.length; si < sf; ++si) {\n sheet = document.styleSheets[si];\n rules = sheet.rules ? sheet.rules : sheet.cssRules;\n if (!rules) {\n return null;\n }\n\n for (ri = 0, rf = rules.length; ri < rf; ++ri) {\n rule = rules[ri];\n if (!rule.selectorText) { continue; }\n if (rule.selectorText === selector) {\n res.push(rule);\n }\n }\n }\n\n return res;\n },\n\n getPropertiesFromRule: function(selector) {\n var rule = this.getRuleFromStylesheet(selector);\n var props = {};\n var prop, i, f;\n\n /*if (typeof rule.style.length === 'snumber') {\n for (i = 0, f = rule.style.length; i < f; ++i) {\n prop = this._camelCase( rule.style[i] );\n props[prop] = rule.style[prop];\n }\n }\n else { // HANDLES IE 8, FIREFOX RULE JOINING... */\n rule = rule.style.cssText;\n var parts = rule.split(';');\n var steps, val, pre, pos;\n for (i = 0, f = parts.length; i < f; ++i) {\n if (parts[i].charAt(0) === ' ') {\n parts[i] = parts[i].substring(1);\n }\n steps = parts[i].split(':');\n prop = this._camelCase( steps[0].toLowerCase() );\n val = steps[1];\n if (val) {\n val = val.substring(1);\n\n if (prop === 'padding' || prop === 'margin' || prop === 'borderWidth') {\n\n if (prop === 'borderWidth') { pre = 'border'; pos = 'Width'; }\n else { pre = prop; pos = ''; }\n\n if (val.indexOf(' ') !== -1) {\n val = val.split(' ');\n props[pre + 'Top' + pos] = val[0];\n props[pre + 'Bottom'+ pos] = val[0];\n props[pre + 'Left' + pos] = val[1];\n props[pre + 'Right' + pos] = val[1];\n }\n else {\n props[pre + 'Top' + pos] = val;\n props[pre + 'Bottom'+ pos] = val;\n props[pre + 'Left' + pos] = val;\n props[pre + 'Right' + pos] = val;\n }\n }\n else if (prop === 'borderRadius') {\n if (val.indexOf(' ') !== -1) {\n val = val.split(' ');\n props.borderTopLeftRadius = val[0];\n props.borderBottomRightRadius = val[0];\n props.borderTopRightRadius = val[1];\n props.borderBottomLeftRadius = val[1];\n }\n else {\n props.borderTopLeftRadius = val;\n props.borderTopRightRadius = val;\n props.borderBottomLeftRadius = val;\n props.borderBottomRightRadius = val;\n }\n }\n else {\n props[prop] = val;\n }\n }\n }\n //}\n //console.log(props);\n\n return props;\n },\n\n /**\n * Change the font size of elements.\n * Changes the font size of the elements which match the given CSS rule\n * For this function to work, the CSS file must be in the same domain than the host page, otherwise JS can't access it.\n *\n * @method changeFontSize\n * @param {String} selector CSS selector rule\n * @param {Number} delta Number of pixels to change on font-size\n * @param {String} [op] Supported operations are '+' and '*'. defaults to '+'\n * @param {Number} [minVal] If result gets smaller than minVal, change does not occurr\n * @param {Number} [maxVal] If result gets bigger than maxVal, change does not occurr\n * @return {void}\n * @public\n */\n changeFontSize: function(selector, delta, op, minVal, maxVal) {\n var that = this;\n Ink.requireModules(['Ink.Dom.Selector_1'], function(Selector) {\n var e;\n if (typeof selector !== 'string') { e = '1st argument must be a CSS selector rule.'; }\n else if (typeof delta !== 'number') { e = '2nd argument must be a number.'; }\n else if (op !== undefined && op !== '+' && op !== '*') { e = '3rd argument must be one of \"+\", \"*\".'; }\n else if (minVal !== undefined && (typeof minVal !== 'number' || minVal <= 0)) { e = '4th argument must be a positive number.'; }\n else if (maxVal !== undefined && (typeof maxVal !== 'number' || maxVal < maxVal)) { e = '5th argument must be a positive number greater than minValue.'; }\n if (e) { throw new TypeError(e); }\n\n var val, el, els = Selector.select(selector);\n if (minVal === undefined) { minVal = 1; }\n op = (op === '*') ? function(a,b){return a*b;} : function(a,b){return a+b;};\n for (var i = 0, f = els.length; i < f; ++i) {\n el = els[i];\n val = parseFloat( that.getStyle(el, 'fontSize'));\n val = op(val, delta);\n if (val < minVal) { continue; }\n if (typeof maxVal === 'number' && val > maxVal) { continue; }\n el.style.fontSize = val + 'px';\n }\n });\n }\n\n };\n\n return Css;\n\n});\n","/**\n * DOM Traversal and manipulation\n * @module Ink.Dom.Element_1\n * @version 1\n */\n\nInk.createModule('Ink.Dom.Element', 1, [], function() {\n\n 'use strict';\n\n var createContextualFragmentSupport = (\n typeof document.createRange === 'function' &&\n typeof window.Range.prototype.createContextualFragment === 'function');\n\n var deleteThisTbodyToken = 'Ink.Dom.Element tbody: ' + Math.random();\n var browserCreatesTbodies = (function () {\n var div = document.createElement('div');\n div.innerHTML = '
\n *\n * \n */\n childIndex: InkElement.parentIndexOf,\n\n /**\n * AJAX JSON request shortcut method\n * It provides a more convenient way to do an AJAX request and expect a JSON response.It also offers a callback option, as third parameter, for better async handling.\n *\n * @method ajaxJSON\n * @static\n * @async\n * @param {String} endpoint Valid URL to be used as target by the request.\n * @param {Object} params This field is used in the thrown Exception to identify the parameter.\n * @param {Function} cb Callback for the request.\n * @return {void}\n * @public\n * @example\n * // In case there are several .myInput, it will retrieve the first found\n * var el = Ink.UI.Common.elOrSelector('.myInput','My Input');\n */\n ajaxJSON: function(endpoint, params, cb) {\n new Ajax(\n endpoint,\n {\n evalJS: 'force',\n method: 'POST',\n parameters: params,\n\n onSuccess: function( r) {\n try {\n r = r.responseJSON;\n if (r.status !== 'ok') {\n throw 'server error: ' + r.message;\n }\n cb(null, r);\n } catch (ex) {\n cb(ex);\n }\n },\n\n onFailure: function() {\n cb('communication failure');\n }\n }\n );\n },\n\n\n /**\n * Gets the current Ink layout.\n *\n * @method currentLayout\n * @static\n * @return {String} A string representation of the current layout name.\n * @public\n * @example\n * var inkLayout = Ink.UI.Common.currentLayout();\n * if (inkLayout === 'small') {\n * // ...\n * }\n */\n currentLayout: function() {\n var i, f, k, v, el, detectorEl = Selector.select('#ink-layout-detector')[0];\n if (!detectorEl) {\n detectorEl = document.createElement('div');\n detectorEl.id = 'ink-layout-detector';\n for (k in Common.Layouts) {\n if (Common.Layouts.hasOwnProperty(k)) {\n v = Common.Layouts[k];\n el = document.createElement('div');\n el.className = 'show-' + v + ' hide-all';\n el.setAttribute('data-ink-layout', v);\n detectorEl.appendChild(el);\n }\n }\n document.body.appendChild(detectorEl);\n }\n\n for (i = 0, f = detectorEl.children.length; i < f; ++i) {\n el = detectorEl.children[i];\n if (Css.getStyle(el, 'display') === 'block') {\n return el.getAttribute('data-ink-layout');\n }\n }\n\n return 'large';\n },\n\n\n /**\n * Sets the location's hash (window.location.hash).\n *\n * @method hashSet\n * @static\n * @param {Object} o Object with the info to be placed in the location's hash.\n * @return {void}\n * @example\n * // It will set the location's hash like: #key1=value1&key2=value2&key3=value3\n * Ink.UI.Common.hashSet({\n * key1: 'value1',\n * key2: 'value2',\n * key3: 'value3'\n * });\n */\n hashSet: function(o) {\n if (typeof o !== 'object') { throw new TypeError('o should be an object!'); }\n var hashParams = Url.getAnchorString();\n hashParams = Ink.extendObj(hashParams, o);\n window.location.hash = Url.genQueryString('', hashParams).substring(1);\n },\n\n /**\n * Removes children nodes from a given object.\n * This method was initially created to help solve a problem in Internet Explorer(s) that occurred when trying to set the innerHTML of some specific elements like 'table'.\n *\n * @method cleanChildren\n * @static\n * @param {Element} parentEl Valid DOM Element\n * @return {void}\n * @public\n * @example\n * \n *
\n *
One
\n *
Two
\n *
Three
\n *
Four
\n *
\n *\n * \n *\n * \n *
\n */\n cleanChildren: function(parentEl) {\n if( !Common.isDOMElement(parentEl) ){\n throw new Error('Please provide a valid DOMElement');\n }\n InkElement.clear(parentEl);\n },\n\n /**\n * Stores the id and/or classes of an element in an object.\n *\n * @method storeIdAndClasses\n * @static\n * @param {Element} fromEl Valid DOM Element to get the id and classes from.\n * @param {Object} inObj Object where the id and classes will be saved.\n * @return {void}\n * @public\n * @example\n * \n *\n * \n */\n storeIdAndClasses: function(fromEl, inObj) {\n if( !Common.isDOMElement(fromEl) ){\n throw 'Please provide a valid Element as first parameter';\n }\n\n var id = fromEl.id;\n if (id) {\n inObj._id = id;\n }\n\n var classes = fromEl.className;\n if (classes) {\n inObj._classes = classes;\n }\n },\n\n /**\n * Sets the id and className properties of an element based \n *\n * @method restoreIdAndClasses\n * @static\n * @param {Element} toEl Valid DOM Element to set the id and classes on.\n * @param {Object} inObj Object where the id and classes to be set are. This method uses the same format as the one given in `storeIdAndClasses`\n * @return {void}\n * @public\n * @example\n * \n *\n * \n *\n * \n * \n */\n restoreIdAndClasses: function(toEl, inObj) {\n\n if( !Common.isDOMElement(toEl) ){\n throw 'Please provide a valid Element as first parameter';\n }\n\n if (inObj._id && toEl.id !== inObj._id) {\n toEl.id = inObj._id;\n }\n\n if (inObj._classes && toEl.className.indexOf(inObj._classes) === -1) {\n if (toEl.className) { toEl.className += ' ' + inObj._classes; }\n else { toEl.className = inObj._classes; }\n }\n\n if (inObj._instanceId && !toEl.getAttribute('data-instance')) {\n toEl.setAttribute('data-instance', inObj._instanceId);\n }\n },\n\n _warnDoubleInstantiation: function (elm, newInstance) {\n var instances = Common.getInstance(elm);\n\n if (getName(newInstance) === '') { return; }\n if (!instances) { return; }\n\n var nameWithoutVersion = getName(newInstance);\n\n if (!nameWithoutVersion) { return; }\n\n for (var i = 0, len = instances.length; i < len; i++) {\n if (nameWithoutVersion === getName(instances[i])) {\n // Yes, I am using + to concatenate and , to split\n // arguments.\n //\n // Elements can't be concatenated with strings, but if\n // they are passed in an argument, modern debuggers will\n // pretty-print them and make it easy to find them in the\n // element inspector.\n //\n // On the other hand, if strings are passed as different\n // arguments, they get pretty printed. And the pretty\n // print of a string has quotes around it.\n //\n // If some day people find out that strings are not\n // just text and they start preserving contextual\n // information, then by all means change this to a\n // regular concatenation.\n //\n // But they won't. So don't change this.\n Ink.warn('Creating more than one ' + nameWithoutVersion + ' for the same element.',\n '(Was creating a ' + nameWithoutVersion + ' on:', elm, ').');\n return false;\n }\n }\n\n function getName(thing) {\n return ((thing.constructor && (thing.constructor._name)) ||\n thing._name ||\n '').replace(/_.*?$/, '');\n }\n\n return true;\n },\n\n /**\n * Saves an object (which should inherit BaseUIComponent) in the registry, associated with an element. You can retrieve it later by calling getInstance.\n *\n * This won't allow two instances of the same class to be created on a single element. It will fail and print a warning to the console if you try to do it. That is a common error when using Ink.\n *\n * @method registerInstance\n * @static\n * @param {Object} inst Object that holds the instance.\n * @param {Element} el Element to associate with `inst`.\n * @return {Boolean} `true` if we could create the instance, `false` otherwise.\n */\n registerInstance: function(inst, el) {\n if (!inst) { return; }\n\n if (!el) { el = inst._element; }\n\n if (!Common.isDOMElement(el)) { throw new TypeError('Ink.UI.Common.registerInstance: The element passed in is not a DOM element!'); }\n\n // [todo] this belongs in the BaseUIComponent's initialization\n if (Common._warnDoubleInstantiation(el, inst) === false) {\n return false;\n }\n\n var instances = domRegistry.get(el);\n\n if (!instances) {\n instances = [];\n domRegistry.set(el, instances);\n }\n\n instances.push(inst);\n\n return true;\n },\n\n /**\n * Unregisters (removes from the registry) a UI component instance from whatever element it's on.\n *\n * @method unregisterInstance\n * @static\n * @param {String} inst Instance to be unregistered.\n * @return {void}\n * @public\n */\n unregisterInstance: function(inst) {\n if (!inst || !inst._element) { return; }\n var instances = domRegistry.get(inst._element);\n for (var i = 0, len = instances.length; i < len; i++) {\n if (instances[i] === inst) {\n instances.splice(i, 1);\n }\n }\n },\n\n /**\n * Gets an UI component instance from an element.\n *\n * This function is already available in the UI components' classes themselves. You can call Modal.getInstance() and retrieve a modal.\n *\n * @method getInstance\n * @static\n * @param {String|Element} el Element from which we want the instances. A selector is okay.\n * @param {BaseUIComponent} [UIComponent] If you pass an Ink UI component class (Like Ink.UI.Modal or Ink.UI.Carousel), this won't return an array of all instances associated with the element. Instead it will return only the object which is an instance of that class.\n * @return {Object|Array} Returns an array containing all the instances in that element.\n * @public\n */\n getInstance: function(el, UIComponent) {\n var givenEl = el; // So we can warn it later.\n\n el = Common.elOrSelector(el);\n\n if (!Common.isDOMElement(el)) {\n Ink.warn('Ink.UI.Common: getInstance called on non-element (' + givenEl + ')');\n return [];\n }\n\n var instances = domRegistry.get(el);\n\n if (!instances) {\n instances = [];\n }\n\n if (typeof UIComponent !== 'function') {\n return instances;\n }\n\n for (var i = 0, len = instances.length; i < len; i++) {\n if (instances[i] instanceof UIComponent) {\n return instances[i];\n }\n }\n\n return null;\n },\n\n /**\n * Gets an instance based on a selector.\n *\n * @method getInstanceFromSelector\n * @static\n * @param {String} selector CSS selector to get the instances from. This function will only use the *first* element.\n * @return {Object|Array} Returns an array of the instances in the selected element.\n * @public\n */\n getInstanceFromSelector: function(selector) {\n return Common.getInstance(selector);\n },\n\n /**\n * Gets all the instance ids\n *\n * @method getInstanceIds\n * @static\n * @return {Array} Collection of instance ids\n */\n getInstanceIds: function() {\n if( _reg.length > 0 ) return _reg;\n var res = [];\n for (var id in instances) {\n if (instances.hasOwnProperty(id)) {\n res.push( id );\n }\n }\n return res;\n },\n\n /**\n * Gets all the instances\n *\n * @method getInstances\n * @static\n * @return {Array} Collection of existing instances.\n * @public\n */\n getInstances: function() {\n if( _reg.length > 0 ) return _reg;\n var res = [];\n for (var id in instances) {\n if (instances.hasOwnProperty(id)) {\n res.push( instances[id] );\n }\n }\n return res;\n },\n\n /**\n * Boilerplate method to destroy a component.\n * Components should copy this method as its destroy method and modify it.\n *\n * @method destroyComponent\n * @return {void}\n * @public\n * @static\n */\n destroyComponent: function() {\n Common.unregisterInstance(this);\n this._element.parentNode.removeChild(this._element);\n }\n };\n\n\n\n\n /**\n * Ink UI Base Class\n **/\n\n function warnStub() {\n /* jshint validthis: true */\n if (!this || this === window || typeof this.constructor !== 'function') { return; }\n Ink.warn('You called a method on an incorrectly instantiated ' + this.constructor._name + ' component. Check the warnings above to see what went wrong.');\n }\n\n function stub(prototype, obj) {\n for (var k in prototype) if (prototype.hasOwnProperty(k)) {\n if (k === 'constructor') { continue; }\n if (typeof obj[k] === 'function') {\n obj[k] = warnStub;\n }\n }\n }\n\n /**\n * Ink UI Base Class\n *\n * You don't use this class directly, or inherit from it directly.\n *\n * See createUIComponent() (in this module) for how to create a UI component and inherit from this. It's not plain old JS inheritance, for several reasons.\n *\n * @class Ink.UI.Common.BaseUIComponent\n * @constructor\n *\n * @param {Element|String} element Element to associate this UI component with. It's the element you can get later using `comp.getElement()`\n * @param {Object} [options] Options to pass to the component. You should see your specific UI component for this information.\n * @public\n **/\n function BaseUIComponent(element, options) {\n var constructor = this.constructor;\n var _name = constructor._name;\n\n if (!this || this === window) {\n throw new Error('Use \"new InkComponent()\" instead of \"InkComponent()\"');\n }\n\n if (this && !(this instanceof BaseUIComponent)) {\n throw new Error('You forgot to call Ink.UI.Common.createUIComponent() on this module!');\n }\n\n if (!element && !constructor._componentOptions.elementIsOptional) {\n Ink.error(new Error(_name + ': You need to pass an element or a selector as the first argument to \"new ' + _name + '()\"'));\n return;\n } else {\n this._element = Common.elsOrSelector(element,\n _name + ': An element with the selector \"' + element + '\" was not found!')[0];\n }\n\n if (!this._element && !constructor._componentOptions.elementIsOptional) {\n isValidInstance = false;\n Ink.error(new Error(element + ' does not match an element on the page. You need to pass a valid selector to \"new ' + _name + '\".'));\n }\n\n this._options = Common.options(_name, constructor._optionDefinition, options, this._element);\n\n var isValidInstance = BaseUIComponent._validateInstance(this) === true;\n\n if (isValidInstance && typeof this._init === 'function') {\n try {\n this._init.apply(this, arguments);\n } catch(e) {\n isValidInstance = false;\n Ink.error(e);\n }\n }\n\n if (!isValidInstance) {\n BaseUIComponent._stubInstance(this, constructor, _name);\n } else if (this._element) {\n Common.registerInstance(this);\n }\n }\n\n /**\n * Calls the `instance`'s _validate() method so it can validate itself.\n *\n * Returns false if the method exists, was called, but no Error was returned or thrown.\n *\n * @method _validateInstance\n * @private\n */\n BaseUIComponent._validateInstance = function (instance) {\n var err;\n\n if (typeof instance._validate !== 'function') { return true; }\n\n try {\n err = instance._validate();\n } catch (e) {\n err = e;\n }\n\n if (err instanceof Error) {\n instance._validationError = err;\n return false;\n }\n\n return true;\n };\n\n\n /**\n * Replaces every method in the instance with stub functions which just call Ink.warn().\n *\n * This avoids breaking the page when there are errors.\n *\n * @method _stubInstance\n * @param instance\n * @param constructor\n * @param name\n * @private\n */\n BaseUIComponent._stubInstance = function (instance, constructor, name) {\n stub(constructor.prototype, instance);\n stub(BaseUIComponent.prototype, instance);\n Ink.warn(name + ' was not correctly created. ' + (instance._validationError || ''));\n };\n\n // TODO BaseUIComponent.setGlobalOptions = function () {}\n // TODO BaseUIComponent.createMany = function (selector) {}\n BaseUIComponent.getInstance = function (elOrSelector) {\n elOrSelector = Common.elOrSelector(elOrSelector);\n return Common.getInstance(elOrSelector, this /* get instance by constructor */);\n };\n\n Ink.extendObj(BaseUIComponent.prototype, {\n /**\n * Get an UI component's option's value.\n *\n * @method getOption\n * @param {String} name The option's name.\n * @return {Mixed} The option value, or undefined if nothing is found.\n *\n * @example\n *\n * var myUIComponent = new Modal('#element', { trigger: '#trigger' }); // or anything else inheriting BaseUIComponent\n * myUIComponent.getOption('trigger'); // -> The trigger element (not the selector string, mind you)\n *\n **/\n getOption: function (name) {\n if (this.constructor && !(name in this.constructor._optionDefinition)) {\n Ink.error('\"' + name + '\" is not an option for ' + this.constructor._name);\n return undefined;\n }\n\n return this._options[name];\n },\n\n /**\n * Sets an option's value.\n *\n * @method getOption\n * @param {String} name Name of the option.\n * @param {Mixed} value New option value.\n * @return {void}\n * @public\n *\n * @example\n *\n * var myUIComponent = new Modal(...);\n * myUIComponent.setOption('trigger', '#some-element');\n **/\n setOption: function (name, value) {\n if (this.constructor && !(name in this.constructor._optionDefinition)) {\n Ink.error('\"' + name + ' is not an option for ' + this.constructor._name);\n return;\n }\n\n this._options[name] = value;\n },\n\n /**\n * Get the element associated with an UI component (IE the one you used in the constructor)\n *\n * @method getElement\n * @return {Element} The component's element.\n *\n * @example\n * var myUIComponent = new Modal('#element'); // or anything else inheriting BaseUIComponent\n * myUIComponent.getElement(); // -> The '#element' (not the selector string, mind you).\n *\n **/\n getElement: function () {\n return this._element;\n }\n });\n\n Common.BaseUIComponent = BaseUIComponent;\n\n /**\n * Take a constructor, and make it an Ink UI component.\n *\n * Makes it inherit BaseUIComponent, makes sure it has the basic properties Ink.UI.Common needs it to have, adds the necessary static methods, sets its options, etc.\n *\n * @method createUIComponent\n * @param {Function} theConstructor UI component constructor. It should have an _init function in its prototype, an _optionDefinition object, and a _name property indicating its name.\n * @param {Object} [options] Options hash, containing:\n * @param {Boolean} [options.elementIsOptional=false] Whether the element argument is optional (For example, when the component might work on existing markup or create its own).\n * @return {void}\n * @public\n **/\n Common.createUIComponent = function createUIComponent(theConstructor, options) {\n theConstructor._componentOptions = options || {};\n\n function assert(test, msg) {\n if (!test) {\n throw new Error('Ink.UI_1.createUIComponent: ' + msg);\n }\n }\n\n function assertProp(prop, propType, message) {\n var propVal = theConstructor[prop];\n // Check that the property was passed\n assert(typeof propVal !== 'undefined',\n theConstructor + ' doesn\\'t have a \"' + prop + '\" property. ' + message);\n // Check that its type is correct\n assert(propType && typeof propVal === propType,\n 'typeof ' + theConstructor + '.' + prop + ' is not \"' + propType + '\". ' + message);\n }\n\n assert(typeof theConstructor === 'function',\n 'constructor argument is not a function!');\n\n assertProp('_name', 'string', 'This property is used for error ' +\n 'messages. Set it to the full module path and version (Ink.My.Module_1).');\n assertProp('_optionDefinition', 'object', 'This property contains the ' +\n 'option names, types and defaults. See Ink.UI.Common.options() for reference.');\n\n // Extend the instance methods and props\n var _oldProto = theConstructor.prototype;\n\n if (typeof Object.create === 'function') {\n theConstructor.prototype = Object.create(BaseUIComponent.prototype);\n } else {\n theConstructor.prototype = (function hideF() {\n function F() {}\n F.prototype = BaseUIComponent.prototype;\n return new F();\n }());\n }\n\n Ink.extendObj(theConstructor.prototype, _oldProto);\n theConstructor.prototype.constructor = theConstructor;\n // Extend static methods\n Ink.extendObj(theConstructor, BaseUIComponent);\n };\n\n return Common;\n\n});\n","/**\n * Date selector\n * @module Ink.UI.DatePicker_1\n * @version 1\n */\n\nInk.createModule('Ink.UI.DatePicker', '1', ['Ink.UI.Common_1','Ink.Dom.Event_1','Ink.Dom.Css_1','Ink.Dom.Element_1','Ink.Dom.Selector_1','Ink.Util.Array_1','Ink.Util.Date_1', 'Ink.Util.I18n_1'], function(Common, Event, Css, InkElement, Selector, InkArray, InkDate, I18n ) {\n 'use strict';\n\n // Clamp a number into a min/max limit\n function clamp(n, min, max) {\n if (n > max) { n = max; }\n if (n < min) { n = min; }\n\n return n;\n }\n\n function dateishFromYMDString(YMD) {\n var split = YMD.split('-');\n return dateishFromYMD(+split[0], +split[1] - 1, +split[2]);\n }\n\n function keys(obj) {\n if (Object.keys) {\n return Object.keys(obj);\n }\n var ret = [];\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n ret.push(key);\n }\n }\n return ret;\n }\n\n function dateishFromYMD(year, month, day) {\n return {_year: year, _month: month, _day: day};\n }\n\n function dateishFromDate(date) {\n return {_year: date.getFullYear(), _month: date.getMonth(), _day: date.getDate()};\n }\n\n function getDecade(year) {\n return Math.floor(year / 10) * 10; // Round to first place\n }\n\n var datePickerI18n = new I18n({\n pt_PT: {\n 'datepicker.clean': 'Limpar',\n 'datepicker.close': 'Fechar',\n 'datepicker.format': 'dd-mm-yyyy',\n 'datepicker.of': ' de ',\n 'datepicker.next_button': '»',\n 'datepicker.prev_button': '«',\n 'datepicker.months': {\n 1:'Janeiro',\n 2:'Fevereiro',\n 3:'Março',\n 4:'Abril',\n 5:'Maio',\n 6:'Junho',\n 7:'Julho',\n 8:'Agosto',\n 9:'Setembro',\n 10:'Outubro',\n 11:'Novembro',\n 12:'Dezembro'\n },\n 'datepicker.week_days': {\n 0:'Domingo',\n 1:'Segunda-feira',\n 2:'Terça-feira',\n 3:'Quarta-feira',\n 4:'Quinta-feira',\n 5:'Sexta-feira',\n 6:'Sábado'\n }\n },\n en_US: {\n 'datepicker.clean': 'Clear',\n 'datepicker.close': 'Close',\n 'datepicker.format': 'dd-mm-yyyy',\n 'datepicker.of': ' of ',\n 'datepicker.next_button': '»',\n 'datepicker.prev_button': '«',\n 'datepicker.months': {\n 1:'January',\n 2:'February',\n 3:'March',\n 4:'April',\n 5:'May',\n 6:'June',\n 7:'July',\n 8:'August',\n 9:'September',\n 10:'October',\n 11:'November',\n 12:'December'\n },\n 'datepicker.week_days': {\n 0:'Sunday',\n 1:'Monday',\n 2:'Tuesday',\n 3:'Wednesday',\n 4:'Thursday',\n 5:'Friday',\n 6:'Saturday'\n }\n }\n }, 'en_US');\n\n /**\n * @class Ink.UI.DatePicker\n * @constructor\n * @version 1\n *\n * @param {String|Element} selector Datepicker element\n * @param {Object} [options] Options\n * @param {String} [options.lang] Set the language of the DatePicker, to show month names, day names, etc. Internally this results in changing our Ink.Util.I18n instance. pt_PT and en_US are available, but using getI18n().append({ lang_CODE: {...} }) you can create your own language.\n * @param {Boolean} [options.autoOpen] Flag to automatically open the datepicker.\n * @param {String} [options.cssClass] CSS class to be applied on the datepicker\n * @param {String|Element} [options.pickerField] (if not using in an input[type=\"text\"]) Element which displays the DatePicker when clicked. Defaults to an \"open\" link.\n * @param {String} [options.dateRange] Enforce limits to year, month and day for the Date, ex: '1990-08-25:2020-11'\n * @param {Boolean} [options.displayInSelect] Flag to display the component in a select element.\n * @param {String|Element} [options.dayField] (if using options.displayInSelect) `select` field with days.\n * @param {String|Element} [options.monthField] (if using options.displayInSelect) `select` field with months.\n * @param {String|Element} [options.yearField] (if using options.displayInSelect) `select` field with years.\n * @param {Boolean} [options.createSelectOptions] (if using options.displayInSelect) create the `option` elements with months, days, and years. Otherwise, datepicker trusts you to create them yourself.\n * @param {String} [options.format] Date format string\n * @param {Boolean} [options.onFocus] If the datepicker should open when the target element is focused. Defaults to true.\n * @param {Function} [options.onMonthSelected] Callback to execute when the month is selected.\n * @param {Function} [options.onSetDate] Callback to execute when the date is set.\n * @param {Function} [options.onYearSelected] Callback to execute when the year is selected.\n * @param {String} [options.position] Position for the datepicker. Either 'right' or 'bottom'. Defaults to 'right'.\n * @param {Boolean} [options.showClean] If the clean button should be visible. Defaults to true.\n * @param {Boolean} [options.showClose] If the close button should be visible. Defaults to true.\n * @param {Boolean} [options.shy] If the datepicker should hide automatically when the user clicks outside. Defaults to true.\n * @param {String} [options.startDate] Date to define initial month. Must be in yyyy-mm-dd format.\n * @param {Number} [options.startWeekDay] First day of the week. Sunday is zero. Defaults to 1 (Monday).\n * @param {Function} [options.validYearFn] Callback to execute when 'rendering' the month (in the month view)\n * @param {Function} [options.validMonthFn] Callback to execute when 'rendering' the month (in the month view)\n * @param {Function} [options.validDayFn] Callback to execute when 'rendering' the day (in the month view)\n * @param {Function} [options.nextValidDateFn] Function to calculate the next valid date, given the current. Useful when there's invalid dates or time frames.\n * @param {Function} [options.prevValidDateFn] Function to calculate the previous valid date, given the current. Useful when there's invalid dates or time frames.\n * @param {String} [options.yearRange] Enforce limits to year for the Date, ex: '1990:2020' (deprecated)\n * @param {Object} [options.month] (Deprecated. use options.lang or i18n instead) Hash of month names. Defaults to english month names. January is 1.\n * @param {Object} [options.wDay] (Deprecated. use options.lang or i18n instead) Hash of week day names. Sunday is 0. Defaults to { 0:'Sunday', 1:'Monday', etc...\n * @param {String} [options.nextLinkText] (Deprecated. use options.lang or i18n instead) Text for the previous button. Defaults to '»'.\n * @param {String} [options.prevLinkText] (Deprecated. use options.lang or i18n instead) Text for the previous button. Defaults to '«'.\n * @param {String} [options.ofText] (Deprecated. use options.lang or i18n instead) Text to show between month and year. Defaults to ' of '.\n * @param {String} [options.cleanText] (Deprecated. use options.lang or i18n instead) Text for the clean button. Defaults to 'Clear'.\n * @param {String} [options.closeText] (Deprecated. use options.lang or i18n instead) Text for the close button. Defaults to 'Close'.\n *\n * @sample Ink_UI_DatePicker_1.html\n */\n function DatePicker() {\n Common.BaseUIComponent.apply(this, arguments);\n }\n\n DatePicker._name = 'DatePicker_1';\n\n DatePicker._optionDefinition = {\n autoOpen: ['Boolean', false],\n pickerField: ['Element', null],\n containerElement:['Element', null],\n cssClass: ['String', 'ink-calendar bottom'],\n dateRange: ['String', null],\n \n // use this in a