{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/packs/application.js","webpack:///(webpack)/buildin/module.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/fancybox/dist/js/jquery.fancybox.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","iterator","obj","constructor","this","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","document","querySelector","content","cspNonce","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","element","getData","setData","$","Array","slice","querySelectorAll","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","forEach","input","CustomEvent","fire","preventDefault","window","event","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","result","defaultPrevented","data","dispatchEvent","stopEverything","e","target","stopPropagation","stopImmediatePropagation","delegate","eventType","handler","addEventListener","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","options","response","responseText","getResponseHeader","Math","floor","status","success","statusText","error","complete","beforeSend","readyState","XMLHttpRequest","OPENED","send","url","location","href","type","toUpperCase","indexOf","dataType","accept","done","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","match","JSON","parse","createElement","setAttribute","head","appendChild","removeChild","DOMParser","replace","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","disabled","option","selected","push","checked","map","encodeURIComponent","join","formElements","form","filter","el","allowAction","handleConfirm","confirm","message","answer","callback","getAttribute","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","removeEventListener","handleMethod","formContent","link","method","action","style","display","body","click","isRemote","handleRemote","button","enctype","FormData","append","args","arguments","length","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","Error","ajaxPrefilter","originalOptions","start","_rails_loaded","setTimeout","factory","sparkMd5","fn","createCommonjsModule","undefined","hex_chr","md5cycle","x","k","a","b","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","state","substring","toString","parseInt","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","test","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","String","fromCharCode","apply","concatenateArrayBuffers","first","second","byteLength","set","buffer","hexToBinaryString","bytes","substr","SparkMD5","reset","clamp","val","max","min","from","to","num","targetArray","sourceArray","begin","end","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","destroy","hashBinary","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","props","descriptor","configurable","writable","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","size","chunkIndex","_this","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","root","eventInit","initEvent","toArray$1","isArray","BlobRecord","checksum","attributes","filename","content_type","byte_size","responseType","getMetaValue","requestDidLoad","requestDidError","stringify","blob","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","headers","id","DirectUpload","notify","upload","methodName","_len","messages","_key","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","total","alert","_this2","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","controller","shift","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","disable","removeAttribute","enable","focus","delete","submitForm","ActiveStorage","webpackPolyfill","deprecate","paths","children","channels","require","keys","webpackEmptyContext","req","code","resolve","H","W","D","F","fancybox","IE","navigator","userAgent","didUpdate","isTouch","createTouch","isQuery","isString","isPercentage","getScalar","orig","dim","getViewport","getValue","extend","version","defaults","padding","margin","width","height","minWidth","minHeight","maxWidth","maxHeight","pixelRatio","autoSize","autoHeight","autoWidth","autoResize","autoCenter","fitToView","aspectRatio","topRatio","leftRatio","scrolling","wrapCSS","arrows","closeBtn","closeClick","nextClick","mouseWheel","autoPlay","playSpeed","preload","modal","loop","iframe","swf","wmode","allowfullscreen","allowscriptaccess","next","13","34","39","40","prev","8","33","37","38","close","play","toggle","direction","scrollOutside","index","title","tpl","wrap","image","loading","openEffect","openSpeed","openEasing","openOpacity","openMethod","closeEffect","closeSpeed","closeEasing","closeOpacity","closeMethod","nextEffect","nextSpeed","nextEasing","nextMethod","prevEffect","prevSpeed","prevEasing","prevMethod","helpers","overlay","onCancel","noop","beforeLoad","afterLoad","beforeShow","afterShow","beforeChange","beforeClose","afterClose","group","opts","previous","coming","current","isActive","isOpen","isOpened","skin","outer","inner","player","timer","ajaxLoad","imgPreload","transitions","isPlainObject","each","rez","hrefParts","nodeType","attr","isDom","metadata","prop","isImage","isSWF","charAt","split","_start","cancel","trigger","hideLoading","abort","onload","onerror","stop","remove","_afterZoomOut","unbindEvents","isClosing","removeClass","clear","clearTimeout","unbind","jumpto","router","reposition","onlyAbsolute","pos","_getPosition","position","animate","css","update","originalEvent","anyway","_setDimension","canShrink","removeAttr","addClass","showLoading","viewport","appendTo","which","keyCode","fixed","top","h","y","left","w","locked","scrollLeft","scrollTop","clientWidth","clientHeight","innerWidth","innerHeight","bindEvents","srcElement","altKey","shiftKey","is","inArray","mousewheel","delta","deltaX","deltaY","parent","canScroll","overflow","scrollWidth","scrollHeight","isFunction","helper","v","_error","_loadImage","_loadAjax","_loadIframe","_afterLoad","hasError","img","Image","src","jqXHR","textStatus","Date","getTime","find","hide","empty","one","parents","show","_preloadImages","item","len","cnt","embed","placeholder","insertAfter","detach","replaceAll","not","canExpand","wPadding","hPadding","wSpace","hSpace","origWidth","origHeight","origMaxWidth","origMaxHeight","ratio","width_","height_","maxWidth_","maxHeight_","steps","scrollOut","scrollbarWidth","wMargin","hMargin","add","outerWidth","outerHeight","contentWindow","wrapSpace","skinSpace","_afterZoomIn","getOrigPosition","offset","step","now","fx","zoomIn","startPos","effect","elastic","endPos","opacity","duration","easing","zoomOut","changeIn","field","distance","changeOut","speedOut","showEarly","that","proxy","hasClass","scrollV","scrollH","offsetWidth","documentElement","onReady","fixPosition","onUpdate","fadeOut","trim","wrapInner","abs","run","relType","relVal","what","blur","idx","groupAttr","live","undelegate","ready","w1","w2","elem","child","support","fixedPosition","offsetTop"],"mappings":"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","file":"js/application-2081e1986b8016ff29cb.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nimport Rails from \"@rails/ujs\"\nimport * as ActiveStorage from \"@rails/activestorage\"\nimport \"channels\"\n\nimport \"fancybox/dist/js/jquery.fancybox\"\n\nimport '../stylesheets/site.scss';\n\nRails.start()\nActiveStorage.start()\n","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 5;","/*!\n * fancyBox - jQuery Plugin\n * version: 2.1.5 (Fri, 14 Jun 2013)\n * requires jQuery v1.6 or later\n *\n * Examples at http://fancyapps.com/fancybox/\n * License: www.fancyapps.com/fancybox/#license\n *\n * Copyright 2012 Janis Skarnelis - janis@fancyapps.com\n *\n */\n;\n\n(function (window, document, $, undefined) {\n \"use strict\";\n\n var H = $(\"html\"),\n W = $(window),\n D = $(document),\n F = $.fancybox = function () {\n F.open.apply(this, arguments);\n },\n IE = navigator.userAgent.match(/msie/i),\n didUpdate = null,\n isTouch = document.createTouch !== undefined,\n isQuery = function isQuery(obj) {\n return obj && obj.hasOwnProperty && obj instanceof $;\n },\n isString = function isString(str) {\n return str && $.type(str) === \"string\";\n },\n isPercentage = function isPercentage(str) {\n return isString(str) && str.indexOf('%') > 0;\n },\n isScrollable = function isScrollable(el) {\n return el && !(el.style.overflow && el.style.overflow === 'hidden') && (el.clientWidth && el.scrollWidth > el.clientWidth || el.clientHeight && el.scrollHeight > el.clientHeight);\n },\n getScalar = function getScalar(orig, dim) {\n var value = parseInt(orig, 10) || 0;\n\n if (dim && isPercentage(orig)) {\n value = F.getViewport()[dim] / 100 * value;\n }\n\n return Math.ceil(value);\n },\n getValue = function getValue(value, dim) {\n return getScalar(value, dim) + 'px';\n };\n\n $.extend(F, {\n // The current version of fancyBox\n version: '2.1.5',\n defaults: {\n padding: 15,\n margin: 20,\n width: 800,\n height: 600,\n minWidth: 100,\n minHeight: 100,\n maxWidth: 9999,\n maxHeight: 9999,\n pixelRatio: 1,\n // Set to 2 for retina display support\n autoSize: true,\n autoHeight: false,\n autoWidth: false,\n autoResize: true,\n autoCenter: !isTouch,\n fitToView: true,\n aspectRatio: false,\n topRatio: 0.5,\n leftRatio: 0.5,\n scrolling: 'auto',\n // 'auto', 'yes' or 'no'\n wrapCSS: '',\n arrows: true,\n closeBtn: true,\n closeClick: false,\n nextClick: false,\n mouseWheel: true,\n autoPlay: false,\n playSpeed: 3000,\n preload: 3,\n modal: false,\n loop: true,\n ajax: {\n dataType: 'html',\n headers: {\n 'X-fancyBox': true\n }\n },\n iframe: {\n scrolling: 'auto',\n preload: true\n },\n swf: {\n wmode: 'transparent',\n allowfullscreen: 'true',\n allowscriptaccess: 'always'\n },\n keys: {\n next: {\n 13: 'left',\n // enter\n 34: 'up',\n // page down\n 39: 'left',\n // right arrow\n 40: 'up' // down arrow\n\n },\n prev: {\n 8: 'right',\n // backspace\n 33: 'down',\n // page up\n 37: 'right',\n // left arrow\n 38: 'down' // up arrow\n\n },\n close: [27],\n // escape key\n play: [32],\n // space - start/stop slideshow\n toggle: [70] // letter \"f\" - toggle fullscreen\n\n },\n direction: {\n next: 'left',\n prev: 'right'\n },\n scrollOutside: true,\n // Override some properties\n index: 0,\n type: null,\n href: null,\n content: null,\n title: null,\n // HTML templates\n tpl: {\n wrap: '
',\n image: '\"\"',\n iframe: '',\n error: '

The requested content cannot be loaded.
Please try again later.

',\n closeBtn: '',\n next: '',\n prev: '',\n loading: '
'\n },\n // Properties for each animation type\n // Opening fancyBox\n openEffect: 'fade',\n // 'elastic', 'fade' or 'none'\n openSpeed: 250,\n openEasing: 'swing',\n openOpacity: true,\n openMethod: 'zoomIn',\n // Closing fancyBox\n closeEffect: 'fade',\n // 'elastic', 'fade' or 'none'\n closeSpeed: 250,\n closeEasing: 'swing',\n closeOpacity: true,\n closeMethod: 'zoomOut',\n // Changing next gallery item\n nextEffect: 'elastic',\n // 'elastic', 'fade' or 'none'\n nextSpeed: 250,\n nextEasing: 'swing',\n nextMethod: 'changeIn',\n // Changing previous gallery item\n prevEffect: 'elastic',\n // 'elastic', 'fade' or 'none'\n prevSpeed: 250,\n prevEasing: 'swing',\n prevMethod: 'changeOut',\n // Enable default helpers\n helpers: {\n overlay: true,\n title: true\n },\n // Callbacks\n onCancel: $.noop,\n // If canceling\n beforeLoad: $.noop,\n // Before loading\n afterLoad: $.noop,\n // After loading\n beforeShow: $.noop,\n // Before changing in current item\n afterShow: $.noop,\n // After opening\n beforeChange: $.noop,\n // Before changing gallery item\n beforeClose: $.noop,\n // Before closing\n afterClose: $.noop // After closing\n\n },\n //Current state\n group: {},\n // Selected group\n opts: {},\n // Group options\n previous: null,\n // Previous element\n coming: null,\n // Element being loaded\n current: null,\n // Currently loaded element\n isActive: false,\n // Is activated\n isOpen: false,\n // Is currently open\n isOpened: false,\n // Have been fully opened at least once\n wrap: null,\n skin: null,\n outer: null,\n inner: null,\n player: {\n timer: null,\n isActive: false\n },\n // Loaders\n ajaxLoad: null,\n imgPreload: null,\n // Some collections\n transitions: {},\n helpers: {},\n\n /*\n *\tStatic methods\n */\n open: function open(group, opts) {\n if (!group) {\n return;\n }\n\n if (!$.isPlainObject(opts)) {\n opts = {};\n } // Close if already active\n\n\n if (false === F.close(true)) {\n return;\n } // Normalize group\n\n\n if (!$.isArray(group)) {\n group = isQuery(group) ? $(group).get() : [group];\n } // Recheck if the type of each element is `object` and set content type (image, ajax, etc)\n\n\n $.each(group, function (i, element) {\n var obj = {},\n href,\n title,\n content,\n type,\n rez,\n hrefParts,\n selector;\n\n if ($.type(element) === \"object\") {\n // Check if is DOM element\n if (element.nodeType) {\n element = $(element);\n }\n\n if (isQuery(element)) {\n obj = {\n href: element.data('fancybox-href') || element.attr('href'),\n title: $('
').text(element.data('fancybox-title') || element.attr('title') || '').html(),\n isDom: true,\n element: element\n };\n\n if ($.metadata) {\n $.extend(true, obj, element.metadata());\n }\n } else {\n obj = element;\n }\n }\n\n href = opts.href || obj.href || (isString(element) ? element : null);\n title = opts.title !== undefined ? opts.title : obj.title || '';\n content = opts.content || obj.content;\n type = content ? 'html' : opts.type || obj.type;\n\n if (!type && obj.isDom) {\n type = element.data('fancybox-type');\n\n if (!type) {\n rez = element.prop('class').match(/fancybox\\.(\\w+)/);\n type = rez ? rez[1] : null;\n }\n }\n\n if (isString(href)) {\n // Try to guess the content type\n if (!type) {\n if (F.isImage(href)) {\n type = 'image';\n } else if (F.isSWF(href)) {\n type = 'swf';\n } else if (href.charAt(0) === '#') {\n type = 'inline';\n } else if (isString(element)) {\n type = 'html';\n content = element;\n }\n } // Split url into two pieces with source url and content selector, e.g,\n // \"/mypage.html #my_id\" will load \"/mypage.html\" and display element having id \"my_id\"\n\n\n if (type === 'ajax') {\n hrefParts = href.split(/\\s+/, 2);\n href = hrefParts.shift();\n selector = hrefParts.shift();\n }\n }\n\n if (!content) {\n if (type === 'inline') {\n if (href) {\n content = $(isString(href) ? href.replace(/.*(?=#[^\\s]+$)/, '') : href); //strip for ie7\n } else if (obj.isDom) {\n content = element;\n }\n } else if (type === 'html') {\n content = href;\n } else if (!type && !href && obj.isDom) {\n type = 'inline';\n content = element;\n }\n }\n\n $.extend(obj, {\n href: href,\n type: type,\n content: content,\n title: title,\n selector: selector\n });\n group[i] = obj;\n }); // Extend the defaults\n\n F.opts = $.extend(true, {}, F.defaults, opts); // All options are merged recursive except keys\n\n if (opts.keys !== undefined) {\n F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false;\n }\n\n F.group = group;\n return F._start(F.opts.index);\n },\n // Cancel image loading or abort ajax request\n cancel: function cancel() {\n var coming = F.coming;\n\n if (coming && false === F.trigger('onCancel')) {\n return;\n }\n\n F.hideLoading();\n\n if (!coming) {\n return;\n }\n\n if (F.ajaxLoad) {\n F.ajaxLoad.abort();\n }\n\n F.ajaxLoad = null;\n\n if (F.imgPreload) {\n F.imgPreload.onload = F.imgPreload.onerror = null;\n }\n\n if (coming.wrap) {\n coming.wrap.stop(true, true).trigger('onReset').remove();\n }\n\n F.coming = null; // If the first item has been canceled, then clear everything\n\n if (!F.current) {\n F._afterZoomOut(coming);\n }\n },\n // Start closing animation if is open; remove immediately if opening/closing\n close: function close(event) {\n F.cancel();\n\n if (false === F.trigger('beforeClose')) {\n return;\n }\n\n F.unbindEvents();\n\n if (!F.isActive) {\n return;\n }\n\n if (!F.isOpen || event === true) {\n $('.fancybox-wrap').stop(true).trigger('onReset').remove();\n\n F._afterZoomOut();\n } else {\n F.isOpen = F.isOpened = false;\n F.isClosing = true;\n $('.fancybox-item, .fancybox-nav').remove();\n F.wrap.stop(true, true).removeClass('fancybox-opened');\n F.transitions[F.current.closeMethod]();\n }\n },\n // Manage slideshow:\n // $.fancybox.play(); - toggle slideshow\n // $.fancybox.play( true ); - start\n // $.fancybox.play( false ); - stop\n play: function play(action) {\n var clear = function clear() {\n clearTimeout(F.player.timer);\n },\n set = function set() {\n clear();\n\n if (F.current && F.player.isActive) {\n F.player.timer = setTimeout(F.next, F.current.playSpeed);\n }\n },\n stop = function stop() {\n clear();\n D.unbind('.player');\n F.player.isActive = false;\n F.trigger('onPlayEnd');\n },\n start = function start() {\n if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) {\n F.player.isActive = true;\n D.bind({\n 'onCancel.player beforeClose.player': stop,\n 'onUpdate.player': set,\n 'beforeLoad.player': clear\n });\n set();\n F.trigger('onPlayStart');\n }\n };\n\n if (action === true || !F.player.isActive && action !== false) {\n start();\n } else {\n stop();\n }\n },\n // Navigate to next gallery item\n next: function next(direction) {\n var current = F.current;\n\n if (current) {\n if (!isString(direction)) {\n direction = current.direction.next;\n }\n\n F.jumpto(current.index + 1, direction, 'next');\n }\n },\n // Navigate to previous gallery item\n prev: function prev(direction) {\n var current = F.current;\n\n if (current) {\n if (!isString(direction)) {\n direction = current.direction.prev;\n }\n\n F.jumpto(current.index - 1, direction, 'prev');\n }\n },\n // Navigate to gallery item by index\n jumpto: function jumpto(index, direction, router) {\n var current = F.current;\n\n if (!current) {\n return;\n }\n\n index = getScalar(index);\n F.direction = direction || current.direction[index >= current.index ? 'next' : 'prev'];\n F.router = router || 'jumpto';\n\n if (current.loop) {\n if (index < 0) {\n index = current.group.length + index % current.group.length;\n }\n\n index = index % current.group.length;\n }\n\n if (current.group[index] !== undefined) {\n F.cancel();\n\n F._start(index);\n }\n },\n // Center inside viewport and toggle position type to fixed or absolute if needed\n reposition: function reposition(e, onlyAbsolute) {\n var current = F.current,\n wrap = current ? current.wrap : null,\n pos;\n\n if (wrap) {\n pos = F._getPosition(onlyAbsolute);\n\n if (e && e.type === 'scroll') {\n delete pos.position;\n wrap.stop(true, true).animate(pos, 200);\n } else {\n wrap.css(pos);\n current.pos = $.extend({}, current.dim, pos);\n }\n }\n },\n update: function update(e) {\n var type = e && e.originalEvent && e.originalEvent.type,\n anyway = !type || type === 'orientationchange';\n\n if (anyway) {\n clearTimeout(didUpdate);\n didUpdate = null;\n }\n\n if (!F.isOpen || didUpdate) {\n return;\n }\n\n didUpdate = setTimeout(function () {\n var current = F.current;\n\n if (!current || F.isClosing) {\n return;\n }\n\n F.wrap.removeClass('fancybox-tmp');\n\n if (anyway || type === 'load' || type === 'resize' && current.autoResize) {\n F._setDimension();\n }\n\n if (!(type === 'scroll' && current.canShrink)) {\n F.reposition(e);\n }\n\n F.trigger('onUpdate');\n didUpdate = null;\n }, anyway && !isTouch ? 0 : 300);\n },\n // Shrink content to fit inside viewport or restore if resized\n toggle: function toggle(action) {\n if (F.isOpen) {\n F.current.fitToView = $.type(action) === \"boolean\" ? action : !F.current.fitToView; // Help browser to restore document dimensions\n\n if (isTouch) {\n F.wrap.removeAttr('style').addClass('fancybox-tmp');\n F.trigger('onUpdate');\n }\n\n F.update();\n }\n },\n hideLoading: function hideLoading() {\n D.unbind('.loading');\n $('#fancybox-loading').remove();\n },\n showLoading: function showLoading() {\n var el, viewport;\n F.hideLoading();\n el = $(F.opts.tpl.loading).click(F.cancel).appendTo('body'); // If user will press the escape-button, the request will be canceled\n\n D.bind('keydown.loading', function (e) {\n if ((e.which || e.keyCode) === 27) {\n e.preventDefault();\n F.cancel();\n }\n });\n\n if (!F.defaults.fixed) {\n viewport = F.getViewport();\n el.css({\n position: 'absolute',\n top: viewport.h * 0.5 + viewport.y,\n left: viewport.w * 0.5 + viewport.x\n });\n }\n\n F.trigger('onLoading');\n },\n getViewport: function getViewport() {\n var locked = F.current && F.current.locked || false,\n rez = {\n x: W.scrollLeft(),\n y: W.scrollTop()\n };\n\n if (locked && locked.length) {\n rez.w = locked[0].clientWidth;\n rez.h = locked[0].clientHeight;\n } else {\n // See http://bugs.jquery.com/ticket/6724\n rez.w = isTouch && window.innerWidth ? window.innerWidth : W.width();\n rez.h = isTouch && window.innerHeight ? window.innerHeight : W.height();\n }\n\n return rez;\n },\n // Unbind the keyboard / clicking actions\n unbindEvents: function unbindEvents() {\n if (F.wrap && isQuery(F.wrap)) {\n F.wrap.unbind('.fb');\n }\n\n D.unbind('.fb');\n W.unbind('.fb');\n },\n bindEvents: function bindEvents() {\n var current = F.current,\n keys;\n\n if (!current) {\n return;\n } // Changing document height on iOS devices triggers a 'resize' event,\n // that can change document height... repeating infinitely\n\n\n W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update);\n keys = current.keys;\n\n if (keys) {\n D.bind('keydown.fb', function (e) {\n var code = e.which || e.keyCode,\n target = e.target || e.srcElement; // Skip esc key if loading, because showLoading will cancel preloading\n\n if (code === 27 && F.coming) {\n return false;\n } // Ignore key combinations and key events within form elements\n\n\n if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) {\n $.each(keys, function (i, val) {\n if (current.group.length > 1 && val[code] !== undefined) {\n F[i](val[code]);\n e.preventDefault();\n return false;\n }\n\n if ($.inArray(code, val) > -1) {\n F[i]();\n e.preventDefault();\n return false;\n }\n });\n }\n });\n }\n\n if ($.fn.mousewheel && current.mouseWheel) {\n F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) {\n var target = e.target || null,\n parent = $(target),\n canScroll = false;\n\n while (parent.length) {\n if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) {\n break;\n }\n\n canScroll = isScrollable(parent[0]);\n parent = $(parent).parent();\n }\n\n if (delta !== 0 && !canScroll) {\n if (F.group.length > 1 && !current.canShrink) {\n if (deltaY > 0 || deltaX > 0) {\n F.prev(deltaY > 0 ? 'down' : 'left');\n } else if (deltaY < 0 || deltaX < 0) {\n F.next(deltaY < 0 ? 'up' : 'right');\n }\n\n e.preventDefault();\n }\n }\n });\n }\n },\n trigger: function trigger(event, o) {\n var ret,\n obj = o || F.coming || F.current;\n\n if (obj) {\n if ($.isFunction(obj[event])) {\n ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1));\n }\n\n if (ret === false) {\n return false;\n }\n\n if (obj.helpers) {\n $.each(obj.helpers, function (helper, opts) {\n if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) {\n F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj);\n }\n });\n }\n }\n\n D.trigger(event);\n },\n isImage: function isImage(str) {\n return isString(str) && str.match(/(^data:image\\/.*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\\?|#).*)?$)/i);\n },\n isSWF: function isSWF(str) {\n return isString(str) && str.match(/\\.(swf)((\\?|#).*)?$/i);\n },\n _start: function _start(index) {\n var coming = {},\n obj,\n href,\n type,\n margin,\n padding;\n index = getScalar(index);\n obj = F.group[index] || null;\n\n if (!obj) {\n return false;\n }\n\n coming = $.extend(true, {}, F.opts, obj); // Convert margin and padding properties to array - top, right, bottom, left\n\n margin = coming.margin;\n padding = coming.padding;\n\n if ($.type(margin) === 'number') {\n coming.margin = [margin, margin, margin, margin];\n }\n\n if ($.type(padding) === 'number') {\n coming.padding = [padding, padding, padding, padding];\n } // 'modal' propery is just a shortcut\n\n\n if (coming.modal) {\n $.extend(true, coming, {\n closeBtn: false,\n closeClick: false,\n nextClick: false,\n arrows: false,\n mouseWheel: false,\n keys: null,\n helpers: {\n overlay: {\n closeClick: false\n }\n }\n });\n } // 'autoSize' property is a shortcut, too\n\n\n if (coming.autoSize) {\n coming.autoWidth = coming.autoHeight = true;\n }\n\n if (coming.width === 'auto') {\n coming.autoWidth = true;\n }\n\n if (coming.height === 'auto') {\n coming.autoHeight = true;\n }\n /*\n * Add reference to the group, so it`s possible to access from callbacks, example:\n * afterLoad : function() {\n * this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');\n * }\n */\n\n\n coming.group = F.group;\n coming.index = index; // Give a chance for callback or helpers to update coming item (type, title, etc)\n\n F.coming = coming;\n\n if (false === F.trigger('beforeLoad')) {\n F.coming = null;\n return;\n }\n\n type = coming.type;\n href = coming.href;\n\n if (!type) {\n F.coming = null; //If we can not determine content type then drop silently or display next/prev item if looping through gallery\n\n if (F.current && F.router && F.router !== 'jumpto') {\n F.current.index = index;\n return F[F.router](F.direction);\n }\n\n return false;\n }\n\n F.isActive = true;\n\n if (type === 'image' || type === 'swf') {\n coming.autoHeight = coming.autoWidth = false;\n coming.scrolling = 'visible';\n }\n\n if (type === 'image') {\n coming.aspectRatio = true;\n }\n\n if (type === 'iframe' && isTouch) {\n coming.scrolling = 'scroll';\n } // Build the neccessary markup\n\n\n coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo(coming.parent || 'body');\n $.extend(coming, {\n skin: $('.fancybox-skin', coming.wrap),\n outer: $('.fancybox-outer', coming.wrap),\n inner: $('.fancybox-inner', coming.wrap)\n });\n $.each([\"Top\", \"Right\", \"Bottom\", \"Left\"], function (i, v) {\n coming.skin.css('padding' + v, getValue(coming.padding[i]));\n });\n F.trigger('onReady'); // Check before try to load; 'inline' and 'html' types need content, others - href\n\n if (type === 'inline' || type === 'html') {\n if (!coming.content || !coming.content.length) {\n return F._error('content');\n }\n } else if (!href) {\n return F._error('href');\n }\n\n if (type === 'image') {\n F._loadImage();\n } else if (type === 'ajax') {\n F._loadAjax();\n } else if (type === 'iframe') {\n F._loadIframe();\n } else {\n F._afterLoad();\n }\n },\n _error: function _error(type) {\n $.extend(F.coming, {\n type: 'html',\n autoWidth: true,\n autoHeight: true,\n minWidth: 0,\n minHeight: 0,\n scrolling: 'no',\n hasError: type,\n content: F.coming.tpl.error\n });\n\n F._afterLoad();\n },\n _loadImage: function _loadImage() {\n // Reset preload image so it is later possible to check \"complete\" property\n var img = F.imgPreload = new Image();\n\n img.onload = function () {\n this.onload = this.onerror = null;\n F.coming.width = this.width / F.opts.pixelRatio;\n F.coming.height = this.height / F.opts.pixelRatio;\n\n F._afterLoad();\n };\n\n img.onerror = function () {\n this.onload = this.onerror = null;\n\n F._error('image');\n };\n\n img.src = F.coming.href;\n\n if (img.complete !== true) {\n F.showLoading();\n }\n },\n _loadAjax: function _loadAjax() {\n var coming = F.coming;\n F.showLoading();\n F.ajaxLoad = $.ajax($.extend({}, coming.ajax, {\n url: coming.href,\n error: function error(jqXHR, textStatus) {\n if (F.coming && textStatus !== 'abort') {\n F._error('ajax', jqXHR);\n } else {\n F.hideLoading();\n }\n },\n success: function success(data, textStatus) {\n if (textStatus === 'success') {\n coming.content = data;\n\n F._afterLoad();\n }\n }\n }));\n },\n _loadIframe: function _loadIframe() {\n var coming = F.coming,\n iframe = $(coming.tpl.iframe.replace(/\\{rnd\\}/g, new Date().getTime())).attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling).attr('src', coming.href); // This helps IE\n\n $(coming.wrap).bind('onReset', function () {\n try {\n $(this).find('iframe').hide().attr('src', '//about:blank').end().empty();\n } catch (e) {}\n });\n\n if (coming.iframe.preload) {\n F.showLoading();\n iframe.one('load', function () {\n $(this).data('ready', 1); // iOS will lose scrolling if we resize\n\n if (!isTouch) {\n $(this).bind('load.fb', F.update);\n } // Without this trick:\n // - iframe won't scroll on iOS devices\n // - IE7 sometimes displays empty iframe\n\n\n $(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show();\n\n F._afterLoad();\n });\n }\n\n coming.content = iframe.appendTo(coming.inner);\n\n if (!coming.iframe.preload) {\n F._afterLoad();\n }\n },\n _preloadImages: function _preloadImages() {\n var group = F.group,\n current = F.current,\n len = group.length,\n cnt = current.preload ? Math.min(current.preload, len - 1) : 0,\n item,\n i;\n\n for (i = 1; i <= cnt; i += 1) {\n item = group[(current.index + i) % len];\n\n if (item.type === 'image' && item.href) {\n new Image().src = item.href;\n }\n }\n },\n _afterLoad: function _afterLoad() {\n var coming = F.coming,\n previous = F.current,\n placeholder = 'fancybox-placeholder',\n current,\n content,\n type,\n scrolling,\n href,\n embed;\n F.hideLoading();\n\n if (!coming || F.isActive === false) {\n return;\n }\n\n if (false === F.trigger('afterLoad', coming, previous)) {\n coming.wrap.stop(true).trigger('onReset').remove();\n F.coming = null;\n return;\n }\n\n if (previous) {\n F.trigger('beforeChange', previous);\n previous.wrap.stop(true).removeClass('fancybox-opened').find('.fancybox-item, .fancybox-nav').remove();\n }\n\n F.unbindEvents();\n current = coming;\n content = coming.content;\n type = coming.type;\n scrolling = coming.scrolling;\n $.extend(F, {\n wrap: current.wrap,\n skin: current.skin,\n outer: current.outer,\n inner: current.inner,\n current: current,\n previous: previous\n });\n href = current.href;\n\n switch (type) {\n case 'inline':\n case 'ajax':\n case 'html':\n if (current.selector) {\n content = $('
').html(content).find(current.selector);\n } else if (isQuery(content)) {\n if (!content.data(placeholder)) {\n content.data(placeholder, $('
').insertAfter(content).hide());\n }\n\n content = content.show().detach();\n current.wrap.bind('onReset', function () {\n if ($(this).find(content).length) {\n content.hide().replaceAll(content.data(placeholder)).data(placeholder, false);\n }\n });\n }\n\n break;\n\n case 'image':\n content = current.tpl.image.replace(/\\{href\\}/g, href);\n break;\n\n case 'swf':\n content = '';\n embed = '';\n $.each(current.swf, function (name, val) {\n content += '';\n embed += ' ' + name + '=\"' + val + '\"';\n });\n content += '';\n break;\n }\n\n if (!(isQuery(content) && content.parent().is(current.inner))) {\n current.inner.append(content);\n } // Give a chance for helpers or callbacks to update elements\n\n\n F.trigger('beforeShow'); // Set scrolling before calculating dimensions\n\n current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : scrolling === 'no' ? 'hidden' : scrolling); // Set initial dimensions and start position\n\n F._setDimension();\n\n F.reposition();\n F.isOpen = false;\n F.coming = null;\n F.bindEvents();\n\n if (!F.isOpened) {\n $('.fancybox-wrap').not(current.wrap).stop(true).trigger('onReset').remove();\n } else if (previous.prevMethod) {\n F.transitions[previous.prevMethod]();\n }\n\n F.transitions[F.isOpened ? current.nextMethod : current.openMethod]();\n\n F._preloadImages();\n },\n _setDimension: function _setDimension() {\n var viewport = F.getViewport(),\n steps = 0,\n canShrink = false,\n canExpand = false,\n wrap = F.wrap,\n skin = F.skin,\n inner = F.inner,\n current = F.current,\n width = current.width,\n height = current.height,\n minWidth = current.minWidth,\n minHeight = current.minHeight,\n maxWidth = current.maxWidth,\n maxHeight = current.maxHeight,\n scrolling = current.scrolling,\n scrollOut = current.scrollOutside ? current.scrollbarWidth : 0,\n margin = current.margin,\n wMargin = getScalar(margin[1] + margin[3]),\n hMargin = getScalar(margin[0] + margin[2]),\n wPadding,\n hPadding,\n wSpace,\n hSpace,\n origWidth,\n origHeight,\n origMaxWidth,\n origMaxHeight,\n ratio,\n width_,\n height_,\n maxWidth_,\n maxHeight_,\n iframe,\n body; // Reset dimensions so we could re-check actual size\n\n wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp');\n wPadding = getScalar(skin.outerWidth(true) - skin.width());\n hPadding = getScalar(skin.outerHeight(true) - skin.height()); // Any space between content and viewport (margin, padding, border, title)\n\n wSpace = wMargin + wPadding;\n hSpace = hMargin + hPadding;\n origWidth = isPercentage(width) ? (viewport.w - wSpace) * getScalar(width) / 100 : width;\n origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height;\n\n if (current.type === 'iframe') {\n iframe = current.content;\n\n if (current.autoHeight && iframe.data('ready') === 1) {\n try {\n if (iframe[0].contentWindow.document.location) {\n inner.width(origWidth).height(9999);\n body = iframe.contents().find('body');\n\n if (scrollOut) {\n body.css('overflow-x', 'hidden');\n }\n\n origHeight = body.outerHeight(true);\n }\n } catch (e) {}\n }\n } else if (current.autoWidth || current.autoHeight) {\n inner.addClass('fancybox-tmp'); // Set width or height in case we need to calculate only one dimension\n\n if (!current.autoWidth) {\n inner.width(origWidth);\n }\n\n if (!current.autoHeight) {\n inner.height(origHeight);\n }\n\n if (current.autoWidth) {\n origWidth = inner.width();\n }\n\n if (current.autoHeight) {\n origHeight = inner.height();\n }\n\n inner.removeClass('fancybox-tmp');\n }\n\n width = getScalar(origWidth);\n height = getScalar(origHeight);\n ratio = origWidth / origHeight; // Calculations for the content\n\n minWidth = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth);\n maxWidth = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth);\n minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight);\n maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight); // These will be used to determine if wrap can fit in the viewport\n\n origMaxWidth = maxWidth;\n origMaxHeight = maxHeight;\n\n if (current.fitToView) {\n maxWidth = Math.min(viewport.w - wSpace, maxWidth);\n maxHeight = Math.min(viewport.h - hSpace, maxHeight);\n }\n\n maxWidth_ = viewport.w - wMargin;\n maxHeight_ = viewport.h - hMargin;\n\n if (current.aspectRatio) {\n if (width > maxWidth) {\n width = maxWidth;\n height = getScalar(width / ratio);\n }\n\n if (height > maxHeight) {\n height = maxHeight;\n width = getScalar(height * ratio);\n }\n\n if (width < minWidth) {\n width = minWidth;\n height = getScalar(width / ratio);\n }\n\n if (height < minHeight) {\n height = minHeight;\n width = getScalar(height * ratio);\n }\n } else {\n width = Math.max(minWidth, Math.min(width, maxWidth));\n\n if (current.autoHeight && current.type !== 'iframe') {\n inner.width(width);\n height = inner.height();\n }\n\n height = Math.max(minHeight, Math.min(height, maxHeight));\n } // Try to fit inside viewport (including the title)\n\n\n if (current.fitToView) {\n inner.width(width).height(height);\n wrap.width(width + wPadding); // Real wrap dimensions\n\n width_ = wrap.width();\n height_ = wrap.height();\n\n if (current.aspectRatio) {\n while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) {\n if (steps++ > 19) {\n break;\n }\n\n height = Math.max(minHeight, Math.min(maxHeight, height - 10));\n width = getScalar(height * ratio);\n\n if (width < minWidth) {\n width = minWidth;\n height = getScalar(width / ratio);\n }\n\n if (width > maxWidth) {\n width = maxWidth;\n height = getScalar(width / ratio);\n }\n\n inner.width(width).height(height);\n wrap.width(width + wPadding);\n width_ = wrap.width();\n height_ = wrap.height();\n }\n } else {\n width = Math.max(minWidth, Math.min(width, width - (width_ - maxWidth_)));\n height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_)));\n }\n }\n\n if (scrollOut && scrolling === 'auto' && height < origHeight && width + wPadding + scrollOut < maxWidth_) {\n width += scrollOut;\n }\n\n inner.width(width).height(height);\n wrap.width(width + wPadding);\n width_ = wrap.width();\n height_ = wrap.height();\n canShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight;\n canExpand = current.aspectRatio ? width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight : (width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight);\n $.extend(current, {\n dim: {\n width: getValue(width_),\n height: getValue(height_)\n },\n origWidth: origWidth,\n origHeight: origHeight,\n canShrink: canShrink,\n canExpand: canExpand,\n wPadding: wPadding,\n hPadding: hPadding,\n wrapSpace: height_ - skin.outerHeight(true),\n skinSpace: skin.height() - height\n });\n\n if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) {\n inner.height('auto');\n }\n },\n _getPosition: function _getPosition(onlyAbsolute) {\n var current = F.current,\n viewport = F.getViewport(),\n margin = current.margin,\n width = F.wrap.width() + margin[1] + margin[3],\n height = F.wrap.height() + margin[0] + margin[2],\n rez = {\n position: 'absolute',\n top: margin[0],\n left: margin[3]\n };\n\n if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) {\n rez.position = 'fixed';\n } else if (!current.locked) {\n rez.top += viewport.y;\n rez.left += viewport.x;\n }\n\n rez.top = getValue(Math.max(rez.top, rez.top + (viewport.h - height) * current.topRatio));\n rez.left = getValue(Math.max(rez.left, rez.left + (viewport.w - width) * current.leftRatio));\n return rez;\n },\n _afterZoomIn: function _afterZoomIn() {\n var current = F.current;\n\n if (!current) {\n return;\n }\n\n F.isOpen = F.isOpened = true;\n F.wrap.css('overflow', 'visible').addClass('fancybox-opened').hide().show(0);\n F.update(); // Assign a click event\n\n if (current.closeClick || current.nextClick && F.group.length > 1) {\n F.inner.css('cursor', 'pointer').bind('click.fb', function (e) {\n if (!$(e.target).is('a') && !$(e.target).parent().is('a')) {\n e.preventDefault();\n F[current.closeClick ? 'close' : 'next']();\n }\n });\n } // Create a close button\n\n\n if (current.closeBtn) {\n $(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function (e) {\n e.preventDefault();\n F.close();\n });\n } // Create navigation arrows\n\n\n if (current.arrows && F.group.length > 1) {\n if (current.loop || current.index > 0) {\n $(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev);\n }\n\n if (current.loop || current.index < F.group.length - 1) {\n $(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next);\n }\n }\n\n F.trigger('afterShow'); // Stop the slideshow if this is the last item\n\n if (!current.loop && current.index === current.group.length - 1) {\n F.play(false);\n } else if (F.opts.autoPlay && !F.player.isActive) {\n F.opts.autoPlay = false;\n F.play(true);\n }\n },\n _afterZoomOut: function _afterZoomOut(obj) {\n obj = obj || F.current;\n $('.fancybox-wrap').trigger('onReset').remove();\n $.extend(F, {\n group: {},\n opts: {},\n router: false,\n current: null,\n isActive: false,\n isOpened: false,\n isOpen: false,\n isClosing: false,\n wrap: null,\n skin: null,\n outer: null,\n inner: null\n });\n F.trigger('afterClose', obj);\n }\n });\n /*\n *\tDefault transitions\n */\n\n F.transitions = {\n getOrigPosition: function getOrigPosition() {\n var current = F.current,\n element = current.element,\n orig = current.orig,\n pos = {},\n width = 50,\n height = 50,\n hPadding = current.hPadding,\n wPadding = current.wPadding,\n viewport = F.getViewport();\n\n if (!orig && current.isDom && element.is(':visible')) {\n orig = element.find('img:first');\n\n if (!orig.length) {\n orig = element;\n }\n }\n\n if (isQuery(orig)) {\n pos = orig.offset();\n\n if (orig.is('img')) {\n width = orig.outerWidth();\n height = orig.outerHeight();\n }\n } else {\n pos.top = viewport.y + (viewport.h - height) * current.topRatio;\n pos.left = viewport.x + (viewport.w - width) * current.leftRatio;\n }\n\n if (F.wrap.css('position') === 'fixed' || current.locked) {\n pos.top -= viewport.y;\n pos.left -= viewport.x;\n }\n\n pos = {\n top: getValue(pos.top - hPadding * current.topRatio),\n left: getValue(pos.left - wPadding * current.leftRatio),\n width: getValue(width + wPadding),\n height: getValue(height + hPadding)\n };\n return pos;\n },\n step: function step(now, fx) {\n var ratio,\n padding,\n value,\n prop = fx.prop,\n current = F.current,\n wrapSpace = current.wrapSpace,\n skinSpace = current.skinSpace;\n\n if (prop === 'width' || prop === 'height') {\n ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start);\n\n if (F.isClosing) {\n ratio = 1 - ratio;\n }\n\n padding = prop === 'width' ? current.wPadding : current.hPadding;\n value = now - padding;\n F.skin[prop](getScalar(prop === 'width' ? value : value - wrapSpace * ratio));\n F.inner[prop](getScalar(prop === 'width' ? value : value - wrapSpace * ratio - skinSpace * ratio));\n }\n },\n zoomIn: function zoomIn() {\n var current = F.current,\n startPos = current.pos,\n effect = current.openEffect,\n elastic = effect === 'elastic',\n endPos = $.extend({\n opacity: 1\n }, startPos); // Remove \"position\" property that breaks older IE\n\n delete endPos.position;\n\n if (elastic) {\n startPos = this.getOrigPosition();\n\n if (current.openOpacity) {\n startPos.opacity = 0.1;\n }\n } else if (effect === 'fade') {\n startPos.opacity = 0.1;\n }\n\n F.wrap.css(startPos).animate(endPos, {\n duration: effect === 'none' ? 0 : current.openSpeed,\n easing: current.openEasing,\n step: elastic ? this.step : null,\n complete: F._afterZoomIn\n });\n },\n zoomOut: function zoomOut() {\n var current = F.current,\n effect = current.closeEffect,\n elastic = effect === 'elastic',\n endPos = {\n opacity: 0.1\n };\n\n if (elastic) {\n endPos = this.getOrigPosition();\n\n if (current.closeOpacity) {\n endPos.opacity = 0.1;\n }\n }\n\n F.wrap.animate(endPos, {\n duration: effect === 'none' ? 0 : current.closeSpeed,\n easing: current.closeEasing,\n step: elastic ? this.step : null,\n complete: F._afterZoomOut\n });\n },\n changeIn: function changeIn() {\n var current = F.current,\n effect = current.nextEffect,\n startPos = current.pos,\n endPos = {\n opacity: 1\n },\n direction = F.direction,\n distance = 200,\n field;\n startPos.opacity = 0.1;\n\n if (effect === 'elastic') {\n field = direction === 'down' || direction === 'up' ? 'top' : 'left';\n\n if (direction === 'down' || direction === 'right') {\n startPos[field] = getValue(getScalar(startPos[field]) - distance);\n endPos[field] = '+=' + distance + 'px';\n } else {\n startPos[field] = getValue(getScalar(startPos[field]) + distance);\n endPos[field] = '-=' + distance + 'px';\n }\n } // Workaround for http://bugs.jquery.com/ticket/12273\n\n\n if (effect === 'none') {\n F._afterZoomIn();\n } else {\n F.wrap.css(startPos).animate(endPos, {\n duration: current.nextSpeed,\n easing: current.nextEasing,\n complete: F._afterZoomIn\n });\n }\n },\n changeOut: function changeOut() {\n var previous = F.previous,\n effect = previous.prevEffect,\n endPos = {\n opacity: 0.1\n },\n direction = F.direction,\n distance = 200;\n\n if (effect === 'elastic') {\n endPos[direction === 'down' || direction === 'up' ? 'top' : 'left'] = (direction === 'up' || direction === 'left' ? '-' : '+') + '=' + distance + 'px';\n }\n\n previous.wrap.animate(endPos, {\n duration: effect === 'none' ? 0 : previous.prevSpeed,\n easing: previous.prevEasing,\n complete: function complete() {\n $(this).trigger('onReset').remove();\n }\n });\n }\n };\n /*\n *\tOverlay helper\n */\n\n F.helpers.overlay = {\n defaults: {\n closeClick: true,\n // if true, fancyBox will be closed when user clicks on the overlay\n speedOut: 200,\n // duration of fadeOut animation\n showEarly: true,\n // indicates if should be opened immediately or wait until the content is ready\n css: {},\n // custom CSS properties\n locked: !isTouch,\n // if true, the content will be locked into overlay\n fixed: true // if false, the overlay CSS position property will not be set to \"fixed\"\n\n },\n overlay: null,\n // current handle\n fixed: false,\n // indicates if the overlay has position \"fixed\"\n el: $('html'),\n // element that contains \"the lock\"\n // Public methods\n create: function create(opts) {\n var parent;\n opts = $.extend({}, this.defaults, opts);\n\n if (this.overlay) {\n this.close();\n }\n\n parent = F.coming ? F.coming.parent : opts.parent;\n this.overlay = $('
').appendTo(parent && parent.length ? parent : 'body');\n this.fixed = false;\n\n if (opts.fixed && F.defaults.fixed) {\n this.overlay.addClass('fancybox-overlay-fixed');\n this.fixed = true;\n }\n },\n open: function open(opts) {\n var that = this;\n opts = $.extend({}, this.defaults, opts);\n\n if (this.overlay) {\n this.overlay.unbind('.overlay').width('auto').height('auto');\n } else {\n this.create(opts);\n }\n\n if (!this.fixed) {\n W.bind('resize.overlay', $.proxy(this.update, this));\n this.update();\n }\n\n if (opts.closeClick) {\n this.overlay.bind('click.overlay', function (e) {\n if ($(e.target).hasClass('fancybox-overlay')) {\n if (F.isActive) {\n F.close();\n } else {\n that.close();\n }\n\n return false;\n }\n });\n }\n\n this.overlay.css(opts.css).show();\n },\n close: function close() {\n W.unbind('resize.overlay');\n\n if (this.el.hasClass('fancybox-lock')) {\n $('.fancybox-margin').removeClass('fancybox-margin');\n this.el.removeClass('fancybox-lock');\n W.scrollTop(this.scrollV).scrollLeft(this.scrollH);\n }\n\n $('.fancybox-overlay').remove().hide();\n $.extend(this, {\n overlay: null,\n fixed: false\n });\n },\n // Private, callbacks\n update: function update() {\n var width = '100%',\n offsetWidth; // Reset width/height so it will not mess\n\n this.overlay.width(width).height('100%'); // jQuery does not return reliable result for IE\n\n if (IE) {\n offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);\n\n if (D.width() > offsetWidth) {\n width = D.width();\n }\n } else if (D.width() > W.width()) {\n width = D.width();\n }\n\n this.overlay.width(width).height(D.height());\n },\n // This is where we can manipulate DOM, because later it would cause iframes to reload\n onReady: function onReady(opts, obj) {\n var overlay = this.overlay;\n $('.fancybox-overlay').stop(true, true);\n\n if (!overlay) {\n this.create(opts);\n }\n\n if (opts.locked && this.fixed && obj.fixed) {\n obj.locked = this.overlay.append(obj.wrap);\n obj.fixed = false;\n }\n\n if (opts.showEarly === true) {\n this.beforeShow.apply(this, arguments);\n }\n },\n beforeShow: function beforeShow(opts, obj) {\n if (obj.locked && !this.el.hasClass('fancybox-lock')) {\n if (this.fixPosition !== false) {\n $('*').filter(function () {\n return $(this).css('position') === 'fixed' && !$(this).hasClass(\"fancybox-overlay\") && !$(this).hasClass(\"fancybox-wrap\");\n }).addClass('fancybox-margin');\n }\n\n this.el.addClass('fancybox-margin');\n this.scrollV = W.scrollTop();\n this.scrollH = W.scrollLeft();\n this.el.addClass('fancybox-lock');\n W.scrollTop(this.scrollV).scrollLeft(this.scrollH);\n }\n\n this.open(opts);\n },\n onUpdate: function onUpdate() {\n if (!this.fixed) {\n this.update();\n }\n },\n afterClose: function afterClose(opts) {\n // Remove overlay if exists and fancyBox is not opening\n // (e.g., it is not being open using afterClose callback)\n if (this.overlay && !F.coming) {\n this.overlay.fadeOut(opts.speedOut, $.proxy(this.close, this));\n }\n }\n };\n /*\n *\tTitle helper\n */\n\n F.helpers.title = {\n defaults: {\n type: 'float',\n // 'float', 'inside', 'outside' or 'over',\n position: 'bottom' // 'top' or 'bottom'\n\n },\n beforeShow: function beforeShow(opts) {\n var current = F.current,\n text = current.title,\n type = opts.type,\n title,\n target;\n\n if ($.isFunction(text)) {\n text = text.call(current.element, current);\n }\n\n if (!isString(text) || $.trim(text) === '') {\n return;\n }\n\n title = $('
' + text + '
');\n\n switch (type) {\n case 'inside':\n target = F.skin;\n break;\n\n case 'outside':\n target = F.wrap;\n break;\n\n case 'over':\n target = F.inner;\n break;\n\n default:\n // 'float'\n target = F.skin;\n title.appendTo('body');\n\n if (IE) {\n title.width(title.width());\n }\n\n title.wrapInner(''); //Increase bottom margin so this title will also fit into viewport\n\n F.current.margin[2] += Math.abs(getScalar(title.css('margin-bottom')));\n break;\n }\n\n title[opts.position === 'top' ? 'prependTo' : 'appendTo'](target);\n }\n }; // jQuery plugin initialization\n\n $.fn.fancybox = function (options) {\n var index,\n that = $(this),\n selector = this.selector || '',\n run = function run(e) {\n var what = $(this).blur(),\n idx = index,\n relType,\n relVal;\n\n if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) {\n relType = options.groupAttr || 'data-fancybox-group';\n relVal = what.attr(relType);\n\n if (!relVal) {\n relType = 'rel';\n relVal = what.get(0)[relType];\n }\n\n if (relVal && relVal !== '' && relVal !== 'nofollow') {\n what = selector.length ? $(selector) : that;\n what = what.filter('[' + relType + '=\"' + relVal + '\"]');\n idx = what.index(this);\n }\n\n options.index = idx; // Stop an event from bubbling if everything is fine\n\n if (F.open(what, options) !== false) {\n e.preventDefault();\n }\n }\n };\n\n options = options || {};\n index = options.index || 0;\n\n if (!selector || options.live === false) {\n that.unbind('click.fb-start').bind('click.fb-start', run);\n } else {\n D.undelegate(selector, 'click.fb-start').delegate(selector + \":not('.fancybox-item, .fancybox-nav')\", 'click.fb-start', run);\n }\n\n this.filter('[data-fancybox-start=1]').trigger('click');\n return this;\n }; // Tests that need a body at doc ready\n\n\n D.ready(function () {\n var w1, w2;\n\n if ($.scrollbarWidth === undefined) {\n // http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth\n $.scrollbarWidth = function () {\n var parent = $('
').appendTo('body'),\n child = parent.children(),\n width = child.innerWidth() - child.height(99).innerWidth();\n parent.remove();\n return width;\n };\n }\n\n if ($.support.fixedPosition === undefined) {\n $.support.fixedPosition = function () {\n var elem = $('
').appendTo('body'),\n fixed = elem[0].offsetTop === 20 || elem[0].offsetTop === 15;\n elem.remove();\n return fixed;\n }();\n }\n\n $.extend(F.defaults, {\n scrollbarWidth: $.scrollbarWidth(),\n fixed: $.support.fixedPosition,\n parent: $('body')\n }); //Get real width of page scroll-bar\n\n w1 = $(window).width();\n H.addClass('fancybox-lock-test');\n w2 = $(window).width();\n H.removeClass('fancybox-lock-test');\n $(\"\").appendTo(\"head\");\n });\n})(window, document, jQuery);"],"sourceRoot":""}