PageSourceSearch

https://www.granadatapastours.com/wp-content/plugins/easy-booked/assets/js/calendar.js?ver=2.4.11

js granadatapastours.com collected 2026-10-04 13:28:52 UTC 82,927 bytes, 1,633 lines download raw bytes

1/**
2 * @return {undefined}
3 */
4function abs_add_to_calendar() {
5    /**
6     * @param {string} id
7     * @return {?}
8     */
9    function $(id) {
10        return document.getElementById(id);
11    }
12    var self = function() {
13        var e;
14        var t;
15        var midInPackage;
16        var o;
17        var conflict;
18        var hoverElement;
19        var tref;
20        var going;
21        /** @type {boolean} */
22        var r = false;
23        /** @type {number} */
24        var uuid = 1;
25        /** @type {boolean} */
26        var files_list = false;
27        /** @type {boolean} */
28        var p = true;
29        /** @type {boolean} */
30        var u = false;
31        /** @type {boolean} */
32        var v = false;
33        /** @type {boolean} */
34        var m = false;
35        /** @type {number} */
36        var zIndex = 1;
37        /** @type {string} */
38        var fragment = "";
39        /** @type {boolean} */
40        var xmlDoc = true;
41        /** @type {boolean} */
42        var show = true;
43        /** @type {boolean} */
44        var w = true;
45        /** @type {boolean} */
46        var disabled = true;
47        /** @type {boolean} */
48        var k = true;
49        /** @type {boolean} */
50        var y = true;
51        /** @type {string} */
52        var dataText = "Apple Calendar";
53        /** @type {string} */
54        var error = "Google <em>(online)</em>";
55        /** @type {string} */
56        var text = "Outlook";
57        /** @type {string} */
58        var result = "Outlook.com <em>(online)</em>";
59        /** @type {string} */
60        var txt = "Yahoo <em>(online)</em>";
61        /** @type {string} */
62        var textValue = "Facebook Event";
63        /** @type {null} */
64        var callback = null;
65        /** @type {null} */
66        var msg = null;
67        /** @type {null} */
68        var fn = null;
69        /** @type {null} */
70        var _fn = null;
71        /** @type {null} */
72        var requestFrame = null;
73        /** @type {null} */
74        var realTrigger = null;
75        /** @type {boolean} */
76        var M = false;
77        return{
78            /**
79             * @return {undefined}
80             */
81            initialize : function() {
82                if (!r) {
83                    /** @type {boolean} */
84                    r = true;
85                    try {
86                        addeventasync();
87                    } catch (e) {
88                    }
89                    /** @type {string} */
90                    t = (e = "https:") + "//" + (midInPackage = "addevent.com");
91                    /** @type {string} */
92                    o = "undefined" != typeof SVGRect ? "https://www.addevent.com/gfx/icon-calendar-t1.svg" : "https://www.addevent.com/gfx/icon-calendar-t5.png";
93                    self.trycss();
94                    self.generate();
95                }
96            },
97            /**
98             * @return {undefined}
99             */
100            generate : function() {
101                /** @type {NodeList} */
102                var elements = document.getElementsByTagName("*");
103                /** @type {number} */
104                var j = 0;
105                for (;j < elements.length;j += 1) {
106                    if (self.hasclass(elements[j], "addeventatc")) {
107                        (function() {
108                            var domId = "addeventatc" + uuid;
109                            elements[j].id = domId;
110                            /** @type {string} */
111                            elements[j].title = "";
112                            /** @type {string} */
113                            elements[j].style.visibility = "visible";
114                            elements[j].setAttribute("aria-haspopup", "true");
115                            elements[j].setAttribute("aria-expanded", "false");
116                            elements[j].setAttribute("tabindex", "0");
117                            if (files_list) {
118                                /**
119                                 * @return {?}
120                                 */
121                                elements[j].onclick = function() {
122                                    return false;
123                                };
124                                /**
125                                 * @return {undefined}
126                                 */
127                                elements[j].onmouseover = function() {
128                                    clearTimeout(tref);
129                                    self.toogle(this, {
130                                        type : "mouseover",
131                                        id : domId
132                                    });
133                                };
134                                /**
135                                 * @return {undefined}
136                                 */
137                                elements[j].onmouseout = function() {
138                                    /** @type {number} */
139                                    tref = setTimeout(function() {
140                                        self.mouseout(this, {
141                                            type : "mouseout",
142                                            id : domId
143                                        });
144                                    }, 100);
145                                };
146                            } else {
147                                /**
148                                 * @return {?}
149                                 */
150                                elements[j].onclick = function() {
151                                    return self.toogle(this, {
152                                        type : "click",
153                                        id : domId
154                                    }), false;
155                                };
156                                /**
157                                 * @return {undefined}
158                                 */
159                                elements[j].onmouseover = function() {
160                                };
161                                /**
162                                 * @return {undefined}
163                                 */
164                                elements[j].onmouseout = function() {
165                                };
166                            }
167                            /**
168                             * @param {Event} e
169                             * @return {undefined}
170                             */
171                            elements[j].onkeydown = function(e) {
172                                var first = e.which || e.keyCode;
173                                if (!("13" != first && ("32" != first && ("27" != first && ("38" != first && "40" != first))))) {
174                                    e.preventDefault();
175                                }
176                                if (!("13" != first && "32" != first)) {
177                                    self.keyboardclick(this, {
178                                        type : "click",
179                                        id : domId
180                                    });
181                                    self.toogle(this, {
182                                        type : "click",
183                                        id : domId,
184                                        keynav : true
185                                    });
186                                }
187                                if ("27" == first) {
188                                    self.hideandreset();
189                                }
190                                if ("38" == first) {
191                                    self.keyboard(this, {
192                                        type : "keyboard",
193                                        id : domId,
194                                        key : "up"
195                                    });
196                                }
197                                if ("40" == first) {
198                                    self.keyboard(this, {
199                                        type : "keyboard",
200                                        id : domId,
201                                        key : "down"
202                                    });
203                                }
204                                /** @type {boolean} */
205                                M = true;
206                            };
207                            /**
208                             * @return {undefined}
209                             */
210                            elements[j].onblur = function() {
211                                if (M) {
212                                    setTimeout(function() {
213                                        self.hideandreset();
214                                    }, 300);
215                                }
216                            };
217                            var el = elements[j];
218                            if ("none" != elements[j].getAttribute("data-styling") && "inline-buttons" != elements[j].getAttribute("data-render") || (p = false), p) {
219                                /** @type {Element} */
220                                var elContent = document.createElement("span");
221                                /** @type {string} */
222                                elContent.className = "addeventatc_icon";
223                                el.appendChild(elContent);
224                            }
225                            uuid++;
226                            /** @type {boolean} */
227                            u = true;
228                            var codeSegments = elements[j].getElementsByTagName("*");
229                            /** @type {number} */
230                            var i = 0;
231                            for (;i < codeSegments.length;i += 1) {
232                                if (!self.hasclass(codeSegments[i], "atc_node")) {
233                                    if ("" != codeSegments[i].className) {
234                                        codeSegments[i].className += " atc_node";
235                                    } else {
236                                        codeSegments[i].className += "atc_node";
237                                    }
238                                }
239                            }
240                            if ("inline-buttons" == elements[j].getAttribute("data-render")) {
241                                /**
242                                 * @return {undefined}
243                                 */
244                                elements[j].onclick = function() {
245                                };
246                                self.toogle(elements[j], {
247                                    type : "render",
248                                    id : domId
249                                });
250                                elements[j].setAttribute("aria-expanded", "true");
251                                elements[j].removeAttribute("tabindex");
252                                /**
253                                 * @return {undefined}
254                                 */
255                                elements[j].onkeydown = function() {
256                                };
257                                /**
258                                 * @return {undefined}
259                                 */
260                                elements[j].blur = function() {
261                                };
262                                /** @type {(HTMLElement|null)} */
263                                var element = document.getElementById(domId + "-drop");
264                                if (element) {
265                                    element.setAttribute("aria-hidden", "false");
266                                    /** @type {NodeList} */
267                                    codeSegments = element.getElementsByTagName("SPAN");
268                                    /** @type {number} */
269                                    i = 0;
270                                    for (;i < codeSegments.length;i += 1) {
271                                        codeSegments[i];
272                                        /** @type {string} */
273                                        codeSegments[i].tabIndex = "0";
274                                        /**
275                                         * @param {Event} e
276                                         * @return {undefined}
277                                         */
278                                        codeSegments[i].onkeydown = function(e) {
279                                            var first = e.which || e.keyCode;
280                                            if (!("13" != first && "32" != first)) {
281                                                e.target.click();
282                                            }
283                                        };
284                                    }
285                                }
286                            }
287                        })();
288                    }
289                }
290                zIndex = self.topzindex();
291                if (p) {
292                    self.applycss();
293                } else {
294                    self.removeelement($("ate_css"));
295                    self.removeelement($("ate_tmp_css"));
296                    self.helpercss();
297                }
298                if (u) {
299                    if (!v) {
300                        /** @type {boolean} */
301                        v = true;
302                        self.track({
303                            typ : "exposure",
304                            cal : ""
305                        });
306                    }
307                }
308            },
309            /**
310             * @param {Element} map
311             * @param {Object} e
312             * @return {?}
313             */
314            toogle : function(map, e) {
315                var id;
316                var el;
317                var name;
318                /** @type {boolean} */
319                var i = false;
320                /** @type {string} */
321                var html = "";
322                if (id = map.id, el = $(id)) {
323                    name = el.getAttribute("data-direct");
324                    var data_intel = el.getAttribute("data-intel");
325                    var data_intel_apple = el.getAttribute("data-intel-apple");
326                    if ("ios" == self.agent() && ("click" == e.type && ("true" !== data_intel_apple && ("false" !== data_intel && (name = "appleical", el.setAttribute("data-intel-apple", "true"))))), "outlook" == name || ("google" == name || ("yahoo" == name || ("hotmail" == name || ("outlookcom" == name || ("appleical" == name || ("apple" == name || "facebook" == name))))))) {
327                        if ("click" == e.type) {
328                            self.click({
329                                button : id,
330                                service : name,
331                                id : e.id
332                            });
333                            if (null != callback) {
334                                self.trigger("button_click", {
335                                    id : id
336                                });
337                            }
338                        }
339                    } else {
340                        if ("mouseover" == e.type && (hoverElement != el && (m = false)), "click" == e.type || ("render" == e.type || "mouseover" == e.type && !m)) {
341                            if ("mouseover" == e.type) {
342                                /** @type {boolean} */
343                                m = true;
344                                if (null != msg) {
345                                    self.trigger("button_mouseover", {
346                                        id : id
347                                    });
348                                }
349                            }
350                            i = self.getburl({
351                                id : id,
352                                facebook : true
353                            });
354
355                            if ("" == fragment) {
356                                /** @type {string} */
357                                fragment = "appleical,google,outlook,outlookcom,yahoo,facebook";
358                            }
359                            /** @type {Array.<string>} */
360                            var branchDataJSON = (fragment = (fragment += ",").replace(/ /gi, "")).split(",");
361                            /** @type {number} */
362                            var conditionIndex = 0;
363                            for (;conditionIndex < branchDataJSON.length;conditionIndex += 1) {
364                                if (xmlDoc && "ical" == branchDataJSON[conditionIndex] || xmlDoc && "appleical" == branchDataJSON[conditionIndex]) {
365                                    html += '<span class="ateappleical" id="' + id + '-appleical" role="menuitem">' + dataText + "</span>";
366                                }
367                                if (show) {
368                                    if ("google" == branchDataJSON[conditionIndex]) {
369                                        html += '<span class="ategoogle" id="' + id + '-google" role="menuitem">' + error + "</span>";
370                                    }
371                                }
372                                if (w) {
373                                    if ("outlook" == branchDataJSON[conditionIndex]) {
374                                        html += '<span class="ateoutlook" id="' + id + '-outlook" role="menuitem">
374' + text + "</span>";
375                                    }
376                                }
377                                if (disabled && "hotmail" == branchDataJSON[conditionIndex] || disabled && "outlookcom" == branchDataJSON[conditionIndex]) {
378                                    html += '<span class="ateoutlookcom" id="' + id + '-outlookcom" role="menuitem">' + result + "</span>";
379                                }
380                                if (k) {
381                                    if ("yahoo" == branchDataJSON[conditionIndex]) {
382                                        html += '<span class="ateyahoo" id="' + id + '-yahoo" role="menuitem">' + txt + "</span>";
383                                    }
384                                }
385                                if (i) {
386                                    if ("facebook" == branchDataJSON[conditionIndex]) {
387                                        if (y) {
388                                            if ("facebook" == branchDataJSON[conditionIndex]) {
389                                                html += '<span class="atefacebook" id="' + id + '-facebook" role="menuitem">' + textValue + "</span>";
390                                            }
391                                        }
392                                    }
393                                }
394                            }
395                            if (self.getlicense(conflict) || (html += '<em class="copyx"><em class="brx"></em><em class="frs"><a href="https://www.addevent.com" title="" tabindex="-1" id="' + id + '-home">AddEvent.com</a></em></em>'), !$(id + "-drop")) {
396                                /** @type {Element} */
397                                var node = document.createElement("span");
398                                /** @type {string} */
399                                node.id = id + "-drop";
400                                /** @type {string} */
401                                node.className = "addeventatc_dropdown";
402                                node.setAttribute("aria-hidden", "true");
403                                node.setAttribute("aria-labelledby", id);
404                                /** @type {string} */
405                                node.innerHTML = html;
406                                el.appendChild(node);
407                            }
408                            if ($(id + "-appleical")) {
409                                /**
410                                 * @return {undefined}
411                                 */
412                                $(id + "-appleical").onclick = function() {
413                                    self.click({
414                                        button : id,
415                                        service : "appleical",
416                                        id : e.id
417                                    });
418                                };
419                            }
420                            if ($(id + "-google")) {
421                                /**
422                                 * @return {undefined}
423                                 */
424                                $(id + "-google").onclick = function() {
425                                    self.click({
426                                        button : id,
427                                        service : "google",
428                                        id : e.id
429                                    });
430                                };
431                            }
432                            if ($(id + "-outlook")) {
433                                /**
434                                 * @return {undefined}
435                                 */
436                                $(id + "-outlook").onclick = function() {
437                                    self.click({
438                                        button : id,
439                                        service : "outlook",
440                                        id : e.id
441                                    });
442                                };
443                            }
444                            if ($(id + "-outlookcom")) {
445                                /**
446                                 * @return {undefined}
447                                 */
448                                $(id + "-outlookcom").onclick = function() {
449                                    self.click({
450                                        button : id,
451                                        service : "outlookcom",
452                                        id : e.id
453                                    });
454                                };
455                            }
456                            if ($(id + "-yahoo")) {
457                                /**
458                                 * @return {undefined}
459                                 */
460                                $(id + "-yahoo").onclick = function() {
461                                    self.click({
462                                        button : id,
463                                        service : "yahoo",
464                                        id : e.id
465                                    });
466                                };
467                            }
468                            if ($(id + "-facebook")) {
469                                /**
470                                 * @return {undefined}
471                                 */
472                                $(id + "-facebook").onclick = function() {
473                                    self.click({
474                                        button : id,
475                                        service : "facebook",
476                                        id : e.id
477                                    });
478                                };
479                            }
480                            if ($(id + "-home")) {
481                                /**
482                                 * @return {undefined}
483                                 */
484                                $(id + "-home").onclick = function() {
485                                    self.click({
486                                        button : id,
487                                        service : "home",
488                                        id : e.id
489                                    });
490                                };
491                            }
492                            self.show(id, e);
493                        }
494                    }
495                    return hoverElement = el, false;
496                }
497            },
498            /**
499             * @param {?} opt_attributes
500             * @return {undefined}
501             */
502            click : function(opt_attributes) {
503                var elem;
504                var a;
505                var str;
506                /** @type {string} */
507                var last = location.origin;
508                /** @type {boolean} */
509                var newWindow = true;
510                if (void 0 === location.origin && (last = location.protocol + "//" + location.host), elem = $(opt_attributes.button)) {
511                    if ("home" == opt_attributes.service) {
512                        /** @type {string} */
513                        str = "https://www.addevent.com";
514                    } else {
515                        a = self.getburl({
516                            id : opt_attributes.button,
517                            facebook : false
518                        });
519                        /** @type {string} */
520                        str = "https://www.addevent.com/create/?service=" + opt_attributes.service + a;
521                        if (!("outlook" != opt_attributes.service && "appleical" != opt_attributes.service)) {
522                            /** @type {boolean} */
523                            newWindow = false;
524                            if (self.usewebcal()) {
525                                /** @type {string} */
526                                str = "webcal://www.addevent.com/create/?uwc=on&service=" + opt_attributes.service + a;
527                            }
528                        }
529                        var id = elem.getAttribute("data-id");
530                        if (null !== id) {
531                            /** @type {string} */
532                            str = "https://www.addevent.com/event/?" + id + "+" + opt_attributes.service;
533                        }
534                    }
535                    if (!$("atecllink")) {
536                        /** @type {Element} */
537                        var node = document.createElement("a");
538                        /** @type {string} */
539                        node.id = "atecllink";
540                        /** @type {string} */
541                        node.rel = "external";
542                        node.setAttribute("data-role", "none");
543                        /** @type {string} */
544                        node.innerHTML = "{addeventatc-ghost-link}";
545                        /** @type {string} */
546                        node.style.display = "none";
547                        document.body.appendChild(node);
548                    }
549                    var el = $("atecllink");
550                    if (el.target = newWindow ? "_blank" : "_self", el.href = str, self.eclick("atecllink"), self.track({
551                        typ : "click",
552                        cal : opt_attributes.service
553                    }), null != realTrigger) {
554                        self.trigger("button_dropdown_click", {
555                            id : opt_attributes.button,
556                            service : opt_attributes.service
557                        });
558                        try {
559                            (event || window.event).stopPropagation();
560                        } catch (e) {
561                        }
562                    }
563                }
564            },
565            /**
566             * @param {?} dataAndEvents
567             * @param {Element} data
568             * @return {undefined}
569             */
570            mouseout : function(dataAndEvents, data) {
571                /** @type {boolean} */
572                m = false;
573                self.hideandreset();
574                if (null != fn) {
575                    self.trigger("button_mouseout", {
576                        id : data.id
577                    });
578                }
579            },
580            /**
581             * @param {string} id
582             * @param {Object} e
583             * @return {undefined}
584             */
585            show : function(id, e) {
586                var element = $(id);
587                var elm = $(id + "-drop");
588                if (element && elm) {
589                    if ("block" == self.getstyle(elm, "display")) {
590                        self.hideandreset();
591                    } else {
592                        self.hideandreset(true);
593                        /** @type {string} */
594                        elm.style.display = "block";
595                        /** @type {string} */
596                        element.style.outline = "0";
597                        element.style.zIndex = zIndex + 1;
598                        /** @type {string} */
599                        element.className = element.className + " addeventatc-selected";
600                        /** @type {string} */
601                        element.className = element.className.replace(/\s+/g, " ");
602                        element.setAttribute("aria-expanded", "true");
603                        elm.setAttribute("aria-hidden", "false");
604                        if (e.keynav) {
605                            self.keyboard(this, {
606                                type : "keyboard",
607                                id : id,
608                                key : "down"
609                            });
610                        }
611                        var middle = element.getAttribute("data-dropdown-x");
612                        var dir = element.getAttribute("data-dropdown-y");
613                        /** @type {string} */
614                        var direction = "auto";
615                        /** @type {string} */
616                        var right = "auto";
617                        if (null != middle) {
618                            right = middle;
619                        }
620                        if (null != dir) {
621                            direction = dir;
622                        }
623                        /** @type {string} */
624                        elm.style.left = "0px";
625                        /** @type {string} */
626                        elm.style.top = "0px";
627                        /** @type {string} */
628                        elm.style.display = "block";
629                        /** @type {number} */
630                        var currentPosition = parseInt(element.offsetHeight);
631                        /** @type {number} */
632                        var j = parseInt(element.offsetWidth);
633                        /** @type {number} */
634                        var width = parseInt(elm.offsetHeight);
635                        /** @type {number} */
636                        var length = parseInt(elm.offsetWidth);
637                        var coords = self.viewport();
638                        /** @type {number} */
639                        var low = parseInt(coords.w);
640                        /** @type {number} */
641                        var a = parseInt(coords.h);
642                        /** @type {number} */
643                        var high = parseInt(coords.x);
644                        /** @type {number} */
645                        var b = parseInt(coords.y);
646                        var cs = self.elementposition(elm);
647                        /** @type {number} */
648                        var line = parseInt(cs.x);
649                        /** @type {number} */
650                        var px = parseInt(cs.y) + width;
651                        /** @type {number} */
652                        var exponent = a + b;
653                        /** @type {number} */
654                        var l = line + length;
655                        /** @type {number} */
656                        var i = low + high;
657                        /** @type {number} */
658                        var w = 0;
659                        /** @type {number} */
660                        var position = 0;
661                        if ("down" == direction && "left" == right) {
662                            /** @type {string} */
663                            w = "0px";
664                            /** @type {string} */
665                            position = currentPosition + "px";
666                        } else {
667                            if ("up" == direction && "left" == right) {
668                                /** @type {string} */
669                                w = "0px";
670                                /** @type {string} */
671                                position = -width + "px";
672                            } else {
673                                if ("down" == direction && "right" == right) {
674                                    /** @type {string} */
675                                    w = -(length - j) + "px";
676                                    /** @type {string} */
677                                    position = currentPosition + "px";
678                                } else {
679                                    if ("up" == direction && "right" == right) {
680                                        /** @type {string} */
681                                        w = -(length - j) + "px";
682                                        /** @type {string} */
683                                        position = -width + "px";
684                                    } else {
685                                        if ("auto" == direction && "left" == right) {
686                                            /** @type {string} */
687                                            w = "0px";
688                                            /** @type {string} */
689                                            position = px > exponent ? -width + "px" : currentPosition + "px";
690                                        } else {
691                                            if ("auto" == direction && "right" == right) {
692                                                /** @type {string} */
693                                                w = -(length - j) + "px";
694                                                /** @type {string} */
695                                                position = px > exponent ? -width + "px" : currentPosition + "px";
696                                            } else {
697                                                /** @type {string} */
698                                                position = px > exponent ? -width + "px" : currentPosition + "px";
699                                                /** @type {string} */
700                                                w = l > i ? -(length - j) + "px" : "0px";
701                                            }
702                                        }
703                                    }
704                                }
705                            }
706                        }
707                        /** @type {number} */
708                        elm.style.left = w;
709                        /** @type {number} */
710                        elm.style.top = position;
711                        if ("click" == e.type) {
712                            if (null != callback) {
713                                self.trigger("button_click", {
714                                    id : id
715                                });
716                            }
717                        }
718                        if (null != _fn) {
719                            self.trigger("button_dropdown_show", {
720                                id : id
721                            });
722                        }
723                    }
724                }
725            },
726            /**
727             * @param {Object} val
728             * @return {undefined}
729             */
730            hide : function(val) {
731                /** @type {boolean} */
732                var t = false;
733                if ("string" == typeof val && "" !== val || val instanceof String && "" !== val) {
734                    if (val.indexOf("addeventatc") > -1 || val.indexOf("atc_node") > -1) {
735                        /** @type {boolean} */
736                        t = true;
737                    }
738                }
739                if (!t) {
740                    self.hideandreset();
741                }
742            },
743            /**
744             * @param {boolean} dataAndEvents
745             * @return {undefined}
746             */
747            hideandreset : function(dataAndEvents) {
748                /** @type {string} */
749                var it = "";
750                /** @type {NodeList} */
751                var els = document.getElementsByTagName("*");
752                /** @type {number} */
753                var j = 0;
754                for (;j < els.length;j += 1) {
755                    if (self.hasclass(els[j], "addeventatc")) {
756                        els[j].className = els[j].className.replace(/addeventatc-selected/gi, "");
757                        els[j].className = els[j].className.replace(/\s+$/, "");
758                        /** @type {string} */
759                        els[j].style.zIndex = "auto";
760                        /** @type {string} */
761                        els[j].style.outline = "";
762                        var ul = $(els[j].id + "-drop");
763                        if (ul) {
764                            var result = self.getstyle(ul, "display");
765                            if ("block" == result) {
766                                it = els[j].id;
767                            }
768                            /** @type {string} */
769                            ul.style.display = "none";
770                            if ("block" !== (result = self.getstyle(ul, "display"))) {
771                                els[j].setAttribute("aria-expanded", "false");
772                                ul.setAttribute("aria-hidden", "true");
773                            }
774                            var codeSegments = ul.getElementsByTagName("SPAN");
775                            /** @type {number} */
776                            var i = 0;
777                            for (;i < codeSegments.length;i += 1) {
778                                /** @type {RegExp} */
779                                var rclass = new RegExp("(\\s|^)drop_markup(\\s|$)");
780                                codeSegments[i].className = codeSegments[i].className.replace(rclass, " ");
781                                codeSegments[i].className = codeSegments[i].className.replace(/\s+$/, "");
782                            }
783                        }
784                    }
785                }
786                if (!dataAndEvents) {
787                    if (null != requestFrame) {
788                        self.trigger("button_dropdown_hide", {
789                            id : it
790                        });
791                    }
792                }
793            },
794            /**
795             * @param {Object} $scope
796             * @return {?}
797             */
798            getburl : function($scope) {
799                var tb = $($scope.id);
800                /** @type {string} */
801                var options = "";
802                /** @type {boolean} */
803                var o = false;
804                if (tb) {
805                    var codeSegments = tb.getElementsByTagName("*");
806                    /** @type {number} */
807                    var i = 0;
808                    for (;i < codeSegments.length;i += 1) {
809                        if (self.hasclass(codeSegments[i], "_start") || self.hasclass(codeSegments[i], "start")) {
810                            options += "&dstart=" + encodeURIComponent(codeSegments[i].innerHTML);
811                        }
812                        if (self.hasclass(codeSegments[i], "_end") || self.hasclass(codeSegments[i], "end")) {
813                            options += "&dend=" + encodeURIComponent(codeSegments[i].innerHTML);
814                        }
815                        if (self.hasclass(codeSegments[i], "_zonecode") || self.hasclass(codeSegments[i], "zonecode")) {
816                            options += "&dzone=" + encodeURIComponent(codeSegments[i].innerHTML);
817                        }
818                        if (self.hasclass(codeSegments[i], "_timezone") || self.hasclass(codeSegments[i], "timezone")) {
819                            options += "&dtime=" + encodeURIComponent(codeSegments[i].innerHTML);
820                        }
821                        if (self.hasclass(codeSegments[i], "_summary") || (self.hasclass(codeSegments[i], "summary") || self.hasclass(codeSegments[i], "title"))) {
822                            options += "&dsum=" + encodeURIComponent(codeSegments[i].innerHTML);
823                        }
824                        if (self.hasclass(codeSegments[i], "_description") || self.hasclass(codeSegments[i], "description")) {
825                            options += "&ddesc=" + encodeURIComponent(codeSegments[i].innerHTML);
826                        }
827                        if (self.hasclass(codeSegments[i], "_location") || self.hasclass(codeSegments[i], "location")) {
828                            options += "&dloca=" + encodeURIComponent(codeSegments[i].innerHTML);
829                        }
830                        if (self.hasclass(codeSegments[i], "_organizer") || self.hasclass(codeSegments[i], "organizer")) {
831                            options += "&dorga=" + encodeURIComponent(codeSegments[i].innerHTML);
832                        }
833                        if (self.hasclass(codeSegments[i], "_organizer_email") || self.hasclass(codeSegments[i], "organizer_email")) {
834                            options += "&dorgaem=" + encodeURIComponent(codeSegments[i].innerHTML);
835                        }
836                        if (self.hasclass(codeSegments[i], "_attendees") || self.hasclass(codeSegments[i], "attendees")) {
837                            options += "&datte=" + encodeURIComponent(codeSegments[i].innerHTML);
838                        }
839                        if (self.hasclass(codeSegments[i], "_all_day_event") || self.hasclass(codeSegments[i], "all_day_event")) {
840                            options += "&dallday=" + encodeURIComponent(codeSegments[i].innerHTML);
841                        }
842                        if (self.hasclass(codeSegments[i], "_date_format") || self.hasclass(codeSegments[i], "date_format")) {
843                            options += "&dateformat=" + encodeURIComponent(codeSegments[i].innerHTML);
844                        }
845                        if (self.hasclass(codeSegments[i], "_alarm_reminder") || self.hasclass(codeSegments[i], "alarm_reminder")) {
846                            options += "&alarm=" + encodeURIComponent(codeSegments[i].innerHTML);
847                        }
848                        if (self.hasclass(codeSegments[i], "_recurring") || self.hasclass(codeSegments[i], "recurring")) {
849                            options += "&drule=" + encodeURIComponent(codeSegments[i].innerHTML);
850                        }
851                        if (self.hasclass(codeSegments[i], "_facebook_event") || self.hasclass(codeSegments[i], "facebook_event")) {
852                            options += "&fbevent=" + encodeURIComponent(codeSegments[i].innerHTML);
853                            /** @type {boolean} */
854                            o = true;
855                        }
856                        if (self.hasclass(codeSegments[i], "_client") || self.hasclass(codeSegments[i], "client")) {
857                            options += "&client=" + encodeURIComponent(codeSegments[i].innerHTML);
858                        }
859                        if (self.hasclass(codeSegments[i], "_calname") || self.hasclass(codeSegments[i], "calname")) {
860                            options += "&calname=" + encodeURIComponent(codeSegments[i].innerHTML);
861                        }
862                        if (self.hasclass(codeSegments[i], "_uid") || self.hasclass(codeSegments[i], "uid")) {
863                            options += "&uid=" + encodeURIComponent(codeSegments[i].innerHTML);
864                        }
865                        if (self.hasclass(codeSegments[i], "_status") || self.hasclass(codeSegments[i], "status")) {
866                            options += "&status=" + encodeURIComponent(codeSegments[i].innerHTML);
867                        }
868                        if (self.hasclass(codeSegments[i], "_method") || self.hasclass(codeSegments[i], "method")) {
869                            options += "&method=" + encodeURIComponent(codeSegments[i].innerHTML);
870                        }
871                    }
872                }
873                return $scope.facebook && (options = o), options;
874            },
875            /**
876             * @return {undefined}
877             */
878            trycss : function() {
879                if (!$("ate_tmp_css")) {
880                    try {
881                        /** @type {string} */
882                        var css = "";
883                        /** @type {string} */
884                        css = ".addeventatc {visibility:hidden;}";
885                        css += ".addeventatc .data {display:none!important;}";
886                        css += ".addeventatc .start, .addeventatc .end, .addeventatc .timezone, .addeventatc .title, .addeventatc .description, .addeventatc .location, .addeventatc .organizer, .addeventatc .organizer_email, .addeventatc .facebook_event, .addeventatc .all_day_event, .addeventatc .date_format, .addeventatc .alarm_reminder, .addeventatc .recurring, .addeventatc .attendees, .addeventatc .client, .addeventatc .calname, .addeventatc .uid, .addeventatc .status, .addeventatc .method {display:none!important;}";
887                        if (p) {
888                            css += ".addeventatc {background-image:url(https://www.addevent.com/gfx/icon-calendar-t5.png), url(https://www.addevent.com/gfx/icon-calendar-t1.svg), url(https://www.addevent.com/gfx/icon-apple-t1.svg), url(https://www.addevent.com/gfx/icon-facebook-t1.svg), url(https://www.addevent.com/gfx/icon-google-t1.svg), url(https://www.addevent.com/gfx/icon-outlook-t1.svg), url(https://www.addevent.com/gfx/icon-yahoo-t1.svg);background-position:-9999px -9999px;background-repeat:no-repeat;}"
889                            ;
890                        }
891                        /** @type {Element} */
892                        var stylesheet = document.createElement("style");
893                        /** @type {string} */
894                        stylesheet.type = "text/css";
895                        /** @type {string} */
896                        stylesheet.id = "ate_tmp_css";
897                        if (stylesheet.styleSheet) {
898                            /** @type {string} */
899                            stylesheet.styleSheet.cssText = css;
900                        } else {
901                            stylesheet.appendChild(document.createTextNode(css));
902                        }
903                        document.getElementsByTagName("head")[0].appendChild(stylesheet);
904                    } catch (e) {
905                    }
906                    self.track({
907                        typ : "jsinit",
908                        cal : ""
909                    });
910                }
911            },
912            /**
913             * @return {undefined}
914             */
915            applycss : function() {
916                if (!$("ate_css")) {
917                    /** @type {string} */
918                    var css = "";
919                    css += '.addeventatc {display:inline-block;*display:inline;zoom:1;position:relative;z-index:1;font-family:Roboto,"Helvetica Neue",Helvetica,Optima,Segoe,"Segoe UI",Candara,Calibri,Arial,sans-serif;color:#000!important;font-weight:300;line-height:100%!important;background-color:#fff;border:1px solid;border-color:#e5e6e9 #dfe0e4 #d0d1d5;font-size:15px;text-decoration:none;padding:13px 12px 12px 43px;-webkit-border-radius:3px;border-radius:3px;
919cursor:pointer;-webkit-font-smoothing:antialiased!important;text-shadow:1px 1px 1px rgba(0,0,0,0.004);-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);background-image:url(https://www.addevent.com/gfx/icon-calendar-t5.png), url(https://www.addevent.com/gfx/icon-calendar-t1.svg), url(https://www.addevent.com/gfx/icon-apple-t1.svg), url(https://www.addevent.com/gfx/icon-facebook-t1.svg), url(https://www.addevent.com/gfx/icon-google-t1.svg), url(https://www.addevent.com/gfx/icon-outlook-t1.svg), url(https://www.addevent.com/gfx/icon-yahoo-t1.svg);background-position:-9999px -9999px;background-repeat:no-repeat;}';
920                    css += ".addeventatc:hover {border:1px solid #aab9d4;color:#000;font-size:15px;text-decoration:none;}";
921                    css += ".addeventatc:focus {outline:none;border:1px solid #aab9d4;}";
922                    css += ".addeventatc:active {top:1px;}";
923                    css += ".addeventatc-selected {background-color:#f9f9f9;}";
924                    css += ".addeventatc .addeventatc_icon {width:18px;height:18px;position:absolute;z-index:1;left:12px;top:10px;background:url(" + o + ") no-repeat;background-size:18px 18px;}";
925                    css += ".addeventatc .start, .addeventatc .end, .addeventatc .timezone, .addeventatc .title, .addeventatc .description, .addeventatc .location, .addeventatc .organizer, .addeventatc .organizer_email, .addeventatc .facebook_event, .addeventatc .all_day_event, .addeventatc .date_format, .addeventatc .alarm_reminder, .addeventatc .recurring, .addeventatc .attendees, .addeventatc .client, .addeventatc .calname, .addeventatc .uid, .addeventatc .status, .addeventatc .method {display:none!important;}";
926                    css += ".addeventatc .data {display:none!important;}";
927                    if (self.getlicense(conflict)) {
928                        css += ".addeventatc_dropdown {width:200px;position:absolute;z-index:99999;padding:6px 0px 6px 0px;background:#fff;text-align:left;display:none;margin-top:-2px;margin-left:-1px;border-top:1px solid #c8c8c8;border-right:1px solid #bebebe;border-bottom:1px solid #a8a8a8;border-left:1px solid #bebebe;-moz-border-radius:2px;-webkit-border-radius:2px;-webkit-box-shadow:1px 3px 6px rgba(0,0,0,0.15);-moz-box-shadow:1px 3px 6px rgba(0,0,0,0.15);box-shadow:1px 3px 6px rgba(0,0,0,0.15);}";
929                    } else {
930                        css += ".addeventatc_dropdown {width:200px;position:absolute;z-index:99999;padding:6px 0px 0px 0px;background:#fff;text-align:left;display:none;margin-top:-2px;margin-left:-1px;border-top:1px solid #c8c8c8;border-right:1px solid #bebebe;border-bottom:1px solid #a8a8a8;border-left:1px solid #bebebe;-moz-border-radius:2px;-webkit-border-radius:2px;-webkit-box-shadow:1px 3px 6px rgba(0,0,0,0.15);-moz-box-shadow:1px 3px 6px rgba(0,0,0,0.15);box-shadow:1px 3px 6px rgba(0,0,0,0.15);}";
931                    }
932                    css += ".addeventatc_dropdown span {display:block;line-height:100%;background:#fff;text-decoration:none;font-size:14px;color:#333;padding:9px 10px 9px 40px;}";
933                    css += ".addeventatc_dropdown span:hover {background-color:#f4f4f4;color:#000;text-decoration:none;font-size:14px;}";
934                    css += ".addeventatc_dropdown .drop_markup {background-color:#f4f4f4;color:#000;text-decoration:none;font-size:14px;}";
935                    css += ".addeventatc_dropdown .copyx {height:21px;display:block;position:relative;cursor:default;}";
936                    css += ".addeventatc_dropdown .brx {height:1px;overflow:hidden;background:#e0e0e0;position:absolute;z-index:100;left:10px;right:10px;top:9px;}";
937                    css += ".addeventatc_dropdown .frs {position:absolute;top:5px;cursor:pointer;right:10px;font-style:normal!important;font-weight:normal!important;text-align:right;z-index:101;line-height:9px!important;background:#fff;text-decoration:none;font-size:9px!important;color:#cacaca!important;}";
938                    css += ".addeventatc_dropdown .frs a {margin:0!important;padding:0!important;font-style:normal!important;font-weight:normal!important;line-height:9px!important;background-color:#fff!important;text-decoration:none;font-size:9px!important;color:#cacaca!important;padding-left:10px!important;display:inline-block;}";
939                    css += ".addeventatc_dropdown .frs a:hover {color:#999!important;}";
940                    css += ".addeventatc_dropdown .ateappleical {background-image:url(https://www.addevent.com/gfx/icon-apple-t1.svg);background-repeat:no-repeat;background-position:13px 50%;background-size:14px auto;}";
941                    css += ".addeventatc_dropdown .ateoutlook {background-image:url(https://www.addevent.com/gfx/icon-outlook-t1.svg);background-repeat:no-repeat;background-position:12px 50%;background-size:16px auto;}";
942                    css += ".addeventatc_dropdown .ateoutlookcom {background-image:url(https://www.addevent.com/gfx/icon-outlook-t1.svg);background-repeat:no-repeat;background-position:12px 50%;background-size:16px auto;}";
943                    css += ".addeventatc_dropdown .ategoogle {background-image:url(https://www.addevent.com/gfx/icon-google-t1.svg);background-repeat:no-repeat;background-position:12px 50%;background-size:16px auto;}";
944                    css += ".addeventatc_dropdown .ateyahoo {background-image:url(https://www.addevent.com/gfx/icon-yahoo-t1.svg);background-repeat:no-repeat;background-position:12px 50%;background-size:16px auto;}";
945                    css += ".addeventatc_dropdown .atefacebook {background-image:url(https://www.addevent.com/gfx/icon-facebook-t1.svg);background-repeat:no-repeat;background-position:12px 50%;background-size:16px auto;}";
946                    css += ".addeventatc_dropdown em {font-size:12px!important;color:#999!important;}";
947                    /** @type {Element} */
948                    var stylesheet = document.createElement("style");
949                    /** @type {string} */
950                    stylesheet.type = "text/css";
951                    /** @type {string} */
952                    stylesheet.id = "ate_css";
953                    if (stylesheet.styleSheet) {
954                        /** @type {string} */
955                        stylesheet.styleSheet.cssText = css;
956                    } else {
957                        stylesheet.appendChild(document.createTextNode(css));
958                    }
959                    document.getElementsByTagName("head")[0].appendChild(stylesheet);
960                    self.removeelement($("ate_tmp_css"));
961                }
962            },
963            /**
964             * @return {undefined}
965             */
966            helpercss : function() {
967                if (!$("ate_helper_css")) {
968                    /** @type {string} */
969                    var css = "";
970                    css += ".addeventatc_dropdown .drop_markup {background-color:#f4f4f4;}";
971                    css += ".addeventatc_dropdown .frs a {margin:0!important;padding:0!important;font-style:normal!important;font-weight:normal!important;line-height:110%!important;background-color:#fff!important;text-decoration:none;font-size:9px!important;color:#cacaca!important;display:inline-block;}";
972                    css += ".addeventatc_dropdown .frs a:hover {color:#999!important;}";
973                    css += ".addeventatc .start, .addeventatc .end, .addeventatc .timezone, .addeventatc .title, .addeventatc .description, .addeventatc .location, .addeventatc .organizer, .addeventatc .organizer_email, .addeventatc .facebook_event, .addeventatc .all_day_event, .addeventatc .date_format, .addeventatc .alarm_reminder, .addeventatc .recurring, .addeventatc .attendees, .addeventatc .client, .addeventatc .calname, .addeventatc .uid, .addeventatc .status, .addeventatc .method {display:none!important;}";
974                    /** @type {Element} */
975                    var stylesheet = document.createElement("style");
976                    /** @type {string} */
977                    stylesheet.type = "text/css";
978                    /** @type {string} */
979                    stylesheet.id = "ate_helper_css";
980                    if (stylesheet.styleSheet) {
981                        /** @type {string} */
982                        stylesheet.styleSheet.cssText = css;
983                    } else {
984                        stylesheet.appendChild(document.createTextNode(css));
985                    }
986                    document.getElementsByTagName("head")[0].appendChild(stylesheet);
987                }
988            },
989            /**
990             * @param {?} dataAndEvents
991             * @return {?}
992             */
993            removeelement : function(dataAndEvents) {
994                try {
995                    return!!(hdx = dataAndEvents) && hdx.parentNode.removeChild(hdx);
996                } catch (e) {
997                }
998            },
999            /**
1000             * @return {?}
1001             */
1002            topzindex : function() {
1003                /** @type {number} */
1004                var mode = 1;
1005                /** @type {NodeList} */
1006                var codeSegments = document.getElementsByTagName("*");
1007                /** @type {number} */
1008                var i = 0;
1009                for (;i < codeSegments.length;i += 1) {
1010                    if (self.hasclass(codeSegments[i], "addeventatc") || self.hasclass(codeSegments[i], "addeventstc")) {
1011                        var value = self.getstyle(codeSegments[i], "z-index");
1012                        if (!isNaN(parseFloat(value))) {
1013                            if (isFinite(value)) {
1014                                if ((value = parseInt(value)) > mode) {
1015                                    /** @type {number} */
1016                                    mode = value;
1017                                }
1018                            }
1019                        }
1020                    }
1021                }
1022                return mode;
1023            },
1024            /**
1025             * @return {?}
1026             */
1027            viewport : function() {
1028                /** @type {number} */
1029                var myWidth = 0;
1030                /** @type {number} */
1031                var myHeight = 0;
1032                /** @type {number} */
1033                var posY = 0;
1034                /** @type {number} */
1035                var scrollX = 0;
1036                return "number" == typeof window.innerWidth ? (myWidth = window.innerWidth, myHeight = window.innerHeight) : document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight) ? (myWidth = document.documentElement.clientWidth, myHeight = document.documentElement.clientHeight) : document.body && ((document.body.clientWidth || document.body.clientHeight) && (myWidth = document.body.clientWidth, myHeight = document.body.clientHeight)), document.all ?
1037                    (scrollX = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft, posY = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) : (scrollX = window.pageXOffset, posY = window.pageYOffset), {
1038                    w : myWidth,
1039                    h : myHeight,
1040                    x : scrollX,
1041                    y : posY
1042                };
1043            },
1044            /**
1045             * @param {Element} el
1046             * @return {?}
1047             */
1048            elementposition : function(el) {
1049                /** @type {number} */
1050                var xPos = 0;
1051                /** @type {number} */
1052                var yPos = 0;
1053                if (el.offsetParent) {
1054                    xPos = el.offsetLeft;
1055                    yPos = el.offsetTop;
1056                    for (;el = el.offsetParent;) {
1057                        xPos += el.offsetLeft;
1058                        yPos += el.offsetTop;
1059                    }
1060                }
1061                return{
1062                    x : xPos,
1063                    y : yPos
1064                };
1065            },
1066            /**
1067             * @param {Object} element
1068             * @param {string} style
1069             * @return {?}
1070             */
1071            getstyle : function(element, style) {
1072                var match;
1073                /** @type {Object} */
1074                var el = element;
1075                return el.currentStyle ? match = el.currentStyle[style] : window.getComputedStyle && (match = document.defaultView.getComputedStyle(el, null).getPropertyValue(style)), match;
1076            },
1077            /**
1078             * @param {string} eventType
1079             * @return {?}
1080             */
1081            getlicense : function(eventType) {
1082                /** @type {string} */
1083                var origin = location.origin;
1084                /** @type {boolean} */
1085                var a = false;
1086                if (void 0 === location.origin && (origin = location.protocol + "//" + location.host), eventType) {
1087                    var b = eventType.substring(0, 1);
1088                    var _ = eventType.substring(9, 10);
1089                    var name = eventType.substring(17, 18);
1090                    if ("a" == b) {
1091                        if ("z" == _) {
1092                            if ("m" == name) {
1093                                /** @type {boolean} */
1094                                a = true;
1095                            }
1096                        }
1097                    }
1098                }
1099                return(-1 == origin.indexOf("addevent.com") && "aao8iuet5zp9iqw5sm9z" == eventType || (-1 == origin.indexOf("addevent.to") && "aao8iuet5zp9iqw5sm9z" == eventType || -1 == origin.indexOf("addevent.com") && "aao8iuet5zp9iqw5sm9z" == eventType)) && (a = true), a;
1100            },
1101            /**
1102             * @return {undefined}
1103             */
1104            refresh : function() {
1105                /** @type {NodeList} */
1106                var items = document.getElementsByTagName("*");
1107                /** @type {Array} */
1108                var c = [];
1109                /** @type {number} */
1110                var i = 0;
1111                for (;i < items.length;i += 1) {
1112                    if (self.hasclass(items[i], "addeventatc")) {
1113                        items[i].className = items[i].className.replace(/addeventatc-selected/gi, "");
1114                        /** @type {string} */
1115                        items[i].id = "";
1116                        var r = items[i].getElementsByTagName("*");
1117                        /** @type {number} */
1118                        var o = 0;
1119                        for (;o < r.length;o += 1) {
1120                            if (self.hasclass(r[o], "addeventatc_icon") || self.hasclass(r[o], "addeventatc_dropdown")) {
1121                                c.push(r[o]);
1122                            }
1123                        }
1124                    }
1125                }
1126                /** @type {number} */
1127                var n = 0;
1128                for (;n < c.length;n += 1) {
1129                    self.removeelement(c[n]);
1130                }
1131                self.removeelement($("ate_css"));
1132                /** @type {number} */
1133                uuid = 1;
1134                /** @type {boolean} */
1135                v = false;
1136                self.generate();
1137            },
1138            /**
1139             * @param {Element} elem
1140             * @param {string} value
1141             * @return {?}
1142             */
1143            hasclass : function(elem, value) {
1144                return(new RegExp("(\\s|^)" + value + "(\\s|$)")).test(elem.className);
1145            },
1146            /**
1147             * @param {string} id
1148             * @return {undefined}
1149             */
1150            eclick : function(id) {
1151                /** @type {(HTMLElement|null)} */
1152                var button = document.getElementById(id);
1153                if (button.click) {
1154                    button.click();
1155                } else {
1156                    if (document.createEvent) {
1157                        /** @type {(Event|null)} */
1158                        var click = document.createEvent("MouseEvents");
1159                        click.initEvent("click", true, true);
1160                        button.dispatchEvent(click);
1161                    }
1162                }
1163            },
1164            /**
1165             * @param {?} opt_attributes
1166             * @return {undefined}
1167             */
1168            track : function(opt_attributes) {
1169                new Image;
1170                (new Date).getTime();
1171                encodeURIComponent(window.location.origin);
1172            },
1173            /**
1174             * @return {?}
1175             */
1176            getguid : function() {
1177                /** @type {string} */
1178                var nameEQ = "addevent_track_cookie=";
1179                /** @type {string} */
1180                var fragment = "";
1181                /** @type {Array.<string>} */
1182                var ca = document.cookie.split(";");
1183                /** @type {number} */
1184                var i = 0;
1185                for (;i < ca.length;i++) {
1186                    /** @type {string} */
1187                    var c = ca[i];
1188                    for (;" " == c.charAt(0);) {
1189                        /** @type {string} */
1190                        c = c.substring(1, c.length);
1191                    }
1192                    if (0 == c.indexOf(nameEQ)) {
1193                        /** @type {string} */
1194                        fragment = c.substring(nameEQ.length, c.length);
1195                    }
1196                }
1197                if ("" == fragment) {
1198                    var first = (self.s4() + self.s4() + "-" + self.s4() + "-4" + self.s4().substr(0, 3) + "-" + self.s4() + "-" + self.s4() + self.s4() + self.s4()).toLowerCase();
1199                    /** @type {Date} */
1200                    var expires = new Date;
1201                    expires.setTime(expires.getTime() + 31536E6);
1202                    /** @type {string} */
1203                    var c_value = "expires=" + expires.toUTCString();
1204                    /** @type {string} */
1205                    document.cookie = "addevent_track_cookie=" + first + "; " + c_value;
1206                    fragment = first;
1207                }
1208                return fragment;
1209            },
1210            /**
1211             * @return {?}
1212             */
1213            s4 : function() {
1214                return(65536 * (1 + Math.random()) | 0).toString(16).substring(1);
1215            },
1216            /**
1217             * @param {Object} e
1218             * @return {undefined}
1219             */
1220            documentclick : function(e) {
1221                e = e || window.event;
1222                e = e.target || e.srcElement;
1223                if (ate_touch_capable) {
1224                    clearTimeout(going);
1225                    /** @type {number} */
1226                    going = setTimeout(function() {
1227                        self.hide(e.className);
1228                    }, 500);
1229                } else {
1230                    self.hide(e.className);
1231                }
1232            },
1233            /**
1234             * @param {string} extra
1235             * @param {?} opt_attributes
1236             * @return {undefined}
1237             */
1238            trigger : function(extra, opt_attributes) {
1239                if ("button_click" == extra) {
1240                    try {
1241                        callback(opt_attributes);
1242                    } catch (e) {
1243                    }
1244                }
1245                if ("button_mouseover" == extra) {
1246                    try {
1247                        msg(opt_attributes);
1248                    } catch (e) {
1249                    }
1250                }
1251                if ("button_mouseout" == extra) {
1252                    try {
1253                        fn(opt_attributes);
1254                    } catch (e) {
1255                    }
1256                }
1257                if ("button_dropdown_show" == extra) {
1258                    try {
1259                        _fn(opt_attributes);
1260                    } catch (e) {
1261                    }
1262                }
1263                if ("button_dropdown_hide" == extra) {
1264                    try {
1265                        requestFrame(opt_attributes);
1266                    } catch (e) {
1267                    }
1268                }
1269                if ("button_dropdown_click" == extra) {
1270                    try {
1271                        realTrigger(opt_attributes);
1272                    } catch (e) {
1273                    }
1274                }
1275            },
1276            /**
1277             * @param {string} tmpl
1278             * @param {Object} type
1279             * @return {undefined}
1280             */
1281            register : function(tmpl, type) {
1282                if ("button-click" == tmpl) {
1283                    /** @type {Object} */
1284                    callback = type;
1285                }
1286                if ("button-mouseover" == tmpl) {
1287                    /** @type {Object} */
1288                    msg = type;
1289                }
1290                if ("button-mouseout" == tmpl) {
1291                    /** @type {Object} */
1292                    fn = type;
1293                }
1294                if ("button-dropdown-show" == tmpl) {
1295                    /** @type {Object} */
1296                    _fn = type;
1297                }
1298                if ("button-dropdown-hide" == tmpl) {
1299                    /** @type {Object} */
1300                    requestFrame = type;
1301                }
1302                if ("button-dropdown-click" == tmpl) {
1303                    /** @type {Object} */
1304                    realTrigger = type;
1305                }
1306            },
1307            /**
1308             * @param {Object} $scope
1309             * @return {undefined}
1310             */
1311            settings : function($scope) {
1312                if (void 0 != $scope.license) {
1313                    conflict = $scope.license;
1314                }
1315                if (void 0 != $scope.css) {
1316                    if ($scope.css) {
1317                        /** @type {boolean} */
1318                        p = true;
1319                    } else {
1320                        /** @type {boolean} */
1321                        p = false;
1322                        self.removeelement($("ate_css"));
1323                    }
1324                }
1325                if (void 0 != $scope.mouse) {
1326                    files_list = $scope.mouse;
1327                }
1328                if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
1329                    /** @type {boolean} */
1330                    files_list = false;
1331                }
1332                if (void 0 != $scope.outlook) {
1333                    if (void 0 != $scope.outlook.show) {
1334                        w = $scope.outlook.show;
1335                    }
1336                }
1337                if (void 0 != $scope.google) {
1338                    if (void 0 != $scope.google.show) {
1339                        show = $scope.google.show;
1340                    }
1341                }
1342                if (void 0 != $scope.yahoo) {
1343                    if (void 0 != $scope.yahoo.show) {
1344                        k = $scope.yahoo.show;
1345                    }
1346                }
1347                if (void 0 != $scope.hotmail) {
1348                    if (void 0 != $scope.hotmail.show) {
1349                        disabled = $scope.hotmail.show;
1350                    }
1351                }
1352                if (void 0 != $scope.outlookcom) {
1353                    if (void 0 != $scope.outlookcom.show) {
1354                        disabled = $scope.outlookcom.show;
1355                    }
1356                }
1357                if (void 0 != $scope.ical) {
1358                    if (void 0 != $scope.ical.show) {
1359                        xmlDoc = $scope.ical.show;
1360                    }
1361                }
1362                if (void 0 != $scope.appleical) {
1363                    if (void 0 != $scope.appleical.show) {
1364                        xmlDoc = $scope.appleical.show;
1365                    }
1366                }
1367                if (void 0 != $scope.facebook) {
1368                    if (void 0 != $scope.facebook.show) {
1369                        y = $scope.facebook.show;
1370                    }
1371                }
1372                if (void 0 != $scope.outlook) {
1373                    if (void 0 != $scope.outlook.text) {
1374                        text = $scope.outlook.text;
1375                    }
1376                }
1377                if (void 0 != $scope.google) {
1378                    if (void 0 != $scope.google.text) {
1379                        error = $scope.google.text;
1380                    }
1381                }
1382                if (void 0 != $scope.yahoo) {
1383                    if (void 0 != $scope.yahoo.text) {
1384                        txt = $scope.yahoo.text;
1385                    }
1386                }
1387                if (void 0 != $scope.hotmail) {
1388                    if (void 0 != $scope.hotmail.text) {
1389                        result = $scope.hotmail.text;
1390                    }
1391                }
1392                if (void 0 != $scope.outlookcom) {
1393                    if (void 0 != $scope.outlookcom.text) {
1394                        result = $scope.outlookcom.text;
1395                    }
1396                }
1397                if (void 0 != $scope.ical) {
1398                    if (void 0 != $scope.ical.text) {
1399                        dataText = $scope.ical.text;
1400                    }
1401                }
1402                if (void 0 != $scope.appleical) {
1403                    if (void 0 != $scope.appleical.text) {
1404                        dataText = $scope.appleical.text;
1405                    }
1406                }
1407                if (void 0 != $scope.facebook) {
1408                    if (void 0 != $scope.facebook.text) {
1409                        textValue = $scope.facebook.text;
1410                    }
1411                }
1412                if (void 0 != $scope.dropdown) {
1413                    if (void 0 != $scope.dropdown.order) {
1414                        fragment = $scope.dropdown.order;
1415                    }
1416                }
1417            },
1418            /**
1419             * @param {?} dataAndEvents
1420             * @param {Object} opt_attributes
1421             * @return {undefined}
1422             */
1423            keyboard : function(dataAndEvents, opt_attributes) {
1424                /** @type {(HTMLElement|null)} */
1425                var wrapper = document.getElementById(opt_attributes.id + "-drop");
1426                if (wrapper && "block" == self.getstyle(wrapper, "display")) {
1427                    /** @type {NodeList} */
1428                    var filters = wrapper.getElementsByTagName("SPAN");
1429                    /** @type {null} */
1430                    var filter = null;
1431                    /** @type {number} */
1432                    var key = 0;
1433                    /** @type {number} */
1434                    var id = 0;
1435                    /** @type {number} */
1436                    var i = 0;
1437                    for (;i < filters.length;i += 1) {
1438                        key++;
1439                        if (self.hasclass(filters[i], "drop_markup")) {
1440                            filter = filters[i];
1441                            /** @type {number} */
1442                            id = key;
1443                        }
1444                    }
1445                    if (null === filter) {
1446                        /** @type {number} */
1447                        id = 1;
1448                    } else {
1449                        if ("down" == opt_attributes.key) {
1450                            if (id >= key) {
1451                                /** @type {number} */
1452                                id = 1;
1453                            } else {
1454                                id++;
1455                            }
1456                        } else {
1457                            if (1 == id) {
1458                                /** @type {number} */
1459                                id = key;
1460                            } else {
1461                                id--;
1462                            }
1463                        }
1464                    }
1465                    /** @type {number} */
1466                    key = 0;
1467                    /** @type {number} */
1468                    i = 0;
1469                    for (;i < filters.length;i += 1) {
1470                        if (++key == id) {
1471                            filters[i].className += " drop_markup";
1472                        } else {
1473                            /** @type {RegExp} */
1474                            var rclass = new RegExp("(\\s|^)drop_markup(\\s|$)");
1475                            filters[i].className = filters[i].className.replace(rclass, " ");
1476                            filters[i].className = filters[i].className.replace(/\s+$/, "");
1477                        }
1478                    }
1479                }
1480            },
1481            /**
1482             * @param {?} dataAndEvents
1483             * @param {Element} ignores
1484             * @return {undefined}
1485             */
1486            keyboardclick : function(dataAndEvents, ignores) {
1487                /** @type {(HTMLElement|null)} */
1488                var wrapper = document.getElementById(ignores.id + "-drop");
1489                if (wrapper) {
1490                    /** @type {NodeList} */
1491                    var filters = wrapper.getElementsByTagName("SPAN");
1492                    /** @type {null} */
1493                    var f = null;
1494                    /** @type {number} */
1495                    var i = 0;
1496                    for (;i < filters.length;i += 1) {
1497                        if (self.hasclass(filters[i], "drop_markup")) {
1498                            f = filters[i];
1499                        }
1500                    }
1501                    if (null !== f) {
1502                        f.click();
1503                        /** @type {number} */
1504                        i = 0;
1505                        for (;i < filters.length;i += 1) {
1506                            /** @type {RegExp} */
1507                            var rclass = new RegExp("(\\s|^)drop_markup(\\s|$)");
1508                            filters[i].className = filters[i].className.replace(rclass, " ");
1509                            filters[i].className = filters[i].className.replace(/\s+$/, "");
1510                        }
1511                    }
1512                }
1513            },
1514            /**
1515             * @return {?}
1516             */
1517            usewebcal : function() {
1518                /** @type {boolean} */
1519                var e = false;
1520                /** @type {string} */
1521                var userAgent = window.navigator.userAgent.toLowerCase();
1522                return/iphone|ipod|ipad/.test(userAgent) && (e = !!userAgent.match("crios") || !userAgent.match("safari")), e;
1523            },
1524            /**
1525             * @return {?}
1526             */
1527            agent : function() {
1528                var nType = navigator.userAgent || (navigator.vendor || window.opera);
1529                return/windows phone/i.test(nType) ? "windows_phone" : /android/i.test(nType) ? "android" : /iPad|iPhone|iPod/.test(nType) && !window.MSStream ? "ios" : "unknown";
1530            }
1531        };
1532    }();
1533    !function(timeoutKey, win) {
1534        /**
1535         * @return {undefined}
1536         */
1537        function loaded() {
1538            if (!d) {
1539                /** @type {boolean} */
1540                d = true;
1541                /** @type {number} */
1542                var i = 0;
1543                for (;i < fns.length;i++) {
1544                    fns[i].fn.call(window, fns[i].ctx);
1545                }
1546                /** @type {Array} */
1547                fns = [];
1548            }
1549        }
1550        /**
1551         * @return {undefined}
1552         */
1553        function handler() {
1554            if ("complete" === document.readyState) {
1555                loaded();
1556            }
1557        }
1558        /** @type {string} */
1559        timeoutKey = timeoutKey || "docReady";
1560        /** @type {Array} */
1561        var fns = [];
1562        /** @type {boolean} */
1563        var d = false;
1564        /** @type {boolean} */
1565        var c = false;
1566        /**
1567         * @param {Function} fn
1568         * @param {Object} context
1569         * @return {undefined}
1570         */
1571        (win = win || window)[timeoutKey] = function(fn, context) {
1572            if ("function" != typeof fn) {
1573                throw new TypeError("callback for docReady(fn) must be a function");
1574            }
1575            if (d) {
1576                setTimeout(function() {
1577                    fn(context);
1578                }, 1);
1579            } else {
1580                fns.push({
1581                    /** @type {Function} */
1582                    fn : fn,
1583                    ctx : context
1584                });
1585                if ("complete" === document.readyState || !document.attachEvent && "interactive" === document.readyState) {
1586                    setTimeout(loaded, 1);
1587                } else {
1588                    if (!c) {
1589                        if (document.addEventListener) {
1590                            document.addEventListener("DOMContentLoaded", loaded, false);
1591                            window.addEventListener("load", loaded, false);
1592                        } else {
1593                            document.attachEvent("onreadystatechange", handler);
1594                            window.attachEvent("onload", loaded);
1595                        }
1596                        /** @type {boolean} */
1597                        c = true;
1598                    }
1599                }
1600            }
1601        };
1602    }("addeventReady", window);
1603    var ate_touch_capable = "ontouchstart" in window || (window.DocumentTouch && document instanceof window.DocumentTouch || (navigator.maxTouchPoints > 0 || window.navigator.msMaxTouchPoints > 0));
1604    if (window.addEventListener) {
1605        document.addEventListener("click", self.documentclick, false);
1606        if (ate_touch_capable) {
1607            document.addEventListener("touchend", self.documentclick, false);
1608        }
1609    } else {
1610        if (window.attachEvent) {
1611            document.attachEvent("onclick", self.documentclick);
1612            if (ate_touch_capable) {
1613                document.attachEvent("ontouchend", self.documentclick);
1614            }
1615        } else {
1616            /**
1617             * @return {undefined}
1618             */
1619            document.onclick = function() {
1620                self.documentclick(event);
1621            };
1622        }
1623    }
1624    
1625    addeventReady(function() {
1626        self.initialize();
1627        if (typeof addeventatc !== "undefined") {
1628            setTimeout("addeventatc.initialize();", 200);
1629        }
1630    });
1631
1632}
1633abs_add_to_calendar();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.