{"version":3,"sources":["page/addtocalendar.js"],"names":["$","document","ready","d","w","window","atc_url","atc_version","Array","indexOf","prototype","obj","i","l","this","length","map","f","result","push","isArray","Object","toString","call","isFunc","decodeHtmlEntity","str","DOMParser","parseFromString","body","textContent","getCustomOffsetAttribute","getElementsByClassName","innerHTML","done","old","inited","loaded","queue","go","setTimeout","j","k","ie","b","doScroll","addEventListener","removeEventListener","attachEvent","readyState","detachEvent","callback","frameElement","onload","e","check","addtocalendar","start","languages","de","en","es","fi","fr","hi","in","ja","ko","pt","ru","sv","uk","zh","calendar_urls","loadSettings","element","settings","language","show-list-on","calendars","secure","on-button-click","on-calendar-click","option","pname","eattr","getAttribute","replace","split","fn","eval","load","calendarsUrl","iCalendar","Google Calendar","Outlook","Outlook Online","Yahoo! Calendar","utz","dom","getElementsByTagName","tagnum","tag_class","className","protocol","location","tag_id","id","atc_button_title","user_lang","navigator","substr","browserLanguage","hasOwnProperty","url_parameters","addtocalendar_div","event_number","varnum","param_name","param_value","console","log","encodeURIComponent","atcb_link_id_val","atcb_list","createElement","atcb_link","menu_links","cnum","cal_id","test","userAgent","MSStream","join","undefined","querySelector","tabIndex","appendChild","parentNode","item_links","querySelectorAll","item_link"],"mappings":"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","file":"addtocalendar.js","sourcesContent":["$(document).ready(function() {\r\n var\r\n d = document,\r\n w = window,\r\n atc_url = '//addtocalendar.com/atc/',\r\n atc_version = '1.5';\r\n\r\n\r\n if (!Array.indexOf) {\r\n Array.prototype.indexOf = function (obj) {\r\n for (var i = 0, l = this.length; i < l; i++) {\r\n if (this[i] == obj) {\r\n return i\r\n }\r\n }\r\n return -1\r\n }\r\n }\r\n\r\n if (!Array.prototype.map) {\r\n Array.prototype.map = function (f) {\r\n var result = [];\r\n for (var i = 0, l = this.length; i < l; i++) {\r\n result.push(f(this[i]))\r\n }\r\n return result\r\n }\r\n }\r\n\r\n var isArray = function (obj) {\r\n return Object.prototype.toString.call(obj) === \"[object Array]\"\r\n };\r\n\r\n var isFunc = function (obj) {\r\n return Object.prototype.toString.call(obj) === \"[object Function]\"\r\n };\r\n var decodeHtmlEntity = function (str) {\r\n var parser = new DOMParser;\r\n var dom = parser.parseFromString(\r\n\t\t'' + str,\r\n\t\t'text/html');\r\n return dom.body.textContent;\r\n };\r\n\r\n var getCustomOffsetAttribute = function () {\r\n var elements = document.getElementsByClassName('atc_custom_offset');\r\n var requiredElement = elements[0];\r\n return requiredElement.innerHTML;\r\n };\r\n\r\n var ready = function (w, d) {\r\n var inited = false,\r\n loaded = false,\r\n queue = [],\r\n done, old;\r\n\r\n function go() {\r\n if (!inited) {\r\n if (!d.body) return setTimeout(go, 13);\r\n inited = true;\r\n if (queue) {\r\n var j, k = 0;\r\n while (j = queue[k++]) j.call(null);\r\n queue = null\r\n }\r\n }\r\n }\r\n\r\n function check() {\r\n if (loaded) return;\r\n loaded = true;\r\n if (d.readyState === \"complete\") return go();\r\n if (d.addEventListener) {\r\n d.addEventListener(\"DOMContentLoaded\", done, false);\r\n w.addEventListener(\"load\", go, false)\r\n } else {\r\n if (d.attachEvent) {\r\n d.attachEvent(\"onreadystatechange\", done);\r\n w.attachEvent(\"onload\", go);\r\n var k = false;\r\n try {\r\n k = w.frameElement == null\r\n } catch (j) {\r\n }\r\n if (b.doScroll && k) ie()\r\n } else {\r\n old = w.onload;\r\n w.onload = function (e) {\r\n old(e);\r\n go()\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (d.addEventListener) {\r\n done = function () {\r\n d.removeEventListener(\"DOMContentLoaded\", done, false);\r\n go()\r\n }\r\n } else {\r\n if (d.attachEvent) {\r\n done = function () {\r\n if (d.readyState === \"complete\") {\r\n d.detachEvent(\"onreadystatechange\", done);\r\n go()\r\n }\r\n }\r\n }\r\n }\r\n\r\n function ie() {\r\n if (inited) return;\r\n try {\r\n b.doScroll(\"left\")\r\n } catch (j) {\r\n setTimeout(ie, 1);\r\n return\r\n }\r\n go()\r\n }\r\n\r\n return function (callback) {\r\n check();\r\n if (inited) {\r\n callback.call(null)\r\n } else {\r\n queue.push(callback)\r\n }\r\n }\r\n }(w, d);\r\n\r\n if (w.addtocalendar && typeof w.addtocalendar.start == \"function\") return;\r\n if (!w.addtocalendar) w.addtocalendar = {};\r\n\r\n addtocalendar.languages = {\r\n 'de': 'In den Kalender',\r\n 'en': 'Add to Calendar',\r\n 'es': 'Añadir al Calendario',\r\n 'fi': 'Lisää kalenteriin',\r\n 'fr': 'Ajouter au calendrier',\r\n 'hi': 'कैलेंडर में जोड़ें',\r\n 'in': 'Tambahkan ke Kalender',\r\n 'ja': 'カレンダーに追加',\r\n 'ko': '캘린더에 추가',\r\n 'pt': 'Adicionar ao calendário',\r\n 'ru': 'Добавить в календарь',\r\n 'sv': 'Lägg till i kalender',\r\n 'uk': 'Додати в календар',\r\n 'zh': '添加到日历'\r\n };\r\n\r\n addtocalendar.calendar_urls = {}\r\n\r\n addtocalendar.loadSettings = function (element) {\r\n var settings = {\r\n 'language': 'auto',\r\n 'show-list-on': 'click',\r\n 'calendars': [\r\n 'iCalendar',\r\n 'Google Calendar',\r\n 'Outlook',\r\n 'Outlook Online',\r\n 'Yahoo! Calendar'\r\n ],\r\n 'secure': 'auto',\r\n 'on-button-click': function () {\r\n },\r\n 'on-calendar-click': function () {\r\n }\r\n };\r\n\r\n for (var option in settings) {\r\n var pname = 'data-' + option;\r\n var eattr = element.getAttribute(pname);\r\n if (eattr != null) {\r\n\r\n if (isArray(settings[option])) {\r\n settings[option] = eattr.replace(/\\s*,\\s*/g, ',').replace(/^\\s+|\\s+$/g, '').split(',');\r\n continue;\r\n }\r\n\r\n if (isFunc(settings[option])) {\r\n var fn = window[eattr];\r\n if (isFunc(fn)) {\r\n settings[option] = fn;\r\n } else {\r\n settings[option] = eval('(function(mouseEvent){' + eattr + '})');\r\n }\r\n continue;\r\n }\r\n\r\n settings[option] = element.getAttribute(pname);\r\n }\r\n }\r\n\r\n return settings;\r\n };\r\n\r\n addtocalendar.load = function () {\r\n\r\n var calendarsUrl = {\r\n 'iCalendar': 'ical',\r\n 'Google Calendar': 'google',\r\n 'Outlook': 'outlook',\r\n 'Outlook Online': 'outlookonline',\r\n 'Yahoo! Calendar': 'yahoo'\r\n };\r\n var utz = getCustomOffsetAttribute();\r\n\r\n var languages = addtocalendar.languages;\r\n\r\n var dom = document.getElementsByTagName('*');\r\n for (var tagnum = 0; tagnum < dom.length; tagnum++) {\r\n var tag_class = dom[tagnum].className;\r\n\r\n if (tag_class.length && tag_class.split(\" \").indexOf('addtocalendar') != -1) {\r\n\r\n var settings = addtocalendar.loadSettings(dom[tagnum]);\r\n\r\n var protocol = 'http:';\r\n if (settings['secure'] == 'auto') {\r\n protocol = location.protocol == 'https:' ? 'https:' : 'http:';\r\n } else if (settings['secure'] == 'true') {\r\n protocol = 'https:';\r\n }\r\n\r\n var tag_id = dom[tagnum].id;\r\n var atc_button_title = languages['en'];\r\n if (settings['language'] == 'auto') {\r\n var user_lang = \"no_lang\";\r\n if (typeof navigator.language === \"string\") {\r\n user_lang = navigator.language.substr(0, 2)\r\n } else if (typeof navigator.browserLanguage === \"string\") {\r\n user_lang = navigator.browserLanguage.substr(0, 2)\r\n }\r\n\r\n if (languages.hasOwnProperty(user_lang)) {\r\n atc_button_title = languages[user_lang];\r\n }\r\n } else if (languages.hasOwnProperty(settings['language'])) {\r\n atc_button_title = languages[settings['language']];\r\n }\r\n\r\n var url_parameters = [\r\n 'utz=' + utz,\r\n 'uln=' + navigator.language,\r\n 'vjs=' + atc_version\r\n ];\r\n\r\n var addtocalendar_div = dom[tagnum].getElementsByTagName('var');\r\n var event_number = -1;\r\n for (var varnum = 0; varnum < addtocalendar_div.length; varnum++) {\r\n var param_name = addtocalendar_div[varnum].className.replace(\"atc_\", \"\").split(\" \")[0];\r\n var param_value = decodeHtmlEntity(addtocalendar_div[varnum].innerHTML);\r\n console.log('param_value: ' + param_value);\r\n console.log('encodeURIComponent(param_value) : ' + encodeURIComponent(param_value));\r\n if (param_name == 'event') {\r\n event_number++;\r\n continue;\r\n }\r\n\r\n if (param_name == addtocalendar_div[varnum].className) {\r\n if (param_name == 'atc-body') {\r\n atc_button_title = param_value;\r\n }\r\n continue;\r\n }\r\n\r\n if (event_number == -1) {\r\n continue;\r\n }\r\n\r\n url_parameters.push('e[' + event_number + '][' + param_name + ']' + '=' + encodeURIComponent(param_value));\r\n\r\n }\r\n\r\n\r\n var atcb_link_id_val = (tag_id == '' ? '' : (tag_id + '_link'));\r\n var atcb_list = document.createElement('ul');\r\n atcb_list.className = 'atcb-list';\r\n\r\n var menu_links = '';\r\n for (var cnum in settings['calendars']) {\r\n if (!calendarsUrl.hasOwnProperty(settings['calendars'][cnum])) {\r\n continue;\r\n }\r\n var cal_id = calendarsUrl[settings['calendars'][cnum]];\r\n var atcb_cal_link_id = (tag_id == '' ? '' : ('id=\"' + tag_id + '_' + cal_id + '_link\"'));\r\n menu_links += '
  • ' + settings['calendars'][cnum] + '
  • ';\r\n }\r\n atcb_list.innerHTML = menu_links;\r\n\r\n var atcb_link;\r\n if (dom[tagnum].querySelector('.atcb-link') == undefined) {\r\n atcb_link = document.createElement('a');\r\n atcb_link.className = 'atcb-link';\r\n atcb_link.innerHTML = atc_button_title;\r\n atcb_link.id = atcb_link_id_val;\r\n atcb_link.tabIndex = 1;\r\n\r\n dom[tagnum].appendChild(atcb_link);\r\n dom[tagnum].appendChild(atcb_list);\r\n } else {\r\n atcb_link = dom[tagnum].querySelector('.atcb-link');\r\n atcb_link.parentNode.appendChild(atcb_list);\r\n atcb_link.tabIndex = 1;\r\n if (atcb_link.id == '') {\r\n atcb_link.id = atcb_link_id_val;\r\n }\r\n }\r\n\r\n if (atcb_link.addEventListener) {\r\n atcb_link.addEventListener('click', settings['on-button-click'], false);\r\n } else {\r\n atcb_link.attachEvent('onclick', settings['on-button-click']);\r\n }\r\n\r\n var item_links = dom[tagnum].querySelectorAll('atcb-item-link');\r\n\r\n for (var varnum = 0; varnum < item_links.length; varnum++) {\r\n var item_link = item_links[varnum];\r\n if (item_link.addEventListener) {\r\n item_link.addEventListener('click', settings['on-calendar-click'], false);\r\n } else {\r\n item_link.attachEvent('onclick', settings['on-calendar-click']);\r\n }\r\n\r\n }\r\n }\r\n }\r\n };\r\n addtocalendar.load();\r\n});"]}