{"version":3,"sources":["Scripts/haikom.slickupload.js"],"names":["kw","window","value","_components","_hasWindowLoaded","_initFunctionList","push","isLicensed","Error","handleLicense","_registerInit","initFunction","splice","debug","log","createLog","verboseLog","dropZoneWindow","_frameLoadedHandlers","_completionActions","_licenseHandlerUrl","UploadState","Initializing","Uploading","Completing","Complete","UploadErrorType","None","Cancelled","Other","defaultFileSizeFormatter","bytes","isFinite","suffix","i","length","decimalCount","Math","max","round","toString","toFixed","defaultPercentFormatter","percent","numericPercent","parseFloat","min","defaultTimeFormatter","seconds","hours","floor","minutes","defaultFileValidationMessageFormatter","file","fileList","message","get_IsExtensionValid","get_InvalidExtensionMessage","get_IsSizeValid","get_InvalidFileSizeMessage","_uploadFrameLoaded","data","setTimeout","componentConstructor","component","settings","options","events","isElementRequired","elementClass","extend","assert","id","isDOMElement","element","el","document","getElementById","addClass","addGetters","oldComponent","_dispose","addEventAdders","connectEvents","root","arguments","arg","key","object","name","substr","toUpperCase","dataKey","handler","isInternal","mergeComponent","dest","source","filter","toLowerCase","event","eventFunction","eval","resolveComponent","type","typeName","isRequired","resolveElement","getXmlReq","XMLHttpRequest","progIds","constructor","ActiveXObject","ex","existingBrands","licenseData","brand","parentNode","removeChild","brandLocation","version","createElement","style","cssText","innerHTML","body","appendChild","FileSelector","brandHTML","brandUrl","support","folderSelection","get_FolderElement","get_Element","parent","lastChild","insertBefore","nextSibling","isMouseEventSupported","eventName","isSupported","setAttribute","ua","navigator","userAgent","browserMatch","exec","test","browser","browserVersion","browserMinorVersion","parts","split","slice","join","androidMatch","androidVersion","xhr","fileInput","isSupportedBrowser","disabled","isSkinnable","display","filters","webkitNotChrome","indexOf","supportMatrix","fileInputMultiple","platform","fileInputTabbable","mouseEnterLeave","xmlHttpRequest","xmlHttpRequestInSubmit","html5Upload","FormData","cors","XDomainRequest","dragDrop","console","dir","argArray","Date","bind","ctx","captureEvents","forceDirectWire","wrapper","e","x","call","addEventListener","attachEvent","original","unbind","removeEventListener","detachEvent","getComputedStyle","currentStyle","defaultView","styles","showElement","currentDisplay","withinElement","relatedTarget","windowSize","sizeWindow","w","h","innerWidth","innerHeight","sizeDoc","documentElement","clientWidth","clientHeight","width","height","objectSize","obj","size","nodeType","tagName","splitClasses","classes","className","removeClass","arr","item","trim","replace","queryStringSerialize","o","s","k","encodeURIComponent","hexChars","generateGuid","r","uuid","random","list","filterFunction","filteredList","callHandlers","args","apply","addIFrame","src","iframe","addIFrameInternal","undefined","frames","isIFrameError","urlRoot","isError","frameLocation","location","pathname","search","getIsLoaded","isLoaded","doc","contentWindow","contentDocument","readyState","childNodes","connectTemplate","templateElements","eachElementFunction","all","getElementsByTagName","childEl","templateSource","j","kw_TemplateSource","updateTemplate","templateValueFunction","File","fileUpdatedHandlers","fileSelector","fileObject","extension","lastModified","isErrored","isCancelled","isExtensionValid","isSizeValid","isValid","status","this","get_Id","_set_Validation","_set_Status","isLastCalculateSize","contentLength","_validateFile","_set_IsCancelled","getFileName","path","pos","lastIndexOf","getExtension","fileName","files","fileSize","lastModifiedDate","self","fileSelectorImpl","selectedFiles","uploadBoxIdCounter","fileAddingHandlers","fileAddedHandlers","fileValidatedHandlers","fileRemovedHandlers","unskinnedElement","unsupportedElement","folderElement","uploadConnector","dropZone","maxFiles","maxFileSize","allowZeroLengthFiles","validExtensions","isSkinned","showDropZoneOnDocumentDragOver","htmlFileSelector","currentInput","onChange","validity","valid","onchangehandler","processFiles","updateHover","sourceIdSet","loopTest","executeIfIsFile","get_FileSelector","add_File","ensureAddBoxIfLessThanMaxFiles","codeBlock","executeNow","_onDrop","_onFileRemoved","setupFileInput","input","hideFocus","offsetWidth","offsetHeight","tabIndex","multiple","keyCode","charCode","onMouseOut","onMouseOver","isOverSelector","selectFolder","webkitdirectory","click","removeAttribute","inputs","internalAddedHandlers","externalAddedHandlers","_add_File","get_Files","clear","remove_File","_remove_File","skipValidationEvent","get_Size","get_Name","ext","onBeforeSessionEnd","UploadConnector","position","overflow","direction","replaceChild","DropZoneManager","registerDropZone","add_OnBeforeSessionEnd","createTextNode","FileList","fileElements","templateElement","invalidFileSizeMessage","invalidExtensionMessage","fileSizeFormatter","fileValidationMessageFormatter","percentFormatter","updateItem","kw_TemplateElements","get_Status","uploadState","get_UploadConnector","state","isRemovable","get_IsCancelled","errorType","parsedPosition","parsedContentLength","percentComplete","onFileAdded","cloneNode","idPrefix","get_Extension","add_OnFileUpdated","onFileUpdated","onFileRemoved","getItemElementById","add_OnFileAdded","add_OnFileRemoved","UploadProgressDisplay","timeFormatter","showDuringUpload","hideAfterUpload","updateDisplay","currentFileName","currentFileIndex","fileCount","speedText","totalSpeed","timeRemaining","parsedPercentComplete","onSessionStarted","onSessionProgress","onSessionEnded","add_OnUploadSessionStarted","add_OnUploadSessionProgress","add_OnUploadSessionEnded","uploadConnectorImpl","uploadThreadTimeout","originalOnSubmit","submittedElement","uploadSessionIdElement","uploadErrorTypeElement","sourceConnectorIdElement","failedRequestsElement","cancelledRequests","cancelledRequestsElement","completionIframeElement","uploadDataElement","isCompleting","isManuallyStartedUpload","allowPartialError","uploadHandlerUrl","completeHandlerUrl","documentDomain","uploadSessionId","uploadForm","autoUploadOnSubmit","autoUploadTriggerIdList","autoCompleteAfterLastFile","confirmNavigateDuringUploadMessage","uploadProfile","completionMethod","completionBody","completionContentType","pollInterval","pollTimeout","uploadTimeout","validationGroup","timeoutDoubleOnResponse","hasDoubledTimeout","postbackFunction","concurrentMaxFiles","beforeSessionStartHandlers","uploadSessionStartedHandlers","uploadFileStartedHandlers","uploadFileEndedHandlers","uploadSessionProgressHandlers","beforeSessionEndHandlers","uploadSessionEndedHandlers","set_CompletionBody","set_Data","html4UploadConnector","uploadFile","uploadUrl","sourceId","targetId","uploadFrame","form","addForm","pollProgress","dataElement","get_FileObject","submit","heartbeatCheck","getIsUploadError","action","disposeFile","progressFrame","url","enctype","encoding","method","target","html5UploadConnector","onUploadProgress","loaded","total","totalSize","lastProgressReceiveDate","getTime","onRequestProgressInternal","onUploadError","fileData","uploadXhr","upload","onReadyStateChange","open","setRequestHeader","formData","append","send","abort","responseText","uploadThread","clearTimeout","hasWork","uploadingFileCount","lastProgressSendDate","now","lastActionDate","firstProgressSendDate","cancelProgressRequest","startDate","isLastRetry","executeProgressRequest","getUrl","complete","onSessionProgressInternal","isCalculateSize","handlerType","isFinalRequest","currentStatus","newProgressException","progressException","alert","errorMessage","onSessionStatusUpdate","sanitizeStatus","elapsed","parsedTimeRemaining","progressXhr","isBusy","onProgressRecieved","onFormSubmitted","updatePanelId","Sys","WebForms","PageRequestManager","triggerPanelId","getInstance","_postBackSettings","panelID","ret","start","validationCallbacks","preventDefault","returnValue","wireAutoUploadOnSubmit","Array","add","_onSubmitStatements","Mvc","AsyncForm","onsubmit","elements","isWireable","onElementSubmitted","__doPostBack","originalDoPostBack","eventTarget","eventArgument","theForm","href","invokedByAutoUploadOnSubmit","Page_ClientValidate","cancel","isAutoComplete","hasSuccessfulFiles","executeUploadCompleteHandler","executeUploadCompletePostBack","failedRequests","remove","submitButton","submitFunction","wasDisabled","nodeName","match","onclick","decodeURI","completionData","fileListList","executeCompleteAction","onUploadCompleteHandlerReadyStateChange","onBeforeUnload","domain","uploadRequestId","SlickUpload","uploadProgressDisplay","mergeFilter","underScorePos","zoneElements","leaveTimeout","areZonesVisible","isValidDrag","dt","types","onDocumentDragEnter","dataTransfer","setZonesVisible","onDocumentDragOver","dropEffect","stopPropagation","resetLeaveTimeout","onDocumentDragLeave","elementFromPoint","clientX","clientY","isOutsideBody","onZoneDragOver","effectAllowed","onZoneDragEnter","onZoneDragLeave","onZoneDrop","isVisible","_showDropZoneOnDocumentDragOver","dropTarget","zoneDocument","zIndex","cancelDropFunction","zoneBody","init","_kwInit","lastCount","interval","setInterval","count","clearInterval","Browser","WebKit","agent","Application","notifyScriptLoaded"],"mappings":"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","file":"slickupload.js","sourcesContent":["//\r\n// Modified SlickUpload JavaScript file. For HaiKom use only.\r\n//\r\n// IMPORTANT! DO NOT REPLACE THIS FILE BEFORE THE MODIFICATIONS ARE PRESENT IN THE NEW FILE!\r\n//\r\n// Modifications:\r\n// 2012-09-06:\t\tAdded validationGroup setting\r\n// 2014-06-10:\t\tChanged maxFiles to support unlimited number of files instead of maximum 100\r\n//\r\n(function () {\r\n\t// --- Component registry\r\n\tvar kw = window.kw || function (value) {\r\n\t\tif (typeof value === \"string\") {\r\n\t\t\treturn kw._components[value];\r\n\t\t} else if (typeof value === \"function\") {\r\n\t\t\tif (kw._hasWindowLoaded) value();\r\n\t\t\telse kw._initFunctionList.push(value);\r\n\t\t} else if (value && value.isLicensed !== null) {\r\n\t\t\thandleLicense(value);\r\n\t\t} else {\r\n\t\t\tthrow new Error(\"Invalid value argument type. Must be a string (to get a component) or a function (to call on load).\");\r\n\t\t}\r\n\t};\r\n\r\n\tkw._registerInit = function (initFunction) {\r\n\t\tif (typeof initFunction === \"function\") {\r\n\t\t\tif (kw._hasWindowLoaded) initFunction();\r\n\t\t\telse kw._initFunctionList.splice(0, 0, initFunction);\r\n\t\t} else {\r\n\t\t\tthrow new Error(\"Invalid value argument type. Must be a function.\");\r\n\t\t}\r\n\t};\r\n\r\n\t// --- Globals\r\n\tkw.debug = false;\r\n\tkw.log = [];\r\n\tkw.createLog = false;\r\n\tkw.verboseLog = false;\r\n\tkw.dropZoneWindow = window;\r\n\r\n\tkw._components = kw._components || {};\r\n\tkw._hasWindowLoaded = kw._hasWindowLoaded || false;\r\n\tkw._initFunctionList = kw._initFunctionList || [];\r\n\tkw._frameLoadedHandlers = kw._frameLoadedHandlers || [];\r\n\tkw._completionActions = kw._completionActions || [];\r\n\tkw._licenseHandlerUrl = null;\r\n\r\n\t// TODO: make case insensitive\r\n\tkw.UploadState = {\r\n\t\tInitializing: \"Initializing\",\r\n\t\tUploading: \"Uploading\",\r\n\t\tCompleting: \"Completing\",\r\n\t\tComplete: \"Complete\",\r\n\t\tError: \"Error\"\r\n\t};\r\n\r\n\tkw.UploadErrorType = {\r\n\t\tNone: \"None\",\r\n\t\tCancelled: \"Cancelled\",\r\n\t\tOther: \"Other\"\r\n\t};\r\n\r\n\t// --- Formatters\r\n\tkw.defaultFileSizeFormatter = function (bytes) {\r\n\t\tif (bytes !== null && isFinite(bytes) && bytes >= 0) {\r\n\t\t\tvar suffix = [\"bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\r\n\r\n\t\t\tfor (var i = 0; i < suffix.length && bytes / 1024 > 1; i++)\r\n\t\t\t\tbytes /= 1024;\r\n\r\n\t\t\tvar decimalCount = Math.max(0, 3 - Math.round(bytes).toString().length);\r\n\r\n\t\t\treturn bytes.toFixed(decimalCount) + \" \" + suffix[i];\r\n\t\t} else if (bytes === -1) {\r\n\t\t\treturn \"(unknown size)\";\r\n\t\t} else {\r\n\t\t\treturn null; // \"(calculating)\";\r\n\t\t}\r\n\t};\r\n\r\n\tkw.defaultPercentFormatter = function (percent) {\r\n\t\tif (percent !== null) {\r\n\t\t\tvar numericPercent = parseFloat(percent);\r\n\r\n\t\t\tif (isFinite(numericPercent)) return Math.min(Math.max(numericPercent, \"0\"), \"100\").toFixed(2) + \" %\";\r\n\t\t}\r\n\r\n\t\treturn null; // \"(calculating)\";\r\n\t};\r\n\r\n\tkw.defaultTimeFormatter = function (seconds) {\r\n\t\tseconds = parseFloat(seconds);\r\n\r\n\t\tif (isFinite(seconds) && seconds > 0) {\r\n\t\t\tvar hours = Math.floor(seconds / (60 * 60));\r\n\r\n\t\t\tseconds -= hours * (60 * 60);\r\n\r\n\t\t\tvar minutes = Math.floor(seconds / 60);\r\n\r\n\t\t\tseconds = Math.floor(seconds - minutes * 60);\r\n\r\n\t\t\tvar value = \"\";\r\n\r\n\t\t\tif (hours > 0) {\r\n\t\t\t\tvalue += hours;\r\n\r\n\t\t\t\tif (hours === 1) value += \" hour\";\r\n\t\t\t\telse value += \" hours\";\r\n\t\t\t}\r\n\r\n\t\t\tif (minutes > 0) {\r\n\t\t\t\tif (value.length > 0) {\r\n\t\t\t\t\tif (seconds > 0) value += \", \";\r\n\t\t\t\t\telse value += \" and \";\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvalue += minutes;\r\n\r\n\t\t\t\tif (minutes === 1) value += \" minute\";\r\n\t\t\t\telse value += \" minutes\";\r\n\t\t\t}\r\n\r\n\t\t\tif (seconds > 0) {\r\n\t\t\t\tif (value.length > 0) value += \" and \";\r\n\r\n\t\t\t\tvalue += seconds;\r\n\r\n\t\t\t\tif (seconds === 1) value += \" second\";\r\n\t\t\t\telse value += \" seconds\";\r\n\t\t\t}\r\n\r\n\t\t\treturn value;\r\n\t\t} else if (seconds === 0) {\r\n\t\t\treturn \"an instant\";\r\n\t\t}\r\n\r\n\t\treturn null; // \"(calculating)\";\r\n\t};\r\n\r\n\tkw.defaultFileValidationMessageFormatter = function (file, fileList) {\r\n\t\tvar message = \"\";\r\n\r\n\t\tif (!file.get_IsExtensionValid() && fileList.get_InvalidExtensionMessage()) {\r\n\t\t\tif (message.length > 0) message += \" \";\r\n\r\n\t\t\tmessage += fileList.get_InvalidExtensionMessage();\r\n\t\t}\r\n\t\tif (!file.get_IsSizeValid() && fileList.get_InvalidFileSizeMessage()) {\r\n\t\t\tif (message.length > 0) message += \" \";\r\n\r\n\t\t\tmessage += fileList.get_InvalidFileSizeMessage();\r\n\t\t}\r\n\r\n\t\tif (message.length > 0) return message;\r\n\t\telse return null;\r\n\t};\r\n\r\n\t/*kw.defaultFileTypeFormatter = function (type)\r\n\t{\r\n\t\tif (type != null)\r\n\t\t{\r\n\t\t\treturn type;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\treturn \"(unknown)\";\r\n\t\t}\r\n\t};*/\r\n\r\n\t// --- Frame trampoline\r\n\tkw._uploadFrameLoaded = function (data) {\r\n\t\t// setTimeout required for webkit\r\n\t\twindow.setTimeout(function () {\r\n\t\t\tfor (var i = 0; i < kw._frameLoadedHandlers.length; i++)\r\n\t\t\t\tkw._frameLoadedHandlers[i](data);\r\n\t\t}, 1);\r\n\t};\r\n\r\n\t// --- Generic component constructor\r\n\tvar componentConstructor = function (component, settings, options, events, isElementRequired, elementClass) {\r\n\t\tif (settings && options) extend(settings, options);\r\n\r\n\t\t//component.uniqueId = settings.uniqueId = Math.floor(Math.random() * 1000);\r\n\r\n\t\tassert(!settings.id || typeof settings.id === \"string\", \"id must be a string.\");\r\n\r\n\t\tif (isDOMElement(settings.element) && !settings.id) {\r\n\t\t\tif (settings.element.id && typeof settings.element.id === \"string\" && settings.element.id.length > 0) settings.id = settings.element.id;\r\n\t\t} else if (!settings.element && settings.id) {\r\n\t\t\tvar el = document.getElementById(settings.id);\r\n\r\n\t\t\tif (isElementRequired) assert(isDOMElement(el), \"id '\" + settings.id + \"' must resolve to a valid element.\");\r\n\r\n\t\t\tif (el) settings.element = el;\r\n\t\t} else if (isElementRequired) {\r\n\t\t\tassert(isDOMElement(el), \"element is required.\");\r\n\t\t}\r\n\r\n\t\tif (settings.element && elementClass) addClass(settings.element, elementClass);\r\n\r\n\t\tif (settings) {\r\n\t\t\taddGetters(component, settings);\r\n\r\n\t\t\tif (settings.id) {\r\n\t\t\t\tvar oldComponent = kw._components[settings.id];\r\n\r\n\t\t\t\tif (oldComponent && oldComponent._dispose) oldComponent._dispose();\r\n\r\n\t\t\t\tkw._components[settings.id] = component;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (events) {\r\n\t\t\taddEventAdders(component, events);\r\n\r\n\t\t\tif (settings) connectEvents(events, settings);\r\n\t\t}\r\n\t};\r\n\r\n\tvar extend = function (root) {\r\n\t\tfor (var i = 0; i < arguments.length; i++) {\r\n\t\t\tvar arg = arguments[i];\r\n\r\n\t\t\tif (arg) {\r\n\t\t\t\tfor (var key in arg)\r\n\t\t\t\t\troot[key] = arg[key];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn root;\r\n\t};\r\n\r\n\tvar addGetters = function (object, settings) {\r\n\t\tfor (var key in settings) {\r\n\t\t\tvar name = key.substr(0, 1).toUpperCase() + key.substr(1);\r\n\r\n\t\t\t// TODO: figure out a better way of doing this\r\n\t\t\tif (name !== \"Data\") {\r\n\t\t\t\t(function (key, name) {\r\n\t\t\t\t\tobject[\"get_\" + name] = function () {\r\n\t\t\t\t\t\treturn settings[key];\r\n\t\t\t\t\t};\r\n\t\t\t\t})(key, name);\r\n\t\t\t} else {\r\n\t\t\t\t(function (key, name) {\r\n\t\t\t\t\tobject[\"get_\" + name] = function (dataKey) {\r\n\t\t\t\t\t\treturn settings[key][dataKey];\r\n\t\t\t\t\t};\r\n\t\t\t\t})(key, name);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tvar addEventAdders = function (object, events) {\r\n\t\tfor (var key in events) {\r\n\t\t\tvar name = key.substr(0, 1).toUpperCase() + key.substr(1, key.length - 9);\r\n\r\n\t\t\t(function (key, name) {\r\n\t\t\t\tobject[\"add_On\" + name] = function (handler, isInternal) {\r\n\t\t\t\t\thandler.isInternal = isInternal;\r\n\r\n\t\t\t\t\tif (isInternal) events[key].splice(0, 0, handler);\r\n\t\t\t\t\telse events[key].push(handler);\r\n\t\t\t\t};\r\n\t\t\t})(key, name);\r\n\t\t}\r\n\t};\r\n\r\n\tvar mergeComponent = function (dest, source, filter) {\r\n\t\tfor (var key in source) {\r\n\t\t\tif (typeof source[key] === \"function\") {\r\n\t\t\t\tif (!dest[key] && filter && filter(key)) dest[key] = source[key];\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tvar connectEvents = function (events, settings) {\r\n\t\tfor (var key in settings) {\r\n\t\t\tif (key.length > 4) {\r\n\t\t\t\tvar name = key.substr(2, 1).toLowerCase() + key.substr(3) + \"Handlers\";\r\n\t\t\t\tvar event = events[name];\r\n\r\n\t\t\t\tif (event) {\r\n\t\t\t\t\tvar eventFunction = settings[key];\r\n\r\n\t\t\t\t\tif (typeof eventFunction == \"string\") {\r\n\t\t\t\t\t\tif (window[eventFunction] && typeof window[eventFunction] == \"function\") {\r\n\t\t\t\t\t\t\teventFunction = window[eventFunction];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// TODO: maybe throw exception instead?\r\n\t\t\t\t\t\t\teventFunction = (function (eventFunction) {\r\n\t\t\t\t\t\t\t\treturn function (data) {\r\n\t\t\t\t\t\t\t\t\treturn eval(eventFunction);\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t})(eventFunction);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tevent.push(eventFunction);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tvar resolveComponent = function (settings, name, type, typeName, isRequired) {\r\n\t\tvar message = null;\r\n\r\n\t\tif (typeof settings[name] == \"string\") {\r\n\t\t\tvar el = kw(settings[name]);\r\n\r\n\t\t\tif (el) settings[name] = el;\r\n\t\t\telse message = name + \" '\" + settings[name] + \"' must resolve to a valid \" + typeName + \".\";\r\n\t\t}\r\n\r\n\t\tif (!message) message = name + \" must be a \" + typeName + \".\";\r\n\r\n\t\tif (settings[name] || isRequired) assert(settings[name] instanceof type, message);\r\n\t};\r\n\r\n\tvar resolveElement = function (settings, name, isRequired) {\r\n\t\tvar message = null;\r\n\r\n\t\tif (typeof settings[name] == \"string\") {\r\n\t\t\tvar el = document.getElementById(settings[name]);\r\n\r\n\t\t\tif (isDOMElement(el)) settings[name] = el;\r\n\t\t\telse message = name + \" '\" + settings[name] + \"' must resolve to an element.\";\r\n\t\t}\r\n\r\n\t\tif (!message) message = name + \" must be an element.\";\r\n\r\n\t\tif (settings[name] || isRequired) assert(isDOMElement(settings[name]), message);\r\n\t};\r\n\r\n\tvar getXmlReq = (function () {\r\n\t\tif (window.XMLHttpRequest) {\r\n\t\t\treturn function () {\r\n\t\t\t\treturn new XMLHttpRequest();\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tvar progIds = [\"Msxml2.XMLHTTP.6.0\", \"MSXML2.XMLHTTP.3.0\", \"MSXML2.XMLHTTP\", \"Microsoft.XMLHTTP\"];\r\n\r\n\t\t\tfor (var i = 0; i < progIds.length; i++) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tvar constructor = function () {\r\n\t\t\t\t\t\treturn new ActiveXObject(progIds[i]);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tif (constructor()) return constructor;\r\n\t\t\t\t} catch (ex) {\r\n\t\t\t\t\t// Eat it and try the next one\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn function () {\r\n\t\t\t\treturn null;\r\n\t\t\t};\r\n\t\t}\r\n\t})();\r\n\r\n\tvar existingBrands = [];\r\n\tvar licenseData = null;\r\n\r\n\t// TODO: periodically check to ensure that brand still exists\r\n\tvar handleLicense = function (data) {\r\n\t\tdata = data || licenseData;\r\n\r\n\t\tfor (var i = 0; i < existingBrands.length; i++) {\r\n\t\t\tvar brand = existingBrands[i];\r\n\r\n\t\t\tif (brand.parentNode) brand.parentNode.removeChild(brand);\r\n\t\t}\r\n\r\n\t\texistingBrands = [];\r\n\r\n\t\tif (!data || !data.isLicensed) {\r\n\t\t\tlicenseData = data;\r\n\r\n\t\t\tvar brandLocation = data ? data.brandLocation : null;\r\n\t\t\tvar version = data ? data.version : null;\r\n\r\n\t\t\tif (!version) version = \"unknown\";\r\n\r\n\t\t\tif (!brandLocation || brandLocation == \"inline\") {\r\n\t\t\t\tfor (var key in kw._components) {\r\n\t\t\t\t\tvar component = kw._components[key];\r\n\r\n\t\t\t\t\tif (component.constructor == kw.FileSelector) {\r\n\t\t\t\t\t\tvar brand = document.createElement(\"div\");\r\n\r\n\t\t\t\t\t\tbrand.style.cssText = \"background-image:url('http://krystalware.com/brandping?version=\" + version + \"');clear:both;\";\r\n\r\n\t\t\t\t\t\t//brand.style.cssText = \"background-image:url('http://krystalware.com/brandping?version=\" + version + \"');z-index:99999;background-color:#265ecf;border-top:1px solid #37b0e5;border-right:1px solid #37b0e5;position:absolute;position:fixed;right:0;bottom:0;margin:0;padding:.25em .5em .25em .5em;font-size:80%;font-family:Calibri,Verdana,Arial,sans-serif;filter:alpha(opacity=100);opacity:1;-moz-opacity:1\";\r\n\r\n\t\t\t\t\t\tvar brandHTML = \"\";\r\n\r\n\t\t\t\t\t\tif (data && data.brandUrl) brandHTML += \"\\\"Powered\";\r\n\t\t\t\t\t\telse brandHTML += \"Powered By SlickUpload Community Edition\";\r\n\r\n\t\t\t\t\t\tbrandHTML += \"\";\r\n\r\n\t\t\t\t\t\tbrand.innerHTML = brandHTML;\r\n\r\n\t\t\t\t\t\tvar element;\r\n\r\n\t\t\t\t\t\tif (support.folderSelection) element = component.get_FolderElement();\r\n\r\n\t\t\t\t\t\tif (!element || !element.parentNode) element = component.get_Element();\r\n\r\n\t\t\t\t\t\tvar parent = element.parentNode;\r\n\r\n\t\t\t\t\t\tif (parent) {\r\n\t\t\t\t\t\t\tif (parent.lastChild == element) parent.appendChild(element);\r\n\t\t\t\t\t\t\telse parent.insertBefore(brand, element.nextSibling);\r\n\r\n\t\t\t\t\t\t\texistingBrands.push(brand);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/*while (element && !element.nextSibling)\r\n\t\t\t\t\t\t\telement = element.parentNode;\r\n\r\n\t\t\t\t\t\tif (element && element.nextSibling)\r\n\t\t\t\t\t\t\telement.parentNode.insertBefore(brand, element.nextSibling);\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tdocument.body.appendChild(brand);*/\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (brandLocation == \"bottom-right\") {\r\n\t\t\t\tvar brand = document.createElement(\"div\");\r\n\r\n\t\t\t\tbrand.style.cssText = \"background-image:url('http://krystalware.com/brandping?version=\" + version + \"');z-index:99999;background-color:#265ecf;border-top:1px solid #37b0e5;border-right:1px solid #37b0e5;position:absolute;position:fixed;right:0;bottom:0;margin:0;padding:.25em .5em .25em .5em;font-size:80%;font-family:Calibri,Verdana,Arial,sans-serif;filter:alpha(opacity=100);opacity:1;-moz-opacity:1\";\r\n\r\n\t\t\t\tbrand.innerHTML = \"Powered By SlickUpload Community Edition\";\r\n\r\n\t\t\t\tdocument.body.appendChild(brand);\r\n\r\n\t\t\t\texistingBrands.push(brand);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// https://github.com/kangax/iseventsupported/blob/master/isEventSupported.js\r\n\tvar isMouseEventSupported = function (eventName) {\r\n\t\tvar el = document.createElement('div');\r\n\t\teventName = 'on' + eventName;\r\n\t\tvar isSupported = (eventName in el);\r\n\t\tif (!isSupported) {\r\n\t\t\tel.setAttribute(eventName, 'return;');\r\n\t\t\tisSupported = typeof el[eventName] == 'function';\r\n\t\t}\r\n\t\tel = null;\r\n\t\treturn isSupported;\r\n\t};\r\n\r\n\tvar support = (function () {\r\n\t\tvar ua = window.navigator.userAgent.toLowerCase();\r\n\r\n\t\t// From $.browser\r\n\t\tvar browserMatch = /(webkit)[ \\/]([\\w.]+)/.exec(ua) || /(opera)(?:.*version)?[ \\/]([\\w.]+)/.exec(ua) || /(msie) ([\\w.]+)/.exec(ua) || !/compatible/.test(ua) && /(mozilla)(?:.*? rv:([\\w.]+))?/.exec(ua) || [];\r\n\r\n\t\tvar browser = browserMatch[1] || \"\",\r\n\t\t\tbrowserVersion = parseFloat(browserMatch[2]) || 0,\r\n\t\t\tbrowserMinorVersion = 0;\r\n\r\n\t\tvar parts = browserMatch[2] ? browserMatch[2].split(\".\") : [];\r\n\r\n\t\tif (parts.length > 2) browserMinorVersion = parseFloat(parts.slice(2).join(\".\")) || 0;\r\n\r\n\t\tvar androidMatch = /(android)[ ]([\\w.]+)/.exec(ua) || [];\r\n\t\tvar androidVersion = androidMatch[1] ? parseFloat(androidMatch[2]) : null;\r\n\r\n\t\tvar xhr = getXmlReq();\r\n\r\n\t\t// http://leaverou.me/2009/03/regarding-native-single-input-multiple-file-uploads/\r\n\t\tvar fileInput = document.createElement(\"input\");\r\n\r\n\t\tfileInput.type = 'file';\r\n\r\n\t\t// TODO: create iframe and see if we can target it\r\n\t\tvar isSupportedBrowser = (\"src\" in document.createElement(\"iframe\") && !fileInput.disabled && !(browser == \"webkit\" && browserVersion < 523) && (!androidVersion || androidVersion >= 2.2));\r\n\r\n\t\tvar isSkinnable = (\r\n\t\t(browser == \"msie\" && browserVersion > 5) || (browser == \"opera\" && browserVersion >= 9) || (browser == \"mozilla\" && browserVersion > 1.7) || (browser == \"webkit\" && browserVersion > 523));\r\n\r\n\t\tif (browser == \"msie\" && browserVersion < 9) {\r\n\t\t\t// Check to make sure that \"binary and script behaviors\" is enabled in IE. That is required for opacity filter to work.\r\n\t\t\ttry {\r\n\t\t\t\tfileInput.style.display = \"none\";\r\n\r\n\t\t\t\tdocument.appendChild(fileInput);\r\n\r\n\t\t\t\tvar test = fileInput.filters;\r\n\r\n\t\t\t\tdocument.removeChild(fileInput);\r\n\t\t\t} catch (ex) {\r\n\t\t\t\tisSkinnable = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// TODO: support dnd in safari\r\n\t\tvar webkitNotChrome = (browser == \"webkit\" && ua.indexOf(\"chrome\") == -1);\r\n\r\n\t\tvar supportMatrix = {\r\n\t\t\tbrowser: browser,\r\n\t\t\tbrowserVersion: browserVersion,\r\n\t\t\tbrowserMinorVersion: browserMinorVersion,\r\n\t\t\t//dragDrop: (\"draggable\" in document.createElement(\"span\")) && (\"multiple\" in fileInput) && (\"files\" in fileInput),\r\n\t\t\tisSupportedBrowser: isSupportedBrowser,\r\n\t\t\tisSkinnable: isSkinnable,\r\n\t\t\t// TODO: figure out why multiple is broken in Safari 5.1\r\n\t\t\tfileInputMultiple: (\"multiple\" in fileInput) && !(browser == \"webkit\" && window.navigator.platform.toLowerCase().indexOf(\"win\") != -1 && browserVersion == 534.5),\r\n\t\t\tfolderSelection: (\"webkitdirectory\" in fileInput),\r\n\t\t\tfileInputTabbable: ((browser == \"mozilla\" && browserVersion > 1.8) || (browser == \"webkit\" && browserVersion > 523)),\r\n\t\t\tmouseEnterLeave: (isMouseEventSupported(\"mouseenter\") && isMouseEventSupported(\"mouseleave\")),\r\n\t\t\t// TODO: implement full iframe progress for this\r\n\t\t\txmlHttpRequest: (xhr !== null),\r\n\t\t\t// TODO: see if newer versions work\r\n\t\t\txmlHttpRequestInSubmit: (browser != \"webkit\"),\r\n\t\t\thtml5Upload: ((window.FormData || (browser == \"mozilla\" && browserVersion >= 1.9 && browserMinorVersion >= 2)) ? true : false),\r\n\t\t\tcors: (xhr !== null && \"withCredentials\" in xhr) || typeof XDomainRequest !== \"undefined\"\r\n\t\t};\r\n\r\n\t\tsupportMatrix.dragDrop = supportMatrix.fileInputMultiple && (\"draggable\" in document.createElement(\"span\")) && !webkitNotChrome;\r\n\r\n\t\treturn supportMatrix;\r\n\t})();\r\n\r\n\t// TODO: is this the best way?\r\n\tkw.support = kw.support || {};\r\n\r\n\textend(kw.support, support);\r\n\r\n\t// --- Helper functions\r\n\t// debug\r\n\tvar log = function () {\r\n\t\tif (kw.debug && window.console && console.log) {\r\n\t\t\tif (console.dir && arguments.length > 1) {\r\n\t\t\t\tconsole.log(arguments);\r\n\t\t\t} else {\r\n\t\t\t\tfor (var i = 0; i < arguments.length; i++)\r\n\t\t\t\t\tconsole.log(arguments[i]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (kw.createLog) {\r\n\t\t\tvar argArray = [];\r\n\r\n\t\t\tfor (var i = 0; i < arguments.length; i++)\r\n\t\t\t\targArray.push(arguments[i]);\r\n\r\n\r\n\t\t\targArray.push(new Date().toString());\r\n\r\n\t\t\tkw.log.push(argArray);\r\n\t\t}\r\n\t};\r\n\r\n\tvar assert = function (test, message) {\r\n\t\tif (!test) throw new Error(message);\r\n\t};\r\n\r\n\t// event binding\r\n\tvar bind = function (source, event, ctx, handler, captureEvents, forceDirectWire) {\r\n\t\tvar wrapper = function (e) {\r\n\t\t\tvar x = handler.call(ctx, e, source);\r\n\t\t\treturn x;\r\n\t\t};\r\n\r\n\t\tif (!forceDirectWire) {\r\n\t\t\ttry {\r\n\t\t\t\tif (source.addEventListener) {\r\n\t\t\t\t\tsource.addEventListener(event, wrapper, captureEvents);\r\n\r\n\t\t\t\t\treturn wrapper;\r\n\t\t\t\t} else if (source.attachEvent) {\r\n\t\t\t\t\tsource.attachEvent(\"on\" + event, wrapper);\r\n\r\n\t\t\t\t\treturn wrapper;\r\n\t\t\t\t}\r\n\t\t\t} catch (ex) { }\r\n\t\t}\r\n\r\n\t\tvar original;\r\n\r\n\t\ttry {\r\n\t\t\toriginal = source[\"on\" + event];\r\n\t\t} catch (ex) { }\r\n\r\n\t\t// TODO: handle returns\r\n\t\t// TODO: handle unwiring\r\n\t\tif (original && !forceDirectWire) wrapper = function (e) {\r\n\t\t\toriginal(e);\r\n\t\t\twrapper(e, source);\r\n\t\t};\r\n\r\n\t\tsource[\"on\" + event] = wrapper;\r\n\t};\r\n\r\n\tvar unbind = function (source, event, handler, forceDirectWire) {\r\n\t\ttry {\r\n\t\t\tif (forceDirectWire) source[\"on\" + event] = null;\r\n\t\t\tif (source.removeEventListener) source.removeEventListener(event, handler, false);\r\n\t\t\telse if (source.detachEvent) source.detachEvent(\"on\" + event, handler);\r\n\r\n\t\t\treturn true;\r\n\t\t\t// TODO: handle old browsers wired directly\r\n\t\t} catch (e) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t};\r\n\r\n\tvar getComputedStyle = function (el, style) {\r\n\t\tif (!el || !el.style) return null;\r\n\r\n\t\tif (el.style[style]) return el.style[style];\r\n\t\tif (el.currentStyle) return el.currentStyle[style];\r\n\t\telse if (document.defaultView && document.defaultView.getComputedStyle) {\r\n\t\t\tvar styles = document.defaultView.getComputedStyle(el, null);\r\n\r\n\t\t\tif (styles) return styles[style];\r\n\t\t} else return null;\r\n\t};\r\n\r\n\tvar showElement = function (el) {\r\n\t\tif (el && el.style) {\r\n\t\t\tvar currentDisplay = getComputedStyle(el, \"display\");\r\n\r\n\t\t\tif (!currentDisplay || currentDisplay == \"none\") el.style.display = \"block\";\r\n\t\t}\r\n\t};\r\n\r\n\r\n\t// Checks if an event happened on an element within another element\r\n\t// Used in jQuery.event.special.mouseenter and mouseleave handlers\r\n\t// http://ecmascript.stchur.com/2007/03/15/mouseenter-and-mouseleave-events-for-firefox-and-other-non-ie-browsers/\r\n\tvar withinElement = function (parent, event, relatedTarget) {\r\n\t\t// Check if mouse(over|out) are still within the same parent element\r\n\t\tif (!relatedTarget) relatedTarget = event.relatedTarget;\r\n\r\n\t\t// Firefox sometimes assigns relatedTarget a XUL element\r\n\t\t// which we cannot access the parentNode property of\r\n\t\ttry {\r\n\t\t\tif (parent === relatedTarget) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\twhile (relatedTarget && relatedTarget !== parent) {\r\n\t\t\t\trelatedTarget = relatedTarget.parentNode;\r\n\t\t\t}\r\n\r\n\t\t\treturn relatedTarget === parent;\r\n\r\n\t\t\t// assuming we've left the element since we most likely mousedover a xul element\r\n\t\t} catch (e) { }\r\n\r\n\t\treturn false;\r\n\t};\r\n\r\n\t// http://www.geekdaily.net/2007/07/04/javascript-cross-browser-window-size-and-centering/\r\n\tvar windowSize = function () {\r\n\t\tvar sizeWindow = kw.dropZoneWindow;\r\n\r\n\t\tvar w = 0;\r\n\t\tvar h = 0;\r\n\r\n\t\t//IE\r\n\t\tif (!sizeWindow.innerWidth) {\r\n\t\t\tvar sizeDoc = sizeWindow.document;\r\n\r\n\t\t\t//strict mode\r\n\t\t\tif (sizeDoc.documentElement.clientWidth !== 0) {\r\n\t\t\t\tw = sizeDoc.documentElement.clientWidth;\r\n\t\t\t\th = sizeDoc.documentElement.clientHeight;\r\n\t\t\t}\r\n\t\t\t\t//quirks mode\r\n\t\t\telse {\r\n\t\t\t\tw = sizeDoc.body.clientWidth;\r\n\t\t\t\th = sizeDoc.body.clientHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\t//w3c\r\n\t\telse {\r\n\t\t\tw = sizeWindow.innerWidth;\r\n\t\t\th = sizeWindow.innerHeight;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\twidth: w,\r\n\t\t\theight: h\r\n\t\t};\r\n\t};\r\n\r\n\tvar objectSize = function (obj) {\r\n\t\tvar size = 0;\r\n\t\tvar key;\r\n\r\n\t\tfor (key in obj) {\r\n\t\t\t//if (obj.hasOwnProperty(key))\r\n\t\t\tsize++;\r\n\t\t}\r\n\r\n\t\treturn size;\r\n\t};\r\n\r\n\tvar isDOMElement = function (el) {\r\n\t\treturn el && el.nodeType == 1 && el.tagName;\r\n\t};\r\n\r\n\tvar splitClasses = function (classes) {\r\n\t\tif (classes) return classes.split(/\\s+/);\r\n\t\telse return [];\r\n\t};\r\n\r\n\tvar addClass = function (el, className) {\r\n\t\tvar classes = splitClasses(el.className);\r\n\r\n\t\tif (indexOf(classes, className) == -1) classes.push(className);\r\n\r\n\t\tel.className = classes.join(\" \");\r\n\t};\r\n\r\n\tvar removeClass = function (el, className) {\r\n\t\tvar classes = splitClasses(el.className);\r\n\r\n\t\tfor (var i = classes.length; i--; i >= 0) {\r\n\t\t\tif (classes[i] == className) classes.splice(i, 1);\r\n\t\t}\r\n\r\n\t\tel.className = classes.join(\" \");\r\n\t};\r\n\r\n\tvar indexOf = function (arr, item) {\r\n\t\tfor (var i = 0; i < arr.length; i++)\r\n\t\t\tif (arr[i] == item) return i;\r\n\r\n\t\treturn -1;\r\n\t};\r\n\r\n\tvar trim = function (value) {\r\n\t\tif (value) return value.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\r\n\t\telse return null;\r\n\t};\r\n\r\n\tvar queryStringSerialize = function (o) {\r\n\t\tvar s = [];\r\n\r\n\t\tfor (var k in o)\r\n\t\t\ts.push(k + \"=\" + encodeURIComponent(o[k]));\r\n\r\n\t\treturn s.join(\"&\");\r\n\t};\r\n\r\n\tvar hexChars = \"0123456789ABCDEF\".split(\"\");\r\n\r\n\tvar generateGuid = function () {\r\n\t\tvar uuid = [];\r\n\t\t// rfc4122, version 4 form\r\n\t\tvar r;\r\n\r\n\t\t// rfc4122 requires these characters\r\n\t\tuuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';\r\n\t\tuuid[14] = '4';\r\n\r\n\t\t// Fill in random data. At i==19 set the high bits of clock sequence as\r\n\t\t// per rfc4122, sec. 4.1.5\r\n\t\tfor (i = 0; i < 36; i++) {\r\n\t\t\tif (!uuid[i]) {\r\n\t\t\t\tr = 0 | Math.random() * 16;\r\n\t\t\t\tuuid[i] = hexChars[(i == 19) ? (r & 0x3) | 0x8 : r];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn uuid.join('');\r\n\t};\r\n\r\n\tvar filter = function (list, filterFunction) {\r\n\t\tvar filteredList = [];\r\n\r\n\t\tif (list && list.length > 0) for (var i = 0; i < list.length; i++)\r\n\t\t\tif (filterFunction(list[i])) filteredList.push(list[i]);\r\n\r\n\t\treturn filteredList;\r\n\t};\r\n\r\n\tvar callHandlers = function (list) {\r\n\t\tif (list && list.length > 0) {\r\n\t\t\tvar args = [];\r\n\r\n\t\t\tfor (var i = 1; i < arguments.length; i++)\r\n\t\t\t\targs.push(arguments[i]);\r\n\r\n\t\t\t// TODO: use call so we set this\r\n\t\t\tfor (var i = 0; i < list.length; i++) {\r\n\t\t\t\tif (list[i].apply(null, args) === false) return false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t};\r\n\r\n\tvar addIFrame = function (id, src) {\r\n\t\tvar iframe = null;\r\n\r\n\t\tif (!src) src = \"javascript:false;\";\r\n\t\t//src = \"javascript:\\\"\\\";\";\r\n\t\t//src = getUrl(\"blank\");\r\n\r\n\t\t// TODO: if couldn't create either, fall back to non-javascript progress mode\r\n\r\n\t\tvar addIFrameInternal = function (id, el) {\r\n\t\t\tvar iframe = document.createElement(el);\r\n\r\n\t\t\tiframe.name = iframe.id = id;\r\n\t\t\tiframe.src = src;\r\n\t\t\t// TODO: fix this if it doesn't work crossbrowser (old browsers may need 1x1px or 0x0px)\r\n\t\t\tiframe.style.display = \"none\";\r\n\r\n\t\t\tdocument.body.appendChild(iframe);\r\n\r\n\t\t\treturn iframe;\r\n\t\t};\r\n\r\n\t\t// try the IE way first\r\n\t\tif (support.browser == \"msie\") {\r\n\t\t\ttry {\r\n\t\t\t\tiframe = addIFrameInternal(id, \"