{"version":3,"sources":["form-utilities.js","comparefield-attribute.js","maxfilesize-attribute.js","rangefield-attribute.js","required-checkbox.js","requiredif-attribute.js","simple-carousel.js","modal-window.js","mobile-menu.js","mobile-submenu.js","alert-message.js","accordion-menu.js","coward-form.js","file-upload.js","lot-zoom.js","pagination-select.js","update-table.js","main.js"],"names":["initValidationUtilities","$","fn","addTriggersToJqueryValidate","this","each","form","validator","data","oldForm","result","apply","arguments","currentForm","trigger","oldElement","element","classList","contains","document","getElementById","getAttribute","id","extend","triggerElementValidationsOnFormValidation","bind","e","find","i","field","hasClass","formValidation","formValidationSuccess","formValidationError","formValidAndInvalid","valid","invalid","elementValidation","elementValidationSuccess","elementValidationError","elementValidAndInvalid","jQuery","ready","bindValidationUpdate","$form","length","$inputs","not","validateField","updateFieldState","parent","addClass","removeClass","value","console","warn","compare","equal","val","test","notequal","greater","greaterequal","less","lessequal","addMethod","params","propName","propname","operator","ignorenull","fieldName","testProp","querySelector","unobtrusive","adapters","add","options","rules","messages","message","files","isNaN","parseInt","limit","size","inRange","min","max","rangeLower","rangelower","rangeGreater","rangegreater","lowerProp","greaterProp","defaultRangeValidator","methods","range","param","type","checked","call","isRequired","$testElement","expectedValue","resetField","isInverted","is","$checked","filter","toString","toLowerCase","parentElement","remove","$testProperty","propval","inverted","el","$el","target","expected","$master","on","event","tagEditor","root","factory","define","amd","SimpleCarousel","Hammer","self","nextItem","nextSibling","items","nodeName","prevItem","previousSibling","cloneItems","list","container","Array","prototype","forEach","item","index","clone","cloneNode","appendChild","createTicker","t","createElement","createPager","pagerElement","pager","pagerList","Pager","destroyPager","destroy","setAutoplay","dataset","autoplay","readyState","visible","play","window","addEventListener","onscroll","passive","unsetAutoplay","pause","removeEventListener","err","removeAttribute","createButtons","prev","next","buttons","setAttribute","destroyButtons","Carousel","defaults","getElementsByClassName","ticker","hammer","setup","goto","finished","done","update","dispatch","bubbles","cancelable","carousel","Object","defineProperties","writable","DEFAULTS","forecast","opt","prevButton","nextButton","get","set","direction","DIRECTION_HORIZONTAL","current","current_i","indexOf","gotoslide","slide","before","after","aftern","prevn","beforen","nextn","init","detail","enter","querySelectorAll","name","newEvent","CustomEvent","createEvent","initCustomEvent","dispatchEvent","getBoundingClientRect","top","innerHeight","innerHTML","slideIndex","currentSlide","ModalWindow","content","button","close","open","openers","stopPropagation","instance","MobileMenu","Menu","ignore","toggle","closeButtons","ignoreElements","shallOpen","others","other","preventDefault","MobileSubmenu","enableSticky","disableSticky","watchSticky","clientHeight","innerWidth","width","clientWidth","style","position","AlertMessage","dismissleft","dismissright","fade","ontransition","ondismiss","autofade","setTimeout","dismissable","__ondismissFn","removeChild","eval","AccordionMenu","Accordion","toggles","expand","collapse","collapsed","CowardForm","Modal","Form","tagName","TypeError","confirm","cancel","modal","onsubmit","onconfirm","oncancel","submit","FileUpload","input","preview","filenametext","resetbutton","handleFocus","handleChange","reset","filename","split","pop","innerText","focus","$input","wrap","closest","unwrap","change","LotZoom","$preview","$thumbs","onclick","onload","create","first","$this","attr","img","naturalWidth","naturalHeight","height","zoom","src","Date","getTime","$img","one","append","PaginationSelect","Select","select","onchange","pattern","urlPattern","match","location","replace","UpdateTable","setAjaxScope","resetAjaxScope","$current","scopeId","$ajaxScope","$ajaxContainer","$ajaxMessages","$modal","confirmationRequestMessage","html","send","handleCancel","requestTime","handleErrors","response","errorMessage","statusText","title","messageText","messageContainer","msg","firstElementChild","updateContent","$data","$content","$messages","$cur","$next","children","handleResponse","responseTime","wait","timeout","unbind","sendRequest","action","method","serialize","fail","addRow","deleteRow","loadMore","thisarg","loadComponent","componentName","Fn","components","elements","push","bottomDrawer"],"mappings":"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","file":"index.js","sourcesContent":["\r\njQuery(function () {\r\n\r\n $ = jQuery;\r\n\r\n if ($().tagEditor) {\r\n $('[data-ui-component=\"keyword-field\"] .keywordeditor').tagEditor();\r\n }\r\n});\r\n\r\nfunction initValidationUtilities() {\r\n\r\n // Add trigger to jQuery Validate https://gist.github.com/remi/957732\r\n (function ($) {\r\n\r\n $.fn.addTriggersToJqueryValidate = function () {\r\n\r\n // Loop thru the elements that we jQuery validate is attached to\r\n // and return the loop, so jQuery function chaining will work.\r\n return this.each(function () {\r\n var form = $(this);\r\n\r\n // Grab this element's validator object (if it has one)\r\n var validator = form.data('validator');\r\n\r\n // Only run this code if there's a validator associated with this element\r\n if (!validator)\r\n return;\r\n\r\n // Only add these triggers to each element once\r\n if (form.data('jQueryValidateTriggersAdded'))\r\n return;\r\n else\r\n form.data('jQueryValidateTriggersAdded', true);\r\n\r\n // Override the function that validates the whole form to trigger a \r\n // formValidation event and either formValidationSuccess or formValidationError\r\n var oldForm = validator.form;\r\n validator.form = function () {\r\n var result = oldForm.apply(this, arguments);\r\n var form = this.currentForm;\r\n $(form).trigger((result == true) ? 'formValidationSuccess' : 'formValidationError', form);\r\n $(form).trigger('formValidation', [form, result]);\r\n return result;\r\n };\r\n\r\n // Override the function that validates the whole element to trigger a \r\n // elementValidation event and either elementValidationSuccess or elementValidationError\r\n var oldElement = validator.element;\r\n validator.element = function (element) {\r\n if (element.classList.contains('ql-editor')) {\r\n element = document.getElementById(element.getAttribute('data-original-input'))\r\n }\r\n var result = oldElement.apply(this, ['#' + element.id]);\r\n $(element).trigger((result == true) ? 'elementValidationSuccess' : 'elementValidationError', element);\r\n $(element).trigger('elementValidation', [element, result]);\r\n return result;\r\n };\r\n });\r\n };\r\n\r\n /* Below here are helper methods for calling .bind() for you */\r\n\r\n $.fn.extend({\r\n\r\n // Wouldn't it be nice if, when the full form's validation runs, it triggers the \r\n // element* validation events? Well, that's what this does!\r\n //\r\n // NOTE: This is VERY coupled with jquery.validation.unobtrusive and uses its \r\n // element attributes to figure out which fields use validation and \r\n // whether or not they're currently valid.\r\n //\r\n triggerElementValidationsOnFormValidation: function () {\r\n return this.each(function () {\r\n $(this).bind('formValidation', function (e, form, result) {\r\n $(form).find('*[data-val=true]').each(function (i, field) {\r\n if ($(field).hasClass('input-validation-error')) {\r\n $(field).trigger('elementValidationError', field);\r\n $(field).trigger('elementValidation', [field, false]);\r\n } else {\r\n $(field).trigger('elementValidationSuccess', field);\r\n $(field).trigger('elementValidation', [field, true]);\r\n }\r\n });\r\n });\r\n });\r\n },\r\n\r\n formValidation: function (fn) {\r\n return this.each(function () {\r\n $(this).bind('formValidation', function (e, element, result) { fn(element, result); });\r\n });\r\n },\r\n\r\n formValidationSuccess: function (fn) {\r\n return this.each(function () {\r\n $(this).bind('formValidationSuccess', function (e, element) { fn(element); });\r\n });\r\n },\r\n\r\n formValidationError: function (fn) {\r\n return this.each(function () {\r\n $(this).bind('formValidationError', function (e, element) { fn(element); });\r\n });\r\n },\r\n\r\n formValidAndInvalid: function (valid, invalid) {\r\n return this.each(function () {\r\n $(this).bind('formValidationSuccess', function (e, element) { valid(element); });\r\n $(this).bind('formValidationError', function (e, element) { invalid(element); });\r\n });\r\n },\r\n\r\n elementValidation: function (fn) {\r\n return this.each(function () {\r\n $(this).bind('elementValidation', function (e, element, result) { fn(element, result); });\r\n });\r\n },\r\n\r\n elementValidationSuccess: function (fn) {\r\n return this.each(function () {\r\n $(this).bind('elementValidationSuccess', function (e, element) { fn(element); });\r\n });\r\n },\r\n\r\n elementValidationError: function (fn) {\r\n return this.each(function () {\r\n $(this).bind('elementValidationError', function (e, element) { fn(element); });\r\n });\r\n },\r\n\r\n elementValidAndInvalid: function (valid, invalid) {\r\n return this.each(function () {\r\n $(this).bind('elementValidationSuccess', function (e, element) { valid(element); });\r\n $(this).bind('elementValidationError', function (e, element) { invalid(element); });\r\n });\r\n }\r\n\r\n });\r\n\r\n })(jQuery);\r\n\r\n $(document).ready(bindValidationUpdate);\r\n} \r\n\r\nfunction bindValidationUpdate() {\r\n var $form = $('form');\r\n\r\n var inputsToFind = '.arsv-input-field > input, .arsv-radio-field > input, .arsv-checkbox-field > input, .arsv-file-upload > input, .arsv-select-field > select, .arsv-textarea-field > textarea, .avcb-input-field > input, .avcb-radio-field > input, .avcb-checkbox-field > input, .avcb-file-upload > input, .avcb-select-field > select, .avcb-textarea-field > textarea'\r\n\r\n if ($form.length) {\r\n $form.addTriggersToJqueryValidate().triggerElementValidationsOnFormValidation()\r\n $inputs = $form.find(inputsToFind).not('[readonly]');\r\n\r\n $inputs.bind('change', validateField);\r\n $inputs.elementValidation(updateFieldState);\r\n }\r\n}\r\n\r\nfunction validateField() {\r\n $(this).valid();\r\n}\r\n\r\nfunction updateFieldState(element, result) {\r\n if (!result) {\r\n $(element).parent().addClass('-error');\r\n $(element).parent().removeClass('-valid');\r\n }\r\n if (result && element.value) {\r\n $(element).parent().removeClass('-error');\r\n $(element).parent().addClass('-valid');\r\n }\r\n\r\n if (result && !element.value) {\r\n $(element).parent().removeClass('-valid');\r\n }\r\n}\r\n","(function ($) {\r\n 'use strict';\r\n\r\n if (typeof ($) !== 'function') {\r\n console.warn('jQuery not found: field comparation validation will not work');\r\n return;\r\n }\r\n\r\n $(function () {\r\n if (typeof ($.validator) !== 'function') {\r\n console.warn('jQuery.validator not found: field comparation validation will not work');\r\n return;\r\n }\r\n\r\n var compare = {\r\n equal: function (val, test) {\r\n return val === test;\r\n },\r\n notequal: function (val, test) {\r\n return val != test\r\n },\r\n greater: function (val, test) { \r\n return val && test && val > test;\r\n },\r\n greaterequal: function (val, test) {\r\n return val && test && val >= test;\r\n },\r\n less: function (val, test) {\r\n return val && test && val < test;\r\n },\r\n lessequal: function (val, test) {\r\n return val && test && val <= test;\r\n }\r\n }\r\n\r\n $.validator.addMethod('compare', function (value, element, params) {\r\n\r\n var propName = params.propname;\r\n var operator = params.operator;\r\n var ignoreNull = params.ignorenull;\r\n\r\n if (ignoreNull && !element.value) {\r\n return true;\r\n }\r\n\r\n var fieldName = element.getAttribute('name');\r\n var testProp = document.querySelector('[name=\"' + propName + '\"]');\r\n\r\n if (typeof (propName) === 'undefined' || propName === null) {\r\n console.warn('Could not validate ' + fieldName + ' against null or undefined field');\r\n return true;\r\n }\r\n\r\n if (typeof (operator) === 'undefined' || operator === null) {\r\n console.warn('Could not validate ' + fieldName + ' using a null or undefined operator');\r\n return true;\r\n }\r\n\r\n if (typeof (compare[operator]) !== 'function') {\r\n console.warn('Operator ' + operator + ' does not exist: could not validate ' + fieldName);\r\n return true;\r\n }\r\n\r\n if (!testProp) {\r\n console.warn('A field named ' + propName + ' was not found: could not validate ' + fieldName);\r\n return true;\r\n }\r\n\r\n return compare[operator](element.value, testProp.value);\r\n\r\n });\r\n\r\n if ($.validator.unobtrusive) {\r\n $.validator.unobtrusive.adapters.add('compare', ['propname', 'operator', 'ignorenull'], function (options) {\r\n options.rules[\"compare\"] = {\r\n propname: options.params.propname,\r\n operator: options.params.operator,\r\n ignorenull: options.params.ignorenull\r\n };\r\n options.messages['compare'] = options.message;\r\n });\r\n }\r\n\r\n });\r\n})(jQuery);","(function ($) {\r\n 'use strict';\r\n\r\n $(function () {\r\n if (typeof ($.validator) !== 'function') return;\r\n\r\n $.validator.addMethod('maxfilesize', function (value, element, params) {\r\n\r\n // do not validate if input is not of type \"file\"\r\n if (element.getAttribute('type') !== 'file') {\r\n return true;\r\n }\r\n\r\n // do not validate if there is no file\r\n if (!element.files.length) {\r\n return true;\r\n }\r\n\r\n // do not validate multiple uploads (use a specific validator)\r\n if (element.files.length > 1) {\r\n return true;\r\n }\r\n\r\n // do not validate if there is no file size limit\r\n if (!params || isNaN(parseInt(params.limit))) {\r\n return true;\r\n }\r\n\r\n return element.files[0].size <= parseInt(params.limit);\r\n\r\n }, '');\r\n\r\n if ($.validator.unobtrusive && $.validator.unobtrusive.adapters && typeof ($.validator.unobtrusive.adapters.add) === 'function') {\r\n\r\n $.validator.unobtrusive.adapters.add('maxfilesize', ['limit'], function (options) {\r\n\r\n options.rules['maxfilesize'] = {\r\n limit: options.params.limit\r\n };\r\n options.messages['maxfilesize'] = options.message;\r\n });\r\n }\r\n });\r\n})(jQuery);\r\n","(function ($) {\r\n 'use strict';\r\n\r\n $(function () {\r\n if (typeof ($.validator) !== 'function') return;\r\n\r\n /**\r\n * @todo Testare le funzioni di validazione\r\n */\r\n function inRange(value, min, max) {\r\n return value >= min && value <= max;\r\n }\r\n\r\n\r\n $.validator.addMethod('rangefield', function (value, element, params) {\r\n var fieldName = element.getAttribute('name');\r\n var dataType = element.getAttribute('type');\r\n var rangeLower = params.rangelower;\r\n var rangeGreater = params.rangegreater;\r\n var lowerProp = document.querySelector('[name=\"' + rangeLower + '\"]');\r\n var greaterProp = document.querySelector('[name=\"' + rangeGreater + '\"]');\r\n\r\n if (typeof (rangeLower) === 'undefined' || rangeLower === null) {\r\n console.warn('Could not validate ' + fieldName + ' against null or undefined field');\r\n return true;\r\n }\r\n\r\n if (typeof (rangeGreater) === 'undefined' || rangeGreater === null) {\r\n console.warn('Could not validate ' + fieldName + ' against null or undefined field');\r\n return true;\r\n }\r\n\r\n if (!lowerProp) {\r\n console.warn('A field named ' + rangeLower + ' was not found: could not validate ' + fieldName);\r\n return true;\r\n }\r\n\r\n if (!greaterProp) {\r\n console.warn('A field named ' + rangeGreater + ' was not found: could not validate ' + fieldName);\r\n return true;\r\n }\r\n\r\n return inRange(element.value, lowerProp.value, greaterProp.value);\r\n\r\n });\r\n\r\n if ($.validator.unobtrusive) {\r\n $.validator.unobtrusive.adapters.add('rangefield', ['rangelower', 'rangegreater'], function (options) {\r\n options.rules[\"rangefield\"] = {\r\n rangelower: options.params.rangelower,\r\n rangegreater: options.params.rangegreater\r\n };\r\n options.messages['rangefield'] = options.message;\r\n });\r\n }\r\n\r\n });\r\n})(jQuery);","(function ($) {\r\n 'use strict';\r\n\r\n // Force required checkboxes to be true\r\n // http://jasonwatmore.com/post/2013/10/16/aspnet-mvc-required-checkbox-with-data-annotations\r\n\r\n $(function () {\r\n if (typeof ($.validator) !== 'function') return;\r\n\r\n var defaultRangeValidator = $.validator.methods.range;\r\n $.validator.methods.range = function (value, element, param) {\r\n if (!element) return function () { };\r\n\r\n if (element.type === 'checkbox') {\r\n return element.checked;\r\n } else {\r\n return defaultRangeValidator.call(this, value, element, param);\r\n }\r\n }\r\n })\r\n})(jQuery);\r\n","(function ($) {\r\n 'use strict';\r\n\r\n $(function () {\r\n if (typeof ($.validator) !== 'function') return;\r\n\r\n /**\r\n * Tells if \"element\" should be marked as required, based on the value of \"$testElement\" and \"expectedValue\"\r\n * @param {HTMLElement} element Input to validate\r\n * @param {object} $testElement Test element as jQuery object\r\n * @param {string} expectedValue Expected value from \"$testElement\"\r\n * @param {boolean} resetField If true, validation on \"element\" is performed immediately\r\n * @param {boolean} isInverted If true, validation on \"element\" occurs if $testElement's value il different from expectedValue\r\n */\r\n function isRequired(element, $testElement, expectedValue, resetField, isInverted) {\r\n\r\n var result = false;\r\n\r\n if ($testElement.is('[type=\"checkbox\"]')) {\r\n result = isInverted ? !$testElement.is(':checked') : $testElement.is(':checked');\r\n }\r\n else if ($testElement.is('[type=\"radio\"]')) {\r\n var $checked = $testElement.filter(':checked');\r\n\r\n if ($checked.length == 0 || !$checked.val()) {\r\n result = false;\r\n }\r\n else {\r\n result = $checked.val().toString().toLowerCase() == expectedValue.toString().toLowerCase();\r\n }\r\n }\r\n else {\r\n result = $testElement.val().toString().toLowerCase() == expectedValue.toString().toLowerCase();\r\n }\r\n\r\n if (result) {\r\n element.parentElement.classList.add('-required');\r\n } else {\r\n element.parentElement.classList.remove('-required');\r\n element.parentElement.classList.remove('-error');\r\n\r\n if (resetField) {\r\n $(element).valid();\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n $.validator.addMethod('requiredif', function (value, element, params) {\r\n var $testProperty = $('[name=\"' + params.propname + '\"]');\r\n\r\n // Client validation should be more tolerant than server validation, \r\n // so if there is no test field, validation should succeed and let\r\n // the server handle the data\r\n if ($testProperty.length == 0) return true;\r\n\r\n // If the test field does not have the expected value, validation should\r\n // succeed, as the target field is not required\r\n if (!isRequired(element, $testProperty, params.propval, false, params.inverted)) return true;\r\n\r\n // Required checkboxes should be checked\r\n if ($(element).is('[type=\"checkbox\"]')) return $(element).is(':checked')\r\n\r\n return value !== null\r\n && value !== \"\"\r\n && value.toLowerCase() !== 'false';\r\n\r\n }, '');\r\n\r\n $('[data-val-requiredif-propname]').each(function (i, el) {\r\n var $el = $(el);\r\n var target = $el.data('val-requiredif-propname');\r\n var expected = $el.data('val-requiredif-propval');\r\n var inverted = $el.data('val-requiredif-inverted');\r\n var $master = $('[name=\"' + target + '\"]');\r\n\r\n $master.each(function () {\r\n isRequired(el, $master, expected, false, inverted);\r\n\r\n $(this).on('change', function () {\r\n isRequired(el, $(event.target), expected, true, inverted);\r\n })\r\n })\r\n });\r\n\r\n if ($.validator.unobtrusive && $.validator.unobtrusive.adapters && typeof ($.validator.unobtrusive.adapters.add) === 'function') {\r\n\r\n $.validator.unobtrusive.adapters.add('requiredif', ['propname', 'propval', 'inverted'], function (options) {\r\n\r\n options.rules['requiredif'] = {\r\n propname: options.params.propname,\r\n propval: options.params.propval,\r\n inverted: options.params.inverted === 'true'\r\n };\r\n options.messages['requiredif'] = options.message;\r\n });\r\n }\r\n });\r\n\r\n})(jQuery);\r\n",";(function (root, factory) {\r\n // UMD/AMDWeb module bolierplate: https://github.com/umdjs/umd/blob/master/templates/amdWeb.js\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define('SimpleCarousel', ['Hammer'], factory);\r\n } else {\r\n // Browser globals\r\n root.SimpleCarousel = factory(root.Hammer);\r\n }\r\n}(typeof self !== 'undefined' ? self : this, function (Hammer) {\r\n 'use strict';\r\n\r\n /**\r\n * @private\r\n * @description Default options\r\n */\r\n var DEFAULTS = {\r\n 'pager': false,\r\n 'autoplay': false,\r\n 'buttons': false,\r\n 'forecast': false\r\n }\r\n\r\n /**\r\n * @private\r\n * @function nextItem\r\n * @description Get next item (or first if given element is last child)\r\n * @param {HTMLElement} element Item \r\n * @returns {HTMLElement}\r\n */\r\n function nextItem(element) {\r\n var target = element;\r\n while (element) {\r\n element = element.nextSibling;\r\n if (!element) return this.items[0];\r\n if (element && element.nodeName == target.nodeName) return element;\r\n }\r\n }\r\n\r\n /**\r\n * @private\r\n * @function prevItem\r\n * @description Get previous item (or last if given element is first child)\r\n * @param {HTMLElement} element Item \r\n * @returns {HTMLElement}\r\n */\r\n function prevItem(element) {\r\n var target = element;\r\n while (element) {\r\n element = element.previousSibling;\r\n if (!element) return this.items[this.items.length - 1];\r\n if (element.nodeName == target.nodeName) return element;\r\n }\r\n }\r\n\r\n /**\r\n * @private\r\n * @function cloneItems\r\n * @description Clone items if items are 2, so that carousel can work correctly\r\n * @returns {undefined}\r\n */\r\n function cloneItems() {\r\n var list = this.container.querySelector('ul');\r\n Array.prototype.forEach.apply(this.items, [function (item, index) {\r\n var clone = item.cloneNode(true);\r\n clone.classList.add('-clone');\r\n list.appendChild(clone);\r\n return;\r\n }]);\r\n }\r\n\r\n /**\r\n * @private\r\n * @function createTicker\r\n * @description Create carousel ticker for autoplay\r\n * @returns {undefined}\r\n */\r\n function createTicker(element) {\r\n var t = document.createElement('span');\r\n t.classList.add('carouselticker');\r\n element.appendChild(t);\r\n return t\r\n }\r\n\r\n /**\r\n * @private\r\n * @function createPager\r\n * @description Create pager navigation\r\n * @returns {undefined}\r\n */\r\n function createPager(pagerElement) {\r\n if (this.pager) return;\r\n if (!pagerElement) {\r\n pagerElement = document.createElement('div');\r\n pagerElement.classList.add('carouselpager');\r\n }\r\n var pagerList = pagerElement.querySelector('ul')\r\n if (!pagerList) {\r\n pagerList = document.createElement('ul')\r\n }\r\n pagerElement.appendChild(pagerList);\r\n this.pager = new Pager(pagerElement, this);\r\n this.container.appendChild(pagerElement);\r\n }\r\n\r\n /**\r\n * @private\r\n * @function destroyPager\r\n * @description Destroy pager navigation\r\n * @returns {undefined}\r\n */\r\n function destroyPager() {\r\n if (this.pager) this.pager.destroy();\r\n this.pager = null;\r\n var pagerElement = this.container.querySelector('.carouselpager');\r\n if (pagerElement) pagerElement.remove();\r\n }\r\n\r\n /**\r\n * @private \r\n * @function setAutoplay\r\n * @description Autoplay when visibile\r\n * @returns {undefined}\r\n */\r\n function setAutoplay() {\r\n // store in dataset\r\n this.container.dataset.autoplay = true;\r\n // play immediately if loaded or wait for window load\r\n if (document.readyState == 'complete') {\r\n if (this.visible()) this.play();\r\n } else {\r\n window.addEventListener('load', this.play);\r\n }\r\n window.addEventListener('scroll', this.onscroll, { passive: true });\r\n }\r\n\r\n /**\r\n * @private \r\n * @function unsetAutoplay\r\n * @description Remove autoplay\r\n * @returns {undefined}\r\n */\r\n function unsetAutoplay() {\r\n if (this.container.classList.contains('-playing')) this.pause();\r\n window.removeEventListener('scroll', this.onscroll)\r\n try {\r\n delete this.container.dataset.autoplay;\r\n } catch (err) {\r\n this.container.removeAttribute('data-autoplay');\r\n }\r\n }\r\n\r\n /**\r\n * @private\r\n * @function createButtons\r\n * @description create navigation buttons\r\n * @returns {undefined} \r\n */\r\n function createButtons(prev, next) {\r\n this.container.dataset.buttons = true;\r\n if (!prev) {\r\n prev = document.createElement('a');\r\n prev.classList.add('prevbutton');\r\n prev.setAttribute('data-prev-item', '');\r\n this.container.appendChild(prev);\r\n prev.addEventListener('click', this.prev);\r\n }\r\n if (!next) {\r\n next = document.createElement('a');\r\n next.classList.add('nextbutton');\r\n next.setAttribute('data-next-item', '');\r\n this.container.appendChild(next);\r\n next.addEventListener('click', this.next);\r\n }\r\n return;\r\n }\r\n\r\n /**\r\n * @private\r\n * @function destroyButtons\r\n * @description destroy carousel buttons\r\n * @returns {undefined}\r\n */\r\n function destroyButtons(prev, next) {\r\n if (prev) {\r\n prev.addEventListener('click', this.prev);\r\n prev.remove();\r\n }\r\n if (next) {\r\n next.addEventListener('click', this.next);\r\n next.remove();\r\n }\r\n try {\r\n delete this.container.dataset.buttons;\r\n } catch (err) {\r\n this.container.removeAttribute('data-buttons');\r\n }\r\n }\r\n\r\n /**\r\n * @class Carousel\r\n * @param {HTMLElement} element \r\n * @param {Object} options \r\n */\r\n function Carousel(element, options) {\r\n if (!typeof (element) === 'undefined') throw new TypeError('Container element is undefined');\r\n\r\n this.container = element;\r\n this.defaults = {};\r\n this.items = element.getElementsByClassName('slideitem');\r\n if (this.items.length == 0) return;\r\n this.ticker = element.querySelector('.carouselticker') ? element.querySelector('.carouselticker') : createTicker(element);\r\n this.hammer = (typeof (Hammer) !== 'undefined') ? new Hammer(element) : null;\r\n this.setup = this.setup.bind(this);\r\n this.ready = this.ready.bind(this);\r\n this.play = this.play.bind(this);\r\n this.pause = this.pause.bind(this);\r\n this.goto = this.goto.bind(this);\r\n this.prev = this.prev.bind(this);\r\n this.next = this.next.bind(this);\r\n this.finished = this.finished.bind(this);\r\n this.done = this.done.bind(this);\r\n this.visible = this.visible.bind(this);\r\n this.onscroll = this.onscroll.bind(this);\r\n this.update = this.update.bind(this);\r\n this.dispatch = this.dispatch.bind(this);\r\n\r\n\r\n // Create a ticker element that lets the slideshow play by transitioning\r\n this.ticker.addEventListener('transitionend', this.next);\r\n\r\n this.setup(options);\r\n this.update();\r\n Array.prototype.forEach.apply(this.items, [function (item) { item.addEventListener('transitionend', this.done); }, this]);\r\n\r\n\r\n this.dispatch('simple-carousel:ready', {\r\n bubbles: true,\r\n cancelable: false\r\n });\r\n }\r\n\r\n Carousel.prototype = {\r\n container: null,\r\n items: null,\r\n defaults: {},\r\n ticker: null,\r\n hammer: null,\r\n setup: function (options) {\r\n // read options\r\n for (var opt in DEFAULTS) {\r\n this.defaults[opt] = (typeof (this.defaults[opt]) !== 'undefined') ? this.defaults[opt] : DEFAULTS[opt];\r\n if (typeof (this.container.dataset[opt]) !== 'undefined') this.defaults[opt] = this.container.dataset[opt];\r\n if (options && typeof (options[opt]) !== 'undefined') this.defaults[opt] = options[opt];\r\n }\r\n // handle autoplay\r\n if (this.defaults.autoplay) {\r\n setAutoplay.apply(this);\r\n } else {\r\n unsetAutoplay.apply(this);\r\n }\r\n // add/remove navigation buttons if needed\r\n var prevButton = this.container.querySelector('.prevbutton');\r\n var nextButton = this.container.querySelector('.nextbutton');\r\n\r\n if (this.defaults.buttons) {\r\n createButtons.apply(this, [prevButton, nextButton]);\r\n } else {\r\n destroyButtons.apply(this, [prevButton, nextButton]);\r\n }\r\n\r\n // add/remove pager\r\n if (this.defaults.pager) {\r\n var pagerElement = this.container.querySelector('.carouselpager');\r\n createPager.apply(this, [pagerElement]);\r\n } else {\r\n destroyPager.apply(this);\r\n }\r\n\r\n if (this.hammer) {\r\n this.hammer.get('swipe').set({ direction: Hammer.DIRECTION_HORIZONTAL });\r\n this.hammer.on('swipeleft', this.next);\r\n this.hammer.on('swiperight', this.prev);\r\n }\r\n\r\n },\r\n ready: function () {\r\n return this.container && this.items && this.items.length > 1 && this.container.querySelector('.slideitem.-current');\r\n },\r\n play: function () {\r\n if (this.container.classList.contains('-playing')) return;\r\n this.container.classList.add('-playing');\r\n this.dispatch('simple-carousel:play', {\r\n bubbles: true,\r\n cancelable: false\r\n });\r\n },\r\n pause: function () {\r\n if (!this.container.classList.contains('-playing')) return;\r\n this.container.classList.remove('-playing');\r\n this.dispatch('simple-carousel:pause', {\r\n bubbles: true,\r\n cancelable: false\r\n });\r\n },\r\n goto: function (index) {\r\n if (this.container.classList.contains('-transitioning') || typeof (this.items[index]) === 'undefined') return;\r\n\r\n var current = this.container.querySelector('.slideitem.-current');\r\n var current_i = Array.prototype.indexOf.apply(this.items, [current]);\r\n if (index == current_i) return;\r\n\r\n var direction;\r\n var gotoslide;\r\n if (index > current_i) {\r\n direction = 'forwards';\r\n gotoslide = 'next';\r\n\r\n if (index == this.items.length - 1 && current_i == 0) {\r\n direction = 'backwards';\r\n gotoslide = 'prev';\r\n }\r\n } else {\r\n direction = 'backwards';\r\n gotoslide = 'prev';\r\n\r\n if (index == 0 && current_i == this.items.length - 1) {\r\n direction = 'forwards';\r\n gotoslide = 'next';\r\n }\r\n }\r\n\r\n var prev = this.container.querySelector('.slideitem.-prev');\r\n var next = this.container.querySelector('.slideitem.-next');\r\n prev.classList.remove('-prev');\r\n next.classList.remove('-next');\r\n var slide = this.items[index]\r\n if (this.defaults.forecast) {\r\n var before = this.container.querySelector('.slideitem.-before');\r\n var after = this.container.querySelector('.slideitem.-after');\r\n if (before) before.classList.remove('-before');\r\n if (after) after.classList.remove('-after');\r\n\r\n if (direction === 'forwards') {\r\n var aftern = nextItem.apply(this, [slide]);\r\n var prevn = prevItem.apply(this, [current]);\r\n var beforen = prevItem.apply(this, [prevn]);\r\n\r\n aftern.classList.add('-after');\r\n prevn.classList.add('-prev');\r\n beforen.classList.add('-before');\r\n } else {\r\n var beforen = prevItem.apply(this, [slide]);\r\n var nextn = nextItem.apply(this, [current]);\r\n var aftern = nextItem.apply(this, [nextn]);\r\n beforen.classList.add('-before');\r\n nextn.classList.add('-next');\r\n aftern.classList.add('-after');\r\n }\r\n\r\n }\r\n\r\n slide.classList.add('-' + gotoslide);\r\n slide.classList.add('-in');\r\n\r\n current.classList.add('-out');\r\n this.container.classList.add('-transitioning');\r\n this.container.classList.add('-transition-' + gotoslide);\r\n this.container.classList.add('-transition-' + direction);\r\n var init = {\r\n bubbles: true,\r\n cancelable: true,\r\n detail: {\r\n direction: direction,\r\n enter: this.items[index]\r\n }\r\n };\r\n this.dispatch('simple-carousel:slide-start', init);\r\n },\r\n prev: function () {\r\n this.goto(Array.prototype.indexOf.apply(this.items, [this.container.querySelector('.slideitem.-prev')]));\r\n },\r\n next: function () {\r\n this.goto(Array.prototype.indexOf.apply(this.items, [this.container.querySelector('.slideitem.-next')]));\r\n },\r\n finished: function () {\r\n return this.container.classList.contains('-transitioning')\r\n && this.container.querySelectorAll('.slideitem.-in').length == 0\r\n && this.container.querySelectorAll('.slideitem.-out').length == 0;\r\n },\r\n done: function (event) {\r\n if (!event || event.type != 'transitionend') return;\r\n // if event target is going out, remove current and out\r\n if (event.target.classList.contains('-out') && event.target.classList.contains('-current')) {\r\n event.target.classList.remove('-out');\r\n event.target.classList.remove('-current');\r\n }\r\n // if event target is going in, add current and remove in \r\n if (event.target.classList.contains('-in')) {\r\n event.target.classList.remove('-in');\r\n event.target.classList.add('-current');\r\n if (event.target.classList.contains('-next')) event.target.classList.remove('-next')\r\n if (event.target.classList.contains('-prev')) event.target.classList.remove('-prev')\r\n }\r\n // update state if all slide transitions have been completed\r\n if (this.finished()) {\r\n this.container.classList.remove('-transitioning');\r\n this.container.classList.remove('-transition-prev');\r\n this.container.classList.remove('-transition-next');\r\n this.container.classList.remove('-transition-forwards');\r\n this.container.classList.remove('-transition-backwards');\r\n this.update();\r\n this.dispatch('simple-carousel:slide-done', {\r\n bubbles: true,\r\n cancelable: false\r\n });\r\n }\r\n },\r\n dispatch: function (name, init) {\r\n var newEvent;\r\n try {\r\n newEvent = new CustomEvent(name, init)\r\n } catch (err) {\r\n newEvent = document.createEvent('CustomEvent')\r\n newEvent.initCustomEvent(\r\n name,\r\n init && typeof (init.bubbles) !== 'undefined' ? init.bubbles : true,\r\n init && typeof (init.cancelable) !== 'undefined' ? init.cancelable : false,\r\n init ? init.detail : null\r\n );\r\n }\r\n this.container.dispatchEvent(newEvent);\r\n },\r\n visible: function () {\r\n if (this.container.getBoundingClientRect().top < 0) return false;\r\n if (this.container.getBoundingClientRect().top > window.innerHeight) return false;\r\n return true;\r\n },\r\n onscroll: function () {\r\n if (!this.visible()) {\r\n if (this.container.classList.contains('-playing')) {\r\n this.pause();\r\n }\r\n } else {\r\n if (!this.container.classList.contains('-playing')) {\r\n this.play();\r\n }\r\n }\r\n },\r\n update: function () {\r\n // handle eventual addition of slides, remove clones if slides are added so that items are more than 2\r\n var clones = this.container.querySelectorAll('.slideitem.-clone');\r\n if (clones.length > 0 && this.items.length > 4) {\r\n Array.prototype.forEach.apply(this.items, [function (item) {\r\n if (item.classList.contains('-clone')) item.remove();\r\n }]);\r\n }\r\n if (this.items.length == 1) return this.items[0].classList.add('-current');\r\n if (this.items.length == 2) cloneItems.apply(this);\r\n var prev = this.container.querySelector('.slideitem.-prev');\r\n var next = this.container.querySelector('.slideitem.-next');\r\n var current = this.container.querySelector('.slideitem.-current');\r\n var before = this.container.querySelector('.slideitem.-before');\r\n var after = this.container.querySelector('.slideitem.-after');\r\n if (prev) prev.classList.remove('-prev');\r\n if (next) next.classList.remove('-next');\r\n if (before) before.classList.remove('-before');\r\n if (after) after.classList.remove('-after');\r\n if (!current) {\r\n current = this.items[0];\r\n current.classList.add('-current');\r\n }\r\n\r\n prev = prevItem.apply(this, [current]);\r\n next = nextItem.apply(this, [current]);\r\n if (this.defaults.forecast) {\r\n before = prevItem.apply(this, [prev]);\r\n after = nextItem.apply(this, [next]);\r\n before.classList.add('-before');\r\n after.classList.add('-after');\r\n }\r\n prev.classList.add('-prev');\r\n next.classList.add('-next');\r\n },\r\n destroy: function () {\r\n Array.prototype.forEach.apply(this.items[function (item) { item.removeEventListener('transitionend', this.done); }, this]);\r\n if (this.container.querySelector('.carouselticker')) this.container.querySelector('.carouselticker').remove();\r\n if (this.container.querySelector('[data-prev-item]')) this.container.querySelector('[data-prev-item]').remove();\r\n if (this.container.querySelector('[data-next-item]')) this.container.querySelector('[data-next-item]').remove();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * @class Pager\r\n * @param {HTMLElement} element\r\n * @param {Carousel} carousel\r\n */\r\n function Pager(element, carousel) {\r\n Object.defineProperties(this, {\r\n container: {\r\n value: element\r\n },\r\n carousel: {\r\n value: carousel\r\n },\r\n items: {\r\n value: null,\r\n writable: true\r\n },\r\n setup: {\r\n value: this.setup.bind(this)\r\n },\r\n update: {\r\n value: this.update.bind(this)\r\n },\r\n goto: {\r\n value: this.goto.bind(this)\r\n }\r\n });\r\n\r\n\r\n if (this.carousel.ready()) {\r\n this.setup();\r\n } else {\r\n this.carousel.container.addEventListener('simple-carousel:ready', this.setup);\r\n }\r\n }\r\n\r\n Pager.prototype = {\r\n setup: function () {\r\n this.items = null;\r\n var container = this.container;\r\n var fn = this.goto;\r\n var self = this;\r\n this.container.querySelector('ul').innerHTML = '';\r\n Array.prototype.forEach.apply(this.carousel.items, [function (slide, index, items) {\r\n if (slide.classList.contains('-clone')) return;\r\n var item = document.createElement('li');\r\n item.classList.add('pageritem');\r\n item.dataset.slideIndex = index;\r\n item.innerHTML = index + 1;\r\n this.container.querySelector('ul').appendChild(item);\r\n item.addEventListener('click', this.goto)\r\n }, this]);\r\n this.items = this.container.querySelectorAll('.pageritem[data-slide-index]');\r\n this.carousel.container.addEventListener('simple-carousel:slide-start', this.update);\r\n this.update();\r\n },\r\n update: function () {\r\n // remove \"current\" state from current pager item\r\n var current = this.container.querySelector('.pageritem.-current');\r\n if (current) current.classList.remove('-current');\r\n\r\n // get current slide\r\n var currentSlide = this.carousel.container.querySelector('.slideitem.-current');\r\n if (currentSlide.classList.contains('-out')) currentSlide = this.carousel.container.querySelector('.slideitem.-in');\r\n var slideIndex;\r\n slideIndex = Array.prototype.indexOf.apply(this.carousel.items, [currentSlide]);\r\n slideIndex = (slideIndex < this.items.length) ? slideIndex : slideIndex - 2;\r\n this.container.querySelector('.pageritem[data-slide-index=\"' + slideIndex + '\"]').classList.add('-current');\r\n },\r\n goto: function (event) {\r\n var index = parseInt(event.target.dataset.slideIndex);\r\n if (!isNaN(index)) this.carousel.goto(index);\r\n },\r\n destroy: function () {\r\n this.carousel.container.removeEventListener('carousel-slide-start', this.update);\r\n this.carousel.container.removeEventListener('carousel-ready', this.setup);\r\n Array.prototype.forEach.apply(this.items, [function (item) {\r\n item.removeEventListener('click', this.goto);\r\n }, this]);\r\n }\r\n }\r\n\r\n return Carousel\r\n\r\n}));\r\n","; (function (root, factory) {\r\n // UMD/AMDWeb module bolierplate: https://github.com/umdjs/umd/blob/master/templates/amdWeb.js\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define('ModalWindow', [], factory);\r\n } else {\r\n // Browser globals\r\n root.ModalWindow = factory();\r\n }\r\n}(typeof self !== 'undefined' ? self : this, function () {\r\n 'use strict';\r\n\r\n function ModalWindow(element, options) {\r\n this.container = element;\r\n this.content = this.container.querySelector('.modalcontent');\r\n this.button = this.content.querySelector('.modalclose');\r\n\r\n this.close = this.close.bind(this);\r\n this.dispatch = this.dispatch.bind(this);\r\n this.open = this.open.bind(this);\r\n\r\n if (this.container.getAttribute('id')) {\r\n this.openers = document.querySelectorAll('[data-open-modal=\"' + this.container.getAttribute('id') + '\"]');\r\n\r\n Array.prototype.forEach.apply(this.openers, [function (el) {\r\n el.addEventListener('click', this.open);\r\n }, this]);\r\n }\r\n\r\n this.content.addEventListener('click', function (event) { event.stopPropagation(); });\r\n this.container.addEventListener('click', this.close);\r\n this.button.addEventListener('click', this.close);\r\n }\r\n\r\n ModalWindow.prototype = {\r\n close: function () {\r\n this.container.classList.remove('-open');\r\n this.dispatch('modal-window:close', {\r\n bubbles: true,\r\n cancelable: false,\r\n detail: {\r\n instance: this\r\n }\r\n });\r\n },\r\n dispatch: function (name, init) {\r\n var newEvent;\r\n try {\r\n newEvent = new CustomEvent(name, init)\r\n } catch (err) {\r\n newEvent = document.createEvent('CustomEvent')\r\n newEvent.initCustomEvent(\r\n name,\r\n init && typeof (init.bubbles) !== 'undefined' ? init.bubbles : true,\r\n init && typeof (init.cancelable) !== 'undefined' ? init.cancelable : false,\r\n init ? init.detail : null\r\n );\r\n }\r\n this.container.dispatchEvent(newEvent);\r\n },\r\n open: function () {\r\n this.container.classList.add('-open');\r\n this.dispatch('modal-window:open', {\r\n bubbles: true,\r\n cancelable: false,\r\n detail: {\r\n instance: this\r\n }\r\n });\r\n }\r\n }\r\n\r\n return ModalWindow\r\n}));","; (function (root, factory) {\r\n // UMD/AMDWeb module bolierplate: https://github.com/umdjs/umd/blob/master/templates/amdWeb.js\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define('MobileMenu', [], factory);\r\n } else {\r\n // Browser globals\r\n root.MobileMenu = factory();\r\n }\r\n}(typeof self !== 'undefined' ? self : this, function () {\r\n 'use strict';\r\n\r\n function Menu(element) {\r\n this.container = element;\r\n\r\n this.close = this.close.bind(this);\r\n this.ignore = this.ignore.bind(this);\r\n this.open = this.open.bind(this);\r\n this.toggle = this.toggle.bind(this);\r\n\r\n\r\n document.addEventListener('click', this.close);\r\n\r\n this.container.addEventListener('click', this.open)\r\n\r\n this.content = this.container.querySelector('.content');\r\n if (this.content) {\r\n this.content.addEventListener('click', this.ignore);\r\n }\r\n\r\n this.closeButtons = this.container.querySelectorAll('[data-close-menu]');\r\n if (this.closeButtons) {\r\n Array.prototype.forEach.apply(this.closeButtons, [function (item) {\r\n item.addEventListener('click', this.close)\r\n }, this])\r\n }\r\n\r\n this.ignoreElements = this.container.querySelectorAll('[data-ignore]');\r\n if (this.ignoreElements) {\r\n Array.prototype.forEach.apply(this.ignoreElements, [function (item) {\r\n item.addEventListener('click', this.ignore)\r\n }, this])\r\n }\r\n }\r\n\r\n Menu.prototype = {\r\n close: function () {\r\n this.container.classList.remove('-open');\r\n },\r\n ignore: function (event) {\r\n event.stopPropagation();\r\n },\r\n open: function (event) {\r\n var shallOpen = !this.container.classList.contains('-open');\r\n var others = document.querySelectorAll('[data-ui-component=\"mobile-menu\"].-open');\r\n\r\n Array.prototype.forEach.apply(others, [function (other) {\r\n other.classList.remove('-open');\r\n }])\r\n\r\n if (shallOpen) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.container.classList.add('-open');\r\n }\r\n },\r\n toggle: function () {\r\n this.container.classList.toggle('-open');\r\n }\r\n }\r\n\r\n return Menu\r\n\r\n}));","(function (root, factory) {\n // UMD/AMDWeb module bolierplate: https://github.com/umdjs/umd/blob/master/templates/amdWeb.js\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define('MobileSubmenu', [], factory);\n } else {\n // Browser globals\n root.MobileSubmenu = factory();\n }\n}(typeof self !== 'undefined' ? self : this, function () {\n 'use strict';\n\n function Menu(element) {\n this.container = element;\n if (!this.container) return;\n\n this.button = this.container.querySelector('.title');\n\n if (!this.button) return;\n\n this.open = this.open.bind(this);\n this.close = this.close.bind(this);\n this.toggle = this.toggle.bind(this);\n this.enableSticky = this.enableSticky.bind(this);\n this.disableSticky = this.disableSticky.bind(this);\n this.watchSticky = this.watchSticky.bind(this);\n\n this.button.addEventListener('click', this.toggle);\n document.addEventListener('click', this.close);\n\n this.container.addEventListener('click', function (event) {\n event.stopPropagation();\n });\n\n this.watchSticky();\n\n window.addEventListener('resize', this.watchSticky);\n }\n\n Menu.prototype = {\n watchSticky: function () {\n if (this.container.clientHeight > window.innerHeight - 144) {\n return this.disableSticky();\r\n }\n\n if (window.innerWidth > 1100) {\r\n this.enableSticky();\r\n } else {\r\n this.disableSticky();\r\n }\r\n },\n enableSticky: function () {\n var width = this.container.clientWidth;\n this.container.style.width = width + 'px';\n this.container.style.position = 'fixed';\n },\n disableSticky: function () {\n this.container.style.width = null;\r\n this.container.style.position = null;\r\n },\n open: function (event) {\n if (event && typeof (event.stopPropagation) === 'function') {\n event.stopPropagation();\n }\n\n this.container.classList.add('-open');\n },\n close: function (event) {\n if (event && typeof (event.stopPropagation) === 'function') {\n event.stopPropagation();\n }\n this.container.classList.remove('-open');\n },\n toggle: function (event) {\n if (event && typeof (event.stopPropagation) === 'function') {\n event.stopPropagation();\n }\n\n this.container.classList.toggle('-open');\n }\n }\n\n return Menu\n\n}));","; (function (root, factory) {\r\n // UMD/AMDWeb module bolierplate: https://github.com/umdjs/umd/blob/master/templates/amdWeb.js\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define('AlertMessage', ['Hammer'], factory);\r\n } else {\r\n // Browser globals\r\n root.AlertMessage = factory(Hammer);\r\n }\r\n}(typeof self !== 'undefined' ? self : this, function (Hammer) {\r\n 'use strict';\r\n\r\n var DEFAULTS = {\r\n type: 'MESSAGE',\r\n id: null,\r\n autofade: false,\r\n dismissable: false,\r\n ondismiss: null\r\n }\r\n\r\n function AlertMessage(element, options) {\r\n this.defaults = {};\r\n this.container = element;\r\n this.hammer = (typeof (Hammer) !== 'undefined') ? new Hammer(element) : null;\r\n this.dismissleft = this.dismissleft.bind(this);\r\n this.dismissright = this.dismissright.bind(this);\r\n this.fade = this.fade.bind(this);\r\n this.ontransition = this.ontransition.bind(this);\r\n this.ondismiss = this.ondismiss.bind(this);\r\n this.setup = this.setup.bind(this);\r\n this.setup(options);\r\n this.container.addEventListener('transitionend', this.ontransition);\r\n\r\n if (this.defaults.autofade) {\r\n window.setTimeout(this.fade, this.defaults.autofade);\r\n }\r\n\r\n if (this.defaults.dismissable) {\r\n var button = this.container.querySelector('[data-dismiss]');\r\n button.addEventListener('click', this.fade);\r\n }\r\n }\r\n \r\n AlertMessage.prototype = {\r\n defaults: {},\r\n dismissleft: function () {\r\n this.container.classList.add('-dismissright');\r\n this.ondismiss()\r\n },\r\n dismissright: function () {\r\n this.container.classList.add('-dismissleft');\r\n this.ondismiss()\r\n },\r\n fade: function () {\r\n this.container.classList.add('-fade');\r\n this.ondismiss()\r\n },\r\n ondismiss: function () {\r\n if (typeof (this.__ondismissFn) === 'function') {\r\n this.__ondismissFn.apply(this, [this.defaults.type, this.container, this.defaults.id])\r\n }\r\n },\r\n ontransition: function (event) {\r\n if (event.target != this.container) return;\r\n if (this.defaults.autofade || this.defaults.dismissable) {\r\n this.container.removeEventListener('transitionend', this.ontransition);\r\n this.container.parentElement.removeChild(this.container);\r\n }\r\n },\r\n setup: function (options) {\r\n // read options\r\n for (var opt in DEFAULTS) {\r\n this.defaults[opt] = (typeof (this.defaults[opt]) !== 'undefined') ? this.defaults[opt] : DEFAULTS[opt];\r\n if (typeof (this.container.dataset[opt]) !== 'undefined') this.defaults[opt] = this.container.dataset[opt];\r\n if (options && typeof (options[opt]) !== 'undefined') this.defaults[opt] = options[opt];\r\n }\r\n\r\n this.defaults.autofade = isNaN(parseInt(this.defaults.autofade)) ? false : parseInt(this.defaults.autofade);\r\n this.defaults.dismissable = this.defaults.dismissable && (this.defaults.dismissable === \"true\" || this.defaults.dismissable === true);\r\n\r\n try {\r\n if (eval(this.defaults.ondismiss) && typeof (eval(this.defaults.ondismiss) === 'function')) {\r\n this.__ondismissFn = eval(this.defaults.ondismiss)\r\n }\r\n } catch (err) {\r\n console.warn(err);\r\n this.defaults.ondismiss = null;\r\n }\r\n\r\n if (this.hammer && this.defaults.dismissable) {\r\n this.hammer.get('swipe').set({ direction: Hammer.DIRECTION_HORIZONTAL });\r\n this.hammer.on('swipeleft', this.dismissleft);\r\n this.hammer.on('swiperight', this.dismissright);\r\n }\r\n }\r\n }\r\n\r\n return AlertMessage;\r\n}));","; (function (root, factory) {\r\n // UMD/AMDWeb module bolierplate: https://github.com/umdjs/umd/blob/master/templates/amdWeb.js\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define('AccordionMenu', [], factory);\r\n } else {\r\n // Browser globals\r\n root.AccordionMenu = factory();\r\n }\r\n}(typeof self !== 'undefined' ? self : this, function () {\r\n 'use strict';\r\n\r\n function Accordion(element) {\r\n this.container = element;\r\n this.items = this.container.querySelectorAll('[data-item]');\r\n this.toggles = this.container.querySelectorAll('[data-toggle]');\r\n\r\n this.expand = this.expand.bind(this);\r\n this.collapse = this.collapse.bind(this);\r\n\r\n Array.prototype.forEach.apply(this.toggles, [function (item) {\r\n item.addEventListener('click', this.expand);\r\n }, this]);\r\n }\r\n\r\n Accordion.prototype = {\r\n expand: function (event) {\r\n var collapsed = event.target.parentElement.getAttribute('aria-expanded') === 'false';\r\n if (!collapsed) return this.collapse();\r\n\r\n this.collapse();\r\n event.target.parentElement.setAttribute('aria-expanded', collapsed ? true : false);\r\n },\r\n collapse: function () {\r\n Array.prototype.forEach.apply(this.items, [function (item) {\r\n item.setAttribute('aria-expanded', false);\r\n }]);\r\n }\r\n }\r\n\r\n return Accordion;\r\n}));","; (function (root, factory) {\r\n // UMD/AMDWeb module bolierplate: https://github.com/umdjs/umd/blob/master/templates/amdWeb.js\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define('CowardForm', ['ModalWindow', 'jQuery'], factory);\r\n } else {\r\n // Browser globals\r\n root.CowardForm = factory(root.ModalWindow, root.jQuery);\r\n }\r\n}(typeof self !== 'undefined' ? self : this, function (Modal, $) {\r\n 'use strict';\r\n\r\n function Form(element) {\r\n if (element.tagName !== 'FORM') {\r\n throw new TypeError('Coward Form component expects a FORM element, got ' + element.tagName + ' instead')\r\n }\r\n\r\n this.container = element;\r\n this.confirm = this.container.querySelector('[data-confirm]');\r\n this.cancel = this.container.querySelector('[data-cancel]')\r\n\r\n if (!this.confirm || !this.cancel) return;\r\n\r\n var modal = this.container.querySelector('[data-modal]');\r\n\r\n if (modal) {\r\n this.modal = new Modal(modal);\r\n }\r\n\r\n this.onsubmit = this.onsubmit.bind(this);\r\n this.onconfirm = this.onconfirm.bind(this);\r\n this.oncancel = this.oncancel.bind(this);\r\n\r\n this.container.addEventListener('submit', this.onsubmit);\r\n this.confirm.addEventListener('click', this.onconfirm);\r\n this.cancel.addEventListener('click', this.oncancel);\r\n }\r\n\r\n Form.prototype = {\r\n onsubmit: function (event) {\r\n event.preventDefault();\r\n\r\n if (typeof ($) === 'function' && typeof($.fn.validate) === 'function') {\r\n if (!$(this.container).valid()) {\r\n return;\r\n }\r\n }\r\n\r\n if (this.modal) this.modal.open();\r\n },\r\n onconfirm: function (event) {\r\n event.preventDefault();\r\n this.container.submit(event);\r\n },\r\n oncancel: function (event) {\r\n event.preventDefault();\r\n if (this.modal) {\r\n this.modal.close();\r\n }\r\n }\r\n }\r\n\r\n return Form;\r\n}));","; (function (root, factory) {\r\n // UMD/AMDWeb module bolierplate: https://github.com/umdjs/umd/blob/master/templates/amdWeb.js\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define('FileUpload', ['jQuery'], factory);\r\n } else {\r\n // Browser globals\r\n root.FileUpload = factory(root.jQuery);\r\n }\r\n}(typeof self !== 'undefined' ? self : this, function ($) {\r\n 'use strict';\r\n\r\n function FileUpload(element, options) {\r\n this.container = element;\r\n this.container.classList.remove('-no-js');\r\n this.input = this.container.querySelector('input[type=\"file\"]');\r\n this.button = this.container.querySelector('.uploadbutton');\r\n this.preview = this.container.querySelector('.filename');\r\n this.filenametext = this.container.querySelector('.filename .text');\r\n this.resetbutton = this.container.querySelector('.reset');\r\n\r\n this.handleFocus = this.handleFocus.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.reset = this.reset.bind(this);\r\n\r\n this.input.addEventListener('focus', this.handleFocus);\r\n this.input.addEventListener('change', this.handleChange);\r\n this.resetbutton.addEventListener('click', this.reset);\r\n }\r\n\r\n FileUpload.prototype = {\r\n handleChange: function (event) {\r\n this.preview.classList.add('-has-file');\r\n\r\n var filename = '';\r\n\r\n if (this.input.files.length > 1) {\r\n filename = this.input.files.length + ' files';\r\n }\r\n else {\r\n filename = this.input.value.split(/(\\\\|\\/)/g).pop();\r\n }\r\n this.filenametext.innerText = filename ;\r\n },\r\n handleFocus: function (event) { \r\n this.button.focus();\r\n },\r\n reset: function () {\r\n var $input = $(this.input);\r\n $input.wrap('
').closest('form').get(0).reset();\r\n $input.unwrap();\r\n this.filenametext.innerText = '';\r\n this.preview.classList.remove('-has-file');\r\n $(this.input).change();\r\n }\r\n }\r\n\r\n return FileUpload;\r\n\r\n }));\r\n","; (function (root, factory) {\r\n // UMD/AMDWeb module bolierplate: https://github.com/umdjs/umd/blob/master/templates/amdWeb.js\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define('LotZoom', ['jQuery'], factory);\r\n } else {\r\n // Browser globals\r\n root.LotZoom = factory(jQuery);\r\n }\r\n}(typeof self !== 'undefined' ? self : this, function ($) {\r\n 'use strict';\r\n\r\n if (typeof ($) !== 'function') return;\r\n if (typeof ($.zoom) !== 'function') return;\r\n\r\n function LotZoom(container) {\r\n this.container = container;\r\n this.$preview = $(this.container).find('.preview');\r\n this.$thumbs = $(this.container).find('.thumb');\r\n\r\n this.onclick = this.onclick.bind(this);\r\n this.onload = this.onload.bind(this);\r\n this.create = this.create.bind(this);\r\n this.destroy = this.destroy.bind(this);\r\n\r\n this.$preview.addClass('-loading');\r\n this.$thumbs.on('click', this.onclick);\r\n this.$thumbs.first().trigger('click');\r\n }\r\n\r\n LotZoom.prototype = {\r\n onclick: function (event) {\r\n var $this = $(event.target);\r\n if ($this.hasClass('-current')) return;\r\n this.$thumbs.each(function () {\r\n $(this).removeClass('-current');\r\n });\r\n $this.addClass('-current');\r\n this.destroy();\r\n this.create($this.attr('data-img-src'));\r\n },\r\n onload: function (event) {\r\n var img = event.target;\r\n this.$preview.removeClass('-loading');\r\n\r\n if (img.naturalWidth > this.$preview.width() || img.naturalHeight > this.$preview.height()) {\r\n this.$preview.zoom();\r\n this.$preview.addClass('-zoom-in');\r\n }\r\n },\r\n create: function (src) {\r\n if (!src) return;\r\n if (!this.$preview.hasClass('-loading')) return;\r\n this.$preview.find('img').remove();\r\n\r\n src += '?t=' + new Date().getTime();\r\n\r\n var $img = $('\"\"');\r\n $img.attr('src', src);\r\n\r\n $img.one('load', this.onload);\r\n\r\n this.$preview.append($img);\r\n },\r\n destroy: function () {\r\n this.$preview.trigger('zoom.destroy');\r\n this.$preview.removeClass('-zoom-in');\r\n this.$preview.addClass('-loading');\r\n }\r\n }\r\n\r\n return LotZoom;\r\n}));","(function (root, factory) {\r\n // UMD/AMDWeb module bolierplate: https://github.com/umdjs/umd/blob/master/templates/amdWeb.js\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define('PaginationSelect', factory);\r\n } else {\r\n // Browser globals\r\n root.PaginationSelect = factory();\r\n }\r\n}(typeof self !== 'undefined' ? self : this, function () {\r\n 'use strict';\r\n\r\n function Select(element) {\r\n this.container = element;\r\n\r\n if (!this.container) return;\r\n\r\n this.form = this.container.querySelector('form');\r\n this.select = this.container.querySelector('select');\r\n\r\n if (!this.form || !this.select) return;\r\n\r\n this.onchange = this.onchange.bind(this);\r\n this.select.addEventListener('change', this.onchange);\r\n\r\n this.container.classList.remove('-no-js');\r\n }\r\n\r\n Select.prototype = {\r\n onchange: function (event) {\r\n var value = this.select.value;\r\n var pattern = this.container.dataset.urlPattern; // data-url-pattern\r\n\r\n if (!pattern) {\r\n return this.form.submit();\r\n }\r\n\r\n var match = (pattern.match('[[' + this.select.name + ']]'));\r\n\r\n if (!match) {\r\n return this.form.submit();\r\n }\r\n\r\n window.location = pattern.replace('[[' + this.select.name + ']]', value);\r\n }\r\n }\r\n\r\n return Select;\r\n}));","; (function (root, factory) {\r\n // UMD/AMDWeb module bolierplate: https://github.com/umdjs/umd/blob/master/templates/amdWeb.js\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define('UpdateTable', ['jQuery', 'AlertMessage', 'ModalWindow'], factory);\r\n } else {\r\n // Browser globals\r\n root.UpdateTable = factory(jQuery, AlertMessage, ModalWindow);\r\n }\r\n}(typeof self !== 'undefined' ? self : this, function ($, AlertMessage, ModalWindow) {\r\n 'use strict';\r\n\r\n var instance;\r\n\r\n /**\r\n * Crea un riferimento agli elementi da aggiornare\r\n * @private\r\n * @param {string} scope Id della tabella da aggiornare\r\n */\r\n function setAjaxScope(element) {\r\n resetAjaxScope.apply(this);\r\n this.current = element;\r\n if (!this.current) return;\r\n this.$current = $(this.current);\r\n this.scopeId = this.$current.data('ajax-scope') ? this.$current.data('ajax-scope').replace('#','') : null;\r\n if (!this.scopeId) return;\r\n this.$ajaxScope = $('[data-ajax-table=\"' + this.scopeId + '\"]');\r\n this.$ajaxContainer = $('[data-ajax-container=\"' + this.scopeId + '\"]');\r\n this.$ajaxMessages = $('[data-ajax-messages=\"' + this.scopeId + '\"]');\r\n this.$modal = this.$ajaxScope.find('.arsv-modal-window[data-ajax-scope=\"' + this.scopeId + '\"], .avcb-modal-window[data-ajax-scope=\"' + this.scopeId + '\"]');\r\n\r\n if (this.$modal.length) {\r\n var confirmationRequestMessage = this.$current.data('confirm-message');\r\n var onDeletedMessage = this.$current.data('ondeleted-message');\r\n this.modal = new ModalWindow(this.$modal[0]);\r\n this.$modal.find('.message').html(confirmationRequestMessage);\r\n this.$modal.find('[data-ajax-action=\"confirm\"]').bind('click', this.send);\r\n this.$modal.find('[data-ajax-action=\"cancel\"]').bind('click', handleCancel.bind(this));\r\n }\r\n }\r\n\r\n /**\r\n * Azzera tutti i riferimenti agli elementi da aggiornare\r\n * @private\r\n */\r\n function resetAjaxScope() {\r\n this.current = null;\r\n this.$current = null;\r\n this.$ajaxScope = null;\r\n this.$ajaxContainer = null;\r\n this.$ajaxMessages = null;\r\n this.$modal = null;\r\n this.modal = null;\r\n this.requestTime = null;\r\n this.scopeId = null;\r\n }\r\n\r\n /**\r\n * Mostra in UI il messaggio di errore restituito dal server\r\n * @private\r\n * @param {any} response\r\n */\r\n function handleErrors(response) {\r\n this.$ajaxScope.removeClass('-loading');\r\n this.$ajaxMessages.html(errorMessage(\"\", response.statusText));\r\n }\r\n\r\n /**\r\n * Crea un alert di errore utilizzando un template ErrorMessage. Se non trova il template stampa in console\r\n * @private\r\n * @param {any} title \r\n * @param {any} messageText\r\n * @returns {HTMLElement} Elemento alert\r\n */\r\n function errorMessage(title, messageText) {\r\n var messageContainer = document.getElementById('errorMessageTemplate');\r\n if (!messageContainer) return console.warn(messageText);\r\n var msg = messageContainer.firstElementChild;\r\n if (msg.querySelector('.title')) {\r\n if (title && title.length > 0) {\r\n msg.querySelector('.title').innerHTML = title;\r\n } else {\r\n msg.querySelector('.title').parentElement.removeChild(msg.querySelector('.title'));\r\n }\r\n }\r\n if (msg.querySelector('.content')) msg.querySelector('.content').innerHTML = messageText;\r\n\r\n var msg = new AlertMessage(msg);\r\n\r\n return msg.container;\r\n }\r\n\r\n function updateContent(data) {\r\n this.$ajaxScope.removeClass('-loading');\r\n var $data = $(data);\r\n var $content = $data.find('#' + this.scopeId);\r\n var $messages = $data.find('[data-ajax-messages=\"' + this.scopeId + '\"]');\r\n\r\n var $cur = $('[data-ajax-scope=\"' + this.scopeId + '\"][rel=\"next\"]');\r\n var $next = $data.find('[data-ajax-scope=\"' + this.scopeId + '\"][rel=\"next\"]');\r\n $cur.parent().append($next);\r\n $cur.remove();\r\n\r\n if (this.$ajaxScope.hasClass('-empty') && $content.children().length != 0) {\r\n this.$ajaxScope.removeClass('-empty');\r\n }\r\n\r\n if (!this.$ajaxScope.hasClass('-empty') && $content.children().length == 0) {\r\n this.$ajaxScope.addClass('-empty');\r\n }\r\n\r\n if (this.$current.attr('rel') == 'next') {\r\n this.$ajaxContainer.append($content.children());\r\n } else {\r\n this.$ajaxMessages.html('');\r\n this.$ajaxMessages.html($messages.children());\r\n this.$ajaxMessages.find('[data-ui-component=\"alert-message\"]').each(function () {\r\n new AlertMessage(this);\r\n });\r\n this.$ajaxContainer.html($content.children());\r\n }\r\n resetAjaxScope.apply(this);\r\n }\r\n\r\n function handleResponse(data) {\r\n var update = updateContent.bind(this);\r\n\r\n var responseTime = new Date().getTime();\r\n if (responseTime - this.requestTime > this.wait) {\r\n update(data);\r\n } else {\r\n var timeout = this.wait - (responseTime - this.requestTime);\r\n window.setTimeout(function () {\r\n update(data);\r\n }, timeout);\r\n }\r\n }\r\n\r\n function handleCancel() {\r\n this.modal.close();\r\n this.$modal.find('[data-ajax-action=\"confirm\"]').unbind('click', this.send);\r\n }\r\n\r\n function sendRequest() {\r\n if (!this.scopeId) return;\r\n var action = this.$current.attr('action') || this.$current.attr('href');\r\n var method = this.$current.attr('method') ? this.$current.attr('method').toLowerCase() : 'get';\r\n this.requestTime = new Date().getTime();\r\n if(this.$current.attr('rel') != 'next') this.$ajaxScope.addClass('-loading');\r\n $[method](action, this.$current.serialize(), handleResponse.bind(this)).fail(handleErrors.bind(this));\r\n\r\n if (this.modal) this.modal.close();\r\n if (this.$modal && this.$modal.length) {\r\n this.$modal.find('[data-ajax-action=\"confirm\"]').unbind('click', this.send);\r\n }\r\n }\r\n\r\n function UpdateTable() {\r\n this.wait = 1000;\r\n this.addRow = this.addRow.bind(this);\r\n this.deleteRow = this.deleteRow.bind(this);\r\n this.filter = this.filter.bind(this);\r\n this.loadMore = this.loadMore.bind(this);\r\n this.send = sendRequest.bind(this);\r\n }\r\n\r\n UpdateTable.prototype = {\r\n addRow: function (event, thisarg) {\r\n setAjaxScope.apply(this, [thisarg]);\r\n if (!this.scopeId) return;\r\n event.preventDefault();\r\n this.send();\r\n },\r\n deleteRow: function (event, thisarg) {\r\n setAjaxScope.apply(this, [thisarg]);\r\n if (!this.scopeId) return;\r\n event.preventDefault();\r\n this.modal.open();\r\n },\r\n filter: function (event, thisarg) {\r\n setAjaxScope.apply(this, [thisarg]);\r\n if (!this.scopeId) return;\r\n event.preventDefault();\r\n this.send();\r\n },\r\n loadMore: function (event, thisarg) {\r\n setAjaxScope.apply(this, [thisarg]);\r\n if (!this.scopeId) return;\r\n event.preventDefault();\r\n this.send();\r\n }\r\n }\r\n\r\n if (!instance) instance = new UpdateTable();\r\n\r\n return instance;\r\n\r\n}));","(function () {\r\n 'use strict';\r\n\r\n if (document.readyState === 'interactive') {\r\n setup();\r\n } else {\r\n document.addEventListener('DOMContentLoaded', setup)\r\n }\r\n\r\n function loadComponent(componentName, Fn) {\r\n try {\r\n if (typeof (window.components) === 'undefined') window.components = {};\r\n window.components[componentName] = [];\r\n var elements = document.querySelectorAll('[data-ui-component=\"' + componentName + '\"]');\r\n\r\n Array.prototype.forEach.apply(elements, [function (el) {\r\n window.components[componentName].push(new Fn(el));\r\n }]);\r\n } catch (err) {\r\n console.warn(err);\r\n }\r\n return;\r\n }\r\n\r\n function setup() {\r\n window.components = {};\r\n\r\n var bottomDrawer = document.querySelector('[data-ui-component=\"bottom-drawer\"]');\r\n\r\n if (bottomDrawer) {\r\n document.addEventListener('click', function (event) {\r\n bottomDrawer.classList.remove('-open');\r\n });\r\n\r\n bottomDrawer.addEventListener('click', function (event) {\r\n event.stopPropagation();\r\n bottomDrawer.classList.toggle('-open');\r\n });\r\n }\r\n\r\n loadComponent('accordion-menu', AccordionMenu);\r\n //loadComponent('ajax-search', AjaxSearch);\r\n loadComponent('alert-message', AlertMessage);\r\n //loadComponent('favourite-button', FavouriteButton);\r\n loadComponent('file-upload', FileUpload);\r\n loadComponent('coward-form', CowardForm);\r\n //loadComponent('rich-editor', RichEditor);\r\n loadComponent('modal-window', ModalWindow);\r\n loadComponent('pagination-select', PaginationSelect);\r\n loadComponent('simple-carousel', SimpleCarousel);\r\n //loadComponent('top-drawer', TopDrawer);\r\n loadComponent('lot-zoom', LotZoom);\r\n loadComponent('mobile-menu', MobileMenu);\r\n loadComponent('mobile-submenu', MobileSubmenu);\r\n //loadComponent('list-slider', ListSlider);\r\n\r\n window.loadMore = UpdateTable.loadMore;\r\n }\r\n\r\n})();\r\n"]}