PageSourceSearch

https://www.bundesgerichtshof.de/SiteGlobals/Frontend/JavaScript/init/global.js?v=2

js bundesgerichtshof.de collected 2026-09-24 08:01:25 UTC 603,722 bytes, 6,619 lines download raw bytes

1  // Init log level
2  var gsb_loglevel = 'error';
3   /* Start logging */
4   /*!
5 * GSB-Plugin zur Bereitstellung von globalen Logging-Methoden
6 * Benoetigt Variable "gsb_loglevel" aus global.js, ueberschreibbar durch Konfigurationseintrag "/BGHWeb/SiteGlobals/_config/JSLogWarnlevel"
7 * 
8 * Author: rkrusenb
9 * --GSBDocStart
10 * @module logging
11 * @version 1.1.0
12 * @see {@link http://semver.org|Semantic Versioning}
13 * @author rkrusenb
14 *
15 * @desc GSB-Plugin zur Bereitstellung von globalen Logging-Methoden
16 *  Benoetigt Variable "gsb_loglevel" aus global.js, ueberschreibbar durch Konfigurationseintrag "/BGHWeb/SiteGlobals/_config/JSLogWarnlevel"
17 *--GSBDocEnd
18 */
19var gsb;gsb=gsb||{};(function(namespace){var loglevels={log:4,warn:2,error:1,none:0},loglevel=gsb_loglevel,hiddenMessages=[],env,deferred;function consoleExists(method){if(!method){return typeof console!=="undefined";}else{return typeof console!=="undefined"&&typeof console[method]==="function";}}function wrap(method){return function(){hiddenMessages.push([method,arguments]);};}function flushHiddenMessages(){var i,l,temp,method,args;if(consoleExists()){for(i=0,l=hiddenMessages.length;i<l;i++){temp=hiddenMessages[i],method=temp[0],args=temp[1];if(consoleExists(method)){hiddenMessages[i]=null;env[method].apply(null,args);}}hiddenMessages=hiddenMessages.filter(function(value){return value!==null;});}}function setLogLevel(newLevel){loglevel=newLevel;["error","warn","log"].forEach(function(str){if(loglevels[str]===loglevels["error"]){if(loglevels[newLevel]>=loglevels["error"]&&consoleExists("error")){namespace.error=env.error;}else{namespace.error=deferred.error;}}else{if(loglevels[str]===loglevels["warn"]){if(loglevels[newLevel]>=loglevels["warn"]&&consoleExists("warn")){namespace.warn=env.warn;}else{namespace.warn=deferred.warn;}}else{if(loglevels[newLevel]>=loglevels["log"]&&consoleExists("log")){namespace[str]=env.log;}else{namespace[str]=deferred.log;}}}});}env={log:console.log.bind(console),warn:console.warn.bind(console),error:console.error.bind(console)};deferred={log:wrap("log"),warn:wrap("warn"),error:wrap("error")};setLogLevel(loglevel);if(typeof localStorage!=="undefined"&&typeof localStorage.getItem==="function"&&localStorage.getItem("gsb_frontend_loglevel")){setLogLevel(localStorage.getItem("gsb_frontend_loglevel"));}namespace.flushHiddenMessages=flushHiddenMessages;})(gsb);
20   /* Ende logging */
21   /* Start variables_LABELS */
22       var PRINT_PAGE_TEXT = 'drucken';
23    var PRINT_TOOLTIP = 'Seite drucken (öffnet Dialog)';
24    var NAV_MOBILE_MENU = 'Menü';
25    var NAV_MOBILE_SEARCH = 'Suchen';
26    var SHOW_LESS = 'Weniger anzeigen';
27    var SHOW_MORE = 'Mehr anzeigen';
28    var CLOSE = 'Schlie&szlig;en';
29    var NEXT = 'Nächste Seite';
30    var BACK = 'Vorherige Seite';
31    var NEXT_INACTIVE = 'Keine nächste Seite';
32    var BACK_INACTIVE = 'Keine vorherige Seite';
33    var PLAY = 'Animation starten';
34    var PAUSE = 'Animation stoppen';
35    var PAGE = 'Seite';
36   /* Ende variables_LABELS */
37   /* Start variables_JSON */
38         var json_url_mobileMenu = 'SiteGlobals/Modules/MobileNavigation/DE/Allgemein/MobileNavigation.html?view=renderMobileNavigation';
39      var json_url_mobileSearch = 'SiteGlobals/Forms/Suche/Servicesuche_Autosuggest_Formular.html?view=renderJSON';
40   /* Ende variables_JSON */
41   /* Start variables_IMG */
42       var image_url_close = '/SiteGlobals/Frontend/Images/icons/close-b.svg?__blob=normal&amp;v=1';
43    var image_url_next = '/SiteGlobals/Frontend/Images/icons/next-upright.svg?__blob=normal&amp;v=1';
44    var image_url_back = '/SiteGlobals/Frontend/Images/icons/back-upright.svg?__blob=normal&amp;v=1';
45    var image_url_back_g = '/SiteGlobals/Frontend/Images/icons/back-g-upright.svg?__blob=normal&amp;v=1';
46    var image_url_next_g = '/SiteGlobals/Frontend/Images/icons/next-g-upright.svg?__blob=normal&amp;v=1';
47    var image_url_close_w = '/SiteGlobals/Frontend/Images/icons/close-w.svg?__blob=normal&amp;v=1';
48    var image_url_loupe_b = '/SiteGlobals/Frontend/Images/icons/loupe-b.svg?__blob=normal&amp;v=1';
49    var image_url_paused = '/SiteGlobals/Frontend/Images/icons/pause.svg?__blob=normal&amp;v=1';
50    var image_url_play = '/SiteGlobals/Frontend/Images/icons/play.svg?__blob=normal&amp;v=1';
51    var image_url_gebaerdensprache  = '/SiteGlobals/Frontend/Images/icons/gebaerdensprache-w.svg?__blob=normal&amp;v=1';
52    var image_url_leichtesprache  = '/SiteGlobals/Frontend/Images/icons/leichte-sprache-w.svg?__blob=normal&amp;v=1';
53   /* Ende variables_IMG */
54   /* Start custom.modernizr */
55   /*! Modernizr 2.6.2 (Custom Build) | MIT & BSD
56 * Build: http://modernizr.com/download/#-inlinesvg-svg-svgclippaths-touch-shiv-mq-cssclasses-teststyles-prefixes-ie8compat-load
57 * --GSBDocStart
58 * @module Modernizr (Custom Build)
59 * @version 2.6.2
60 * @see {@link http://modernizr.com/download/#-inlinesvg-svg-svgclippaths-touch-shiv-mq-cssclasses-teststyles-prefixes-ie8compat-load}
61 * @author Faruk Ateş
62 * @license MIT & MIT-BSD license
63 * 
64 * @desc Informiert darüber, welche HTML, CSS und Javascripts Features der Benutzer sieht.  
65 *--GSBDocEnd
66 */
67window.Modernizr=function(a,b,c){function y(a){j.cssText=a;}function z(a,b){return y(m.join(a+";")+(b||""));}function A(a,b){return typeof a===b;}
67function B(a,b){return !!~(""+a).indexOf(b);}function C(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c){return d===!1?a[e]:A(f,"function")?f.bind(d||b):f;}}return !1;}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n={svg:"http://www.w3.org/2000/svg"},o={},p={},q={},r=[],s=r.slice,t,u=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10)){while(d--){j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);}}return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i;},v=function(b){var c=a.matchMedia||a.msMatchMedia;if(c){return c(b).matches;}var d;return u("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute";}),d;},w={}.hasOwnProperty,x;!A(w,"undefined")&&!A(w.call,"undefined")?x=function(a,b){return w.call(a,b);}:x=function(a,b){return b in a&&A(a.constructor.prototype[b],"undefined");},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function"){throw new TypeError;}var d=s.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(s.call(arguments)));return Object(g)===g?g:f;}return c.apply(b,d.concat(s.call(arguments)));};return e;}),o.touch=function(){var c;return"ontouchstart" in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:u(["@media (",m.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9;}),c;},o.svg=function(){return !!b.createElementNS&&!!b.createElementNS(n.svg,"svg").createSVGRect;},o.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==n.svg;},o.svgclippaths=function(){return !!b.createElementNS&&/SVGClipPath/.test(l.call(b.createElementNS(n.svg,"clipPath")));};for(var D in o){x(o,D)&&(t=D.toLowerCase(),e[t]=o[D](),r.push((e[t]?"":"no-")+t));}return e.addTest=function(a,b){if(typeof a=="object"){for(var d in a){x(a,d)&&e.addTest(d,a[d]);}}else{a=a.toLowerCase();if(e[a]!==c){return e;}b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b;}return e;},y(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild);}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a;}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b;}function n(a,c,f){c||(c=b);if(j){return c.createElement(a);}f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g;}function o(a,c){a||(a=b);if(j){return a.createDocumentFragment();}c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e<g;e++){d.createElement(f[e]);}return d;}function p(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return r.shivMethods?n(c,a,b):b.createElem(c);},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/\w+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")';})+");return n}")(r,b.frag);}function q(a){a||(a=b);var c=m(a);return r.shivCSS&&!f&&!c.hasCSS&&(c.hasCSS=!!k(a,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),j||p(a,c),a;}var c=a.html5||{},d=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,e=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,f,g="_html5shiv",h=0,i={},j;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",f="hidden" in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined";}();}catch(c){f=!0,j=!0;}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b);}(this,b),e._version=d,e._prefixes=m,e.mq=v,e.testStyles=u,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+r.join(" "):""),e;}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a);}function e(a){return"string"==typeof a;}function f(){}
67function g(a){return !a||"loaded"==a||"complete"==a||"uninitialized"==a;}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1);},0):(a(),h()):q=0;}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l);},50);for(var d in y[c]){y[c].hasOwnProperty(d)&&y[c][d].onload();}}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r);},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l));}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this;}function k(){var a=B;return a.loader={load:j,i:0},a;}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance" in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a);},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a;}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++){g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));}for(f=0;f<b;f++){c=x[f](c);}return c;}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2;})));}function h(a,b){function c(a,c){if(a){if(e(a)){c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l();}),g(a,j,b,0,h);}else{if(Object(a)===a){for(n in m=function(){var b=0,c;for(c in a){a.hasOwnProperty(c)&&b++;}return b;}(),a){a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l();}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l();};}(k[n])),g(a[n],j,b,n,h));}}}}else{!c&&l();}}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i);}var i,j,l=this.yepnope.loader;if(e(a)){g(a,0,l,0);}else{if(w(a)){for(i=0;i<a.length;i++){j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);}}else{Object(a)===a&&h(a,l);}}},B.addPrefix=function(a,b){z[a]=b;},B.addFilter=function(a){x.push(a);},B.errorTimeout=10000,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete";},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d){k.setAttribute(o,d[o]);}c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null);},m(function(){l||(l=1,c(1));},e),i?k.onload():n.parentNode.insertBefore(k,n);},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d){e.setAttribute(j,d[j]);}g||(n.parentNode.insertBefore(e,n),m(c,0));};}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0));},Modernizr.addTest("ie8compat",function(){return !window.addEventListener&&document.documentMode&&document.documentMode===7;});
68   /* Ende custom.modernizr */
69   /* Start jquery */
70   /*!
71 * --GSBDocStart
72 * @module jQuery JavaScript Library
73 * @version 1.11.1
74 * @see {@link (http://jquery.com/)}
75 * @author jQuery Foundation, Inc. and other contributors
76 * @license JS Foundation
77 * 
78 * @desc Einbettung der jQuery Library
79 *--GSBDocEnd
80 *
81 * Includes Sizzle.js
82 * http://sizzlejs.com/
83 *
84 * Copyright 2005, 2014 
85 * Released under the MIT license
86 * http://jquery.org/license
87 */
88(function(global,factory){if(typeof module==="object"&&typeof module.exports==="object"){module.exports=global.document?factory(global,true):function(w){if(!w.document){throw new Error("jQuery requires a window with a document");}return factory(w);};}else{factory(global);}}(typeof window!=="undefined"?window:this,function(window,noGlobal){var deletedIds=[];var slice=deletedIds.slice;var concat=deletedIds.concat;var push=deletedIds.push;var indexOf=deletedIds.indexOf;var class2type={};var toString=class2type.toString;var hasOwn=class2type.hasOwnProperty;var support={};var version="1.11.1",jQuery=function(selector,context){return new jQuery.fn.init(selector,context);},rtrim=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,rmsPrefix=/^-ms-/,rdashAlpha=/-([\da-z])/gi,fcamelCase=function(all,letter){return letter.toUpperCase();};jQuery.fn=jQuery.prototype={jquery:version,constructor:jQuery,selector:"",length:0,toArray:function(){return slice.call(this);},get:function(num){return num!=null?(num<0?this[num+this.length]:this[num]):slice.call(this);},pushStack:function(elems){var ret=jQuery.merge(this.constructor(),elems);
88ret.prevObject=this;ret.context=this.context;return ret;},each:function(callback,args){return jQuery.each(this,callback,args);},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},slice:function(){return this.pushStack(slice.apply(this,arguments));},first:function(){return this.eq(0);},last:function(){return this.eq(-1);},eq:function(i){var len=this.length,j=+i+(i<0?len:0);return this.pushStack(j>=0&&j<len?[this[j]]:[]);},end:function(){return this.prevObject||this.constructor(null);},push:push,sort:deletedIds.sort,splice:deletedIds.splice};jQuery.extend=jQuery.fn.extend=function(){var src,copyIsArray,copy,name,options,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target==="boolean"){deep=target;target=arguments[i]||{};i++;}if(typeof target!=="object"&&!jQuery.isFunction(target)){target={};}if(i===length){target=this;i--;}for(;i<length;i++){if((options=arguments[i])!=null){for(name in options){src=target[name];copy=options[name];if(target===copy){continue;}if(deep&&copy&&(jQuery.isPlainObject(copy)||(copyIsArray=jQuery.isArray(copy)))){if(copyIsArray){copyIsArray=false;clone=src&&jQuery.isArray(src)?src:[];}else{clone=src&&jQuery.isPlainObject(src)?src:{};}target[name]=jQuery.extend(deep,clone,copy);}else{if(copy!==undefined){target[name]=copy;}}}}}return target;};jQuery.extend({expando:"jQuery"+(version+Math.random()).replace(/\D/g,""),isReady:true,error:function(msg){throw new Error(msg);},noop:function(){},isFunction:function(obj){return jQuery.type(obj)==="function";},isArray:Array.isArray||function(obj){return jQuery.type(obj)==="array";},isWindow:function(obj){return obj!=null&&obj==obj.window;},isNumeric:function(obj){return !jQuery.isArray(obj)&&obj-parseFloat(obj)>=0;},isEmptyObject:function(obj){var name;for(name in obj){return false;}return true;},isPlainObject:function(obj){var key;if(!obj||jQuery.type(obj)!=="object"||obj.nodeType||jQuery.isWindow(obj)){return false;}try{if(obj.constructor&&!hasOwn.call(obj,"constructor")&&!hasOwn.call(obj.constructor.prototype,"isPrototypeOf")){return false;}}catch(e){return false;}if(support.ownLast){for(key in obj){return hasOwn.call(obj,key);}}for(key in obj){}return key===undefined||hasOwn.call(obj,key);},type:function(obj){if(obj==null){return obj+"";}return typeof obj==="object"||typeof obj==="function"?class2type[toString.call(obj)]||"object":typeof obj;},globalEval:function(data){if(data&&jQuery.trim(data)){(window.execScript||function(data){window["eval"].call(window,data);})(data);}},camelCase:function(string){return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase);},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase();},each:function(obj,callback,args){var value,i=0,length=obj.length,isArray=isArraylike(obj);if(args){if(isArray){for(;i<length;i++){value=callback.apply(obj[i],args);if(value===false){break;}}}else{for(i in obj){value=callback.apply(obj[i],args);if(value===false){break;}}}}else{if(isArray){for(;i<length;i++){value=callback.call(obj[i],i,obj[i]);if(value===false){break;}}}else{for(i in obj){value=callback.call(obj[i],i,obj[i]);if(value===false){break;}}}}return obj;},trim:function(text){return text==null?"":(text+"").replace(rtrim,"");},makeArray:function(arr,results){var ret=results||[];if(arr!=null){if(isArraylike(Object(arr))){jQuery.merge(ret,typeof arr==="string"?[arr]:arr);}else{push.call(ret,arr);}}return ret;},inArray:function(elem,arr,i){var len;if(arr){if(indexOf){return indexOf.call(arr,elem,i);}len=arr.length;i=i?i<0?Math.max(0,len+i):i:0;for(;i<len;i++){if(i in arr&&arr[i]===elem){return i;}}}return -1;},merge:function(first,second){var len=+second.length,j=0,i=first.length;while(j<len){first[i++]=second[j++];}if(len!==len){while(second[j]!==undefined){first[i++]=second[j++];}}first.length=i;return first;},grep:function(elems,callback,invert){var callbackInverse,matches=[],i=0,length=elems.length,callbackExpect=!invert;for(;i<length;i++){callbackInverse=!callback(elems[i],i);if(callbackInverse!==callbackExpect){matches.push(elems[i]);}}return matches;},map:function(elems,callback,arg){var value,i=0,length=elems.length,isArray=isArraylike(elems),ret=[];if(isArray){for(;i<length;i++){value=callback(elems[i],i,arg);if(value!=null){ret.push(value);}}}else{for(i in elems){value=callback(elems[i],i,arg);if(value!=null){ret.push(value);}}}return concat.apply([],ret);},guid:1,proxy:function(fn,context){var args,proxy,tmp;if(typeof context==="string"){tmp=fn[context];context=fn;fn=tmp;}if(!jQuery.isFunction(fn)){return undefined;}args=slice.call(arguments,2);proxy=function(){return fn.apply(context||this,args.concat(slice.call(arguments)));};proxy.guid=fn.guid=fn.guid||jQuery.guid++;return proxy;},now:function(){return +(new Date());},support:support});jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(i,name){class2type["[object "+name+"]"]=name.toLowerCase();});function isArraylike(obj){var length=obj.length,type=jQuery.type(obj);if(type==="function"||jQuery.isWindow(obj)){return false;}if(obj.nodeType===1&&length){return true;}return type==="array"||length===0||typeof length==="number"&&length>0&&(length-1) in obj;}var Sizzle=
89/*!
90 * Sizzle CSS Selector Engine v1.10.19
91 * http://sizzlejs.com/
92 *
93 * Copyright 2013 jQuery Foundation, Inc. and other contributors
94 * Released under the MIT license
95 * http://jquery.org/license
96 *
97 * Date: 2014-04-18
98 */
99(function(window){var i,support,Expr,getText,isXML,tokenize,compile,select,outermostContext,sortInput,hasDuplicate,
99setDocument,document,docElem,documentIsHTML,rbuggyQSA,rbuggyMatches,matches,contains,expando="sizzle"+-(new Date()),preferredDoc=window.document,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),sortOrder=function(a,b){if(a===b){hasDuplicate=true;}return 0;},strundefined=typeof undefined,MAX_NEGATIVE=1<<31,hasOwn=({}).hasOwnProperty,arr=[],pop=arr.pop,push_native=arr.push,push=arr.push,slice=arr.slice,indexOf=arr.indexOf||function(elem){var i=0,len=this.length;for(;i<len;i++){if(this[i]===elem){return i;}}return -1;},booleans="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",whitespace="[\\x20\\t\\r\\n\\f]",characterEncoding="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",identifier=characterEncoding.replace("w","w#"),attributes="\\["+whitespace+"*("+characterEncoding+")(?:"+whitespace+"*([*^$|!~]?=)"+whitespace+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+identifier+"))|)"+whitespace+"*\\]",pseudos=":("+characterEncoding+")(?:\\(("+"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|"+"((?:\\\\.|[^\\\\()[\\]]|"+attributes+")*)|"+".*"+")\\)|)",rtrim=new RegExp("^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+whitespace+"+$","g"),rcomma=new RegExp("^"+whitespace+"*,"+whitespace+"*"),rcombinators=new RegExp("^"+whitespace+"*([>+~]|"+whitespace+")"+whitespace+"*"),rattributeQuotes=new RegExp("="+whitespace+"*([^\\]'\"]*?)"+whitespace+"*\\]","g"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp("^"+identifier+"$"),matchExpr={"ID":new RegExp("^#("+characterEncoding+")"),"CLASS":new RegExp("^\\.("+characterEncoding+")"),"TAG":new RegExp("^("+characterEncoding.replace("w","w*")+")"),"ATTR":new RegExp("^"+attributes),"PSEUDO":new RegExp("^"+pseudos),"CHILD":new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),"bool":new RegExp("^(?:"+booleans+")$","i"),"needsContext":new RegExp("^"+whitespace+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+whitespace+"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")},rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\d$/i,rnative=/^[^{]+\{\s*\[native \w/,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,rescape=/'|\\/g,runescape=new RegExp("\\\\([\\da-f]{1,6}"+whitespace+"?|("+whitespace+")|.)","ig"),funescape=function(_,escaped,escapedWhitespace){var high="0x"+escaped-65536;return high!==high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,high&1023|56320);};try{push.apply((arr=slice.call(preferredDoc.childNodes)),preferredDoc.childNodes);arr[preferredDoc.childNodes.length].nodeType;}catch(e){push={apply:arr.length?function(target,els){push_native.apply(target,slice.call(els));}:function(target,els){var j=target.length,i=0;while((target[j++]=els[i++])){}target.length=j-1;}};}function Sizzle(selector,context,results,seed){var match,elem,m,nodeType,i,groups,old,nid,newContext,newSelector;if((context?context.ownerDocument||context:preferredDoc)!==document){setDocument(context);}context=context||document;results=results||[];if(!selector||typeof selector!=="string"){return results;}if((nodeType=context.nodeType)!==1&&nodeType!==9){return[];}if(documentIsHTML&&!seed){if((match=rquickExpr.exec(selector))){if((m=match[1])){if(nodeType===9){elem=context.getElementById(m);if(elem&&elem.parentNode){if(elem.id===m){results.push(elem);return results;}}else{return results;}}else{if(context.ownerDocument&&(elem=context.ownerDocument.getElementById(m))&&contains(context,elem)&&elem.id===m){results.push(elem);return results;}}}else{if(match[2]){push.apply(results,context.getElementsByTagName(selector));return results;}else{if((m=match[3])&&support.getElementsByClassName&&context.getElementsByClassName){push.apply(results,context.getElementsByClassName(m));return results;}}}}if(support.qsa&&(!rbuggyQSA||!rbuggyQSA.test(selector))){nid=old=expando;newContext=context;newSelector=nodeType===9&&selector;if(nodeType===1&&context.nodeName.toLowerCase()!=="object"){groups=tokenize(selector);if((old=context.getAttribute("id"))){nid=old.replace(rescape,"\\$&");}else{context.setAttribute("id",nid);}nid="[id='"+nid+"'] ";i=groups.length;while(i--){groups[i]=nid+toSelector(groups[i]);}newContext=rsibling.test(selector)&&testContext(context.parentNode)||context;newSelector=groups.join(",");}if(newSelector){try{push.apply(results,newContext.querySelectorAll(newSelector));return results;}catch(qsaError){}finally{if(!old){context.removeAttribute("id");}}}}}return select(selector.replace(rtrim,"$1"),context,results,seed);}function createCache(){var keys=[];function cache(key,value){if(keys.push(key+" ")>Expr.cacheLength){delete cache[keys.shift()];}return(cache[key+" "]=value);}return cache;}function markFunction(fn){fn[expando]=true;return fn;}function assert(fn){var div=document.createElement("div");try{return !!fn(div);}catch(e){return false;}finally{if(div.parentNode){div.parentNode.removeChild(div);}div=null;}}function addHandle(attrs,handler){var arr=attrs.split("|"),i=attrs.length;while(i--){Expr.attrHandle[arr[i]]=handler;}}function siblingCheck(a,b){var cur=b&&a,diff=cur&&a.nodeType===1&&b.nodeType===1&&(~b.sourceIndex||MAX_NEGATIVE)-(~a.sourceIndex||MAX_NEGATIVE);if(diff){return diff;}if(cur){while((cur=cur.nextSibling)){if(cur===b){return -1;}}}return a?1:-1;}function createInputPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type===type;};}function createButtonPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return(name==="input"||name==="button")&&elem.type===type;};}function createPositionalPseudo(fn){return markFunction(function(argument){argument=+argument;return markFunction(function(seed,matches){var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;while(i--){if(seed[(j=matchIndexes[i])]){seed[j]=!(matches[j]=seed[j]);}}});});}function testContext(context){return context&&typeof context.getElementsByTagName!==strundefined&&context;}support=Sizzle.support={};isXML=Sizzle.isXML=function(elem){var documentElement=elem&&(elem.ownerDocument||elem).documentElement;return documentElement?documentElement.nodeName!=="HTML":false;};setDocument=Sizzle.setDocument=function(node){var hasCompare,doc=node?node.ownerDocument||node:preferredDoc,parent=doc.defaultView;if(doc===document||doc.nodeType!==9||!doc.documentElement){return document;}document=doc;docElem=doc.documentElement;documentIsHTML=!isXML(doc);if(parent&&parent!==parent.top){if(parent.addEventListener){parent.addEventListener("unload",function(){setDocument();},false);}else{if(parent.attachEvent){parent.attachEvent("onunload",function(){setDocument();});}}}support.attributes=assert(function(div){div.className="i";return !div.getAttribute("className");});support.getElementsByTagName=assert(function(div){div.appendChild(doc.createComment(""));return !div.getElementsByTagName("*").length;});support.getElementsByClassName=rnative.test(doc.getElementsByClassName)&&assert(function(div){div.innerHTML="<div class='a'></div><div class='a i'></div>";div.firstChild.className="i";return div.getElementsByClassName("i").length===2;});support.getById=assert(function(div){docElem.appendChild(div).id=expando;return !doc.getElementsByName||!doc.getElementsByName(expando).length;});if(support.getById){Expr.find["ID"]=function(id,context){if(typeof context.getElementById!==strundefined&&documentIsHTML){var m=context.getElementById(id);return m&&m.parentNode?[m]:[];}};Expr.filter["ID"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId;};};}else{delete Expr.find["ID"];Expr.filter["ID"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){var node=typeof elem.getAttributeNode!==strundefined&&elem.getAttributeNode("id");return node&&node.value===attrId;};};}Expr.find["TAG"]=support.getElementsByTagName?function(tag,context){if(typeof context.getElementsByTagName!==strundefined){return context.getElementsByTagName(tag);}}:function(tag,context){var elem,tmp=[],i=0,results=context.getElementsByTagName(tag);if(tag==="*"){while((elem=results[i++])){if(elem.nodeType===1){tmp.push(elem);}}return tmp;}return results;};Expr.find["CLASS"]=support.getElementsByClassName&&function(className,context){if(typeof context.getElementsByClassName!==strundefined&&documentIsHTML){return context.getElementsByClassName(className);}};rbuggyMatches=[];rbuggyQSA=[];if((support.qsa=rnative.test(doc.querySelectorAll))){assert(function(div){div.innerHTML="<select msallowclip=''><option selected=''></option></select>";if(div.querySelectorAll("[msallowclip^='']").length){rbuggyQSA.push("[*^$]="+whitespace+"*(?:''|\"\")");}if(!div.querySelectorAll("[selected]").length){rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")");}if(!div.querySelectorAll(":checked").length){rbuggyQSA.push(":checked");}});assert(function(div){var input=doc.createElement("input");input.setAttribute("type","hidden");div.appendChild(input).setAttribute("name","D");if(div.querySelectorAll("[name=d]").length){rbuggyQSA.push("name"+whitespace+"*[*^$|!~]?=");}if(!div.querySelectorAll(":enabled").length){rbuggyQSA.push(":enabled",":disabled");}div.querySelectorAll("*,:x");rbuggyQSA.push(",.*:");});}if((support.matchesSelector=rnative.test((matches=docElem.matches||docElem.webkitMatchesSelector||docElem.mozMatchesSelector||docElem.oMatchesSelector||docElem.msMatchesSelector)))){assert(function(div){support.disconnectedMatch=matches.call(div,"div");matches.call(div,"[s!='']:x");rbuggyMatches.push("!=",pseudos);});}
99rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|"));rbuggyMatches=rbuggyMatches.length&&new RegExp(rbuggyMatches.join("|"));hasCompare=rnative.test(docElem.compareDocumentPosition);contains=hasCompare||rnative.test(docElem.contains)?function(a,b){var adown=a.nodeType===9?a.documentElement:a,bup=b&&b.parentNode;return a===bup||!!(bup&&bup.nodeType===1&&(adown.contains?adown.contains(bup):a.compareDocumentPosition&&a.compareDocumentPosition(bup)&16));}:function(a,b){if(b){while((b=b.parentNode)){if(b===a){return true;}}}return false;};sortOrder=hasCompare?function(a,b){if(a===b){hasDuplicate=true;return 0;}var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;if(compare){return compare;}compare=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1;if(compare&1||(!support.sortDetached&&b.compareDocumentPosition(a)===compare)){if(a===doc||a.ownerDocument===preferredDoc&&contains(preferredDoc,a)){return -1;}if(b===doc||b.ownerDocument===preferredDoc&&contains(preferredDoc,b)){return 1;}return sortInput?(indexOf.call(sortInput,a)-indexOf.call(sortInput,b)):0;}return compare&4?-1:1;}:function(a,b){if(a===b){hasDuplicate=true;return 0;}var cur,i=0,aup=a.parentNode,bup=b.parentNode,ap=[a],bp=[b];if(!aup||!bup){return a===doc?-1:b===doc?1:aup?-1:bup?1:sortInput?(indexOf.call(sortInput,a)-indexOf.call(sortInput,b)):0;}else{if(aup===bup){return siblingCheck(a,b);}}cur=a;while((cur=cur.parentNode)){ap.unshift(cur);}cur=b;while((cur=cur.parentNode)){bp.unshift(cur);}while(ap[i]===bp[i]){i++;}return i?siblingCheck(ap[i],bp[i]):ap[i]===preferredDoc?-1:bp[i]===preferredDoc?1:0;};return doc;};Sizzle.matches=function(expr,elements){return Sizzle(expr,null,null,elements);};Sizzle.matchesSelector=function(elem,expr){if((elem.ownerDocument||elem)!==document){setDocument(elem);}expr=expr.replace(rattributeQuotes,"='$1']");if(support.matchesSelector&&documentIsHTML&&(!rbuggyMatches||!rbuggyMatches.test(expr))&&(!rbuggyQSA||!rbuggyQSA.test(expr))){try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&elem.document.nodeType!==11){return ret;}}catch(e){}}return Sizzle(expr,document,null,[elem]).length>0;};Sizzle.contains=function(context,elem){if((context.ownerDocument||context)!==document){setDocument(context);}return contains(context,elem);};Sizzle.attr=function(elem,name){if((elem.ownerDocument||elem)!==document){setDocument(elem);}var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):undefined;return val!==undefined?val:support.attributes||!documentIsHTML?elem.getAttribute(name):(val=elem.getAttributeNode(name))&&val.specified?val.value:null;};Sizzle.error=function(msg){throw new Error("Syntax error, unrecognized expression: "+msg);};Sizzle.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;hasDuplicate=!support.detectDuplicates;sortInput=!support.sortStable&&results.slice(0);results.sort(sortOrder);if(hasDuplicate){while((elem=results[i++])){if(elem===results[i]){j=duplicates.push(i);}}while(j--){results.splice(duplicates[j],1);}}sortInput=null;return results;};getText=Sizzle.getText=function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(!nodeType){while((node=elem[i++])){ret+=getText(node);}}else{if(nodeType===1||nodeType===9||nodeType===11){if(typeof elem.textContent==="string"){return elem.textContent;}else{for(elem=elem.firstChild;elem;elem=elem.nextSibling){ret+=getText(elem);}}}else{if(nodeType===3||nodeType===4){return elem.nodeValue;}}}return ret;};Expr=Sizzle.selectors={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{"ATTR":function(match){match[1]=match[1].replace(runescape,funescape);match[3]=(match[3]||match[4]||match[5]||"").replace(runescape,funescape);if(match[2]==="~="){match[3]=" "+match[3]+" ";}return match.slice(0,4);},"CHILD":function(match){match[1]=match[1].toLowerCase();if(match[1].slice(0,3)==="nth"){if(!match[3]){Sizzle.error(match[0]);}match[4]=+(match[4]?match[5]+(match[6]||1):2*(match[3]==="even"||match[3]==="odd"));match[5]=+((match[7]+match[8])||match[3]==="odd");}else{if(match[3]){Sizzle.error(match[0]);}}return match;},"PSEUDO":function(match){var excess,unquoted=!match[6]&&match[2];
99if(matchExpr["CHILD"].test(match[0])){return null;}if(match[3]){match[2]=match[4]||match[5]||"";}else{if(unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,true))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)){match[0]=match[0].slice(0,excess);match[2]=unquoted.slice(0,excess);}}return match.slice(0,3);}},filter:{"TAG":function(nodeNameSelector){var nodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return nodeNameSelector==="*"?function(){return true;}:function(elem){return elem.nodeName&&elem.nodeName.toLowerCase()===nodeName;};},"CLASS":function(className){var pattern=classCache[className+" "];return pattern||(pattern=new RegExp("(^|"+whitespace+")"+className+"("+whitespace+"|$)"))&&classCache(className,function(elem){return pattern.test(typeof elem.className==="string"&&elem.className||typeof elem.getAttribute!==strundefined&&elem.getAttribute("class")||"");});},"ATTR":function(name,operator,check){return function(elem){var result=Sizzle.attr(elem,name);if(result==null){return operator==="!=";}if(!operator){return true;}result+="";return operator==="="?result===check:operator==="!="?result!==check:operator==="^="?check&&result.indexOf(check)===0:operator==="*="?check&&result.indexOf(check)>-1:operator==="$="?check&&result.slice(-check.length)===check:operator==="~="?(" "+result+" ").indexOf(check)>-1:operator==="|="?result===check||result.slice(0,check.length+1)===check+"-":false;};},"CHILD":function(type,what,argument,first,last){var simple=type.slice(0,3)!=="nth",forward=type.slice(-4)!=="last",ofType=what==="of-type";return first===1&&last===0?function(elem){return !!elem.parentNode;}:function(elem,context,xml){var cache,outerCache,node,diff,nodeIndex,start,dir=simple!==forward?"nextSibling":"previousSibling",parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType;if(parent){if(simple){while(dir){node=elem;while((node=node[dir])){if(ofType?node.nodeName.toLowerCase()===name:node.nodeType===1){return false;}}start=dir=type==="only"&&!start&&"nextSibling";}return true;}start=[forward?parent.firstChild:parent.lastChild];if(forward&&useCache){outerCache=parent[expando]||(parent[expando]={});cache=outerCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=cache[0]===dirruns&&cache[2];node=nodeIndex&&parent.childNodes[nodeIndex];while((node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())){if(node.nodeType===1&&++diff&&node===elem){outerCache[type]=[dirruns,nodeIndex,diff];break;}}}else{if(useCache&&(cache=(elem[expando]||(elem[expando]={}))[type])&&cache[0]===dirruns){diff=cache[1];}else{while((node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())){if((ofType?node.nodeName.toLowerCase()===name:node.nodeType===1)&&++diff){if(useCache){(node[expando]||(node[expando]={}))[type]=[dirruns,diff];}if(node===elem){break;}}}}}diff-=last;return diff===first||(diff%first===0&&diff/first>=0);}};},"PSEUDO":function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||Sizzle.error("unsupported pseudo: "+pseudo);if(fn[expando]){return fn(argument);}if(fn.length>1){args=[pseudo,pseudo,"",argument];return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction(function(seed,matches){var idx,matched=fn(seed,argument),i=matched.length;while(i--){idx=indexOf.call(seed,matched[i]);seed[idx]=!(matches[idx]=matched[i]);}}):function(elem){return fn(elem,0,args);};}return fn;}},pseudos:{"not":markFunction(function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrim,"$1"));return matcher[expando]?markFunction(function(seed,matches,context,xml){var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;while(i--){if((elem=unmatched[i])){seed[i]=!(matches[i]=elem);}}}):function(elem,context,xml){input[0]=elem;matcher(input,null,xml,results);return !results.pop();};}),"has":markFunction(function(selector){return function(elem){return Sizzle(selector,elem).length>0;};}),"contains":markFunction(function(text){return function(elem){return(elem.textContent||elem.innerText||getText(elem)).indexOf(text)>-1;};}),"lang":markFunction(function(lang){if(!ridentifier.test(lang||"")){Sizzle.error("unsupported lang: "+lang);}lang=lang.replace(runescape,funescape).toLowerCase();return function(elem){var elemLang;do{if((elemLang=documentIsHTML?elem.lang:elem.getAttribute("xml:lang")||elem.getAttribute("lang"))){elemLang=elemLang.toLowerCase();return elemLang===lang||elemLang.indexOf(lang+"-")===0;}}while((elem=elem.parentNode)&&elem.nodeType===1);return false;};}),"target":function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id;},"root":function(elem){return elem===docElem;},"focus":function(elem){return elem===document.activeElement&&(!document.hasFocus||document.hasFocus())&&!!(elem.type||elem.href||~elem.tabIndex);},"enabled":function(elem){return elem.disabled===false;},"disabled":function(elem){return elem.disabled===true;},"checked":function(elem){var nodeName=elem.nodeName.toLowerCase();return(nodeName==="input"&&!!elem.checked)||(nodeName==="option"&&!!elem.selected);},"selected":function(elem){if(elem.parentNode){elem.parentNode.selectedIndex;}return elem.selected===true;},"empty":function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling){if(elem.nodeType<6){return false;}}return true;},"parent":function(elem){return !Expr.pseudos["empty"](elem);},"header":function(elem){return rheader.test(elem.nodeName);},"input":function(elem){return rinputs.test(elem.nodeName);},"button":function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type==="button"||name==="button";},"text":function(elem){var attr;return elem.nodeName.toLowerCase()==="input"&&elem.type==="text"&&((attr=elem.getAttribute("type"))==null||attr.toLowerCase()==="text");},"first":createPositionalPseudo(function(){return[0];}),"last":createPositionalPseudo(function(matchIndexes,length){return[length-1];}),"eq":createPositionalPseudo(function(matchIndexes,length,argument){return[argument<0?argument+length:argument];}),"even":createPositionalPseudo(function(matchIndexes,length){var i=0;for(;i<length;i+=2){matchIndexes.push(i);}return matchIndexes;}),"odd":createPositionalPseudo(function(matchIndexes,length){var i=1;for(;i<length;i+=2){matchIndexes.push(i);}return matchIndexes;}),"lt":createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;--i>=0;){matchIndexes.push(i);}return matchIndexes;}),"gt":createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;++i<length;){matchIndexes.push(i);}return matchIndexes;})}};Expr.pseudos["nth"]=Expr.pseudos["eq"];for(i in {radio:true,checkbox:true,file:true,password:true,image:true}){Expr.pseudos[i]=createInputPseudo(i);}for(i in {submit:true,reset:true}){Expr.pseudos[i]=createButtonPseudo(i);}function setFilters(){}setFilters.prototype=Expr.filters=Expr.pseudos;Expr.setFilters=new setFilters();tokenize=Sizzle.tokenize=function(selector,parseOnly){var matched,match,tokens,type,soFar,groups,preFilters,cached=tokenCache[
vendor: 5,716 bytes, line 99
99selector+" "];if(cached){return parseOnly?0:cached.slice(0);}soFar=selector;groups=[];preFilters=Expr.preFilter;while(soFar){if(!matched||(match=rcomma.exec(soFar))){if(match){soFar=soFar.slice(match[0].length)||soFar;}groups.push((tokens=[]));}matched=false;if((match=rcombinators.exec(soFar))){matched=match.shift();tokens.push({value:matched,type:match[0].replace(rtrim," ")});soFar=soFar.slice(matched.length);}for(type in Expr.filter){if((match=matchExpr[type].exec(soFar))&&(!preFilters[type]||(match=preFilters[type](match)))){matched=match.shift();tokens.push({value:matched,type:type,matches:match});soFar=soFar.slice(matched.length);}}if(!matched){break;}}return parseOnly?soFar.length:soFar?Sizzle.error(selector):tokenCache(selector,groups).slice(0);};function toSelector(tokens){var i=0,len=tokens.length,selector="";for(;i<len;i++){selector+=tokens[i].value;}return selector;}function addCombinator(matcher,combinator,base){var dir=combinator.dir,checkNonElements=base&&dir==="parentNode",doneName=done++;return combinator.first?function(elem,context,xml){while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){return matcher(elem,context,xml);}}}:function(elem,context,xml){var oldCache,outerCache,newCache=[dirruns,doneName];if(xml){while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){if(matcher(elem,context,xml)){return true;}}}}else{while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){outerCache=elem[expando]||(elem[expando]={});if((oldCache=outerCache[dir])&&oldCache[0]===dirruns&&oldCache[1]===doneName){return(newCache[2]=oldCache[2]);}else{outerCache[dir]=newCache;if((newCache[2]=matcher(elem,context,xml))){return true;}}}}}};}function elementMatcher(matchers){return matchers.length>1?function(elem,context,xml){var i=matchers.length;while(i--){if(!matchers[i](elem,context,xml)){return false;}}return true;}:matchers[0];}function multipleContexts(selector,contexts,results){var i=0,len=contexts.length;for(;i<len;i++){Sizzle(selector,contexts[i],results);}return results;}function condense(unmatched,map,filter,context,xml){var elem,newUnmatched=[],i=0,len=unmatched.length,mapped=map!=null;for(;i<len;i++){if((elem=unmatched[i])){if(!filter||filter(elem,context,xml)){newUnmatched.push(elem);if(mapped){map.push(i);}}}}return newUnmatched;}function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){if(postFilter&&!postFilter[expando]){postFilter=setMatcher(postFilter);}if(postFinder&&!postFinder[expando]){postFinder=setMatcher(postFinder,postSelector);}return markFunction(function(seed,results,context,xml){var temp,i,elem,preMap=[],postMap=[],preexisting=results.length,elems=seed||multipleContexts(selector||"*",context.nodeType?[context]:context,[]),matcherIn=preFilter&&(seed||!selector)?condense(elems,preMap,preFilter,context,xml):elems,matcherOut=matcher?postFinder||(seed?preFilter:preexisting||postFilter)?[]:results:matcherIn;if(matcher){matcher(matcherIn,matcherOut,context,xml);}if(postFilter){temp=condense(matcherOut,postMap);postFilter(temp,[],context,xml);i=temp.length;while(i--){if((elem=temp[i])){matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem);}}}if(seed){if(postFinder||preFilter){if(postFinder){temp=[];i=matcherOut.length;while(i--){if((elem=matcherOut[i])){temp.push((matcherIn[i]=elem));}}postFinder(null,(matcherOut=[]),temp,xml);}i=matcherOut.length;while(i--){if((elem=matcherOut[i])&&(temp=postFinder?indexOf.call(seed,elem):preMap[i])>-1){seed[temp]=!(results[temp]=elem);}}}}else{matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut);if(postFinder){postFinder(null,results,matcherOut,xml);}else{push.apply(results,matcherOut);}}});}function matcherFromTokens(tokens){var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[" "],i=leadingRelative?1:0,matchContext=addCombinator(function(elem){return elem===checkContext;},implicitRelative,true),matchAnyContext=addCombinator(function(elem){return indexOf.call(checkContext,elem)>-1;},implicitRelative,true),matchers=[function(elem,context,xml){return(!leadingRelative&&(xml||context!==outermostContext))||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml));}];for(;i<len;i++){if((matcher=Expr.relative[tokens[i].type])){matchers=[addCombinator(elementMatcher(matchers),matcher)];}else{matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches);if(matcher[expando]){j=++i;for(;j<len;j++){if(Expr.relative[tokens[j].type]){break;}}return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:tokens[i-2].type===" "?"*":""})).replace(rtrim,"$1"),matcher,i<j&&matcherFromTokens(tokens.slice(i,j)),j<len&&matcherFromTokens((tokens=tokens.slice(j))),j<len&&toSelector(tokens));}matchers.push(matcher);}}return elementMatcher(matchers);}function matcherFromGroupMatchers(elementMatchers,setMatchers){var bySet=setMatchers.length>0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i="0",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find["TAG"]("*",outermost),dirrunsUnique=(dirruns+=contextBackup==null?1:Math.random()||0.1),len=elems.length;if(outermost){outermostContext=context!==document&&context;}for(;i!==len&&(elem=elems[i])!=null;i++){if(byElement&&elem){j=0;while((matcher=elementMatchers[j++])){if(matcher(elem,context,xml)){results.push(elem);break;}}if(outermost){dirruns=dirrunsUnique;}}if(bySet){if((elem=!matcher&&elem)){matchedCount--;}if(seed){unmatched.push(elem);}}}matchedCount+=i;
99if(bySet&&i!==matchedCount){j=0;while((matcher=setMatchers[j++])){matcher(unmatched,setMatched,context,xml);}if(seed){if(matchedCount>0){while(i--){if(!(unmatched[i]||setMatched[i])){setMatched[i]=pop.call(results);}}}setMatched=condense(setMatched);}push.apply(results,setMatched);if(outermost&&!seed&&setMatched.length>0&&(matchedCount+setMatchers.length)>1){Sizzle.uniqueSort(results);}}if(outermost){dirruns=dirrunsUnique;outermostContext=contextBackup;}return unmatched;};return bySet?markFunction(superMatcher):superMatcher;}compile=Sizzle.compile=function(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+" "];if(!cached){if(!match){match=tokenize(selector);}i=match.length;while(i--){cached=matcherFromTokens(match[i]);if(cached[expando]){setMatchers.push(cached);}else{elementMatchers.push(cached);}}cached=compilerCache(selector,matcherFromGroupMatchers(elementMatchers,setMatchers));cached.selector=selector;}return cached;};select=Sizzle.select=function(selector,context,results,seed){var i,tokens,token,type,find,compiled=typeof selector==="function"&&selector,match=!seed&&tokenize((selector=compiled.selector||selector));results=results||[];if(match.length===1){tokens=match[0]=match[0].slice(0);if(tokens.length>2&&(token=tokens[0]).type==="ID"&&support.getById&&context.nodeType===9&&documentIsHTML&&Expr.relative[tokens[1].type]){context=(Expr.find["ID"](token.matches[0].replace(runescape,funescape),context)||[])[0];if(!context){return results;}else{if(compiled){context=context.parentNode;}}selector=selector.slice(tokens.shift().value.length);}i=matchExpr["needsContext"].test(selector)?0:tokens.length;while(i--){token=tokens[i];if(Expr.relative[(type=token.type)]){break;}if((find=Expr.find[type])){if((seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context))){tokens.splice(i,1);selector=seed.length&&toSelector(tokens);if(!selector){push.apply(results,seed);return results;}break;}}}}(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,rsibling.test(selector)&&testContext(context.parentNode)||context);return results;};support.sortStable=expando.split("").sort(sortOrder).join("")===expando;support.detectDuplicates=!!hasDuplicate;setDocument();support.sortDetached=assert(function(div1){return div1.compareDocumentPosition(document.createElement("div"))&1;});if(!assert(function(div){div.innerHTML="<a href='#'></a>";return div.firstChild.getAttribute("href")==="#";})){addHandle("type|href|height|width",function(elem,name,isXML){if(!isXML){return elem.getAttribute(name,name.toLowerCase()==="type"?1:2);}});}if(!support.attributes||!assert(function(div){div.innerHTML="<input/>";div.firstChild.setAttribute("value","");return div.firstChild.getAttribute("value")==="";})){addHandle("value",function(elem,name,isXML){if(!isXML&&elem.nodeName.toLowerCase()==="input"){return elem.defaultValue;}});}if(!assert(function(div){return div.getAttribute("disabled")==null;})){addHandle(booleans,function(elem,name,isXML){var val;if(!isXML){return elem[name]===true?name.toLowerCase():(val=elem.getAttributeNode(name))&&val.specified?val.value:null;}});}return Sizzle;})(window);jQuery.find=Sizzle;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.pseudos;jQuery.unique=Sizzle.uniqueSort;jQuery.text=Sizzle.getText;jQuery.isXMLDoc=Sizzle.isXML;jQuery.contains=Sizzle.contains;var rneedsContext=jQuery.expr.match.needsContext;var rsingleTag=(/^<(\w+)\s*\/?>(?:<\/\1>|)$/);var risSimple=/^.[^:#\[\.,]*$/;function winnow(elements,qualifier,not){if(jQuery.isFunction(qualifier)){return jQuery.grep(elements,function(elem,i){return !!qualifier.call(elem,i,elem)!==not;});}if(qualifier.nodeType){return jQuery.grep(elements,function(elem){return(elem===qualifier)!==not;});}if(typeof qualifier==="string"){if(risSimple.test(qualifier)){return jQuery.filter(qualifier,elements,not);}qualifier=jQuery.filter(qualifier,elements);}return jQuery.grep(elements,function(elem){return(jQuery.inArray(elem,qualifier)>=0)!==not;});}jQuery.filter=function(expr,elems,not){var elem=elems[0];if(not){expr=":not("+expr+")";}return elems.length===1&&elem.nodeType===1?jQuery.find.matchesSelector(elem,expr)?[elem]:[]:jQuery.find.matches(expr,jQuery.grep(elems,function(elem){return elem.nodeType===1;}));};jQuery.fn.extend({find:function(selector){var i,ret=[],self=this,len=self.length;if(typeof selector!=="string"){return this.pushStack(jQuery(selector).filter(function(){for(i=0;i<len;i++){if(jQuery.contains(self[i],this)){return true;}}}));}for(i=0;i<len;i++){jQuery.find(selector,self[i],ret);}ret=this.pushStack(len>1?jQuery.unique(ret):ret);ret.selector=this.selector?this.selector+" "+selector:selector;return ret;},filter:function(selector){return this.pushStack(winnow(this,selector||[],false));},not:function(selector){return this.pushStack(winnow(this,selector||[],true));},is:function(selector){return !!winnow(this,typeof selector==="string"&&rneedsContext.test(selector)?jQuery(selector):selector||[],false).length;}});var rootjQuery,document=window.document,rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,init=jQuery.fn.init=function(selector,context){var match,elem;if(!selector){return this;}if(typeof selector==="string"){if(selector.charAt(0)==="<"&&selector.charAt(selector.length-1)===">"&&selector.length>=3){match=[null,selector,null];}else{match=rquickExpr.exec(selector);}if(match&&(match[1]||!context)){if(match[1]){context=context instanceof jQuery?context[0]:context;jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,true));if(rsingleTag.test(match[1])&&jQuery.isPlainObject(context)){for(match in context){if(jQuery.isFunction(this[match])){this[match](context[match]);}else{this.attr(match,context[match]);}}}return this;}else{elem=document.getElementById(match[2]);if(elem&&elem.parentNode){if(elem.id!==match[2]){return rootjQuery.find(selector);}this.length=1;this[0]=elem;}this.context=document;this.selector=selector;return this;}}else{if(!context||context.jquery){return(context||rootjQuery).find(selector);}else{return this.constructor(context).find(selector);}}}else{if(selector.nodeType){this.context=this[0]=selector;this.length=1;return this;}else{if(jQuery.isFunction(selector)){return typeof rootjQuery.ready!=="undefined"?rootjQuery.ready(selector):selector(jQuery);}}}if(selector.selector!==undefined){this.selector=selector.selector;this.context=selector.context;}return jQuery.makeArray(selector,this);};init.prototype=jQuery.fn;rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,guaranteedUnique={children:true,contents:true,next:true,prev:true};jQuery.extend({dir:function(elem,dir,until){var matched=[],cur=elem[dir];while(cur&&cur.nodeType!==9&&(until===undefined||cur.nodeType!==1||!jQuery(cur).is(until))){if(cur.nodeType===1){matched.push(cur);}cur=cur[dir];}return matched;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType===1&&n!==elem){r.push(n);}}return r;}});jQuery.fn.extend({has:function(target){var i,targets=jQuery(target,this),len=targets.length;return this.filter(function(){for(i=0;i<len;i++){if(jQuery.contains(this,targets[i])){return true;}}});},closest:function(selectors,context){var cur,i=0,l=this.length,matched=[],pos=rneedsContext.test(selectors)||typeof selectors!=="string"?jQuery(selectors,context||this.context):0;for(;i<l;i++){for(cur=this[i];cur&&cur!==context;cur=cur.parentNode){if(cur.nodeType<11&&(pos?pos.index(cur)>-1:cur.nodeType===1&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break;}}}return this.pushStack(matched.length>1?jQuery.unique(matched):matched);},index:function(elem){if(!elem){return(this[0]&&this[0].parentNode)?this.first().prevAll().length:-1;}if(typeof elem==="string"){return jQuery.inArray(this[0],jQuery(elem));}return jQuery.inArray(elem.jquery?elem[0]:elem,this);},add:function(selector,context){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),jQuery(selector,context))));},addBack:function(selector){return this.add(selector==null?this.prevObject:this.prevObject.filter(selector));}});function sibling(cur,dir){do{cur=cur[dir];}while(cur&&cur.nodeType!==1);return cur;}jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null;},parents:function(elem){return jQuery.dir(elem,"parentNode");},parentsUntil:function(elem,i,until){return jQuery.dir(elem,"parentNode",until);},next:function(elem){return sibling(elem,"nextSibling");},prev:function(elem){return sibling(elem,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},nextUntil:function(elem,i,until){return jQuery.dir(elem,"nextSibling",until);},prevUntil:function(elem,i,until){return jQuery.dir(elem,"previousSibling",until);},siblings:function(elem){return jQuery.sibling((elem.parentNode||{}).firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.merge([],elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(until,selector){var ret=jQuery.map(this,fn,until);if(name.slice(-5)!=="Until"){selector=until;}if(selector&&typeof selector==="string"){ret=jQuery.filter(selector,ret);}if(this.length>1){if(!guaranteedUnique[name]){ret=jQuery.unique(ret);}if(rparentsprev.test(name)){ret=ret.reverse();}}return this.pushStack(ret);};});var rnotwhite=(/\S+/g);var optionsCache={};function createOptions(options){var object=optionsCache[options]={};jQuery.each(options.match(rnotwhite)||[],function(_,flag){object[flag]=true;});return object;}jQuery.Callbacks=function(options){options=typeof options==="string"?(optionsCache[options]||createOptions(options)):jQuery.extend({},options);var firing,memory,fired,firingLength,firingIndex,firingStart,list=[],stack=!options.once&&[],fire=function(data){memory=options.memory&&data;fired=true;firingIndex=firingStart||0;firingStart=0;firingLength=list.length;firing=true;for(;list&&firingIndex<firingLength;firingIndex++){if(list[firingIndex].apply(data[0],data[1])===false&&options.stopOnFalse){memory=false;break;}}firing=false;if(list){if(stack){if(stack.length){fire(stack.shift());}}else{if(memory){list=[];}else{self.disable();}}}},self={add:function(){if(list){var start=list.length;(function add(args){jQuery.each(args,function(_,arg){var type=jQuery.type(arg);if(type==="function"){if(!options.unique||!self.has(arg)){list.push(arg);}}else{if(arg&&arg.length&&type!=="string"){add(arg);}}});})(arguments);if(firing){firingLength=list.length;}else{if(memory){firingStart=start;fire(memory);}}
99}return this;},remove:function(){if(list){jQuery.each(arguments,function(_,arg){var index;while((index=jQuery.inArray(arg,list,index))>-1){list.splice(index,1);if(firing){if(index<=firingLength){firingLength--;}if(index<=firingIndex){firingIndex--;}}}});}return this;},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:!!(list&&list.length);},empty:function(){list=[];firingLength=0;return this;},disable:function(){list=stack=memory=undefined;return this;},disabled:function(){return !list;},lock:function(){stack=undefined;if(!memory){self.disable();}return this;},locked:function(){return !stack;},fireWith:function(context,args){if(list&&(!fired||stack)){args=args||[];args=[context,args.slice?args.slice():args];if(firing){stack.push(args);}else{fire(args);}}return this;},fire:function(){self.fireWith(this,arguments);return this;},fired:function(){return !!fired;}};return self;};jQuery.extend({Deferred:function(func){var tuples=[["resolve","done",jQuery.Callbacks("once memory"),"resolved"],["reject","fail",jQuery.Callbacks("once memory"),"rejected"],["notify","progress",jQuery.Callbacks("memory")]],state="pending",promise={state:function(){return state;},always:function(){deferred.done(arguments).fail(arguments);return this;},then:function(){var fns=arguments;return jQuery.Deferred(function(newDefer){jQuery.each(tuples,function(i,tuple){var fn=jQuery.isFunction(fns[i])&&fns[i];deferred[tuple[1]](function(){var returned=fn&&fn.apply(this,arguments);if(returned&&jQuery.isFunction(returned.promise)){returned.promise().done(newDefer.resolve).fail(newDefer.reject).progress(newDefer.notify);}else{newDefer[tuple[0]+"With"](this===promise?newDefer.promise():this,fn?[returned]:arguments);}});});fns=null;}).promise();},promise:function(obj){return obj!=null?jQuery.extend(obj,promise):promise;}},deferred={};promise.pipe=promise.then;jQuery.each(tuples,function(i,tuple){var list=tuple[2],stateString=tuple[3];promise[tuple[1]]=list.add;if(stateString){list.add(function(){state=stateString;},tuples[i^1][2].disable,tuples[2][2].lock);}deferred[tuple[0]]=function(){deferred[tuple[0]+"With"](this===deferred?promise:this,arguments);return this;};deferred[tuple[0]+"With"]=list.fireWith;});promise.promise(deferred);if(func){func.call(deferred,deferred);}return deferred;},when:function(subordinate){var i=0,resolveValues=slice.call(arguments),length=resolveValues.length,remaining=length!==1||(subordinate&&jQuery.isFunction(subordinate.promise))?length:0,deferred=remaining===1?subordinate:jQuery.Deferred(),updateFunc=function(i,contexts,values){return function(value){contexts[i]=this;values[i]=arguments.length>1?slice.call(arguments):value;if(values===progressValues){deferred.notifyWith(contexts,values);}else{if(!(--remaining)){deferred.resolveWith(contexts,values);}}};},progressValues,progressContexts,resolveContexts;if(length>1){progressValues=new Array(length);progressContexts=new Array(length);resolveContexts=new Array(length);for(;i<length;i++){if(resolveValues[i]&&jQuery.isFunction(resolveValues[i].promise)){resolveValues[i].promise().done(updateFunc(i,resolveContexts,resolveValues)).fail(deferred.reject).progress(updateFunc(i,progressContexts,progressValues));}else{--remaining;}}}if(!remaining){deferred.resolveWith(resolveContexts,resolveValues);}return deferred.promise();}});var readyList;jQuery.fn.ready=function(fn){jQuery.ready.promise().done(fn);return this;};jQuery.extend({isReady:false,readyWait:1,holdReady:function(hold){if(hold){jQuery.readyWait++;}else{jQuery.ready(true);}},ready:function(wait){if(wait===true?--jQuery.readyWait:jQuery.isReady){return;}if(!document.body){return setTimeout(jQuery.ready);}jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0){return;}readyList.resolveWith(document,[jQuery]);if(jQuery.fn.triggerHandler){jQuery(document).triggerHandler("ready");jQuery(document).off("ready");}}});function detach(){if(document.addEventListener){document.removeEventListener("DOMContentLoaded",completed,false);window.removeEventListener("load",completed,false);}else{document.detachEvent("onreadystatechange",completed);window.detachEvent("onload",completed);}}function completed(){if(document.addEventListener||event.type==="load"||document.readyState==="complete"){detach();jQuery.ready();}}
99jQuery.ready.promise=function(obj){if(!readyList){readyList=jQuery.Deferred();if(document.readyState==="complete"){setTimeout(jQuery.ready);}else{if(document.addEventListener){document.addEventListener("DOMContentLoaded",completed,false);window.addEventListener("load",completed,false);}else{document.attachEvent("onreadystatechange",completed);window.attachEvent("onload",completed);var top=false;try{top=window.frameElement==null&&document.documentElement;}catch(e){}if(top&&top.doScroll){(function doScrollCheck(){if(!jQuery.isReady){try{top.doScroll("left");}catch(e){return setTimeout(doScrollCheck,50);}detach();jQuery.ready();}})();}}}}return readyList.promise(obj);};var strundefined=typeof undefined;var i;for(i in jQuery(support)){break;}support.ownLast=i!=="0";support.inlineBlockNeedsLayout=false;jQuery(function(){var val,div,body,container;body=document.getElementsByTagName("body")[0];if(!body||!body.style){return;}div=document.createElement("div");container=document.createElement("div");container.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px";body.appendChild(container).appendChild(div);if(typeof div.style.zoom!==strundefined){div.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1";support.inlineBlockNeedsLayout=val=div.offsetWidth===3;if(val){body.style.zoom=1;}}body.removeChild(container);});(function(){var div=document.createElement("div");if(support.deleteExpando==null){support.deleteExpando=true;try{delete div.test;}catch(e){support.deleteExpando=false;}}div=null;})();jQuery.acceptData=function(elem){var noData=jQuery.noData[(elem.nodeName+" ").toLowerCase()],nodeType=+elem.nodeType||1;return nodeType!==1&&nodeType!==9?false:!noData||noData!==true&&elem.getAttribute("classid")===noData;};var rbrace=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,rmultiDash=/([A-Z])/g;function dataAttr(elem,key,data){if(data===undefined&&elem.nodeType===1){var name="data-"+key.replace(rmultiDash,"-$1").toLowerCase();data=elem.getAttribute(name);if(typeof data==="string"){try{data=data==="true"?true:data==="false"?false:data==="null"?null:+data+""===data?+data:rbrace.test(data)?jQuery.parseJSON(data):data;}catch(e){}jQuery.data(elem,key,data);}else{data=undefined;}}return data;}function isEmptyDataObject(obj){var name;for(name in obj){if(name==="data"&&jQuery.isEmptyObject(obj[name])){continue;}if(name!=="toJSON"){return false;}}return true;}function internalData(elem,name,data,pvt){if(!jQuery.acceptData(elem)){return;}var ret,thisCache,internalKey=jQuery.expando,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[internalKey]:elem[internalKey]&&internalKey;if((!id||!cache[id]||(!pvt&&!cache[id].data))&&data===undefined&&typeof name==="string"){return;}if(!id){if(isNode){id=elem[internalKey]=deletedIds.pop()||jQuery.guid++;}else{id=internalKey;}}if(!cache[id]){cache[id]=isNode?{}:{toJSON:jQuery.noop};}if(typeof name==="object"||typeof name==="function"){if(pvt){cache[id]=jQuery.extend(cache[id],name);}else{cache[id].data=jQuery.extend(cache[id].data,name);}}thisCache=cache[id];if(!pvt){if(!thisCache.data){thisCache.data={};}thisCache=thisCache.data;}if(data!==undefined){thisCache[jQuery.camelCase(name)]=data;}if(typeof name==="string"){ret=thisCache[name];if(ret==null){ret=thisCache[jQuery.camelCase(name)];}}else{ret=thisCache;}return ret;}function internalRemoveData(elem,name,pvt){if(!jQuery.acceptData(elem)){return;}var thisCache,i,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[jQuery.expando]:jQuery.expando;if(!cache[id]){return;}if(name){thisCache=pvt?cache[id]:cache[id].data;if(thisCache){if(!jQuery.isArray(name)){if(name in thisCache){name=[name];}else{name=jQuery.camelCase(name);if(name in thisCache){name=[name];}else{name=name.split(" ");}}}else{name=name.concat(jQuery.map(name,jQuery.camelCase));}i=name.length;while(i--){delete thisCache[name[i]];}if(pvt?!isEmptyDataObject(thisCache):!jQuery.isEmptyObject(thisCache)){return;}}}if(!pvt){delete cache[id].data;if(!isEmptyDataObject(cache[id])){return;}}if(isNode){jQuery.cleanData([elem],true);}else{if(support.deleteExpando||cache!=cache.window){delete cache[id];}else{cache[id]=null;}}}jQuery.extend({cache:{},noData:{"applet ":true,"embed ":true,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(elem){elem=elem.nodeType?jQuery.cache[elem[jQuery.expando]]:elem[jQuery.expando];return !!elem&&!isEmptyDataObject(elem);},data:function(elem,name,data){return internalData(elem,name,data);},removeData:function(elem,name){return internalRemoveData(elem,name);},_data:function(elem,name,data){return internalData(elem,name,data,true);},_removeData:function(elem,name){return internalRemoveData(elem,name,true);}});jQuery.fn.extend({data:function(key,value){var i,name,data,elem=this[0],attrs=elem&&elem.attributes;if(key===undefined){if(this.length){data=jQuery.data(elem);if(elem.nodeType===1&&!jQuery._data(elem,"parsedAttrs")){i=attrs.length;while(i--){if(attrs[i]){name=attrs[i].name;if(name.indexOf("data-")===0){name=jQuery.camelCase(name.slice(5));dataAttr(elem,name,data[name]);}}}jQuery._data(elem,"parsedAttrs",true);}}return data;}if(typeof key==="object"){return this.each(function(){jQuery.data(this,key);});}return arguments.length>1?this.each(function(){jQuery.data(this,key,value);}):elem?dataAttr(elem,key,jQuery.data(elem,key)):undefined;},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});}});jQuery.extend({queue:function(elem,type,data){var queue;if(elem){type=(type||"fx")+"queue";queue=jQuery._data(elem,type);if(data){if(!queue||jQuery.isArray(data)){queue=jQuery._data(elem,type,jQuery.makeArray(data));}else{queue.push(data);}}return queue||[];}},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),startLength=queue.length,fn=queue.shift(),hooks=jQuery._queueHooks(elem,type),next=function(){jQuery.dequeue(elem,type);};if(fn==="inprogress"){fn=queue.shift();startLength--;}if(fn){if(type==="fx"){queue.unshift("inprogress");}delete hooks.stop;fn.call(elem,next,hooks);}if(!startLength&&hooks){hooks.empty.fire();}},_queueHooks:function(elem,type){var key=type+"queueHooks";return jQuery._data(elem,key)||jQuery._data(elem,key,{empty:jQuery.Callbacks("once memory").add(function(){jQuery._removeData(elem,type+"queue");jQuery._removeData(elem,key);})});}});jQuery.fn.extend({queue:function(type,data){var setter=2;if(typeof type!=="string"){data=type;type="fx";setter--;}if(arguments.length<setter){return jQuery.queue(this[0],type);}return data===undefined?this:this.each(function(){var queue=jQuery.queue(this,type,data);jQuery._queueHooks(this,type);if(type==="fx"&&queue[0]!=="inprogress"){jQuery.dequeue(this,type);}});},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type);});},clearQueue:function(type){return this.queue(type||"fx",[]);},promise:function(type,obj){var tmp,count=1,defer=jQuery.Deferred(),elements=this,i=this.length,resolve=function(){if(!(--count)){defer.resolveWith(elements,[elements]);}}
99;if(typeof type!=="string"){obj=type;type=undefined;}type=type||"fx";while(i--){tmp=jQuery._data(elements[i],type+"queueHooks");if(tmp&&tmp.empty){count++;tmp.empty.add(resolve);}}resolve();return defer.promise(obj);}});var pnum=(/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source;var cssExpand=["Top","Right","Bottom","Left"];var isHidden=function(elem,el){elem=el||elem;return jQuery.css(elem,"display")==="none"||!jQuery.contains(elem.ownerDocument,elem);};var access=jQuery.access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,length=elems.length,bulk=key==null;if(jQuery.type(key)==="object"){chainable=true;for(i in key){jQuery.access(elems,fn,i,key[i],true,emptyGet,raw);}}else{if(value!==undefined){chainable=true;if(!jQuery.isFunction(value)){raw=true;}if(bulk){if(raw){fn.call(elems,value);fn=null;}else{bulk=fn;fn=function(elem,key,value){return bulk.call(jQuery(elem),value);};}}if(fn){for(;i<length;i++){fn(elems[i],key,raw?value:value.call(elems[i],i,fn(elems[i],key)));}}}}return chainable?elems:bulk?fn.call(elems):length?fn(elems[0],key):emptyGet;};var rcheckableType=(/^(?:checkbox|radio)$/i);(function(){var input=document.createElement("input"),div=document.createElement("div"),fragment=document.createDocumentFragment();div.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";support.leadingWhitespace=div.firstChild.nodeType===3;support.tbody=!div.getElementsByTagName("tbody").length;support.htmlSerialize=!!div.getElementsByTagName("link").length;support.html5Clone=document.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>";input.type="checkbox";input.checked=true;fragment.appendChild(input);support.appendChecked=input.checked;div.innerHTML="<textarea>x</textarea>";support.noCloneChecked=!!div.cloneNode(true).lastChild.defaultValue;fragment.appendChild(div);div.innerHTML="<input type='radio' checked='checked' name='t'/>";support.checkClone=div.cloneNode(true).cloneNode(true).lastChild.checked;support.noCloneEvent=true;if(div.attachEvent){div.attachEvent("onclick",function(){support.noCloneEvent=false;});div.cloneNode(true).click();}if(support.deleteExpando==null){support.deleteExpando=true;try{delete div.test;}catch(e){support.deleteExpando=false;}}})();(function(){var i,eventName,div=document.createElement("div");for(i in {submit:true,change:true,focusin:true}){eventName="on"+i;
99if(!(support[i+"Bubbles"]=eventName in window)){div.setAttribute(eventName,"t");support[i+"Bubbles"]=div.attributes[eventName].expando===false;}}div=null;})();var rformElems=/^(?:input|select|textarea)$/i,rkeyEvent=/^key/,rmouseEvent=/^(?:mouse|pointer|contextmenu)|click/,rfocusMorph=/^(?:focusinfocus|focusoutblur)$/,rtypenamespace=/^([^.]*)(?:\.(.+)|)$/;function returnTrue(){return true;}function returnFalse(){return false;}function safeActiveElement(){try{return document.activeElement;}catch(err){}}jQuery.event={global:{},add:function(elem,types,handler,data,selector){var tmp,events,t,handleObjIn,special,eventHandle,handleObj,handlers,type,namespaces,origType,elemData=jQuery._data(elem);if(!elemData){return;}if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler;selector=handleObjIn.selector;}if(!handler.guid){handler.guid=jQuery.guid++;}if(!(events=elemData.events)){events=elemData.events={};}if(!(eventHandle=elemData.handle)){eventHandle=elemData.handle=function(e){return typeof jQuery!==strundefined&&(!e||jQuery.event.triggered!==e.type)?jQuery.event.dispatch.apply(eventHandle.elem,arguments):undefined;};eventHandle.elem=elem;}types=(types||"").match(rnotwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){continue;}special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;special=jQuery.event.special[type]||{};handleObj=jQuery.extend({type:type,origType:origType,data:data,handler:handler,guid:handler.guid,selector:selector,needsContext:selector&&jQuery.expr.match.needsContext.test(selector),namespace:namespaces.join(".")},handleObjIn);if(!(handlers=events[type])){handlers=events[type]=[];handlers.delegateCount=0;if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false){if(elem.addEventListener){elem.addEventListener(type,eventHandle,false);}else{if(elem.attachEvent){elem.attachEvent("on"+type,eventHandle);}}}}if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid){handleObj.handler.guid=handler.guid;}}
vendor: 5,499 bytes, line 99
99if(selector){handlers.splice(handlers.delegateCount++,0,handleObj);}else{handlers.push(handleObj);}jQuery.event.global[type]=true;}elem=null;},remove:function(elem,types,handler,selector,mappedTypes){var j,handleObj,tmp,origCount,t,events,special,handlers,type,namespaces,origType,elemData=jQuery.hasData(elem)&&jQuery._data(elem);if(!elemData||!(events=elemData.events)){return;}types=(types||"").match(rnotwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){for(type in events){jQuery.event.remove(elem,type+types[t],handler,selector,true);}continue;}special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;handlers=events[type]||[];tmp=tmp[2]&&new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)");origCount=j=handlers.length;while(j--){handleObj=handlers[j];if((mappedTypes||origType===handleObj.origType)&&(!handler||handler.guid===handleObj.guid)&&(!tmp||tmp.test(handleObj.namespace))&&(!selector||selector===handleObj.selector||selector==="**"&&handleObj.selector)){handlers.splice(j,1);if(handleObj.selector){handlers.delegateCount--;}if(special.remove){special.remove.call(elem,handleObj);}}}if(origCount&&!handlers.length){if(!special.teardown||special.teardown.call(elem,namespaces,elemData.handle)===false){jQuery.removeEvent(elem,type,elemData.handle);}delete events[type];}}if(jQuery.isEmptyObject(events)){delete elemData.handle;jQuery._removeData(elem,"events");}},trigger:function(event,data,elem,onlyHandlers){var handle,ontype,cur,bubbleType,special,tmp,i,eventPath=[elem||document],type=hasOwn.call(event,"type")?event.type:event,namespaces=hasOwn.call(event,"namespace")?event.namespace.split("."):[];cur=tmp=elem=elem||document;if(elem.nodeType===3||elem.nodeType===8){return;}if(rfocusMorph.test(type+jQuery.event.triggered)){return;}if(type.indexOf(".")>=0){namespaces=type.split(".");type=namespaces.shift();namespaces.sort();}ontype=type.indexOf(":")<0&&"on"+type;event=event[jQuery.expando]?event:new jQuery.Event(type,typeof event==="object"&&event);event.isTrigger=onlyHandlers?2:3;event.namespace=namespaces.join(".");event.namespace_re=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;event.result=undefined;if(!event.target){event.target=elem;}data=data==null?[event]:jQuery.makeArray(data,[event]);special=jQuery.event.special[type]||{};if(!onlyHandlers&&special.trigger&&special.trigger.apply(elem,data)===false){return;}if(!onlyHandlers&&!special.noBubble&&!jQuery.isWindow(elem)){bubbleType=special.delegateType||type;if(!rfocusMorph.test(bubbleType+type)){cur=cur.parentNode;}for(;cur;cur=cur.parentNode){eventPath.push(cur);tmp=cur;}if(tmp===(elem.ownerDocument||document)){eventPath.push(tmp.defaultView||tmp.parentWindow||window);}}i=0;while((cur=eventPath[i++])&&!event.isPropagationStopped()){event.type=i>1?bubbleType:special.bindType||type;handle=(jQuery._data(cur,"events")||{})[event.type]&&jQuery._data(cur,"handle");if(handle){handle.apply(cur,data);}handle=ontype&&cur[ontype];if(handle&&handle.apply&&jQuery.acceptData(cur)){event.result=handle.apply(cur,data);if(event.result===false){event.preventDefault();}}}event.type=type;if(!onlyHandlers&&!event.isDefaultPrevented()){if((!special._default||special._default.apply(eventPath.pop(),data)===false)&&jQuery.acceptData(elem)){if(ontype&&elem[type]&&!jQuery.isWindow(elem)){tmp=elem[ontype];if(tmp){elem[ontype]=null;}jQuery.event.triggered=type;try{elem[type]();}catch(e){}jQuery.event.triggered=undefined;if(tmp){elem[ontype]=tmp;}}}}return event.result;},dispatch:function(event){event=jQuery.event.fix(event);var i,ret,handleObj,matched,j,handlerQueue=[],args=slice.call(arguments),handlers=(jQuery._data(this,"events")||{})[event.type]||[],special=jQuery.event.special[event.type]||{};args[0]=event;event.delegateTarget=this;if(special.preDispatch&&special.preDispatch.call(this,event)===false){return;}handlerQueue=jQuery.event.handlers.call(this,event,handlers);i=0;while((matched=handlerQueue[i++])&&!event.isPropagationStopped()){event.currentTarget=matched.elem;j=0;while((handleObj=matched.handlers[j++])&&!event.isImmediatePropagationStopped()){if(!event.namespace_re||event.namespace_re.test(handleObj.namespace)){event.handleObj=handleObj;event.data=handleObj.data;ret=((jQuery.event.special[handleObj.origType]||{}).handle||handleObj.handler).apply(matched.elem,args);if(ret!==undefined){if((event.result=ret)===false){event.preventDefault();event.stopPropagation();}}}}}if(special.postDispatch){special.postDispatch.call(this,event);}return event.result;},handlers:function(event,handlers){var sel,handleObj,matches,i,handlerQueue=[],delegateCount=handlers.delegateCount,cur=event.target;if(delegateCount&&cur.nodeType&&(!event.button||event.type!=="click")){for(;cur!=this;cur=cur.parentNode||this){if(cur.nodeType===1&&(cur.disabled!==true||event.type!=="click")){matches=[];for(i=0;i<delegateCount;i++){handleObj=handlers[i];sel=handleObj.selector+" ";if(matches[sel]===undefined){matches[sel]=handleObj.needsContext?jQuery(sel,this).index(cur)>=0:jQuery.find(sel,this,null,[cur]).length;}if(matches[sel]){matches.push(handleObj);}}if(matches.length){handlerQueue.push({elem:cur,handlers:matches});}}}}if(delegateCount<handlers.length){handlerQueue.push({elem:this,handlers:handlers.slice(delegateCount)});}return handlerQueue;},fix:function(event){if(event[jQuery.expando]){return event;}
99var i,prop,copy,type=event.type,originalEvent=event,fixHook=this.fixHooks[type];if(!fixHook){this.fixHooks[type]=fixHook=rmouseEvent.test(type)?this.mouseHooks:rkeyEvent.test(type)?this.keyHooks:{};}copy=fixHook.props?this.props.concat(fixHook.props):this.props;event=new jQuery.Event(originalEvent);i=copy.length;while(i--){prop=copy[i];event[prop]=originalEvent[prop];}if(!event.target){event.target=originalEvent.srcElement||document;}if(event.target.nodeType===3){event.target=event.target.parentNode;}event.metaKey=!!event.metaKey;return fixHook.filter?fixHook.filter(event,originalEvent):event;},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(event,original){if(event.which==null){event.which=original.charCode!=null?original.charCode:original.keyCode;}return event;}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(event,original){var body,eventDoc,doc,button=original.button,fromElement=original.fromElement;if(event.pageX==null&&original.clientX!=null){eventDoc=event.target.ownerDocument||document;doc=eventDoc.documentElement;body=eventDoc.body;event.pageX=original.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);event.pageY=original.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0);}if(!event.relatedTarget&&fromElement){event.relatedTarget=fromElement===event.target?original.toElement:fromElement;}if(!event.which&&button!==undefined){event.which=(button&1?1:(button&2?3:(button&4?2:0)));}return event;}},special:{load:{noBubble:true},focus:{trigger:function(){if(this!==safeActiveElement()&&this.focus){try{this.focus();return false;}catch(e){}}},delegateType:"focusin"},blur:{trigger:function(){if(this===safeActiveElement()&&this.blur){this.blur();return false;}},delegateType:"focusout"},click:{trigger:function(){if(jQuery.nodeName(this,"input")&&this.type==="checkbox"&&this.click){this.click();return false;}},_default:function(event){return jQuery.nodeName(event.target,"a");}},beforeunload:{postDispatch:function(event){if(event.result!==undefined&&event.originalEvent){event.originalEvent.returnValue=event.result;}}}},simulate:function(type,elem,event,bubble){var e=jQuery.extend(new jQuery.Event(),event,{type:type,isSimulated:true,originalEvent:{}});if(bubble){jQuery.event.trigger(e,null,elem);}else{jQuery.event.dispatch.call(elem,e);}if(e.isDefaultPrevented()){event.preventDefault();}}};jQuery.removeEvent=document.removeEventListener?function(elem,type,handle){if(elem.removeEventListener){elem.removeEventListener(type,handle,false);}}:function(elem,type,handle){var name="on"+type;if(elem.detachEvent){if(typeof elem[name]===strundefined){elem[name]=null;}elem.detachEvent(name,handle);}};jQuery.Event=function(src,props){if(!(this instanceof jQuery.Event)){return new jQuery.Event(src,props);}if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=src.defaultPrevented||src.defaultPrevented===undefined&&src.returnValue===false?returnTrue:returnFalse;}else{this.type=src;}if(props){jQuery.extend(this,props);}this.timeStamp=src&&src.timeStamp||jQuery.now();this[jQuery.expando]=true;};jQuery.Event.prototype={isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=returnTrue;if(!e){return;}if(e.preventDefault){e.preventDefault();}else{e.returnValue=false;}},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=returnTrue;if(!e){return;}if(e.stopPropagation){e.stopPropagation();}e.cancelBubble=true;},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=returnTrue;if(e&&e.stopImmediatePropagation){e.stopImmediatePropagation();}this.stopPropagation();}};
99jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(orig,fix){jQuery.event.special[orig]={delegateType:fix,bindType:fix,handle:function(event){var ret,target=this,related=event.relatedTarget,handleObj=event.handleObj;if(!related||(related!==target&&!jQuery.contains(target,related))){event.type=handleObj.origType;ret=handleObj.handler.apply(this,arguments);event.type=fix;}return ret;}};});if(!support.submitBubbles){jQuery.event.special.submit={setup:function(){if(jQuery.nodeName(this,"form")){return false;}jQuery.event.add(this,"click._submit keypress._submit",function(e){var elem=e.target,form=jQuery.nodeName(elem,"input")||jQuery.nodeName(elem,"button")?elem.form:undefined;if(form&&!jQuery._data(form,"submitBubbles")){jQuery.event.add(form,"submit._submit",function(event){event._submit_bubble=true;});jQuery._data(form,"submitBubbles",true);}});},postDispatch:function(event){if(event._submit_bubble){delete event._submit_bubble;if(this.parentNode&&!event.isTrigger){jQuery.event.simulate("submit",this.parentNode,event,true);}}},teardown:function(){if(jQuery.nodeName(this,"form")){return false;}jQuery.event.remove(this,"._submit");}};}if(!support.changeBubbles){jQuery.event.special.change={setup:function(){if(rformElems.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){jQuery.event.add(this,"propertychange._change",function(event){if(event.originalEvent.propertyName==="checked"){this._just_changed=true;}});jQuery.event.add(this,"click._change",function(event){if(this._just_changed&&!event.isTrigger){this._just_changed=false;}jQuery.event.simulate("change",this,event,true);});}return false;}jQuery.event.add(this,"beforeactivate._change",function(e){var elem=e.target;if(rformElems.test(elem.nodeName)&&!jQuery._data(elem,"changeBubbles")){jQuery.event.add(elem,"change._change",function(event){if(this.parentNode&&!event.isSimulated&&!event.isTrigger){jQuery.event.simulate("change",this.parentNode,event,true);}});jQuery._data(elem,"changeBubbles",true);}});},handle:function(event){var elem=event.target;if(this!==elem||event.isSimulated||event.isTrigger||(elem.type!=="radio"&&elem.type!=="checkbox")){return event.handleObj.handler.apply(this,arguments);}},teardown:function(){jQuery.event.remove(this,"._change");return !rformElems.test(this.nodeName);}};}if(!support.focusinBubbles){jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){var handler=function(event){jQuery.event.simulate(fix,event.target,jQuery.event.fix(event),true);};jQuery.event.special[fix]={setup:function(){var doc=this.ownerDocument||this,attaches=jQuery._data(doc,fix);if(!attaches){doc.addEventListener(orig,handler,true);}jQuery._data(doc,fix,(attaches||0)+1);},teardown:function(){var doc=this.ownerDocument||this,attaches=jQuery._data(doc,fix)-1;if(!attaches){doc.removeEventListener(orig,handler,true);jQuery._removeData(doc,fix);}else{jQuery._data(doc,fix,attaches);}}};});}jQuery.fn.extend({on:function(types,selector,data,fn,one){var type,origFn;if(typeof types==="object"){if(typeof selector!=="string"){data=data||selector;selector=undefined;}for(type in types){this.on(type,selector,data,types[type],one);}return this;}if(data==null&&fn==null){fn=selector;data=selector=undefined;}else{if(fn==null){if(typeof selector==="string"){fn=data;data=undefined;}else{fn=data;data=selector;selector=undefined;}}}if(fn===false){fn=returnFalse;}else{if(!fn){return this;}}if(one===1){origFn=fn;fn=function(event){jQuery().off(event);return origFn.apply(this,arguments);};fn.guid=origFn.guid||(origFn.guid=jQuery.guid++);}return this.each(function(){jQuery.event.add(this,types,fn,data,selector);});},one:function(types,selector,data,fn){return this.on(types,selector,data,fn,1);},off:function(types,selector,fn){var handleObj,type;if(types&&types.preventDefault&&types.handleObj){handleObj=types.handleObj;jQuery(types.delegateTarget).off(handleObj.namespace?handleObj.origType+"."+handleObj.namespace:handleObj.origType,handleObj.selector,handleObj.handler);return this;}if(typeof types==="object"){for(type in types){this.off(type,selector,types[type]);}return this;}if(selector===false||typeof selector==="function"){fn=selector;selector=undefined;}if(fn===false){fn=returnFalse;}return this.each(function(){jQuery.event.remove(this,types,fn,selector);});},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this);});},triggerHandler:function(type,data){var elem=this[0];if(elem){return jQuery.event.trigger(type,data,elem,true);}}});function createSafeFragment(document){var list=nodeNames.split("|"),safeFrag=document.createDocumentFragment();if(safeFrag.createElement){while(list.length){safeFrag.createElement(list.pop());}}
99return safeFrag;}var nodeNames="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|"+"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",rinlinejQuery=/ jQuery\d+="(?:null|\d+)"/g,rnoshimcache=new RegExp("<(?:"+nodeNames+")[\\s/>]","i"),rleadingWhitespace=/^\s+/,rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,rtagName=/<([\w:]+)/,rtbody=/<tbody/i,rhtml=/<|&#?\w+;/,rnoInnerhtml=/<(?:script|style|link)/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rscriptType=/^$|\/(?:java|ecma)script/i,rscriptTypeMasked=/^true\/(.*)/,rcleanScript=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,wrapMap={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},safeFragment=createSafeFragment(document),fragmentDiv=safeFragment.appendChild(document.createElement("div"));wrapMap.optgroup=wrapMap.option;wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;function getAll(context,tag){var elems,elem,i=0,found=typeof context.getElementsByTagName!==strundefined?context.getElementsByTagName(tag||"*"):typeof context.querySelectorAll!==strundefined?context.querySelectorAll(tag||"*"):undefined;if(!found){for(found=[],elems=context.childNodes||context;(elem=elems[i])!=null;i++){if(!tag||jQuery.nodeName(elem,tag)){found.push(elem);}else{jQuery.merge(found,getAll(elem,tag));}}}return tag===undefined||tag&&jQuery.nodeName(context,tag)?jQuery.merge([context],found):found;}function fixDefaultChecked(elem){if(rcheckableType.test(elem.type)){elem.defaultChecked=elem.checked;}}function manipulationTarget(elem,content){return jQuery.nodeName(elem,"table")&&jQuery.nodeName(content.nodeType!==11?content:content.firstChild,"tr")?elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody")):elem;}function disableScript(elem){elem.type=(jQuery.find.attr(elem,"type")!==null)+"/"+elem.type;return elem;}function restoreScript(elem){var match=rscriptTypeMasked.exec(elem.type);if(match){elem.type=match[1];}else{elem.removeAttribute("type");}return elem;}function setGlobalEval(elems,refElements){var elem,i=0;for(;(elem=elems[i])!=null;i++){jQuery._data(elem,"globalEval",!refElements||jQuery._data(refElements[i],"globalEval"));}}function cloneCopyEvent(src,dest){if(dest.nodeType!==1||!jQuery.hasData(src)){return;}var type,i,l,oldData=jQuery._data(src),curData=jQuery._data(dest,oldData),events=oldData.events;if(events){delete curData.handle;curData.events={};for(type in events){for(i=0,l=events[type].length;i<l;i++){jQuery.event.add(dest,type,events[type][i]);}}}if(curData.data){curData.data=jQuery.extend({},curData.data);}}function fixCloneNodeIssues(src,dest){var nodeName,e,data;if(dest.nodeType!==1){return;}nodeName=dest.nodeName.toLowerCase();if(!support.noCloneEvent&&dest[jQuery.expando]){data=jQuery._data(dest);for(e in data.events){jQuery.removeEvent(dest,e,data.handle);}dest.removeAttribute(jQuery.expando);}if(nodeName==="script"&&dest.text!==src.text){disableScript(dest).text=src.text;restoreScript(dest);}
99else{if(nodeName==="object"){if(dest.parentNode){dest.outerHTML=src.outerHTML;}if(support.html5Clone&&(src.innerHTML&&!jQuery.trim(dest.innerHTML))){dest.innerHTML=src.innerHTML;}}else{if(nodeName==="input"&&rcheckableType.test(src.type)){dest.defaultChecked=dest.checked=src.checked;if(dest.value!==src.value){dest.value=src.value;}}else{if(nodeName==="option"){dest.defaultSelected=dest.selected=src.defaultSelected;}else{if(nodeName==="input"||nodeName==="textarea"){dest.defaultValue=src.defaultValue;}}}}}}jQuery.extend({clone:function(elem,dataAndEvents,deepDataAndEvents){var destElements,node,clone,i,srcElements,inPage=jQuery.contains(elem.ownerDocument,elem);if(support.html5Clone||jQuery.isXMLDoc(elem)||!rnoshimcache.test("<"+elem.nodeName+">")){clone=elem.cloneNode(true);}else{fragmentDiv.innerHTML=elem.outerHTML;fragmentDiv.removeChild(clone=fragmentDiv.firstChild);}if((!support.noCloneEvent||!support.noCloneChecked)&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){destElements=getAll(clone);srcElements=getAll(elem);for(i=0;(node=srcElements[i])!=null;++i){if(destElements[i]){fixCloneNodeIssues(node,destElements[i]);}}}if(dataAndEvents){if(deepDataAndEvents){srcElements=srcElements||getAll(elem);destElements=destElements||getAll(clone);for(i=0;(node=srcElements[i])!=null;i++){cloneCopyEvent(node,destElements[i]);}}else{cloneCopyEvent(elem,clone);}}destElements=getAll(clone,"script");if(destElements.length>0){setGlobalEval(destElements,!inPage&&getAll(elem,"script"));}destElements=srcElements=node=null;return clone;},buildFragment:function(elems,context,scripts,selection){var j,elem,contains,tmp,tag,tbody,wrap,l=elems.length,safe=createSafeFragment(context),nodes=[],i=0;for(;i<l;i++){elem=elems[i];if(elem||elem===0){if(jQuery.type(elem)==="object"){jQuery.merge(nodes,elem.nodeType?[elem]:elem);}else{if(!rhtml.test(elem)){nodes.push(context.createTextNode(elem));}else{tmp=tmp||safe.appendChild(context.createElement("div"));tag=(rtagName.exec(elem)||["",""])[1].toLowerCase();wrap=wrapMap[tag]||wrapMap._default;tmp.innerHTML=wrap[1]+elem.replace(rxhtmlTag,"<$1></$2>")+wrap[2];j=wrap[0];while(j--){tmp=tmp.lastChild;}if(!support.leadingWhitespace&&rleadingWhitespace.test(elem)){nodes.push(context.createTextNode(rleadingWhitespace.exec(elem)[0]));}if(!support.tbody){elem=tag==="table"&&!rtbody.test(elem)?tmp.firstChild:wrap[1]==="<table>"&&!rtbody.test(elem)?tmp:0;j=elem&&elem.childNodes.length;while(j--){if(jQuery.nodeName((tbody=elem.childNodes[j]),"tbody")&&!tbody.childNodes.length){elem.removeChild(tbody);}}}jQuery.merge(nodes,tmp.childNodes);tmp.textContent="";while(tmp.firstChild){tmp.removeChild(tmp.firstChild);}tmp=safe.lastChild;}}}}if(tmp){safe.removeChild(tmp);}if(!support.appendChecked){jQuery.grep(getAll(nodes,"input"),fixDefaultChecked);}i=0;while((elem=nodes[i++])){if(selection&&jQuery.inArray(elem,selection)!==-1){continue;}contains=jQuery.contains(elem.ownerDocument,elem);tmp=getAll(safe.appendChild(elem),"script");if(contains){setGlobalEval(tmp);}if(scripts){j=0;while((elem=tmp[j++])){if(rscriptType.test(elem.type||"")){scripts.push(elem);}}}}tmp=null;return safe;},cleanData:function(elems,acceptData){var elem,type,id,data,i=0,internalKey=jQuery.expando,cache=jQuery.cache,deleteExpando=support.deleteExpando,special=jQuery.event.special;for(;(elem=elems[i])!=null;i++){if(acceptData||jQuery.acceptData(elem)){id=elem[internalKey];data=id&&cache[id];if(data){if(data.events){for(type in data.events){if(special[type]){jQuery.event.remove(elem,type);}else{jQuery.removeEvent(elem,type,data.handle);}}}if(cache[id]){delete cache[id];if(deleteExpando){delete elem[internalKey];}else{if(typeof elem.removeAttribute!==strundefined){elem.removeAttribute(internalKey);}else{elem[internalKey]=null;}}deletedIds.push(id);}}}}}});jQuery.fn.extend({text:function(value){return access(this,function(value){return value===undefined?jQuery.text(this):this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(value));},null,value,arguments.length);},append:function(){return this.domManip(arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.appendChild(elem);}});},prepend:function(){return this.domManip(arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.insertBefore(elem,target.firstChild);}});},before:function(){return this.domManip(arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this);}});},after:function(){return this.domManip(arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this.nextSibling);}});},remove:function(selector,keepData){var elem,elems=selector?jQuery.filter(selector,this):this,i=0;for(;(elem=elems[i])!=null;i++){if(!keepData&&elem.nodeType===1){jQuery.cleanData(getAll(elem));}if(elem.parentNode){if(keepData&&jQuery.contains(elem.ownerDocument,elem)){setGlobalEval(getAll(elem,"
99script"));}elem.parentNode.removeChild(elem);}}return this;},empty:function(){var elem,i=0;for(;(elem=this[i])!=null;i++){if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));}while(elem.firstChild){elem.removeChild(elem.firstChild);}if(elem.options&&jQuery.nodeName(elem,"select")){elem.options.length=0;}}return this;},clone:function(dataAndEvents,deepDataAndEvents){dataAndEvents=dataAndEvents==null?false:dataAndEvents;deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;return this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents);});},html:function(value){return access(this,function(value){var elem=this[0]||{},i=0,l=this.length;if(value===undefined){return elem.nodeType===1?elem.innerHTML.replace(rinlinejQuery,""):undefined;}if(typeof value==="string"&&!rnoInnerhtml.test(value)&&(support.htmlSerialize||!rnoshimcache.test(value))&&(support.leadingWhitespace||!rleadingWhitespace.test(value))&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=value.replace(rxhtmlTag,"<$1></$2>");try{for(;i<l;i++){elem=this[i]||{};if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.innerHTML=value;}}elem=0;}catch(e){}}if(elem){this.empty().append(value);}},null,value,arguments.length);},replaceWith:function(){var arg=arguments[0];this.domManip(arguments,function(elem){arg=this.parentNode;jQuery.cleanData(getAll(this));if(arg){arg.replaceChild(elem,this);}});return arg&&(arg.length||arg.nodeType)?this:this.remove();},detach:function(selector){return this.remove(selector,true);},domManip:function(args,callback){args=concat.apply([],args);var first,node,hasScripts,scripts,doc,fragment,i=0,l=this.length,set=this,iNoClone=l-1,value=args[0],isFunction=jQuery.isFunction(value);if(isFunction||(l>1&&typeof value==="string"&&!support.checkClone&&rchecked.test(value))){return this.each(function(index){var self=set.eq(index);if(isFunction){args[0]=value.call(this,index,self.html());}self.domManip(args,callback);});}if(l){fragment=jQuery.buildFragment(args,this[0].ownerDocument,false,this);first=fragment.firstChild;if(fragment.childNodes.length===1){fragment=first;}if(first){scripts=jQuery.map(getAll(fragment,"script"),disableScript);hasScripts=scripts.length;for(;i<l;i++){node=fragment;if(i!==iNoClone){node=jQuery.clone(node,true,true);if(hasScripts){jQuery.merge(scripts,getAll(node,"script"));}}callback.call(this[i],node,i);}if(hasScripts){doc=scripts[scripts.length-1].ownerDocument;jQuery.map(scripts,restoreScript);for(i=0;i<hasScripts;i++){node=scripts[i];if(rscriptType.test(node.type||"")&&!jQuery._data(node,"globalEval")&&jQuery.contains(doc,node)){if(node.src){if(jQuery._evalUrl){jQuery._evalUrl(node.src);}}else{jQuery.globalEval((node.text||node.textContent||node.innerHTML||"").replace(rcleanScript,""));}}}}fragment=first=null;}}return this;}});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var elems,i=0,ret=[],insert=jQuery(selector),last=insert.length-1;for(;i<=last;i++){elems=i===last?this:this.clone(true);jQuery(insert[i])[original](elems);push.apply(ret,elems.get());}return this.pushStack(ret);};});var iframe,elemdisplay={};function actualDisplay(name,doc){var style,elem=jQuery(doc.createElement(name)).appendTo(doc.body),display=window.getDefaultComputedStyle&&(style=window.getDefaultComputedStyle(elem[0]))?style.display:jQuery.css(elem[0],"display");elem.detach();return display;}function defaultDisplay(nodeName){var doc=document,display=elemdisplay[nodeName];if(!display){display=actualDisplay(nodeName,doc);if(display==="none"||!display){iframe=(iframe||jQuery("<iframe frameborder='0' width='0' height='0'/>")).appendTo(doc.documentElement);doc=(iframe[0].contentWindow||iframe[0].contentDocument).document;doc.write();doc.close();display=actualDisplay(nodeName,doc);iframe.detach();}elemdisplay[nodeName]=display;}return display;}(function(){var shrinkWrapBlocksVal;support.shrinkWrapBlocks=function(){if(shrinkWrapBlocksVal!=null){return shrinkWrapBlocksVal;}shrinkWrapBlocksVal=false;var div,body,container;body=document.getElementsByTagName("body")[0];if(!body||!body.style){return;}div=document.createElement("div");container=document.createElement("div");container.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px";body.appendChild(container).appendChild(div);if(typeof div.style.zoom!==strundefined){div.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;"+"box-sizing:content-box;display:block;margin:0;border:0;"+"padding:1px;width:1px;zoom:1";div.appendChild(document.createElement("div")).style.width="5px";shrinkWrapBlocksVal=div.offsetWidth!==3;}body.removeChild(container);return shrinkWrapBlocksVal;};})();var rmargin=(/^margin/);
99var rnumnonpx=new RegExp("^("+pnum+")(?!px)[a-z%]+$","i");var getStyles,curCSS,rposition=/^(top|right|bottom|left)$/;if(window.getComputedStyle){getStyles=function(elem){return elem.ownerDocument.defaultView.getComputedStyle(elem,null);};curCSS=function(elem,name,computed){var width,minWidth,maxWidth,ret,style=elem.style;computed=computed||getStyles(elem);ret=computed?computed.getPropertyValue(name)||computed[name]:undefined;if(computed){if(ret===""&&!jQuery.contains(elem.ownerDocument,elem)){ret=jQuery.style(elem,name);}if(rnumnonpx.test(ret)&&rmargin.test(name)){width=style.width;minWidth=style.minWidth;maxWidth=style.maxWidth;style.minWidth=style.maxWidth=style.width=ret;ret=computed.width;style.width=width;style.minWidth=minWidth;style.maxWidth=maxWidth;}}return ret===undefined?ret:ret+"";};}else{if(document.documentElement.currentStyle){getStyles=function(elem){return elem.currentStyle;};curCSS=function(elem,name,computed){var left,rs,rsLeft,ret,style=elem.style;computed=computed||getStyles(elem);ret=computed?computed[name]:undefined;if(ret==null&&style&&style[name]){ret=style[name];}if(rnumnonpx.test(ret)&&!rposition.test(name)){left=style.left;rs=elem.runtimeStyle;rsLeft=rs&&rs.left;if(rsLeft){rs.left=elem.currentStyle.left;}style.left=name==="fontSize"?"1em":ret;ret=style.pixelLeft+"px";style.left=left;if(rsLeft){rs.left=rsLeft;}}return ret===undefined?ret:ret+""||"auto";};}}function addGetHookIf(conditionFn,hookFn){return{get:function(){var condition=conditionFn();if(condition==null){return;}if(condition){delete this.get;return;}return(this.get=hookFn).apply(this,arguments);}};}(function(){var div,style,a,pixelPositionVal,boxSizingReliableVal,reliableHiddenOffsetsVal,reliableMarginRightVal;div=document.createElement("div");div.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";a=div.getElementsByTagName("a")[0];style=a&&a.style;if(!style){return;}style.cssText="float:left;opacity:.5";support.opacity=style.opacity==="0.5";support.cssFloat=!!style.cssFloat;div.style.backgroundClip="content-box";div.cloneNode(true).style.backgroundClip="";support.clearCloneStyle=div.style.backgroundClip==="content-box";support.boxSizing=style.boxSizing===""||style.MozBoxSizing===""||style.WebkitBoxSizing==="";jQuery.extend(support,{reliableHiddenOffsets:function(){if(reliableHiddenOffsetsVal==null){computeStyleTests();}return reliableHiddenOffsetsVal;},boxSizingReliable:function(){if(boxSizingReliableVal==null){computeStyleTests();}return boxSizingReliableVal;},pixelPosition:function(){if(pixelPositionVal==null){computeStyleTests();}return pixelPositionVal;},reliableMarginRight:function(){if(reliableMarginRightVal==null){computeStyleTests();}return reliableMarginRightVal;}});function computeStyleTests(){var div,body,container,contents;body=document.getElementsByTagName("body")[0];if(!body||!body.style){return;}div=document.createElement("div");container=document.createElement("div");container.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px";body.appendChild(container).appendChild(div);div.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;"+"box-sizing:border-box;display:block;margin-top:1%;top:1%;"+"border:1px;padding:1px;width:4px;position:absolute";pixelPositionVal=boxSizingReliableVal=false;reliableMarginRightVal=true;if(window.getComputedStyle){pixelPositionVal=(window.getComputedStyle(div,null)||{}).top!=="1%";boxSizingReliableVal=(window.getComputedStyle(div,null)||{width:"4px"}).width==="4px";contents=div.appendChild(document.createElement("div"));contents.style.cssText=div.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;"+"box-sizing:content-box;display:block;margin:0;border:0;padding:0";contents.style.marginRight=contents.style.width="0";div.style.width="1px";reliableMarginRightVal=!parseFloat((window.getComputedStyle(contents,null)||{}).marginRight);}div.innerHTML="<table><tr><td></td><td>t</td></tr></table>";contents=div.getElementsByTagName("td");contents[0].style.cssText="margin:0;border:0;padding:0;display:none";reliableHiddenOffsetsVal=contents[0].offsetHeight===0;if(reliableHiddenOffsetsVal){contents[0].style.display="";contents[1].style.display="none";reliableHiddenOffsetsVal=contents[0].offsetHeight===0;}body.removeChild(container);}})();jQuery.swap=function(elem,options,callback,args){var ret,name,old={};for(name in options){old[name]=elem.style[name];elem.style[name]=options[name];}ret=callback.apply(elem,args||[]);for(name in options){elem.style[name]=old[name];}return ret;};
99var ralpha=/alpha\([^)]*\)/i,ropacity=/opacity\s*=\s*([^)]*)/,rdisplayswap=/^(none|table(?!-c[ea]).+)/,rnumsplit=new RegExp("^("+pnum+")(.*)$","i"),rrelNum=new RegExp("^([+-])=("+pnum+")","i"),cssShow={position:"absolute",visibility:"hidden",display:"block"},cssNormalTransform={letterSpacing:"0",fontWeight:"400"},cssPrefixes=["Webkit","O","Moz","ms"];function vendorPropName(style,name){if(name in style){return name;}var capName=name.charAt(0).toUpperCase()+name.slice(1),origName=name,i=cssPrefixes.length;while(i--){name=cssPrefixes[i]+capName;if(name in style){return name;}}return origName;}function showHide(elements,show){var display,elem,hidden,values=[],index=0,length=elements.length;for(;index<length;index++){elem=elements[index];if(!elem.style){continue;}values[index]=jQuery._data(elem,"olddisplay");display=elem.style.display;if(show){if(!values[index]&&display==="none"){elem.style.display="";}if(elem.style.display===""&&isHidden(elem)){values[index]=jQuery._data(elem,"olddisplay",defaultDisplay(elem.nodeName));}}else{hidden=isHidden(elem);if(display&&display!=="none"||!hidden){jQuery._data(elem,"olddisplay",hidden?display:jQuery.css(elem,"display"));}}}for(index=0;index<length;index++){elem=elements[index];if(!elem.style){continue;}if(!show||elem.style.display==="none"||elem.style.display===""){elem.style.display=show?values[index]||"":"none";}}return elements;}function setPositiveNumber(elem,value,subtract){var matches=rnumsplit.exec(value);return matches?Math.max(0,matches[1]-(subtract||0))+(matches[2]||"px"):value;}function augmentWidthOrHeight(elem,name,extra,isBorderBox,styles){var i=extra===(isBorderBox?"border":"content")?4:name==="width"?1:0,val=0;for(;i<4;i+=2){if(extra==="margin"){val+=jQuery.css(elem,extra+cssExpand[i],true,styles);}if(isBorderBox){if(extra==="content"){val-=jQuery.css(elem,"padding"+cssExpand[i],true,styles);}if(extra!=="margin"){val-=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}}else{val+=jQuery.css(elem,"padding"+cssExpand[i],true,styles);if(extra!=="padding"){val+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}}}return val;}function getWidthOrHeight(elem,name,extra){var valueIsBorderBox=true,val=name==="width"?elem.offsetWidth:elem.offsetHeight,styles=getStyles(elem),isBorderBox=support.boxSizing&&jQuery.css(elem,"boxSizing",false,styles)==="border-box";if(val<=0||val==null){val=curCSS(elem,name,styles);if(val<0||val==null){val=elem.style[name];}if(rnumnonpx.test(val)){return val;}valueIsBorderBox=isBorderBox&&(support.boxSizingReliable()||val===elem.style[name]);val=parseFloat(val)||0;}return(val+augmentWidthOrHeight(elem,name,extra||(isBorderBox?"border":"content"),valueIsBorderBox,styles))+"px";}jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity");return ret===""?"1":ret;}}}},cssNumber:{"columnCount":true,"fillOpacity":true,"flexGrow":true,"flexShrink":true,"fontWeight":true,"lineHeight":true,"opacity":true,"order":true,"orphans":true,"widows":true,"zIndex":true,"zoom":true},cssProps:{"float":support.cssFloat?"cssFloat":"styleFloat"},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){return;}var ret,type,hooks,origName=jQuery.camelCase(name),style=elem.style;name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(style,origName));hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(value!==undefined){type=typeof value;if(type==="string"&&(ret=rrelNum.exec(value))){value=(ret[1]+1)*ret[2]+parseFloat(jQuery.css(elem,name));type="number";}if(value==null||value!==value){return;}if(type==="number"&&!jQuery.cssNumber[origName]){value+="px";}if(!support.clearCloneStyle&&value===""&&name.indexOf("background")===0){style[name]="inherit";}if(!hooks||!("set" in hooks)||(value=hooks.set(elem,value,extra))!==undefined){try{style[name]=value;}catch(e){}}}else{if(hooks&&"get" in hooks&&(ret=hooks.get(elem,false,extra))!==undefined){return ret;}return style[name];}},css:function(elem,name,extra,styles){var num,val,hooks,origName=jQuery.camelCase(name);name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(elem.style,origName));hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(hooks&&"get" in hooks){val=hooks.get(elem,true,extra);}if(val===undefined){val=curCSS(elem,name,styles);}if(val==="normal"&&name in cssNormalTransform){val=cssNormalTransform[name];}if(extra===""||extra){num=parseFloat(val);return extra===true||jQuery.isNumeric(num)?num||0:val;}return val;}});jQuery.each(["height","width"],function(i,name){jQuery.cssHooks[name]={get:function(elem,computed,extra){if(computed){return rdisplayswap.test(jQuery.css(elem,"display"))&&elem.offsetWidth===0?jQuery.swap(elem,cssShow,function(){return getWidthOrHeight(elem,name,extra);}):getWidthOrHeight(elem,name,extra);}}
99,set:function(elem,value,extra){var styles=extra&&getStyles(elem);return setPositiveNumber(elem,value,extra?augmentWidthOrHeight(elem,name,extra,support.boxSizing&&jQuery.css(elem,"boxSizing",false,styles)==="border-box",styles):0);}};});if(!support.opacity){jQuery.cssHooks.opacity={get:function(elem,computed){return ropacity.test((computed&&elem.currentStyle?elem.currentStyle.filter:elem.style.filter)||"")?(0.01*parseFloat(RegExp.$1))+"":computed?"1":"";},set:function(elem,value){var style=elem.style,currentStyle=elem.currentStyle,opacity=jQuery.isNumeric(value)?"alpha(opacity="+value*100+")":"",filter=currentStyle&&currentStyle.filter||style.filter||"";style.zoom=1;if((value>=1||value==="")&&jQuery.trim(filter.replace(ralpha,""))===""&&style.removeAttribute){style.removeAttribute("filter");if(value===""||currentStyle&&!currentStyle.filter){return;}}style.filter=ralpha.test(filter)?filter.replace(ralpha,opacity):filter+" "+opacity;}};}jQuery.cssHooks.marginRight=addGetHookIf(support.reliableMarginRight,function(elem,computed){if(computed){return jQuery.swap(elem,{"display":"inline-block"},curCSS,[elem,"marginRight"]);}});jQuery.each({margin:"",padding:"",border:"Width"},function(prefix,suffix){jQuery.cssHooks[prefix+suffix]={expand:function(value){var i=0,expanded={},parts=typeof value==="string"?value.split(" "):[value];for(;i<4;i++){expanded[prefix+cssExpand[i]+suffix]=parts[i]||parts[i-2]||parts[0];}return expanded;}};if(!rmargin.test(prefix)){jQuery.cssHooks[prefix+suffix].set=setPositiveNumber;}});jQuery.fn.extend({css:function(name,value){return access(this,function(elem,name,value){var styles,len,map={},i=0;if(jQuery.isArray(name)){styles=getStyles(elem);len=name.length;for(;i<len;i++){map[name[i]]=jQuery.css(elem,name[i],false,styles);}return map;}return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name);},name,value,arguments.length>1);},show:function(){return showHide(this,true);},hide:function(){return showHide(this);},toggle:function(state){if(typeof state==="boolean"){return state?this.show():this.hide();}return this.each(function(){if(isHidden(this)){jQuery(this).show();}else{jQuery(this).hide();}});}});function Tween(elem,options,prop,end,easing){return new Tween.prototype.init(elem,options,prop,end,easing);}jQuery.Tween=Tween;Tween.prototype={constructor:Tween,init:function(elem,options,prop,end,easing,unit){this.elem=elem;this.prop=prop;this.easing=easing||"swing";this.options=options;this.start=this.now=this.cur();this.end=end;this.unit=unit||(jQuery.cssNumber[prop]?"":"px");},cur:function(){var hooks=Tween.propHooks[this.prop];return hooks&&hooks.get?hooks.get(this):Tween.propHooks._default.get(this);},run:function(percent){var eased,hooks=Tween.propHooks[this.prop];if(this.options.duration){this.pos=eased=jQuery.easing[this.easing](percent,this.options.duration*percent,0,1,this.options.duration);}else{this.pos=eased=percent;}this.now=(this.end-this.start)*eased+this.start;if(this.options.step){this.options.step.call(this.elem,this.now,this);}if(hooks&&hooks.set){hooks.set(this);}else{Tween.propHooks._default.set(this);}return this;}};Tween.prototype.init.prototype=Tween.prototype;Tween.propHooks={_default:{get:function(tween){var result;if(tween.elem[tween.prop]!=null&&(!tween.elem.style||tween.elem.style[tween.prop]==null)){return tween.elem[tween.prop];}result=jQuery.css(tween.elem,tween.prop,"");return !result||result==="auto"?0:result;},set:function(tween){if(jQuery.fx.step[tween.prop]){jQuery.fx.step[tween.prop](tween);}else{if(tween.elem.style&&(tween.elem.style[jQuery.cssProps[tween.prop]]!=null||jQuery.cssHooks[tween.prop])){jQuery.style(tween.elem,tween.prop,tween.now+tween.unit);}else{tween.elem[tween.prop]=tween.now;}}}}};Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={set:function(tween){if(tween.elem.nodeType&&tween.elem.parentNode){tween.elem[tween.prop]=tween.now;}}};jQuery.easing={linear:function(p){return p;},swing:function(p){return 0.5-Math.cos(p*Math.PI)/2;}};jQuery.fx=Tween.prototype.init;jQuery.fx.step={};var fxNow,timerId,rfxtypes=/^(?:toggle|show|hide)$/,rfxnum=new RegExp("^(?:([+-])=|)("+pnum+")([a-z%]*)$","i"),rrun=/queueHooks$/,animationPrefilters=[defaultPrefilter],tweeners={"*":[function(prop,value){var tween=this.createTween(prop,value),target=tween.cur(),parts=rfxnum.exec(value),unit=parts&&parts[3]||(jQuery.cssNumber[prop]?"":"px"),start=(jQuery.cssNumber[prop]||unit!=="px"&&+target)&&rfxnum.exec(jQuery.css(tween.elem,prop)),scale=1,maxIterations=20;if(start&&start[3]!==unit){unit=unit||start[3];parts=parts||[];start=+target||1;do{scale=scale||".5";start=start/scale;jQuery.style(tween.elem,prop,start+unit);}while(scale!==(scale=tween.cur()/target)&&scale!==1&&--maxIterations);}if(parts){start=tween.start=+start||+target||0;tween.unit=unit;
99tween.end=parts[1]?start+(parts[1]+1)*parts[2]:+parts[2];}return tween;}]};function createFxNow(){setTimeout(function(){fxNow=undefined;});return(fxNow=jQuery.now());}function genFx(type,includeWidth){var which,attrs={height:type},i=0;includeWidth=includeWidth?1:0;for(;i<4;i+=2-includeWidth){which=cssExpand[i];attrs["margin"+which]=attrs["padding"+which]=type;}if(includeWidth){attrs.opacity=attrs.width=type;}return attrs;}function createTween(value,prop,animation){var tween,collection=(tweeners[prop]||[]).concat(tweeners["*"]),index=0,length=collection.length;for(;index<length;index++){if((tween=collection[index].call(animation,prop,value))){return tween;}}}function defaultPrefilter(elem,props,opts){var prop,value,toggle,tween,hooks,oldfire,display,checkDisplay,anim=this,orig={},style=elem.style,hidden=elem.nodeType&&isHidden(elem),dataShow=jQuery._data(elem,"fxshow");if(!opts.queue){hooks=jQuery._queueHooks(elem,"fx");if(hooks.unqueued==null){hooks.unqueued=0;oldfire=hooks.empty.fire;hooks.empty.fire=function(){if(!hooks.unqueued){oldfire();}};}hooks.unqueued++;anim.always(function(){anim.always(function(){hooks.unqueued--;if(!jQuery.queue(elem,"fx").length){hooks.empty.fire();}});});}if(elem.nodeType===1&&("height" in props||"width" in props)){opts.overflow=[style.overflow,style.overflowX,style.overflowY];display=jQuery.css(elem,"display");checkDisplay=display==="none"?jQuery._data(elem,"olddisplay")||defaultDisplay(elem.nodeName):display;if(checkDisplay==="inline"&&jQuery.css(elem,"float")==="none"){if(!support.inlineBlockNeedsLayout||defaultDisplay(elem.nodeName)==="inline"){style.display="inline-block";}else{style.zoom=1;}}}if(opts.overflow){style.overflow="hidden";if(!support.shrinkWrapBlocks()){anim.always(function(){style.overflow=opts.overflow[0];style.overflowX=opts.overflow[1];style.overflowY=opts.overflow[2];});}}for(prop in props){value=props[prop];if(rfxtypes.exec(value)){delete props[prop];toggle=toggle||value==="toggle";if(value===(hidden?"hide":"show")){if(value==="show"&&dataShow&&dataShow[prop]!==undefined){hidden=true;}else{continue;}}orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop);}else{display=undefined;}}if(!jQuery.isEmptyObject(orig)){if(dataShow){if("hidden" in dataShow){hidden=dataShow.hidden;}}else{dataShow=jQuery._data(elem,"fxshow",{});}if(toggle){dataShow.hidden=!hidden;}if(hidden){jQuery(elem).show();}else{anim.done(function(){jQuery(elem).hide();});}anim.done(function(){var prop;jQuery._removeData(elem,"fxshow");for(prop in orig){jQuery.style(elem,prop,orig[prop]);}});for(prop in orig){tween=createTween(hidden?dataShow[prop]:0,prop,anim);if(!(prop in dataShow)){dataShow[prop]=tween.start;if(hidden){tween.end=tween.start;tween.start=prop==="width"||prop==="height"?1:0;}}}}else{if((display==="none"?defaultDisplay(elem.nodeName):display)==="inline"){style.display=display;}}}function propFilter(props,specialEasing){var index,name,easing,value,hooks;for(index in props){name=jQuery.camelCase(index);
99easing=specialEasing[name];value=props[index];if(jQuery.isArray(value)){easing=value[1];value=props[index]=value[0];}if(index!==name){props[name]=value;delete props[index];}hooks=jQuery.cssHooks[name];if(hooks&&"expand" in hooks){value=hooks.expand(value);delete props[name];for(index in value){if(!(index in props)){props[index]=value[index];specialEasing[index]=easing;}}}else{specialEasing[name]=easing;}}}function Animation(elem,properties,options){var result,stopped,index=0,length=animationPrefilters.length,deferred=jQuery.Deferred().always(function(){delete tick.elem;}),tick=function(){if(stopped){return false;}var currentTime=fxNow||createFxNow(),remaining=Math.max(0,animation.startTime+animation.duration-currentTime),temp=remaining/animation.duration||0,percent=1-temp,index=0,length=animation.tweens.length;for(;index<length;index++){animation.tweens[index].run(percent);}deferred.notifyWith(elem,[animation,percent,remaining]);if(percent<1&&length){return remaining;}else{deferred.resolveWith(elem,[animation]);return false;}},animation=deferred.promise({elem:elem,props:jQuery.extend({},properties),opts:jQuery.extend(true,{specialEasing:{}},options),originalProperties:properties,originalOptions:options,startTime:fxNow||createFxNow(),duration:options.duration,tweens:[],createTween:function(prop,end){var tween=jQuery.Tween(elem,animation.opts,prop,end,animation.opts.specialEasing[prop]||animation.opts.easing);animation.tweens.push(tween);return tween;},stop:function(gotoEnd){var index=0,length=gotoEnd?animation.tweens.length:0;if(stopped){return this;}stopped=true;for(;index<length;index++){animation.tweens[index].run(1);}if(gotoEnd){deferred.resolveWith(elem,[animation,gotoEnd]);}else{deferred.rejectWith(elem,[animation,gotoEnd]);}return this;}}),props=animation.props;propFilter(props,animation.opts.specialEasing);for(;index<length;index++){result=animationPrefilters[index].call(animation,elem,props,animation.opts);if(result){return result;}}jQuery.map(props,createTween,animation);if(jQuery.isFunction(animation.opts.start)){animation.opts.start.call(elem,animation);}jQuery.fx.timer(jQuery.extend(tick,{elem:elem,anim:animation,queue:animation.opts.queue}));return animation.progress(animation.opts.progress).done(animation.opts.done,animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);}jQuery.Animation=jQuery.extend(Animation,{tweener:function(props,callback){if(jQuery.isFunction(props)){callback=props;props=["*"];}else{props=props.split(" ");}var prop,index=0,length=props.length;for(;index<length;index++){prop=props[index];tweeners[prop]=tweeners[prop]||[];tweeners[prop].unshift(callback);}},prefilter:function(callback,prepend){if(prepend){animationPrefilters.unshift(callback);}else{animationPrefilters.push(callback);}}});jQuery.speed=function(speed,easing,fn){var opt=speed&&typeof speed==="object"?jQuery.extend({},speed):{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:opt.duration in jQuery.fx.speeds?jQuery.fx.speeds[opt.duration]:jQuery.fx.speeds._default;if(opt.queue==null||opt.queue===true){opt.queue="fx";}opt.old=opt.complete;opt.complete=function(){if(jQuery.isFunction(opt.old)){opt.old.call(this);}if(opt.queue){jQuery.dequeue(this,opt.queue);}};return opt;};jQuery.fn.extend({fadeTo:function(speed,to,easing,callback){return this.filter(isHidden).css("opacity",0).show().end().animate({opacity:to},speed,easing,callback);},animate:function(prop,speed,easing,callback){var empty=jQuery.isEmptyObject(prop),optall=jQuery.speed(speed,easing,callback),doAnimation=function(){var anim=Animation(this,jQuery.extend({},prop),optall);if(empty||jQuery._data(this,"finish")){anim.stop(true);}};doAnimation.finish=doAnimation;return empty||optall.queue===false?this.each(doAnimation):this.queue(optall.queue,doAnimation);},stop:function(type,clearQueue,gotoEnd){var stopQueue=function(hooks){var stop=hooks.stop;delete hooks.stop;stop(gotoEnd);};if(typeof type!=="string"){gotoEnd=clearQueue;clearQueue=type;
99type=undefined;}if(clearQueue&&type!==false){this.queue(type||"fx",[]);}return this.each(function(){var dequeue=true,index=type!=null&&type+"queueHooks",timers=jQuery.timers,data=jQuery._data(this);if(index){if(data[index]&&data[index].stop){stopQueue(data[index]);}}else{for(index in data){if(data[index]&&data[index].stop&&rrun.test(index)){stopQueue(data[index]);}}}for(index=timers.length;index--;){if(timers[index].elem===this&&(type==null||timers[index].queue===type)){timers[index].anim.stop(gotoEnd);dequeue=false;timers.splice(index,1);}}if(dequeue||!gotoEnd){jQuery.dequeue(this,type);}});},finish:function(type){if(type!==false){type=type||"fx";}return this.each(function(){var index,data=jQuery._data(this),queue=data[type+"queue"],hooks=data[type+"queueHooks"],timers=jQuery.timers,length=queue?queue.length:0;data.finish=true;jQuery.queue(this,type,[]);if(hooks&&hooks.stop){hooks.stop.call(this,true);}for(index=timers.length;index--;){if(timers[index].elem===this&&timers[index].queue===type){timers[index].anim.stop(true);timers.splice(index,1);}}for(index=0;index<length;index++){if(queue[index]&&queue[index].finish){queue[index].finish.call(this);}}delete data.finish;});}});jQuery.each(["toggle","show","hide"],function(i,name){var cssFn=jQuery.fn[name];jQuery.fn[name]=function(speed,easing,callback){return speed==null||typeof speed==="boolean"?cssFn.apply(this,arguments):this.animate(genFx(name,true),speed,easing,callback);};});jQuery.each({slideDown:genFx("show"),slideUp:genFx("hide"),slideToggle:genFx("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback);};});jQuery.timers=[];jQuery.fx.tick=function(){var timer,timers=jQuery.timers,i=0;fxNow=jQuery.now();for(;i<timers.length;i++){timer=timers[i];if(!timer()&&timers[i]===timer){timers.splice(i--,1);}}if(!timers.length){jQuery.fx.stop();}fxNow=undefined;};jQuery.fx.timer=function(timer){jQuery.timers.push(timer);if(timer()){jQuery.fx.start();}else{jQuery.timers.pop();}};jQuery.fx.interval=13;jQuery.fx.start=function(){if(!timerId){timerId=setInterval(jQuery.fx.tick,jQuery.fx.interval);}};jQuery.fx.stop=function(){clearInterval(timerId);timerId=null;};jQuery.fx.speeds={slow:600,fast:200,_default:400};jQuery.fn.delay=function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||"fx";return this.queue(type,function(next,hooks){var timeout=setTimeout(next,time);hooks.stop=function(){clearTimeout(timeout);};});};(function(){var input,div,select,a,opt;div=document.createElement("div");div.setAttribute("className","t");div.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";a=div.getElementsByTagName("a")[0];select=document.createElement("select");opt=select.appendChild(document.createElement("option"));input=div.getElementsByTagName("input")[0];a.style.cssText="top:1px";support.getSetAttribute=div.className!=="t";support.style=/top/.test(a.getAttribute("style"));support.hrefNormalized=a.getAttribute("href")==="/a";support.checkOn=!!input.value;support.optSelected=opt.selected;support.enctype=!!document.createElement("form").enctype;select.disabled=true;support.optDisabled=!opt.disabled;input=document.createElement("input");input.setAttribute("value","");support.input=input.getAttribute("value")==="";input.value="t";input.setAttribute("type","radio");support.radioValue=input.value==="t";})();var rreturn=/\r/g;jQuery.fn.extend({val:function(value){var hooks,ret,isFunction,elem=this[0];if(!arguments.length){if(elem){hooks=jQuery.valHooks[elem.type]||jQuery.valHooks[elem.nodeName.toLowerCase()];if(hooks&&"get" in hooks&&(ret=hooks.get(elem,"value"))!==undefined){return ret;}ret=elem.value;return typeof ret==="string"?ret.replace(rreturn,""):ret==null?"":ret;}return;}isFunction=jQuery.isFunction(value);return this.each(function(i){var val;if(this.nodeType!==1){return;}if(isFunction){val=value.call(this,i,jQuery(this).val());}else{val=value;}if(val==null){val="";}else{if(typeof val==="number"){val+="";}else{if(jQuery.isArray(val)){val=jQuery.map(val,function(value){return value==null?"":value+"";});}}}hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()];if(!hooks||!("set" in hooks)||hooks.set(this,val,"value")===undefined){this.value=val;}});}});jQuery.extend({valHooks:{option:{get:function(elem){var val=jQuery.find.attr(elem,"value");return val!=null?val:jQuery.trim(jQuery.text(elem));}},select:{get:function(elem){var value,option,options=elem.options,index=elem.selectedIndex,one=elem.type==="select-one"||index<0,values=one?null:[],max=one?index+1:options.length,i=index<0?max:one?index:0;for(;i<max;i++){option=options[i];if((option.selected||i===index)&&(support.optDisabled?!option.disabled:option.getAttribute("disabled")===null)&&(!option.parentNode.disabled||!jQuery.nodeName(option.parentNode,"optgroup"))){value=jQuery(option).val();if(one){return value;}values.push(value);}}return values;},set:function(elem,value){var optionSet,option,options=elem.options,values=jQuery.makeArray(value),i=options.length;while(i--){option=options[i];if(jQuery.inArray(jQuery.valHooks.option.get(option),values)>=0){try{option.selected=optionSet=true;}catch(_){option.scrollHeight;}}else{option.selected=false;}}if(!optionSet){elem.selectedIndex=-1;}return options;}}}});jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={set:function(elem,value){if(jQuery.isArray(value)){return(elem.checked=jQuery.inArray(jQuery(elem).val(),value)>=0);}}};if(!support.checkOn){jQuery.valHooks[this].get=function(elem){return elem.getAttribute("value")===null?"on":elem.value;};}});var nodeHook,boolHook,attrHandle=jQuery.expr.attrHandle,ruseDefault=/^(?:checked|selected)$/i,getSetAttribute=support.getSetAttribute,getSetInput=support.input;jQuery.fn.extend({attr:function(name,value){return access(this,jQuery.attr,name,value,arguments.length>1);},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name);});}});jQuery.extend({attr:function(elem,name,value){var hooks,ret,nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return;}if(typeof elem.getAttribute===strundefined){return jQuery.prop(elem,name,value);}if(nType!==1||!jQuery.isXMLDoc(elem)){name=name.toLowerCase();hooks=jQuery.attrHooks[name]||(jQuery.expr.match.bool.test(name)?boolHook:nodeHook);}if(value!==undefined){if(value===null){jQuery.removeAttr(elem,name);}
99else{if(hooks&&"set" in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret;}else{elem.setAttribute(name,value+"");return value;}}}else{if(hooks&&"get" in hooks&&(ret=hooks.get(elem,name))!==null){return ret;}else{ret=jQuery.find.attr(elem,name);return ret==null?undefined:ret;}}},removeAttr:function(elem,value){var name,propName,i=0,attrNames=value&&value.match(rnotwhite);if(attrNames&&elem.nodeType===1){while((name=attrNames[i++])){propName=jQuery.propFix[name]||name;if(jQuery.expr.match.bool.test(name)){if(getSetInput&&getSetAttribute||!ruseDefault.test(name)){elem[propName]=false;}else{elem[jQuery.camelCase("default-"+name)]=elem[propName]=false;}}else{jQuery.attr(elem,name,"");}elem.removeAttribute(getSetAttribute?name:propName);}}},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&value==="radio"&&jQuery.nodeName(elem,"input")){var val=elem.value;elem.setAttribute("type",value);if(val){elem.value=val;}return value;}}}}});boolHook={set:function(elem,value,name){if(value===false){jQuery.removeAttr(elem,name);}else{if(getSetInput&&getSetAttribute||!ruseDefault.test(name)){elem.setAttribute(!getSetAttribute&&jQuery.propFix[name]||name,name);}else{elem[jQuery.camelCase("default-"+name)]=elem[name]=true;}}return name;}};jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g),function(i,name){var getter=attrHandle[name]||jQuery.find.attr;attrHandle[name]=getSetInput&&getSetAttribute||!ruseDefault.test(name)?function(elem,name,isXML){var ret,handle;if(!isXML){handle=attrHandle[name];attrHandle[name]=ret;ret=getter(elem,name,isXML)!=null?name.toLowerCase():null;attrHandle[name]=handle;}return ret;}:function(elem,name,isXML){if(!isXML){return elem[jQuery.camelCase("default-"+name)]?name.toLowerCase():null;}};});if(!getSetInput||!getSetAttribute){jQuery.attrHooks.value={set:function(elem,value,name){if(jQuery.nodeName(elem,"input")){elem.defaultValue=value;}else{return nodeHook&&nodeHook.set(elem,value,name);}}};}if(!getSetAttribute){nodeHook={set:function(elem,value,name){var ret=elem.getAttributeNode(name);if(!ret){elem.setAttributeNode((ret=elem.ownerDocument.createAttribute(name)));}ret.value=value+="";if(name==="value"||value===elem.getAttribute(name)){return value;}}};attrHandle.id=attrHandle.name=attrHandle.coords=function(elem,name,isXML){var ret;if(!isXML){return(ret=elem.getAttributeNode(name))&&ret.value!==""?ret.value:null;}};jQuery.valHooks.button={get:function(elem,name){var ret=elem.getAttributeNode(name);if(ret&&ret.specified){return ret.value;}},set:nodeHook.set};jQuery.attrHooks.contenteditable={set:function(elem,value,name){nodeHook.set(elem,value===""?false:value,name);}};jQuery.each(["width","height"],function(i,name){jQuery.attrHooks[name]={set:function(elem,value){if(value===""){elem.setAttribute(name,"auto");return value;}}};});}if(!support.style){jQuery.attrHooks.style={get:function(elem){return elem.style.cssText||undefined;},set:function(elem,value){return(elem.style.cssText=value+"");}};}var rfocusable=/^(?:input|select|textarea|button|object)$/i,rclickable=/^(?:a|area)$/i;jQuery.fn.extend({prop:function(name,value){return access(this,jQuery.prop,name,value,arguments.length>1);},removeProp:function(name){name=jQuery.propFix[name]||name;return this.each(function(){try{this[name]=undefined;delete this[name];}catch(e){}});}});jQuery.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(elem,name,value){var ret,hooks,notxml,nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return;}notxml=nType!==1||!jQuery.isXMLDoc(elem);if(notxml){name=jQuery.propFix[name]||name;hooks=jQuery.propHooks[name];}if(value!==undefined){return hooks&&"set" in hooks&&(ret=hooks.set(elem,value,name))!==undefined?ret:(elem[name]=value);}else{return hooks&&"get" in hooks&&(ret=hooks.get(elem,name))!==null?ret:elem[name];}},propHooks:{tabIndex:{get:function(elem){var tabindex=jQuery.find.attr(elem,"tabindex");return tabindex?parseInt(tabindex,10):rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href?
990:-1;}}}});if(!support.hrefNormalized){jQuery.each(["href","src"],function(i,name){jQuery.propHooks[name]={get:function(elem){return elem.getAttribute(name,4);}};});}if(!support.optSelected){jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;if(parent){parent.selectedIndex;if(parent.parentNode){parent.parentNode.selectedIndex;}}return null;}};}jQuery.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){jQuery.propFix[this.toLowerCase()]=this;});if(!support.enctype){jQuery.propFix.enctype="encoding";}var rclass=/[\t\r\n\f]/g;jQuery.fn.extend({addClass:function(value){var classes,elem,cur,clazz,j,finalValue,i=0,len=this.length,proceed=typeof value==="string"&&value;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).addClass(value.call(this,j,this.className));});}if(proceed){classes=(value||"").match(rnotwhite)||[];for(;i<len;i++){elem=this[i];cur=elem.nodeType===1&&(elem.className?(" "+elem.className+" ").replace(rclass," "):" ");if(cur){j=0;while((clazz=classes[j++])){if(cur.indexOf(" "+clazz+" ")<0){cur+=clazz+" ";}}finalValue=jQuery.trim(cur);if(elem.className!==finalValue){elem.className=finalValue;}}}}return this;},removeClass:function(value){var classes,elem,cur,clazz,j,finalValue,i=0,len=this.length,proceed=arguments.length===0||typeof value==="string"&&value;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).removeClass(value.call(this,j,this.className));});}if(proceed){classes=(value||"").match(rnotwhite)||[];for(;i<len;i++){elem=this[i];cur=elem.nodeType===1&&(elem.className?(" "+elem.className+" ").replace(rclass," "):"");if(cur){j=0;while((clazz=classes[j++])){while(cur.indexOf(" "+clazz+" ")>=0){cur=cur.replace(" "+clazz+" "," ");}}finalValue=value?jQuery.trim(cur):"";if(elem.className!==finalValue){elem.className=finalValue;}}}}return this;},toggleClass:function(value,stateVal){var type=typeof value;if(typeof stateVal==="boolean"&&type==="string"){return stateVal?this.addClass(value):this.removeClass(value);}if(jQuery.isFunction(value)){return this.each(function(i){jQuery(this).toggleClass(value.call(this,i,this.className,stateVal),stateVal);});}return this.each(function(){if(type==="string"){var className,i=0,self=jQuery(this),classNames=value.match(rnotwhite)||[];while((className=classNames[i++])){if(self.hasClass(className)){self.removeClass(className);}else{self.addClass(className);}}}else{if(type===strundefined||type==="boolean"){if(this.className){jQuery._data(this,"__className__",this.className);}this.className=this.className||value===false?"":jQuery._data(this,"__className__")||"";}}});},hasClass:function(selector){var className=" "+selector+" ",i=0,l=this.length;for(;i<l;i++){if(this[i].nodeType===1&&(" "+this[i].className+" ").replace(rclass," ").indexOf(className)>=0){return true;}}return false;}});jQuery.each(("blur focus focusin focusout load resize scroll unload click dblclick "+"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select submit keydown keypress keyup error contextmenu").split(" "),function(i,name){jQuery.fn[name]=function(data,fn){return arguments.length>0?this.on(name,null,data,fn):this.trigger(name);};});jQuery.fn.extend({hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver);},bind:function(types,data,fn){return this.on(types,null,data,fn);},unbind:function(types,fn){return this.off(types,null,fn);},delegate:function(selector,types,data,fn){return this.on(types,selector,data,fn);},undelegate:function(selector,types,fn){return arguments.length===1?this.off(selector,"**"):this.off(types,selector||"**",fn);}});var nonce=jQuery.now();var rquery=(/\?/);var rvalidtokens=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;jQuery.parseJSON=function(data){if(window.JSON&&window.JSON.parse){return window.JSON.parse(data+"");}var requireNonComma,depth=null,str=jQuery.trim(data+"");return str&&!jQuery.trim(str.replace(rvalidtokens,function(token,comma,open,close){if(requireNonComma&&comma){depth=0;}if(depth===0){return token;}requireNonComma=open||comma;depth+=!close-!open;return"";}))?(Function("return "+str))():jQuery.error("Invalid JSON: "+data);};jQuery.parseXML=function(data){var xml,tmp;
99if(!data||typeof data!=="string"){return null;}try{if(window.DOMParser){tmp=new DOMParser();xml=tmp.parseFromString(data,"text/xml");}else{xml=new ActiveXObject("Microsoft.XMLDOM");xml.async="false";xml.loadXML(data);}}catch(e){xml=undefined;}if(!xml||!xml.documentElement||xml.getElementsByTagName("parsererror").length){jQuery.error("Invalid XML: "+data);}return xml;};var ajaxLocParts,ajaxLocation,rhash=/#.*$/,rts=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,rurl=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,prefilters={},transports={},allTypes="*/".concat("*");try{ajaxLocation=location.href;}catch(e){ajaxLocation=document.createElement("a");ajaxLocation.href="";ajaxLocation=ajaxLocation.href;}ajaxLocParts=rurl.exec(ajaxLocation.toLowerCase())||[];function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="string"){func=dataTypeExpression;dataTypeExpression="*";}var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnotwhite)||[];if(jQuery.isFunction(func)){while((dataType=dataTypes[i++])){if(dataType.charAt(0)==="+"){dataType=dataType.slice(1)||"*";(structure[dataType]=structure[dataType]||[]).unshift(func);}else{(structure[dataType]=structure[dataType]||[]).push(func);}}}};}function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR){var inspected={},seekingTransport=(structure===transports);function inspect(dataType){var selected;inspected[dataType]=true;jQuery.each(structure[dataType]||[],function(_,prefilterOrFactory){var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,jqXHR);if(typeof dataTypeOrTransport==="string"&&!seekingTransport&&!inspected[dataTypeOrTransport]){options.dataTypes.unshift(dataTypeOrTransport);inspect(dataTypeOrTransport);return false;}else{if(seekingTransport){return !(selected=dataTypeOrTransport);}}});return selected;}return inspect(options.dataTypes[0])||!inspected["*"]&&inspect("*");}function ajaxExtend(target,src){var deep,key,flatOptions=jQuery.ajaxSettings.flatOptions||{};for(key in src){if(src[key]!==undefined){(flatOptions[key]?target:(deep||(deep={})))[key]=src[key];}}if(deep){jQuery.extend(true,target,deep);}return target;}function ajaxHandleResponses(s,jqXHR,responses){var firstDataType,ct,finalDataType,type,contents=s.contents,dataTypes=s.dataTypes;while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||jqXHR.getResponseHeader("Content-Type");}}if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break;}}}if(dataTypes[0] in responses){finalDataType=dataTypes[0];}else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break;}if(!firstDataType){firstDataType=type;}}finalDataType=finalDataType||firstDataType;}if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType);}return responses[finalDataType];}}function ajaxConvert(s,response,jqXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1]){for(conv in s.converters){converters[conv.toLowerCase()]=s.converters[conv];}}current=dataTypes.shift();while(current){if(s.responseFields[current]){jqXHR[s.responseFields[current]]=response;}if(!prev&&isSuccess&&s.dataFilter){response=s.dataFilter(response,s.dataType);}prev=current;current=dataTypes.shift();if(current){if(current==="*"){current=prev;}else{if(prev!=="*"&&prev!==current){conv=converters[prev+" "+current]||converters["* "+current];if(!conv){for(conv2 in converters){tmp=conv2.split(" ");if(tmp[1]===current){conv=converters[prev+" "+tmp[0]]||converters["* "+tmp[0]];if(conv){if(conv===true){conv=converters[conv2];}else{if(converters[conv2]!==true){current=tmp[0];dataTypes.unshift(tmp[1]);}}break;}}}}if(conv!==true){if(conv&&s["throws"]){response=conv(response);}else{try{response=conv(response);}catch(e){return{state:"parsererror",error:conv?e:"No conversion from "+prev+" to "+current};}}}}}}}return{state:"success",data:response};}jQuery.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ajaxLocation,type:"GET",isLocal:rlocalProtocol.test(ajaxLocParts[1]),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":jQuery.parseJSON,"text xml":jQuery.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target);},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined;}options=options||{};var parts,i,cacheURL,responseHeadersString,timeoutTimer,fireGlobals,transport,responseHeaders,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},state=0,strAbort="canceled",jqXHR={readyState:0,getResponseHeader:function(key){var match;if(state===2){if(!responseHeaders){responseHeaders={};while((match=rheaders.exec(responseHeadersString))){responseHeaders[match[1].toLowerCase()]=match[2];}}match=responseHeaders[key.toLowerCase()];}return match==null?null:match;},getAllResponseHeaders:function(){return state===2?responseHeadersString:null;},setRequestHeader:function(name,value){var lname=name.toLowerCase();if(!state){name=requestHeadersNames[lname]=requestHeadersNames[lname]||name;requestHeaders[name]=value;}return this;},overrideMimeType:function(type){if(!state){s.mimeType=type;}return this;},statusCode:function(map){var code;if(map){if(state<2){for(code in map){statusCode[code]=[statusCode[code],map[code]];}}else{jqXHR.always(map[jqXHR.status]);}}return this;},abort:function(statusText){var finalText=statusText||strAbort;if(transport){transport.abort(finalText);}done(0,finalText);return this;}};deferred.promise(jqXHR).complete=completeDeferred.add;jqXHR.success=jqXHR.done;jqXHR.error=jqXHR.fail;s.url=((url||s.url||ajaxLocation)+"").replace(rhash,"").replace(rprotocol,ajaxLocParts[1]+"//");s.type=options.method||options.type||s.method||s.type;s.dataTypes=jQuery.trim(s.dataType||"*").toLowerCase().match(rnotwhite)||[""];if(s.crossDomain==null){parts=rurl.exec(s.url.toLowerCase());s.crossDomain=!!(parts&&(parts[1]!==ajaxLocParts[1]||parts[2]!==ajaxLocParts[2]||(parts[3]||(parts[1]==="http:"?"80":"443"))!==(ajaxLocParts[3]||(ajaxLocParts[1]==="http:"?"80":"443"))));}
99if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data,s.traditional);}inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(state===2){return jqXHR;}fireGlobals=s.global;if(fireGlobals&&jQuery.active++===0){jQuery.event.trigger("ajaxStart");}s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);cacheURL=s.url;if(!s.hasContent){if(s.data){cacheURL=(s.url+=(rquery.test(cacheURL)?"&":"?")+s.data);delete s.data;}if(s.cache===false){s.url=rts.test(cacheURL)?cacheURL.replace(rts,"$1_="+nonce++):cacheURL+(rquery.test(cacheURL)?"&":"?")+"_="+nonce++;}}if(s.ifModified){if(jQuery.lastModified[cacheURL]){jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[cacheURL]);}if(jQuery.etag[cacheURL]){jqXHR.setRequestHeader("If-None-Match",jQuery.etag[cacheURL]);}}if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){jqXHR.setRequestHeader("Content-Type",s.contentType);}jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+(s.dataTypes[0]!=="*"?", "+allTypes+"; q=0.01":""):s.accepts["*"]);for(i in s.headers){jqXHR.setRequestHeader(i,s.headers[i]);}if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||state===2)){return jqXHR.abort();}strAbort="abort";for(i in {success:1,error:1,complete:1}){jqXHR[i](s[i]);}transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport){done(-1,"No Transport");}else{jqXHR.readyState=1;if(fireGlobals){globalEventContext.trigger("ajaxSend",[jqXHR,s]);}if(s.async&&s.timeout>0){timeoutTimer=setTimeout(function(){jqXHR.abort("timeout");},s.timeout);}try{state=1;transport.send(requestHeaders,done);}catch(e){if(state<2){done(-1,e);}else{throw e;}}}function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;if(state===2){return;}state=2;if(timeoutTimer){clearTimeout(timeoutTimer);}transport=undefined;responseHeadersString=headers||"";jqXHR.readyState=status>0?4:0;isSuccess=status>=200&&status<300||status===304;if(responses){response=ajaxHandleResponses(s,jqXHR,responses);}response=ajaxConvert(s,response,jqXHR,isSuccess);if(isSuccess){if(s.ifModified){modified=jqXHR.getResponseHeader("Last-Modified");if(modified){jQuery.lastModified[cacheURL]=modified;}modified=jqXHR.getResponseHeader("etag");if(modified){jQuery.etag[cacheURL]=modified;}}if(status===204||s.type==="HEAD"){statusText="nocontent";}else{if(status===304){statusText="notmodified";}else{statusText=response.state;success=response.data;error=response.error;isSuccess=!error;}}}else{error=statusText;if(status||!statusText){statusText="error";if(status<0){status=0;}}}jqXHR.status=status;jqXHR.statusText=(nativeStatusText||statusText)+"";if(isSuccess){deferred.resolveWith(callbackContext,[success,statusText,jqXHR]);}else{deferred.rejectWith(callbackContext,[jqXHR,statusText,error]);}jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals){globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",[jqXHR,s,isSuccess?success:error]);}completeDeferred.fireWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger("ajaxComplete",[jqXHR,s]);if(!(--jQuery.active)){jQuery.event.trigger("ajaxStop");}}}return jqXHR;},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},getScript:function(url,callback){return jQuery.get(url,undefined,callback,"script");}});jQuery.each(["get","post"],function(i,method){jQuery[method]=function(url,data,callback,type){if(jQuery.isFunction(data)){type=type||callback;callback=data;data=undefined;}return jQuery.ajax({url:url,type:method,dataType:type,data:data,success:callback});};});jQuery.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(i,type){jQuery.fn[type]=function(fn){return this.on(type,fn);};});jQuery._evalUrl=function(url){return jQuery.ajax({url:url,type:"GET",dataType:"script",async:false,global:false,"throws":true});};jQuery.fn.extend({wrapAll:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapAll(html.call(this,i));});}if(this[0]){var wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){wrap.insertBefore(this[0]);}wrap.map(function(){var elem=this;while(elem.firstChild&&elem.firstChild.nodeType===1){elem=elem.firstChild;}return elem;}).append(this);}return this;},wrapInner:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapInner(html.call(this,i));});}return this.each(function(){var self=jQuery(this),contents=self.contents();if(contents.length){contents.wrapAll(html);}else{self.append(html);}});},wrap:function(html){var isFunction=jQuery.isFunction(html);return this.each(function(i){jQuery(this).wrapAll(isFunction?html.call(this,i):html);});},unwrap:function(){return this.parent().each(function(){if(!jQuery.nodeName(this,"body")){jQuery(this).replaceWith(this.childNodes);}}).end();}});jQuery.expr.filters.hidden=function(elem){return elem.offsetWidth<=0&&elem.offsetHeight<=0||(!support.reliableHiddenOffsets()&&((elem.style&&elem.style.display)||jQuery.css(elem,"display"))==="none");};jQuery.expr.filters.visible=function(elem){return !jQuery.expr.filters.hidden(elem);};var r20=/%20/g,rbracket=/\[\]$/,rCRLF=/\r?\n/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i;function buildParams(prefix,obj,traditional,add){var name;if(jQuery.isArray(obj)){jQuery.each(obj,function(i,v){if(traditional||rbracket.test(prefix)){add(prefix,v);}else{buildParams(prefix+"["+(typeof v==="object"?i:"")+"]",v,traditional,add);}});}else{if(!traditional&&jQuery.type(obj)==="object"){for(name in obj){buildParams(prefix+"["+name+"]",obj[name],traditional,add);}}else{add(prefix,obj);}}}jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,value){value=jQuery.isFunction(value)?value():(value==null?"":value);s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value);};if(traditional===undefined){traditional=jQuery.ajaxSettings&&jQuery.ajaxSettings.traditional;}if(jQuery.isArray(a)||(a.jquery&&!jQuery.isPlainObject(a))){jQuery.each(a,function(){add(this.name,this.value);});}else{for(prefix in a){buildParams(prefix,a[prefix],traditional,add);}}return s.join("&").replace(r20,"+");};jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){var elements=jQuery.prop(this,"elements");return elements?jQuery.makeArray(elements):this;}
99).filter(function(){var type=this.type;return this.name&&!jQuery(this).is(":disabled")&&rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&(this.checked||!rcheckableType.test(type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val){return{name:elem.name,value:val.replace(rCRLF,"\r\n")};}):{name:elem.name,value:val.replace(rCRLF,"\r\n")};}).get();}});jQuery.ajaxSettings.xhr=window.ActiveXObject!==undefined?function(){return !this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&createStandardXHR()||createActiveXHR();}:createStandardXHR;var xhrId=0,xhrCallbacks={},xhrSupported=jQuery.ajaxSettings.xhr();if(window.ActiveXObject){jQuery(window).on("unload",function(){for(var key in xhrCallbacks){xhrCallbacks[key](undefined,true);}});}support.cors=!!xhrSupported&&("withCredentials" in xhrSupported);xhrSupported=support.ajax=!!xhrSupported;if(xhrSupported){jQuery.ajaxTransport(function(options){if(!options.crossDomain||support.cors){var callback;return{send:function(headers,complete){var i,xhr=options.xhr(),id=++xhrId;xhr.open(options.type,options.url,options.async,options.username,options.password);if(options.xhrFields){for(i in options.xhrFields){xhr[i]=options.xhrFields[i];}}if(options.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(options.mimeType);}if(!options.crossDomain&&!headers["X-Requested-With"]){headers["X-Requested-With"]="XMLHttpRequest";}for(i in headers){if(headers[i]!==undefined){xhr.setRequestHeader(i,headers[i]+"");}}xhr.send((options.hasContent&&options.data)||null);callback=function(_,isAbort){var status,statusText,responses;if(callback&&(isAbort||xhr.readyState===4)){delete xhrCallbacks[id];callback=undefined;xhr.onreadystatechange=jQuery.noop;if(isAbort){if(xhr.readyState!==4){xhr.abort();}}else{responses={};status=xhr.status;
99if(typeof xhr.responseText==="string"){responses.text=xhr.responseText;}try{statusText=xhr.statusText;}catch(e){statusText="";}if(!status&&options.isLocal&&!options.crossDomain){status=responses.text?200:404;}else{if(status===1223){status=204;}}}}if(responses){complete(status,statusText,responses,xhr.getAllResponseHeaders());}};if(!options.async){callback();}else{if(xhr.readyState===4){setTimeout(callback);}else{xhr.onreadystatechange=xhrCallbacks[id]=callback;}}},abort:function(){if(callback){callback(undefined,true);}}};}});}function createStandardXHR(){try{return new window.XMLHttpRequest();}catch(e){}}function createActiveXHR(){try{return new window.ActiveXObject("Microsoft.XMLHTTP");}catch(e){}}jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(text){jQuery.globalEval(text);return text;}}});jQuery.ajaxPrefilter("script",function(s){if(s.cache===undefined){s.cache=false;}if(s.crossDomain){s.type="GET";s.global=false;}});jQuery.ajaxTransport("script",function(s){if(s.crossDomain){var script,head=document.head||jQuery("head")[0]||document.documentElement;return{send:function(_,callback){script=document.createElement("script");script.async=true;if(s.scriptCharset){script.charset=s.scriptCharset;}script.src=s.url;script.onload=script.onreadystatechange=function(_,isAbort){if(isAbort||!script.readyState||/loaded|complete/.test(script.readyState)){script.onload=script.onreadystatechange=null;if(script.parentNode){script.parentNode.removeChild(script);}script=null;if(!isAbort){callback(200,"success");}}};head.insertBefore(script,head.firstChild);},abort:function(){if(script){script.onload(undefined,true);}}};}});var oldCallbacks=[],rjsonp=/(=)\?(?=&|$)|\?\?/;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var callback=oldCallbacks.pop()||(jQuery.expando+"_"+(nonce++));this[callback]=true;return callback;}});jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var callbackName,overwritten,responseContainer,jsonProp=s.jsonp!==false&&(rjsonp.test(s.url)?"url":typeof s.data==="string"&&!(s.contentType||"").indexOf("application/x-www-form-urlencoded")&&rjsonp.test(s.data)&&"data");if(jsonProp||s.dataTypes[0]==="jsonp"){callbackName=s.jsonpCallback=jQuery.isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback;if(jsonProp){s[jsonProp]=s[jsonProp].replace(rjsonp,"$1"+callbackName);}else{if(s.jsonp!==false){s.url+=(rquery.test(s.url)?"&":"?")+s.jsonp+"="+callbackName;}}s.converters["script json"]=function(){if(!responseContainer){jQuery.error(callbackName+" was not called");}return responseContainer[0];};s.dataTypes[0]="json";overwritten=window[callbackName];window[callbackName]=function(){responseContainer=arguments;};jqXHR.always(function(){window[callbackName]=overwritten;if(s[callbackName]){s.jsonpCallback=originalSettings.jsonpCallback;oldCallbacks.push(callbackName);}if(responseContainer&&jQuery.isFunction(overwritten)){overwritten(responseContainer[0]);}responseContainer=overwritten=undefined;});return"script";}});jQuery.parseHTML=function(data,context,keepScripts){if(!data||typeof data!=="string"){return null;}if(typeof context==="boolean"){keepScripts=context;context=false;}context=context||document;var parsed=rsingleTag.exec(data),scripts=!keepScripts&&[];if(parsed){return[context.createElement(parsed[1])];}parsed=jQuery.buildFragment([data],context,scripts);if(scripts&&scripts.length){jQuery(scripts).remove();}return jQuery.merge([],parsed.childNodes);};var _load=jQuery.fn.load;jQuery.fn.load=function(url,params,callback){if(typeof url!=="string"&&_load){return _load.apply(this,arguments);}var selector,response,type,self=this,off=url.indexOf(" ");if(off>=0){selector=jQuery.trim(url.slice(off,url.length));url=url.slice(0,off);}if(jQuery.isFunction(params)){callback=params;params=undefined;}else{if(params&&typeof params==="object"){type="POST";}}if(self.length>0){jQuery.ajax({url:url,type:type,dataType:"html",data:params}).done(function(responseText){response=arguments;self.html(selector?jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector):responseText);}).complete(callback&&function(jqXHR,status){self.each(callback,response||[jqXHR.responseText,status,jqXHR]);});}return this;};jQuery.expr.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem;}).length;};var docElem=window.document.documentElement;function getWindow(elem){return jQuery.isWindow(elem)?elem:elem.nodeType===9?elem.defaultView||elem.parentWindow:false;}jQuery.offset={setOffset:function(elem,options,i){var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,calculatePosition,position=jQuery.css(elem,"position"),curElem=jQuery(elem),props={};if(position==="static"){elem.style.position="relative";}curOffset=curElem.offset();curCSSTop=jQuery.css(elem,"top");curCSSLeft=jQuery.css(elem,"left");calculatePosition=(position==="absolute"||position==="fixed")&&jQuery.inArray("auto",[curCSSTop,curCSSLeft])>-1;if(calculatePosition){curPosition=curElem.position();curTop=curPosition.top;curLeft=curPosition.left;}else{curTop=parseFloat(curCSSTop)||0;curLeft=parseFloat(curCSSLeft)||0;}if(jQuery.isFunction(options)){options=options.call(elem,i,curOffset);}if(options.top!=null){props.top=(options.top-curOffset.top)+curTop;}
99if(options.left!=null){props.left=(options.left-curOffset.left)+curLeft;}if("using" in options){options.using.call(elem,props);}else{curElem.css(props);}}};jQuery.fn.extend({offset:function(options){if(arguments.length){return options===undefined?this:this.each(function(i){jQuery.offset.setOffset(this,options,i);});}var docElem,win,box={top:0,left:0},elem=this[0],doc=elem&&elem.ownerDocument;if(!doc){return;}docElem=doc.documentElement;if(!jQuery.contains(docElem,elem)){return box;}if(typeof elem.getBoundingClientRect!==strundefined){box=elem.getBoundingClientRect();}win=getWindow(doc);return{top:box.top+(win.pageYOffset||docElem.scrollTop)-(docElem.clientTop||0),left:box.left+(win.pageXOffset||docElem.scrollLeft)-(docElem.clientLeft||0)};},position:function(){if(!this[0]){return;}var offsetParent,offset,parentOffset={top:0,left:0},elem=this[0];if(jQuery.css(elem,"position")==="fixed"){offset=elem.getBoundingClientRect();}else{offsetParent=this.offsetParent();offset=this.offset();if(!jQuery.nodeName(offsetParent[0],"html")){parentOffset=offsetParent.offset();}parentOffset.top+=jQuery.css(offsetParent[0],"borderTopWidth",true);parentOffset.left+=jQuery.css(offsetParent[0],"borderLeftWidth",true);}return{top:offset.top-parentOffset.top-jQuery.css(elem,"marginTop",true),left:offset.left-parentOffset.left-jQuery.css(elem,"marginLeft",true)};},offsetParent:function(){return this.map(function(){var offsetParent=this.offsetParent||docElem;while(offsetParent&&(!jQuery.nodeName(offsetParent,"html")&&jQuery.css(offsetParent,"position")==="static")){offsetParent=offsetParent.offsetParent;}return offsetParent||docElem;});}});jQuery.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(method,prop){var top=/Y/.test(prop);jQuery.fn[method]=function(val){return access(this,function(elem,method,val){var win=getWindow(elem);if(val===undefined){return win?(prop in win)?win[prop]:win.document.documentElement[method]:elem[method];}if(win){win.scrollTo(!top?val:jQuery(win).scrollLeft(),top?val:jQuery(win).scrollTop());}else{elem[method]=val;}},method,val,arguments.length,null);};});jQuery.each(["top","left"],function(i,prop){jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,function(elem,computed){if(computed){computed=curCSS(elem,prop);return rnumnonpx.test(computed)?jQuery(elem).position()[prop]+"px":computed;}});});jQuery.each({Height:"height",Width:"width"},function(name,type){jQuery.each({padding:"inner"+name,content:type,"":"outer"+name},function(defaultExtra,funcName){jQuery.fn[funcName]=function(margin,value){var chainable=arguments.length&&(defaultExtra||typeof margin!=="boolean"),extra=defaultExtra||(margin===true||value===true?"margin":"border");return access(this,function(elem,type,value){var doc;if(jQuery.isWindow(elem)){return elem.document.documentElement["client"+name];}if(elem.nodeType===9){doc=elem.documentElement;return Math.max(elem.body["scroll"+name],doc["scroll"+name],elem.body["offset"+name],doc["offset"+name],doc["client"+name]);}return value===undefined?jQuery.css(elem,type,extra):jQuery.style(elem,type,value,extra);},type,chainable?margin:undefined,chainable,null);};});});jQuery.fn.size=function(){return this.length;};jQuery.fn.andSelf=jQuery.fn.addBack;if(typeof define==="function"&&define.amd){define("jquery",[],function(){return jQuery;});}var _jQuery=window.jQuery,_$=window.$;jQuery.noConflict=function(deep){if(window.$===jQuery){window.$=_$;}if(deep&&window.jQuery===jQuery){window.jQuery=_jQuery;}return jQuery;};if(typeof noGlobal===strundefined){window.jQuery=window.$=jQuery;}return jQuery;}));
100   /* Ende jquery */
101   /* Start gsb_responsiveListener */
102   /*!
103 * --GSBDocStart
104 * @module gsb_responsiveListener
105 * @version 1.1.0
106 * @see {@link http://semver.org|Semantic Versioning}
107 * @author anuebel, pespeloe
108 * 
109 * @desc Ändert die Options der Plugins je Breakpoint. Über die Callbackfunction "onRefresh" kann je Auflösung eine Function ausgeführt werden
110 * 
111 * @example
112 * base.$el.gsb_responsiveListener(base);
113 *--GSBDocEnd
114 * Licensed under the MIT license
115 *
116 * Callback function je Breakpoint
117 * */
118(function($){if(!$.gsb){$.gsb={};}$.gsb.responsiveListener=function(pluginBase){var base=this;this.base=base;this.pluginBase=pluginBase;this.base.breakpoints=[];this.base.breakpointSettings=[];this.base.activeBreakpoint=null;this.base.windowWidth=0;base.init=function(){base.options=pluginBase.options;base.originalOptions=base.options;this.base.options=base.options;this.base.originalOptions=base.originalOptions;base.initResponsive();base.checkResponsive();if(base.options.respondToEvents===true){base.initEvents();}};$.gsb.responsiveListener.prototype.initEvents=function(){var $window=$(window),onResize=function(){if($(window).width()!==base.windowWidth){clearTimeout(base.windowDelay);base.windowDelay=window.setTimeout(function(){base.windowWidth=$(window).width();base.checkResponsive();},100);}};$window.on("resize",onResize);$window.on("orientationchange",function(){base.checkResponsive();});};base.init();};$.gsb.responsiveListener.prototype.initResponsive=function(){var breakpoint,responsiveSettings=this.base.options.responsive||null;if(responsiveSettings&&responsiveSettings.length>-1){for(breakpoint in responsiveSettings){if(responsiveSettings.hasOwnProperty(breakpoint)){this.base.breakpoints.push(responsiveSettings[breakpoint].breakpoint);this.base.breakpointSettings[responsiveSettings[breakpoint].breakpoint]=responsiveSettings[breakpoint];}}
118this.base.breakpoints.sort(function(a,b){return b-a;});}};$.gsb.responsiveListener.prototype.checkResponsive=function(){var breakpoint,targetBreakpoint,respondToWidth=window.innerWidth||$(window).width();if(this.base.originalOptions.responsive&&this.base.originalOptions.responsive.length>-1&&this.base.originalOptions.responsive!==null){targetBreakpoint=null;if(this.base.activeBreakpoint!==null&&respondToWidth>=this.base.breakpoints[0]){this.base.activeBreakpoint=null;this.pluginBase.options=this.base.originalOptions;}for(breakpoint in this.base.breakpoints){if(this.base.breakpoints.hasOwnProperty(breakpoint)){if(respondToWidth<this.base.breakpoints[breakpoint]){targetBreakpoint=this.base.breakpoints[breakpoint];this.base.highestResolution=false;}}}if(this.base.highestResolution){return;}if(targetBreakpoint!==null){if(this.base.activeBreakpoint!==null){if(targetBreakpoint!==this.base.activeBreakpoint){this.base.activeBreakpoint=targetBreakpoint;this.pluginBase.options=$.extend({},this.base.originalOptions,this.base.breakpointSettings[targetBreakpoint]);this.base.triggerRefresh();}}else{this.base.activeBreakpoint=targetBreakpoint;this.pluginBase.options=$.extend({},this.base.originalOptions,this.base.breakpointSettings[targetBreakpoint]);this.base.triggerRefresh();}}else{if(this.base.activeBreakpoint!==null){this.base.activeBreakpoint=null;this.base.options=this.base.originalOptions;this.base.triggerRefresh();}else{this.base.highestResolution=true;this.base.triggerRefresh();}}}else{if(this.base.originalOptions.onRefresh&&this.base.originalOptions.onRefresh.length>-1&&this.base.originalOptions.onRefresh!==null){if(this.base.highestResolution){return;}this.base.triggerRefresh();this.base.highestResolution=true;}}};$.gsb.responsiveListener.prototype.triggerRefresh=function(){if(typeof this.pluginBase.options.onRefresh==="function"){this.pluginBase.options.onRefresh.call(this.pluginBase);}};$.fn.gsb_responsiveListener=function(pluginBase){return this.each(function(){(new $.gsb.responsiveListener(pluginBase));});};})(jQuery);
119   /* Ende gsb_responsiveListener */
120   /* Start gsb_ariaSupport */
121   (function($){if(!$.gsb){$.gsb={};}$.gsb.ariaSupport=function(pluginBase){this.base=this;this.pluginBase=pluginBase;this.base.init=function(){this.base.options=pluginBase.options;this.base.originalOptions=this.base.options;this.base.options=this.base.options;this.base.originalOptions=this.base.originalOptions;this.base.initializeAria();};this.base.init();};$.gsb.ariaSupport.prototype.initializeAria=function(){var ariaType=this.base.options.ariaType,base=this.base,pluginBase=this.pluginBase;base.moduleOptions=$.gsb.ariaSupport.defaultOptions[ariaType.toUpperCase()];base.attributesPanel=$.gsb.ariaSupport.defaultOptions[ariaType.toUpperCase()]["panel"];base.attributesContent=$.gsb.ariaSupport.defaultOptions[ariaType.toUpperCase()]["content"];base.panelToggle=base.setToggleoptions(base.attributesPanel);base.contentToggle=base.setToggleoptions(base.attributesContent);pluginBase.controlPanel.get().forEach(function(panel,index){var firstOpen=$.gsb.ariaSupport.defaultOptions[ariaType.toUpperCase()].firstOpen;var addAural=$.gsb.ariaSupport.defaultOptions[ariaType.toUpperCase()].addAural;if(firstOpen&&index>0){firstOpen=false;}base.setAttributes(panel,base.attributesPanel,index,firstOpen);if(addAural){if(firstOpen){base.addAural(panel,true);}else{base.addAural(panel,false);}}if(pluginBase.contentPanel&&pluginBase.contentPanel.get(index)){base.setAttributes(pluginBase.contentPanel.get(index),base.attributesContent,index,firstOpen);}});};$.gsb.ariaSupport.defaultOptions={TAB:{firstOpen:true,panel:{id:function(base){return base.generateID();},role:"tab",aria_selected:["true","false"],aria_controls:function(base){return base.generateID();}},content:{role:"tabpanel",aria_hidden:["false","true"],id:function(base,index){return base.getPanelAttribute(index,"aria-controls");},aria_labelledby:function(base,index){return base.getPanelAttribute(index,"id");}}},ACCORDION:{panel:{role:"tab",aria_expanded:["true","false"],aria_selected:["true","false"],id:function(base){return base.generateID();},aria_controls:function(base){return base.generateID();}},content:{role:"tabpanel",aria_hidden:["false","true"],id:function(base,index){return base.getPanelAttribute(index,"aria-controls");},aria_labelledby:function(base,index){return base.getPanelAttribute(index,"id");}}},LIGTHBOX:{panel:{aria_haspopup:"true"}},MOBILEMENU:{panel:{aria_controls:function(base){return base.generateID();},id:function(base){return base.generateID();}},content:{aria_labelledby:function(base,index){return base.getPanelAttribute(index,"id");},id:function(base,index){return base.getPanelAttribute(index,"aria-controls");},aria_hidden:["false","true"],aria_expanded:["true","false"]}
121}};$.gsb.ariaSupport.prototype.generateID=function(){return"_"+Math.random().toString(36).substr(2,9);};$.gsb.ariaSupport.prototype.addAural=function(elem,open){var base=this.base;var auralSpan=document.createElement("span");auralSpan.classList.add("aural");var index=1;if(open==true){index=0;}var auralText=document.createTextNode(base.moduleOptions.auralText[index]);auralSpan.appendChild(auralText);elem.insertBefore(auralSpan,elem.firstChild);};$.gsb.ariaSupport.prototype.updateAural=function(clickedElem,open){var base=this.base;var auralSpan=clickedElem.querySelector(".aural");var index=1;if(open==true){index=0;}auralSpan.removeChild(auralSpan.firstChild);var auralText=document.createTextNode(base.moduleOptions.auralText[index]);auralSpan.appendChild(auralText);};$.gsb.ariaSupport.prototype.setAttributes=function(elem,options,index,open){var base=this.base;for(var key in options){var keyNameAsProperty=key.replace(/_/g,"-");if(typeof options[key]==="function"){elem.setAttribute(keyNameAsProperty,options[key].call(this,base,index));}else{if(Array.isArray(options[key])){if(options[key].length==2){if(open){elem.setAttribute(keyNameAsProperty,options[key][0]);}else{elem.setAttribute(keyNameAsProperty,options[key][1]);}}}else{elem.setAttribute(keyNameAsProperty,options[key]);}}}};$.gsb.ariaSupport.prototype.setToggleoptions=function(options){var obj={};for(key in options){if(Array.isArray(options[key])){obj[key]=options[key];}}return obj;};$.gsb.ariaSupport.prototype.getPanelAttribute=function(elementIndex,attribute){return this.pluginBase.controlPanel.get(elementIndex).getAttribute(attribute);};$.gsb.ariaSupport.prototype.getContentAttribute=function(elementIndex,attribute){return this.pluginBase.contentPanel.get(elementIndex).getAttribute(attribute);};$.gsb.ariaSupport.prototype.updateAria=function(clickedElem,externalOpen,singleOpen){var base=this.base;pluginBase=base.pluginBase;if(typeof externalOpen!="boolean"){externalOpen=null;}base.pluginBase.controlPanel.get().forEach(function(elem,index){var open=false;if(externalOpen){open=true;}else{if(externalOpen==null&&elem==clickedElem){open=true;}}if(singleOpen){if(elem!==clickedElem){return;}}base.setAttributes(elem,base.panelToggle,index,open);base.setAttributes(pluginBase.contentPanel.get(index),base.contentToggle,index,open);});};$.fn.gsb_ariaSupport=function(pluginBase){return(new $.gsb.ariaSupport(pluginBase));};})(jQuery);
122   /* Ende gsb_ariaSupport */
123   /* Start foundation */
124   (function($,window,document,undefined){var header_helpers=function(class_array){var i=class_array.length;var head=$("head");while(i--){if(head.has("."+class_array[i]).length===0){head.append('<meta class="'+class_array[i]+'" />');}}};header_helpers(["foundation-mq-small","foundation-mq-medium","foundation-mq-large","foundation-mq-xlarge","foundation-mq-xxlarge","foundation-data-attribute-namespace"]);$(function(){if(typeof FastClick!=="undefined"){if(typeof document.body!=="undefined"){FastClick.attach(document.body);}}});var S=function(selector,context){if(typeof selector==="string"){if(context){var cont;if(context.jquery){cont=context[0];if(!cont){return context;}}else{cont=context;}return $(cont.querySelectorAll(selector));}return $(document.querySelectorAll(selector));}return $(selector,context);};var attr_name=function(init){var arr=[];if(!init){arr.push("data");}if(this.namespace.length>0){arr.push(this.namespace);}arr.push(this.name);return arr.join("-");};var add_namespace=function(str){var parts=str.split("-"),i=parts.length,arr=[];while(i--){if(i!==0){arr.push(parts[i]);}else{if(this.namespace.length>0){arr.push(this.namespace,parts[i]);}else{arr.push(parts[i]);}}}return arr.reverse().join("-");};var bindings=function(method,options){var self=this,should_bind_events=!S(this).data(this.attr_name(true));if(S(this.scope).is("["+this.attr_name()+"]")){S(this.scope).data(this.attr_name(true)+"-init",$.extend({},this.settings,(options||method),this.data_options(S(this.scope))));if(should_bind_events){this.events(this.scope);}}else{S("["+this.attr_name()+"]",this.scope).each(function(){var should_bind_events=!S(this).data(self.attr_name(true)+"-init");S(this).data(self.attr_name(true)+"-init",$.extend({},self.settings,(options||method),self.data_options(S(this))));if(should_bind_events){self.events(this);}});}
124if(typeof method==="string"){return this[method].call(this,options);}};var single_image_loaded=function(image,callback){function loaded(){callback(image[0]);}function bindLoad(){this.one("load",loaded);if(/MSIE (\d+\.\d+);/.test(navigator.userAgent)){var src=this.attr("src"),param=src.match(/\?/)?"&":"?";param+="random="+(new Date()).getTime();this.attr("src",src+param);}}if(!image.attr("src")){loaded();return;}if(image[0].complete||image[0].readyState===4){loaded();}else{bindLoad.call(image);}};window.matchMedia=window.matchMedia||(function(doc){var bool,docElem=doc.documentElement,refNode=docElem.firstElementChild||docElem.firstChild,fakeBody=doc.createElement("body"),div=doc.createElement("div");div.id="mq-test-1";div.style.cssText="position:absolute;top:-100em";fakeBody.style.background="none";fakeBody.appendChild(div);return function(q){div.innerHTML='&shy;<style media="'+q+'"> #mq-test-1 { width: 42px; }</style>';docElem.insertBefore(fakeBody,refNode);bool=div.offsetWidth===42;docElem.removeChild(fakeBody);return{matches:bool,media:q};};}(document));(function($){var animating,lastTime=0,vendors=["webkit","moz"],requestAnimationFrame=window.requestAnimationFrame,cancelAnimationFrame=window.cancelAnimationFrame,jqueryFxAvailable="undefined"!==typeof jQuery.fx;for(;lastTime<vendors.length&&!requestAnimationFrame;lastTime++){requestAnimationFrame=window[vendors[lastTime]+"RequestAnimationFrame"];cancelAnimationFrame=cancelAnimationFrame||window[vendors[lastTime]+"CancelAnimationFrame"]||window[vendors[lastTime]+"CancelRequestAnimationFrame"];}function raf(){if(animating){requestAnimationFrame(raf);if(jqueryFxAvailable){jQuery.fx.tick();}}}if(requestAnimationFrame){window.requestAnimationFrame=requestAnimationFrame;window.cancelAnimationFrame=cancelAnimationFrame;if(jqueryFxAvailable){jQuery.fx.timer=function(timer){if(timer()&&jQuery.timers.push(timer)&&!animating){animating=true;raf();}};jQuery.fx.stop=function(){animating=false;};}}else{window.requestAnimationFrame=function(callback){var currTime=new Date().getTime(),timeToCall=Math.max(0,16-(currTime-lastTime)),id=window.setTimeout(function(){callback(currTime+timeToCall);},timeToCall);lastTime=currTime+timeToCall;return id;};window.cancelAnimationFrame=function(id){clearTimeout(id);};}}(jQuery));function removeQuotes(string){if(typeof string==="string"||string instanceof String){string=string.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g,"");}return string;}window.Foundation={name:"Foundation",version:"{{VERSION}}",media_queries:{small:S(".foundation-mq-small").css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g,""),medium:S(".foundation-mq-medium").css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g,""),large:S(".foundation-mq-large").css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g,""),xlarge:S(".foundation-mq-xlarge").css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g,""),xxlarge:S(".foundation-mq-xxlarge").css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g,"")},stylesheet:$("<style></style>").appendTo("head")[0].sheet,global:{namespace:undefined},init:function(scope,libraries,method,options,response){var args=[scope,method,options,response],responses=[];this.rtl=/rtl/i.test(S("html").attr("dir"));this.scope=scope||this.scope;this.set_namespace();if(libraries&&typeof libraries==="string"&&!/reflow/i.test(libraries)){if(this.libs.hasOwnProperty(libraries)){responses.push(this.init_lib(libraries,args));}}else{for(var lib in this.libs){responses.push(this.init_lib(lib,libraries));}}S(window).load(function(){S(window).trigger("resize.fndtn.clearing").trigger("resize.fndtn.dropdown").trigger("resize.fndtn.equalizer").trigger("resize.fndtn.interchange").trigger("resize.fndtn.joyride").trigger("resize.fndtn.magellan").trigger("resize.fndtn.topbar").trigger("resize.fndtn.slider");});return scope;},init_lib:function(lib,args){if(this.libs.hasOwnProperty(lib)){this.patch(this.libs[lib]);if(args&&args.hasOwnProperty(lib)){if(typeof this.libs[lib].settings!=="undefined"){$.extend(true,this.libs[lib].settings,args[lib]);}else{if(typeof this.libs[lib].defaults!=="undefined"){$.extend(true,this.libs[lib].defaults,args[lib]);}}return this.libs[lib].init.apply(this.libs[lib],[this.scope,args[lib]]);}args=args instanceof Array?args:new Array(args);
124return this.libs[lib].init.apply(this.libs[lib],args);}return function(){};},patch:function(lib){lib.scope=this.scope;lib.namespace=this.global.namespace;lib.rtl=this.rtl;lib["data_options"]=this.utils.data_options;lib["attr_name"]=attr_name;lib["add_namespace"]=add_namespace;lib["bindings"]=bindings;lib["S"]=this.utils.S;},inherit:function(scope,methods){var methods_arr=methods.split(" "),i=methods_arr.length;while(i--){if(this.utils.hasOwnProperty(methods_arr[i])){scope[methods_arr[i]]=this.utils[methods_arr[i]];}}},set_namespace:function(){var namespace=(this.global.namespace===undefined)?$(".foundation-data-attribute-namespace").css("font-family"):this.global.namespace;this.global.namespace=(namespace===undefined||/false/i.test(namespace))?"":namespace;},libs:{},utils:{S:S,throttle:function(func,delay){var timer=null;return function(){var context=this,args=arguments;if(timer==null){timer=setTimeout(function(){func.apply(context,args);timer=null;},delay);}};},debounce:function(func,delay,immediate){var timeout,result;return function(){var context=this,args=arguments;var later=function(){timeout=null;if(!immediate){result=func.apply(context,args);}};var callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,delay);if(callNow){result=func.apply(context,args);}return result;};},data_options:function(el,data_attr_name){data_attr_name=data_attr_name||"options";var opts={},ii,p,opts_arr,data_options=function(el){var namespace=Foundation.global.namespace;if(namespace.length>0){return el.data(namespace+"-"+data_attr_name);}return el.data(data_attr_name);};var cached_options=data_options(el);if(typeof cached_options==="object"){return cached_options;}opts_arr=(cached_options||":").split(";");ii=opts_arr.length;function isNumber(o){return !isNaN(o-0)&&o!==null&&o!==""&&o!==false&&o!==true;}function trim(str){if(typeof str==="string"){return $.trim(str);}return str;}while(ii--){p=opts_arr[ii].split(":");p=[p[0],p.slice(1).join(":")];if(/true/i.test(p[1])){p[1]=true;}if(/false/i.test(p[1])){p[1]=false;}if(isNumber(p[1])){if(p[1].indexOf(".")===-1){p[1]=parseInt(p[1],10);}else{p[1]=parseFloat(p[1]);}}if(p.length===2&&p[0].length>0){opts[trim(p[0])]=trim(p[1]);}}return opts;},register_media:function(media,media_class){if(Foundation.media_queries[media]===undefined){$("head").append('<meta class="'+media_class+'"/>');Foundation.media_queries[media]=removeQuotes($("."+media_class).css("font-family"));}},add_custom_rule:function(rule,media){if(media===undefined&&Foundation.stylesheet){Foundation.stylesheet.insertRule(rule,Foundation.stylesheet.cssRules.length);}else{var query=Foundation.media_queries[media];if(query!==undefined){Foundation.stylesheet.insertRule("@media "+Foundation.media_queries[media]+"{ "+rule+" }");}}},image_loaded:function(images,callback){var self=this,unloaded=images.length;if(unloaded===0){callback(images);}images.each(function(){single_image_loaded(self.S(this),function(){unloaded-=1;if(unloaded===0){callback(images);}});});},random_str:function(){if(!this.fidx){this.fidx=0;}this.prefix=this.prefix||[(this.name||"F"),(+new Date).toString(36)].join("-");return this.prefix+(this.fidx++).toString(36);}}};$.fn.foundation=function(){var args=Array.prototype.slice.call(arguments,0);return this.each(function(){Foundation.init.apply(Foundation,[this].concat(args));return this;});};}(jQuery,window,window.document));
125   /* Ende foundation */
126   /* Start foundation.tooltip */
127   (function($,window,document,undefined){Foundation.libs.tooltip={name:"tooltip",version:"{{VERSION}}",settings:{additional_inheritable_classes:[],tooltip_class:".tooltip",append_to:"body",touch_close_text:"Tap To Close",disable_for_touch:false,hover_delay:200,show_on:"all",tip_template:function(selector,content){return'<span data-selector="'+selector+'" id="'+selector+'" class="'+Foundation.libs.tooltip.settings.tooltip_class.substring(1)+'" role="tooltip">'+content+'<span class="nub"></span></span>';}},cache:{},init:function(scope,method,options){Foundation.inherit(this,"random_str");this.bindings(method,options);},should_show:function(target,tip){var settings=$.extend({},this.settings,this.data_options(target));if(settings.show_on==="all"){return true;}
127else{if(this.small()&&settings.show_on==="small"){return true;}else{if(this.medium()&&settings.show_on==="medium"){return true;}else{if(this.large()&&settings.show_on==="large"){return true;}}}}return false;},medium:function(){return matchMedia(Foundation.media_queries["medium"]).matches;},large:function(){return matchMedia(Foundation.media_queries["large"]).matches;},events:function(instance){var self=this,S=self.S;self.create(this.S(instance));$(this.scope).off(".tooltip").on("mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip","["+this.attr_name()+"]",function(e){var $this=S(this),settings=$.extend({},self.settings,self.data_options($this)),is_touch=false;if(Modernizr.touch&&/touchstart|MSPointerDown/i.test(e.type)&&S(e.target).is("a")){return false;}if(/mouse/i.test(e.type)&&self.ie_touch(e)){return false;}if($this.hasClass("open")){if(Modernizr.touch&&/touchstart|MSPointerDown/i.test(e.type)){e.preventDefault();}self.hide($this);}else{if(settings.disable_for_touch&&Modernizr.touch&&/touchstart|MSPointerDown/i.test(e.type)){return;}else{if(!settings.disable_for_touch&&Modernizr.touch&&/touchstart|MSPointerDown/i.test(e.type)){e.preventDefault();S(settings.tooltip_class+".open").hide();is_touch=true;}}if(/enter|over/i.test(e.type)){this.timer=setTimeout(function(){var tip=self.showTip($this);}.bind(this),self.settings.hover_delay);}else{if(e.type==="mouseout"||e.type==="mouseleave"){clearTimeout(this.timer);self.hide($this);}else{self.showTip($this);}}}}).on("mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip","["+this.attr_name()+"].open",function(e){if(/mouse/i.test(e.type)&&self.ie_touch(e)){return false;}if($(this).data("tooltip-open-event-type")=="touch"&&e.type=="mouseleave"){return;}else{if($(this).data("tooltip-open-event-type")=="mouse"&&/MSPointerDown|touchstart/i.test(e.type)){self.convert_to_touch($(this));}else{self.hide($(this));}}}).on("DOMNodeRemoved DOMAttrModified","["+this.attr_name()+"]:not(a)",function(e){self.hide(S(this));});},ie_touch:function(e){return false;},showTip:function($target){var $tip=this.getTip($target);if(this.should_show($target,$tip)){return this.show($target);}return;},getTip:function($target){var selector=this.selector($target),settings=$.extend({},this.settings,this.data_options($target)),tip=null;if(selector){tip=this.S('span[data-selector="'+selector+'"]'+settings.tooltip_class);}return(typeof tip==="object")?tip:false;},selector:function($target){var id=$target.attr("id"),dataSelector=$target.attr(this.attr_name())||$target.attr("data-selector");if((id&&id.length<1||!id)&&typeof dataSelector!="string"){dataSelector=this.random_str(6);$target.attr("data-selector",dataSelector).attr("aria-describedby",dataSelector);}return(id&&id.length>0)?id:dataSelector;},create:function($target){var self=this,settings=$.extend({},this.settings,this.data_options($target)),tip_template=this.settings.tip_template;if(typeof settings.tip_template==="string"&&window.hasOwnProperty(settings.tip_template)){tip_template=window[settings.tip_template];}var $tip=$(tip_template(this.selector($target),$("<div></div>").html($target.attr("title")).html())),classes=this.inheritable_classes($target);
127$tip.addClass(classes).appendTo(settings.append_to);if(Modernizr.touch){$tip.append('<span class="tap-to-close">'+settings.touch_close_text+"</span>");$tip.on("touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip",function(e){self.hide($target);});}$target.removeAttr("title").attr("title","");},reposition:function(target,tip,classes){var width,nub,nubHeight,nubWidth,column,objPos;tip.css("visibility","hidden").show();width=target.data("width");nub=tip.children(".nub");nubHeight=nub.outerHeight();nubWidth=nub.outerHeight();if(this.small()){tip.css({"width":"100%"});}else{tip.css({"width":(width)?width:"auto"});}objPos=function(obj,top,right,bottom,left,width){return obj.css({"top":(top)?top:"auto","bottom":(bottom)?bottom:"auto","left":(left)?left:"auto","right":(right)?right:"auto"}).end();};objPos(tip,(target.offset().top+target.outerHeight()+10),"auto","auto",target.offset().left);if(this.small()){objPos(tip,(target.offset().top+target.outerHeight()+10),"auto","auto",12.5,$(this.scope).width());tip.addClass("tip-override");objPos(nub,-nubHeight,"auto","auto",target.offset().left);}else{var left=target.offset().left;if(Foundation.rtl){nub.addClass("rtl");left=target.offset().left+target.outerWidth()-tip.outerWidth();}objPos(tip,(target.offset().top+target.outerHeight()+10),"auto","auto",left);tip.removeClass("tip-override");if(classes&&classes.indexOf("tip-top")>-1){if(Foundation.rtl){nub.addClass("rtl");}objPos(tip,(target.offset().top-tip.outerHeight()),"auto","auto",left).removeClass("tip-override");}else{if(classes&&classes.indexOf("tip-left")>-1){objPos(tip,(target.offset().top+(target.outerHeight()/2)-(tip.outerHeight()/2)),"auto","auto",(target.offset().left-tip.outerWidth()-nubHeight)).removeClass("tip-override");nub.removeClass("rtl");}else{if(classes&&classes.indexOf("tip-right")>-1){objPos(tip,(target.offset().top+(target.outerHeight()/2)-(tip.outerHeight()/2)),"auto","auto",(target.offset().left+target.outerWidth()+nubHeight)).removeClass("tip-override");nub.removeClass("rtl");}}}}tip.css("visibility","visible").hide();},small:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches;},inheritable_classes:function($target){var settings=$.extend({},this.settings,this.data_options($target)),inheritables=["tip-top","tip-left","tip-bottom","tip-right","radius","round"].concat(settings.additional_inheritable_classes),classes=$target.attr("class"),filtered=classes?$.map(classes.split(" "),function(el,i){if($.inArray(el,inheritables)!==-1){return el;}}).join(" "):"";return $.trim(filtered);},convert_to_touch:function($target){var self=this,$tip=self.getTip($target),settings=$.extend({},self.settings,self.data_options($target));if($tip.find(".tap-to-close").length===0){$tip.append('<span class="tap-to-close">'+settings.touch_close_text+"</span>");$tip.on("click.fndtn.tooltip.tapclose touchstart.fndtn.tooltip.tapclose MSPointerDown.fndtn.tooltip.tapclose",function(e){self.hide($target);});}$target.data("tooltip-open-event-type","touch");},show:function($target){var $tip=this.getTip($target);if($target.data("tooltip-open-event-type")=="touch"){this.convert_to_touch($target);}this.reposition($target,$tip,$target.attr("class"));$target.addClass("open");$tip.fadeIn(150);},hide:function($target){var $tip=this.getTip($target);$tip.fadeOut(150,function(){$tip.find(".tap-to-close").remove();$tip.off("click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose");$target.removeClass("open");});},off:function(){var self=this;this.S(this.scope).off(".fndtn.tooltip");this.S(this.settings.tooltip_class).each(function(i){$("["+self.attr_name()+"]").eq(i).attr("title",$(this).text());}).remove();},reflow:function(){}};}(jQuery,window,window.document));
128   /* Ende foundation.tooltip */
129   /* Start hammer */
130   /*! Hammer.JS - v2.0.2 - 2014-07-28  * http://hammerjs.github.io/  *  * Copyright (c) 2014 Jorik Tangelder <[email protected]>;  * Licensed under the MIT license 
131* --GSBDocStart
132 * @module HammerJS 
133 * @version 2.0.2 
134 * @see {@link http://hammerjs.github.io}
135 * @author Jorik Tangelder, 2014
136 * @license MIT license
137 *
138 * @desc Unterstüzt single- und multi-touch Gesten.
139 * Implementiert ist: tap, doubletap, pan, swipe, press, pinch, rotate
140 *--GSBDocEnd
141*/
142!function(a,b,c,d){function e(a,b,c){return setTimeout(k(a,c),b);}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1;}function g(a,b,c){var e,f;
142if(a){if(a.forEach){a.forEach(b,c);}else{if(a.length!==d){for(e=0,f=a.length;f>e;e++){b.call(c,a[e],e,a);}}else{for(e in a){a.hasOwnProperty(e)&&b.call(c,a[e],e,a);}}}}}function h(a,b,c){for(var e=Object.keys(b),f=0,g=e.length;g>f;f++){(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]);}return a;}function i(a,b){return h(a,b,!0);}function j(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&h(d,c);}function k(a,b){return function(){return a.apply(b,arguments);};}function l(a,b){return typeof a==hb?a.apply(b?b[0]||d:d,b):a;}function m(a,b){return a===d?b:a;}function n(a,b,c){g(r(b),function(b){a.addEventListener(b,c,!1);});}function o(a,b,c){g(r(b),function(b){a.removeEventListener(b,c,!1);});}function p(a,b){for(;a;){if(a==b){return !0;}a=a.parentNode;}return !1;}function q(a,b){return a.indexOf(b)>-1;}function r(a){return a.trim().split(/\s+/g);}function s(a,b,c){if(a.indexOf&&!c){return a.indexOf(b);}for(var d=0,e=a.length;e>d;d++){if(c&&a[d][c]==b||!c&&a[d]===b){return d;}}return -1;}function t(a){return Array.prototype.slice.call(a,0);}function u(a,b,c){for(var d=[],e=[],f=0,g=a.length;g>f;f++){var h=b?a[f][b]:a[f];s(e,h)<0&&d.push(a[f]),e[f]=h;}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b];}):d.sort()),d;}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0,h=fb.length;h>g;g++){if(c=fb[g],e=c?c+f:b,e in a){return e;}}return d;}function w(){return lb++;}function x(b,c){var d=this;this.manager=b,this.callback=c,this.element=b.element,this.target=b.options.inputTarget,this.domHandler=function(a){l(b.options.enable,[b])&&d.handler(a);},this.evEl&&n(this.element,this.evEl,this.domHandler),this.evTarget&&n(this.target,this.evTarget,this.domHandler),this.evWin&&n(a,this.evWin,this.domHandler);}function y(a){var b;return new (b=ob?M:pb?N:nb?P:L)(a,z);}function z(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&vb&&d-e===0,g=b&(xb|yb)&&d-e===0;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,A(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c;}function A(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=D(b)),e>1&&!c.firstMultiple?c.firstMultiple=D(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=E(d);b.timeStamp=kb(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=I(h,i),b.distance=H(h,i),B(c,b),b.offsetDirection=G(b.deltaX,b.deltaY),b.scale=g?K(g.pointers,d):1,b.rotation=g?J(g.pointers,d):0,C(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j;}function B(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===vb||f.eventType===xb)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y);}function C(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=yb&&(i>ub||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=F(i,j,k);e=l.x,f=l.y,c=jb(l.x)>jb(l.y)?l.x:l.y,g=G(j,k),a.lastInterval=b;}else{c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;}b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g;}function D(a){for(var b=[],c=0;c<a.pointers.length;c++){b[c]={clientX:ib(a.pointers[c].clientX),clientY:ib(a.pointers[c].clientY)};}return{timeStamp:kb(),pointers:b,center:E(b),deltaX:a.deltaX,deltaY:a.deltaY};}function E(a){var b=a.length;if(1===b){return{x:ib(a[0].clientX),y:ib(a[0].clientY)};}for(var c=0,d=0,e=0;b>e;e++){c+=a[e].clientX,d+=a[e].clientY;}return{x:ib(c/b),y:ib(d/b)};}function F(a,b,c){return{x:b/a||0,y:c/a||0};}function G(a,b){return a===b?zb:jb(a)>=jb(b)?a>0?Ab:Bb:b>0?Cb:Db;}function H(a,b,c){c||(c=Hb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e);}function I(a,b,c){c||(c=Hb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI;}function J(a,b){return I(b[1],b[0],Ib)-I(a[1],a[0],Ib);}function K(a,b){return H(b[0],b[1],Ib)/H(a[0],a[1],Ib);}function L(){this.evEl=Kb,this.evWin=Lb,this.allow=!0,this.pressed=!1,x.apply(this,arguments);}function M(){this.evEl=Ob,this.evWin=Pb,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[];}function N(){this.evTarget=Rb,this.targetIds={},x.apply(this,arguments);}function O(a,b){var c=t(a.touches),d=this.targetIds;if(b&(vb|wb)&&1===c.length){return d[c[0].identifier]=!0,[c,c];}var e,f,g=t(a.targetTouches),h=t(a.changedTouches),i=[];if(b===vb){for(e=0,f=g.length;f>e;e++){d[g[e].identifier]=!0;}}for(e=0,f=h.length;f>e;e++){d[h[e].identifier]&&i.push(h[e]),b&(xb|yb)&&delete d[h[e].identifier];}return i.length?[u(g.concat(i),"identifier",!0),i]:void 0;}function P(){x.apply(this,arguments);var a=k(this.handler,this);this.touch=new N(this.manager,a),this.mouse=new L(this.manager,a);}function Q(a,b){this.manager=a,this.set(b);}function R(a){if(q(a,Xb)){return Xb;}var b=q(a,Yb),c=q(a,Zb);return b&&c?Yb+" "+Zb:b||c?b?Yb:Zb:q(a,Wb)?Wb:Vb;}function S(a){this.id=w(),this.manager=null,this.options=i(a||{},this.defaults),this.options.enable=m(this.options.enable,!0),this.state=$b,this.simultaneous={},this.requireFail=[];}function T(a){return a&dc?"cancel":a&bc?"end":a&ac?"move":a&_b?"start":"";}
142function U(a){return a==Db?"down":a==Cb?"up":a==Ab?"left":a==Bb?"right":"";}function V(a,b){var c=b.manager;return c?c.get(a):a;}function W(){S.apply(this,arguments);}function X(){W.apply(this,arguments),this.pX=null,this.pY=null;}function Y(){W.apply(this,arguments);}function Z(){S.apply(this,arguments),this._timer=null,this._input=null;}function $(){W.apply(this,arguments);}function _(){W.apply(this,arguments);}function ab(){S.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0;}function bb(a,b){return b=b||{},b.recognizers=m(b.recognizers,bb.defaults.preset),new cb(a,b);}function cb(a,b){b=b||{},this.options=i(b,bb.defaults),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.element=a,this.input=y(this),this.touchAction=new Q(this,this.options.touchAction),db(this,!0),g(b.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[2]);},this);}function db(a,b){var c=a.element;g(a.options.cssProps,function(a,d){c.style[v(c.style,d)]=b?a:"";});}function eb(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d);}var fb=["","webkit","moz","MS","ms","o"],gb=b.createElement("div"),hb="function",ib=Math.round,jb=Math.abs,kb=Date.now,lb=1,mb=/mobile|tablet|ip(ad|hone|od)|android/i,nb="ontouchstart" in a,ob=v(a,"PointerEvent")!==d,pb=nb&&mb.test(navigator.userAgent),qb="touch",rb="pen",sb="mouse",tb="kinect",ub=25,vb=1,wb=2,xb=4,yb=8,zb=1,Ab=2,Bb=4,Cb=8,Db=16,Eb=Ab|Bb,Fb=Cb|Db,Gb=Eb|Fb,Hb=["x","y"],Ib=["clientX","clientY"];x.prototype={handler:function(){},destroy:function(){this.evEl&&o(this.element,this.evEl,this.domHandler),this.evTarget&&o(this.target,this.evTarget,this.domHandler),this.evWin&&o(a,this.evWin,this.domHandler);}};var Jb={mousedown:vb,mousemove:wb,mouseup:xb},Kb="mousedown",Lb="mousemove mouseup";j(L,x,{handler:function(a){var b=Jb[a.type];b&vb&&0===a.button&&(this.pressed=!0),b&wb&&1!==a.which&&(b=xb),this.pressed&&this.allow&&(b&xb&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:sb,srcEvent:a}));}});var Mb={pointerdown:vb,pointermove:wb,pointerup:xb,pointercancel:yb,pointerout:yb},Nb={2:qb,3:rb,4:sb,5:tb},Ob="pointerdown",Pb="pointermove pointerup pointercancel";a.MSPointerEvent&&(Ob="MSPointerDown",Pb="MSPointerMove MSPointerUp MSPointerCancel"),j(M,x,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=Mb[d],f=Nb[a.pointerType]||a.pointerType,g=f==qb;e&vb&&(0===a.button||g)?b.push(a):e&(xb|yb)&&(c=!0);var h=s(b,a.pointerId,"pointerId");0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1));}});var Qb={touchstart:vb,touchmove:wb,touchend:xb,touchcancel:yb},Rb="touchstart touchmove touchend touchcancel";j(N,x,{handler:function(a){var b=Qb[a.type],c=O.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:qb,srcEvent:a});}}),j(P,x,{handler:function(a,b,c){var d=c.pointerType==qb,e=c.pointerType==sb;if(d){this.mouse.allow=!1;}else{if(e&&!this.mouse.allow){return;}}b&(xb|yb)&&(this.mouse.allow=!0),this.callback(a,b,c);},destroy:function(){this.touch.destroy(),this.mouse.destroy();}});var Sb=v(gb.style,"touchAction"),Tb=Sb!==d,Ub="compute",Vb="auto",Wb="manipulation",Xb="none",Yb="pan-x",Zb="pan-y";Q.prototype={set:function(a){a==Ub&&(a=this.compute()),Tb&&(this.manager.element.style[Sb]=a),this.actions=a.toLowerCase().trim();},update:function(){this.set(this.manager.options.touchAction);},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()));}),R(a.join(" "));},preventDefaults:function(a){if(!Tb){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented){return void b.preventDefault();}var d=this.actions,e=q(d,Xb),f=q(d,Zb),g=q(d,Yb);return e||f&&g||f&&c&Eb||g&&c&Fb?this.preventSrc(b):void 0;}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault();}};var $b=1,_b=2,ac=4,bc=8,cc=bc,dc=16,ec=32;S.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this;}
142,recognizeWith:function(a){if(f(a,"recognizeWith",this)){return this;}var b=this.simultaneous;return a=V(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this;},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=V(a,this),delete this.simultaneous[a.id],this);},requireFailure:function(a){if(f(a,"requireFailure",this)){return this;}var b=this.requireFail;return a=V(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this;},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this)){return this;}a=V(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this;},hasRequireFailures:function(){return this.requireFail.length>0;},canRecognizeWith:function(a){return !!this.simultaneous[a.id];},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?T(d):""),a);}var c=this,d=this.state;bc>d&&b(!0),b(),d>=bc&&b(!0);},tryEmit:function(a){return this.canEmit()?this.emit(a):void (this.state=ec);},canEmit:function(){for(var a=0;a<this.requireFail.length;a++){if(!(this.requireFail[a].state&(ec|$b))){return !1;}}return !0;},recognize:function(a){var b=h({},a);return l(this.options.enable,[this,b])?(this.state&(cc|dc|ec)&&(this.state=$b),this.state=this.process(b),void (this.state&(_b|ac|bc|dc)&&this.tryEmit(b))):(this.reset(),void (this.state=ec));},process:function(){},getTouchAction:function(){},reset:function(){}},j(W,S,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b;},process:function(a){var b=this.state,c=a.eventType,d=b&(_b|ac),e=this.attrTest(a);return d&&(c&yb||!e)?b|dc:d||e?c&xb?b|bc:b&_b?b|ac:_b:ec;}}),j(X,W,{defaults:{event:"pan",threshold:10,pointers:1,direction:Gb},getTouchAction:function(){var a=this.options.direction;if(a===Gb){return[Xb];}var b=[];return a&Eb&&b.push(Zb),a&Fb&&b.push(Yb),b;},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&Eb?(e=0===f?zb:0>f?Ab:Bb,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?zb:0>g?Cb:Db,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction;},attrTest:function(a){return W.prototype.attrTest.call(this,a)&&(this.state&_b||!(this.state&_b)&&this.directionTest(a));},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=U(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a);}}),j(Y,W,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Xb];},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&_b);},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a);}}}),j(Z,S,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[Vb];},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(xb|yb)&&!f){this.reset();}else{if(a.eventType&vb){this.reset(),this._timer=e(function(){this.state=cc,this.tryEmit();},b.time,this);}else{if(a.eventType&xb){return cc;}}}return ec;},reset:function(){clearTimeout(this._timer);},emit:function(a){this.state===cc&&(a&&a.eventType&xb?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=kb(),this.manager.emit(this.options.event,this._input)));}}),j($,W,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Xb];},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&_b);}}),j(_,W,{defaults:{event:"swipe",threshold:10,velocity:0.65,direction:Eb|Fb,pointers:1},getTouchAction:function(){return X.prototype.getTouchAction.call(this);},attrTest:function(a){var b,c=this.options.direction;return c&(Eb|Fb)?b=a.velocity:c&Eb?b=a.velocityX:c&Fb&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&jb(b)>this.options.velocity&&a.eventType&xb;},emit:function(a){var b=U(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a);}}),j(ab,S,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[Wb];},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaT
142ime<b.time;if(this.reset(),a.eventType&vb&&0===this.count){return this.failTimeout();}if(d&&f&&c){if(a.eventType!=xb){return this.failTimeout();}var g=this.pTime?a.timeStamp-this.pTime<b.interval:!0,h=!this.pCenter||H(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,h&&g?this.count+=1:this.count=1,this._input=a;var i=this.count%b.taps;if(0===i){return this.hasRequireFailures()?(this._timer=e(function(){this.state=cc,this.tryEmit();},b.interval,this),_b):cc;}}return ec;},failTimeout:function(){return this._timer=e(function(){this.state=ec;},this.options.interval,this),ec;},reset:function(){clearTimeout(this._timer);},emit:function(){this.state==cc&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input));}}),bb.VERSION="2.0.2",bb.defaults={domEvents:!1,touchAction:Ub,inputTarget:null,enable:!0,preset:[[$,{enable:!1}],[Y,{enable:!1},["rotate"]],[_,{direction:Eb}],[X,{direction:Eb},["swipe"]],[ab],[ab,{event:"doubletap",taps:2},["tap"]],[Z]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var fc=1,gc=2;cb.prototype={set:function(a){return h(this.options,a),this;},stop:function(a){this.session.stopped=a?gc:fc;},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&cc)&&(e=b.curRecognizer=null);for(var f=0,g=d.length;g>f;f++){c=d[f],b.stopped===gc||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(_b|ac|bc)&&(e=b.curRecognizer=c);}}},get:function(a){if(a instanceof S){return a;}for(var b=this.recognizers,c=0;c<b.length;c++){if(b[c].options.event==a){return b[c];}}return null;},add:function(a){if(f(a,"add",this)){return this;}var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a;},remove:function(a){if(f(a,"remove",this)){return this;}var b=this.recognizers;return a=this.get(a),b.splice(s(b,a),1),this.touchAction.update(),this;},on:function(a,b){var c=this.handlers;return g(r(a),function(a){c[a]=c[a]||[],c[a].push(b);}),this;},off:function(a,b){var c=this.handlers;return g(r(a),function(a){b?c[a].splice(s(c[a],b),1):delete c[a];}),this;},emit:function(a,b){this.options.domEvents&&eb(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault();};for(var d=0,e=c.length;e>d;d++){c[d](b);}}},destroy:function(){this.element&&db(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null;}},h(bb,{INPUT_START:vb,INPUT_MOVE:wb,INPUT_END:xb,INPUT_CANCEL:yb,STATE_POSSIBLE:$b,STATE_BEGAN:_b,STATE_CHANGED:ac,STATE_ENDED:bc,STATE_RECOGNIZED:cc,STATE_CANCELLED:dc,STATE_FAILED:ec,DIRECTION_NONE:zb,DIRECTION_LEFT:Ab,DIRECTION_RIGHT:Bb,DIRECTION_UP:Cb,DIRECTION_DOWN:Db,DIRECTION_HORIZONTAL:Eb,DIRECTION_VERTICAL:Fb,DIRECTION_ALL:Gb,Manager:cb,Input:x,TouchAction:Q,Recognizer:S,AttrRecognizer:W,Tap:ab,Pan:X,Swipe:_,Pinch:Y,Rotate:$,Press:Z,on:n,off:o,each:g,merge:i,extend:h,inherit:j,bindFn:k,prefixed:v}),typeof define==hb&&define.amd?define(function(){return bb;}):"undefined"!=typeof module&&module.exports?module.exports=bb:a[c]=bb;}(window,document,"Hammer");
143   /* Ende hammer */
144   /* Start jquery.hammer */
145   (function($,Hammer,dataAttr){function hammerify(el,options){var $el=$(el);if(!$el.data(dataAttr)){$el.data(dataAttr,new Hammer($el[0],options));}}$.fn.hammer=function(options){return this.each(function(){hammerify(this,options);});};Hammer.Manager.prototype.emit=(function(originalEmit){return function(type,data){originalEmit.call(this,type,data);jQuery(this.element).triggerHandler({type:type,gesture:data});};})(Hammer.Manager.prototype.emit);})(jQuery,Hammer,"hammer");
146   /* Ende jquery.hammer */
147   /* Start jquery.mmenu */
148   (function($){var _PLUGIN_="mmenu",_VERSION_="5.5.3";if($[_PLUGIN_]&&$[_PLUGIN_].version>_VERSION_){return;}$[_PLUGIN_]=function($menu,opts,conf){this.$menu=$menu;this._api=["bind","init","update","setSelected","getInstance","openPanel","closePanel","closeAllPanels"];this.opts=opts;this.conf=conf;this.vars={};this.cbck={};if(typeof this.___deprecated=="function"){this.___deprecated();}this._initMenu();this._initAnchors();var $pnls=this.$pnls.children();this._initAddons();this.init($pnls);if(typeof this.___debug=="function"){this.___debug();}return this;};$[_PLUGIN_].version=_VERSION_;$[_PLUGIN_].addons={};$[_PLUGIN_].uniqueId=0;$[_PLUGIN_].defaults={extensions:[],navbar:{add:true,title:"Menu",titleLink:"panel"},onClick:{setSelected:true},slidingSubmenus:true};$[_PLUGIN_].configuration={classNames:{divider:"Divider",inset:"Inset",panel:"Panel",selected:"Selected",spacer:"Spacer",vertical:"Vertical"},clone:false,openingInterval:25,panelNodetype:"ul, ol, div",transitionDuration:400};$[_PLUGIN_].prototype={init:function($panels){$panels=$panels.not("."+_c.nopanel);$panels=this._initPanels($panels);this.trigger("init",$panels);this.trigger("update");},update:function(){this.trigger("update");},setSelected:function($li){this.$menu.find("."+_c.listview).children().removeClass(_c.selected);$li.addClass(_c.selected);this.trigger("setSelected",$li);},openPanel:function($panel){var $l=$panel.parent();if($l.hasClass(_c.vertical)){var $sub=$l.parents("."+_c.subopened);
148if($sub.length){return this.openPanel($sub.first());}$l.addClass(_c.opened);}else{if($panel.hasClass(_c.current)){return;}var $panels=this.$pnls.children("."+_c.panel),$current=$panels.filter("."+_c.current);$panels.removeClass(_c.highest).removeClass(_c.current).not($panel).not($current).not("."+_c.vertical).addClass(_c.hidden);if(!$[_PLUGIN_].support.csstransitions){$current.addClass(_c.hidden);}if($panel.hasClass(_c.opened)){$panel.nextAll("."+_c.opened).addClass(_c.highest).removeClass(_c.opened).removeClass(_c.subopened);}else{$panel.addClass(_c.highest);$current.addClass(_c.subopened);}$panel.removeClass(_c.hidden).addClass(_c.current);setTimeout(function(){$panel.removeClass(_c.subopened).addClass(_c.opened);},this.conf.openingInterval);}this.trigger("openPanel",$panel);},closePanel:function($panel){var $l=$panel.parent();if($l.hasClass(_c.vertical)){$l.removeClass(_c.opened);this.trigger("closePanel",$panel);}},closeAllPanels:function(){this.$menu.find("."+_c.listview).children().removeClass(_c.selected).filter("."+_c.vertical).removeClass(_c.opened);var $pnls=this.$pnls.children("."+_c.panel),$frst=$pnls.first();this.$pnls.children("."+_c.panel).not($frst).removeClass(_c.subopened).removeClass(_c.opened).removeClass(_c.current).removeClass(_c.highest).addClass(_c.hidden);this.openPanel($frst);},togglePanel:function($panel){var $l=$panel.parent();if($l.hasClass(_c.vertical)){this[$l.hasClass(_c.opened)?"closePanel":"openPanel"]($panel);}},getInstance:function(){return this;},bind:function(event,fn){this.cbck[event]=this.cbck[event]||[];this.cbck[event].push(fn);},trigger:function(){var that=this,args=Array.prototype.slice.call(arguments),evnt=args.shift();if(this.cbck[evnt]){for(var e=0,l=this.cbck[evnt].length;e<l;e++){this.cbck[evnt][e].apply(that,args);}}},_initMenu:function(){var that=this;if(this.opts.offCanvas&&this.conf.clone){this.$menu=this.$menu.clone(true);this.$menu.add(this.$menu.find("[id]")).filter("[id]").each(function(){$(this).attr("id",_c.mm($(this).attr("id")));});}this.$menu.contents().each(function(){if($(this)[0].nodeType==3){$(this).remove();}});this.$pnls=$('<div class="'+_c.panels+'" />').append(this.$menu.children(this.conf.panelNodetype)).prependTo(this.$menu);this.$menu.parent().addClass(_c.wrapper);var clsn=[_c.menu];if(!this.opts.slidingSubmenus){clsn.push(_c.vertical);}this.opts.extensions=(this.opts.extensions.length)?"mm-"+this.opts.extensions.join(" mm-"):"";if(this.opts.extensions){clsn.push(this.opts.extensions);}this.$menu.addClass(clsn.join(" "));},_initPanels:function($panels){var that=this;var $lists=this.__findAddBack($panels,"ul, ol");this.__refactorClass($lists,this.conf.classNames.inset,"inset").addClass(_c.nolistview+" "+_c.nopanel);$lists.not("."+_c.nolistview).addClass(_c.listview);var $lis=this.__findAddBack($panels,"."+_c.listview).children();this.__refactorClass($lis,this.conf.classNames.selected,"selected");this.__refactorClass($lis,this.conf.classNames.divider,"divider");this.__refactorClass($lis,this.conf.classNames.spacer,"spacer");this.__refactorClass(this.__findAddBack($panels,"."+this.conf.classNames.panel),this.conf.classNames.panel,"panel");var $curpanels=$(),$oldpanels=$panels.add($panels.find("."+_c.panel)).add(this.__findAddBack($panels,"."+_c.listview).children().children(this.conf.panelNodetype)).not("."+_c.nopanel);this.__refactorClass($oldpanels,this.conf.classNames.vertical,"vertical");if(!this.opts.slidingSubmenus){$oldpanels.addClass(_c.vertical);}$oldpanels.each(function(){var $t=$(this),$p=$t;if($t.is("ul, ol")){$t.wrap('<div class="'+_c.panel+'" />');$p=$t.parent();}else{$p.addClass(_c.panel);}var id=$t.attr("id");$t.removeAttr("id");$p.attr("id",id||that.__getUniqueId());if($t.hasClass(_c.vertical)){$t.removeClass(that.conf.classNames.vertical);$p.add($p.parent()).addClass(_c.vertical);}$curpanels=$curpanels.add($p);});var $allpanels=$("."+_c.panel,this.$menu);$curpanels.each(function(i){var $t=$(this),$p=$t.parent(),$a=$p.children("a, span").first();if(!$p.is("."+_c.panels)){$p.data(_d.sub,$t);$t.data(_d.parent,$p);}if(!$p.children("."+_c.next).length){if($p.parent().is("."+_c.listview)){var id=$t.attr("id"),$b=$('<a class="'+_c.next+'" href="#'+id+'" data-target="#'+id+'" />').insertBefore($a);if($a.is("span")){$b.addClass(_c.fullsubopen);}}}if(!$t.children("."+_c.navbar).length){if(!$p.hasClass(_c.vertical)){if($p.parent().is("."+_c.listview)){var $p=$p.closest("."+_c.panel);}else{var $a=$p.closest("."+_c.panel).find('a[href="#'+$t.attr("id")+'"]').first(),$p=$a.closest("."+_c.panel);}var $navbar=$('<div class="'+_c.navbar+'" />');if($p.length){var id=$p.attr("id");switch(that.opts.navbar.titleLink){case"anchor":_url=$a.attr("href");break;case"panel":case"parent":_url="#"+id;break;case"none":default:_url=false;break;}$navbar.append('<a class="'+_c.btn+" "+_c.prev+'" href="#'+id+'" data-target="#'+id+'" />').append($('<a class="'+_c.title+'"'+(_url?' href="'+_url+'"':"")+" />").text($a.text())).prependTo($t);
148if(that.opts.navbar.add){$t.addClass(_c.hasnavbar);}}else{if(that.opts.navbar.title){$navbar.append('<a class="'+_c.title+'">'+that.opts.navbar.title+"</a>").prependTo($t);if(that.opts.navbar.add){$t.addClass(_c.hasnavbar);}}}}}});var $s=this.__findAddBack($panels,"."+_c.listview).children("."+_c.selected).removeClass(_c.selected).last().addClass(_c.selected);$s.add($s.parentsUntil("."+_c.menu,"li")).filter("."+_c.vertical).addClass(_c.opened).end().not("."+_c.vertical).each(function(){$(this).parentsUntil("."+_c.menu,"."+_c.panel).not("."+_c.vertical).first().addClass(_c.opened).parentsUntil("."+_c.menu,"."+_c.panel).not("."+_c.vertical).first().addClass(_c.opened).addClass(_c.subopened);});$s.children("."+_c.panel).not("."+_c.vertical).addClass(_c.opened).parentsUntil("."+_c.menu,"."+_c.panel).not("."+_c.vertical).first().addClass(_c.opened).addClass(_c.subopened);var $current=$allpanels.filter("."+_c.opened);if(!$current.length){$current=$curpanels.first();}$current.addClass(_c.opened).last().addClass(_c.current);$curpanels.not("."+_c.vertical).not($current.last()).addClass(_c.hidden).end().appendTo(this.$pnls);return $curpanels;},_initAnchors:function(){var that=this;glbl.$body.on(_e.click+"-oncanvas","a[href]",function(e){var $t=$(this),fired=false,inMenu=that.$menu.find($t).length;for(var a in $[_PLUGIN_].addons){if(fired=$[_PLUGIN_].addons[a].clickAnchor.call(that,$t,inMenu)){break;}}if(!fired&&inMenu){var _h=$t.attr("href");if(_h.length>1&&_h.slice(0,1)=="#"){try{var $h=$(_h,that.$menu);if($h.is("."+_c.panel)){fired=true;that[$t.parent().hasClass(_c.vertical)?"togglePanel":"openPanel"]($h);}}catch(err){}}}if(fired){e.preventDefault();}if(!fired&&inMenu){if($t.is("."+_c.listview+" > li > a")&&!$t.is('[rel="external"]')&&!$t.is('[target="_blank"]')){if(that.__valueOrFn(that.opts.onClick.setSelected,$t)){that.setSelected($(e.target).parent());}var preventDefault=that.__valueOrFn(that.opts.onClick.preventDefault,$t,_h.slice(0,1)=="#");if(preventDefault){e.preventDefault();}if(that.__valueOrFn(that.opts.onClick.close,$t,preventDefault)){that.close();}}}});},_initAddons:function(){for(var a in $[_PLUGIN_].addons){$[_PLUGIN_].addons[a].add.call(this);$[_PLUGIN_].addons[a].add=function(){};}for(var a in $[_PLUGIN_].addons){$[_PLUGIN_].addons[a].setup.call(this);}},__api:function(){var that=this,api={};$.each(this._api,function(i){var fn=this;api[fn]=function(){var re=that[fn].apply(that,arguments);return(typeof re=="undefined")?api:re;};});return api;},__valueOrFn:function(o,$e,d){if(typeof o=="function"){return o.call($e[0]);}if(typeof o=="undefined"&&typeof d!="undefined"){return d;}return o;},__refactorClass:function($e,o,c){return $e.filter("."+o).removeClass(o).addClass(_c[c]);},__findAddBack:function($e,s){return $e.find(s).add($e.filter(s));},__filterListItems:function($i){return $i.not("."+_c.divider).not("."+_c.hidden);},__transitionend:function($e,fn,duration){var _ended=false,_fn=function(){if(!_ended){fn.call($e[0]);}_ended=true;};$e.one(_e.transitionend,_fn);$e.one(_e.webkitTransitionEnd,_fn);setTimeout(_fn,duration*1.1);},__getUniqueId:function(){return _c.mm($[_PLUGIN_].uniqueId++);}};$.fn[_PLUGIN_]=function(opts,conf){initPlugin();opts=$.extend(true,{},$[_PLUGIN_].defaults,opts);conf=$.extend(true,{},$[_PLUGIN_].configuration,conf);return this.each(function(){var $menu=$(this);if($menu.data(_PLUGIN_)){return;}var _menu=new $[_PLUGIN_]($menu,opts,conf);$menu.data(_PLUGIN_,_menu.__api());});};$[_PLUGIN_].support={touch:"ontouchstart" in window||navigator.msMaxTouchPoints,csstransitions:(function(){if(typeof Modernizr!=="undefined"&&typeof Modernizr.csstransitions!=="undefined"){return Modernizr.csstransitions;}var b=document.body||document.documentElement,s=b.style,p="transition";if(typeof s[p]=="string"){return true;}var v=["Moz","webkit","Webkit","Khtml","O","ms"];p=p.charAt(0).toUpperCase()+p.substr(1);for(var i=0;i<v.length;i++){if(typeof s[v[i]+p]=="string"){return true;}}return false;})()};var _c,_d,_e,glbl;function initPlugin(){if($[_PLUGIN_].glbl){return;}glbl={$wndw:$(window),$html:$("html"),$body:$("body")};_c={};_d={};_e={};$.each([_c,_d,_e],function(i,o){o.add=function(a){a=a.split(" ");for(var b=0,l=a.length;b<l;b++){o[a[b]]=o.mm(a[b]);}};});_c.mm=function(c){return"mm-"+c;};_c.add("wrapper menu panels panel nopanel current highest opened subopened navbar hasnavbar title btn prev next listview nolistview inset vertical selected divider spacer hidden fullsubopen");_c.umm=function(c){if(c.slice(0,3)=="mm-"){c=c.slice(3);}return c;};_d.mm=function(d){return"mm-"+d;};_d.add("parent sub");_e.mm=function(e){return e+".mm";};_e.add("transitionend webkitTransitionEnd mousedown mouseup touchstart touchmove touchend click keydown");$[_PLUGIN_]._c=_c;$[_PLUGIN_]._d=_d;$[_PLUGIN_]._e=_e;$[_PLUGIN_].glbl=glbl;}})(jQuery);(function($){var _PLUGIN_="mmenu",_ADDON_="offCanvas";$[_PLUGIN_].addons[_ADDON_]={setup:function(){if(!this.opts[_ADDON_]){return;}var that=this,opts=this.opts[_ADDON_],conf=this.conf[_ADDON_];glbl=$[_PLUGIN_].glbl;this._api=$.merge(this._api,["open","close","setPage"]);if(opts.position=="top"||opts.position=="bottom"){opts.zposition="front";}if(typeof conf.pageSelector!="string"){conf.pageSelector="> "+conf.pageNodetype;}glbl.$allMenus=(glbl.$allMenus||$()).add(this.$menu);this.vars.opened=false;var clsn=[_c.offcanvas];if(opts.position!="left"){clsn.push(_c.mm(opts.position));}if(opts.zposition!="back"){clsn.push(_c.mm(opts.zposition));}this.$menu.addClass(clsn.join(" ")).parent().removeClass(_c.wrapper);this.setPage(glbl.$page);this._initBlocker();this["_initWindow_"+_ADDON_]();this.$menu[conf.menuInjectMethod+"To"](conf.menuWrapperSelector);},add:function(){_c=$[_PLUGIN_]._c;_d=$[_PLUGIN_]._d;_e=$[_PLUGIN_]._e;_c.add("offcanvas slideout blocking modal background opening blocker page");_d.add("style");_e.add("resize");}
148,clickAnchor:function($a,inMenu){if(!this.opts[_ADDON_]){return false;}var id=this.$menu.attr("id");if(id&&id.length){if(this.conf.clone){id=_c.umm(id);}if($a.is('[href="#'+id+'"]')){this.open();return true;}}if(!glbl.$page){return;}var id=glbl.$page.first().attr("id");if(id&&id.length){if($a.is('[href="#'+id+'"]')){this.close();return true;}}return false;}};$[_PLUGIN_].defaults[_ADDON_]={position:"left",zposition:"back",blockUI:true,moveBackground:true};$[_PLUGIN_].configuration[_ADDON_]={pageNodetype:"div",pageSelector:null,noPageSelector:[],wrapPageIfNeeded:true,menuWrapperSelector:"body",menuInjectMethod:"prepend"};$[_PLUGIN_].prototype.open=function(){if(this.vars.opened){return;}var that=this;this._openSetup();setTimeout(function(){that._openFinish();},this.conf.openingInterval);this.trigger("open");};$[_PLUGIN_].prototype._openSetup=function(){var that=this,opts=this.opts[_ADDON_];this.closeAllOthers();glbl.$page.each(function(){$(this).data(_d.style,$(this).attr("style")||"");});glbl.$wndw.trigger(_e.resize+"-"+_ADDON_,[true]);var clsn=[_c.opened];if(opts.blockUI){clsn.push(_c.blocking);}if(opts.blockUI=="modal"){clsn.push(_c.modal);}if(opts.moveBackground){clsn.push(_c.background);}if(opts.position!="left"){clsn.push(_c.mm(this.opts[_ADDON_].position));}if(opts.zposition!="back"){clsn.push(_c.mm(this.opts[_ADDON_].zposition));}if(this.opts.extensions){clsn.push(this.opts.extensions);}glbl.$html.addClass(clsn.join(" "));setTimeout(function(){that.vars.opened=true;},this.conf.openingInterval);this.$menu.addClass(_c.current+" "+_c.opened);};$[_PLUGIN_].prototype._openFinish=function(){var that=this;this.__transitionend(glbl.$page.first(),function(){that.trigger("opened");},this.conf.transitionDuration);glbl.$html.addClass(_c.opening);this.trigger("opening");};$[_PLUGIN_].prototype.close=function(){if(!this.vars.opened){return;}var that=this;this.__transitionend(glbl.$page.first(),function(){that.$menu.removeClass(_c.current).removeClass(_c.opened);glbl.$html.removeClass(_c.opened).removeClass(_c.blocking).removeClass(_c.modal).removeClass(_c.background).removeClass(_c.mm(that.opts[_ADDON_].position)).removeClass(_c.mm(that.opts[_ADDON_].zposition));if(that.opts.extensions){glbl.$html.removeClass(that.opts.extensions);}glbl.$page.each(function(){$(this).attr("style",$(this).data(_d.style));});that.vars.opened=false;that.trigger("closed");},this.conf.transitionDuration);glbl.$html.removeClass(_c.opening);this.trigger("close");this.trigger("closing");};$[_PLUGIN_].prototype.closeAllOthers=function(){glbl.$allMenus.not(this.$menu).each(function(){var api=$(this).data(_PLUGIN_);if(api&&api.close){api.close();}});};$[_PLUGIN_].prototype.setPage=function($page){var that=this,conf=this.conf[_ADDON_];if(!$page||!$page.length){$page=glbl.$body.find(conf.pageSelector);if(conf.noPageSelector.length){$page=$page.not(conf.noPageSelector.join(", "));}if($page.length>1&&conf.wrapPageIfNeeded){$page=$page.wrapAll("<"+this.conf[_ADDON_].pageNodetype+" />").parent();}}$page.each(function(){$(this).attr("id",$(this).attr("id")||that.__getUniqueId());});$page.addClass(_c.page+" "+_c.slideout);glbl.$page=$page;this.trigger("setPage",$page);};$[_PLUGIN_].prototype["_initWindow_"+_ADDON_]=function(){glbl.$wndw.off(_e.keydown+"-"+_ADDON_).on(_e.keydown+"-"+_ADDON_,function(e){if(glbl.$html.hasClass(_c.opened)){if(e.keyCode==9){e.preventDefault();return false;}}});var _h=0;glbl.$wndw.off(_e.resize+"-"+_ADDON_).on(_e.resize+"-"+_ADDON_,function(e,force){if(glbl.$page.length==1){if(force||glbl.$html.hasClass(_c.opened)){var nh=glbl.$wndw.height();if(force||nh!=_h){_h=nh;glbl.$page.css("minHeight",nh);}}}});};$[_PLUGIN_].prototype._initBlocker=function(){var that=this;if(!this.opts[_ADDON_].blockUI){return;}if(!glbl.$blck){glbl.$blck=$('<div id="'+_c.blocker+'" class="'+_c.slideout+'" />');}glbl.$blck.appendTo(glbl.$body).off(_e.touchstart+"-"+_ADDON_+" "+_e.touchmove+"-"+_ADDON_).on(_e.touchstart+"-"+_ADDON_+" "+_e.touchmove+"-"+_ADDON_,function(e){e.preventDefault();e.stopPropagation();glbl.$blck.trigger(_e.mousedown+"-"+_ADDON_);}).off(_e.mousedown+"-"+_ADDON_).on(_e.mousedown+"-"+_ADDON_,function(e){e.preventDefault();if(!glbl.$html.hasClass(_c.modal)){that.closeAllOthers();that.close();}});};var _c,_d,_e,glbl;})(jQuery);
149   /* Ende jquery.mmenu */
150   /* Start jquery.mmenu.searchfield */
151   (function($){var _PLUGIN_="mmenu",_ADDON_="searchfield";$[_PLUGIN_].addons[_ADDON_]={setup:function(){var that=this,opts=this.opts[_ADDON_],conf=this.conf[_ADDON_];glbl=$[_PLUGIN_].glbl;if(typeof opts=="boolean"){opts={add:opts};}if(typeof opts!="object"){opts={};}opts=this.opts[_ADDON_]=$.extend(true,{},$[_PLUGIN_].defaults[_ADDON_],opts);this.bind("close",function(){this.$menu.find("."+_c.search).find("input").blur();});this.bind("init",function($panels){if(opts.add){switch(opts.addTo){case"panels":var $wrapper=$panels;break;default:var $wrapper=$(opts.addTo,this.$menu);break;}$wrapper.each(function(){var $panl=$(this);if($panl.is("."+_c.panel)&&$panl.is("."+_c.vertical)){return;}if(!$panl.children("."+_c.search).length){var _srch=(conf.form)?"form":"div";var $srch=$("<"+_srch+' class="'+_c.search+'" />');if(conf.form&&typeof conf.form=="object"){for(var f in conf.form){$srch.attr(f,conf.form[f]);}}$srch.append('<input placeholder="'+opts.placeholder+'" type="text" autocomplete="off" />');if($panl.hasClass(_c.search)){$panl.replaceWith($srch);}else{$panl.prepend($srch).addClass(_c.hassearch);}}if(opts.noResults){var inPanel=$panl.closest("."+_c.panel).length;if(!inPanel){$panl=that.$pnls.children("."+_c.panel).first();}if(!$panl.children("."+_c.noresultsmsg).length){var $lst=$panl.children("."+_c.listview).first();$('<div class="'+_c.noresultsmsg+'" />').append(opts.noResults)[$lst.length?"insertAfter":"prependTo"]($lst.length?$lst:$panl);}}});if(opts.search){$("."+_c.search,this.$menu).each(function(){var $srch=$(this),inPanel=$srch.closest("."+_c.panel).length;
151if(inPanel){var $pnls=$srch.closest("."+_c.panel),$panl=$pnls;}else{var $pnls=$("."+_c.panel,that.$menu),$panl=that.$menu;}var $inpt=$srch.children("input"),$itms=that.__findAddBack($pnls,"."+_c.listview).children("li"),$dvdr=$itms.filter("."+_c.divider),$rslt=that.__filterListItems($itms);var _anchor="> a",_both=_anchor+", > span";var search=function(){var query=$inpt.val().toLowerCase();$pnls.scrollTop(0);$rslt.add($dvdr).addClass(_c.hidden).find("."+_c.fullsubopensearch).removeClass(_c.fullsubopen).removeClass(_c.fullsubopensearch);$rslt.each(function(){var $item=$(this),_search=_anchor;if(opts.showTextItems||(opts.showSubPanels&&$item.find("."+_c.next))){_search=_both;}if($(_search,$item).text().toLowerCase().indexOf(query)>-1){$item.add($item.prevAll("."+_c.divider).first()).removeClass(_c.hidden);}});if(opts.showSubPanels){$pnls.each(function(i){var $panl=$(this);that.__filterListItems($panl.find("."+_c.listview).children()).each(function(){var $li=$(this),$su=$li.data(_d.sub);$li.removeClass(_c.nosubresults);if($su){$su.find("."+_c.listview).children().removeClass(_c.hidden);}});});}$($pnls.get().reverse()).each(function(i){var $panl=$(this),$prnt=$panl.data(_d.parent);if($prnt){if(that.__filterListItems($panl.find("."+_c.listview).children()).length){if($prnt.hasClass(_c.hidden)){$prnt.children("."+_c.next).not("."+_c.fullsubopen).addClass(_c.fullsubopen).addClass(_c.fullsubopensearch);}$prnt.removeClass(_c.hidden).removeClass(_c.nosubresults).prevAll("."+_c.divider).first().removeClass(_c.hidden);}else{if(!inPanel){if($panl.hasClass(_c.opened)){setTimeout(function(){that.openPanel($prnt.closest("."+_c.panel));},(i+1)*(that.conf.openingInterval*1.5));}$prnt.addClass(_c.nosubresults);}}}});
151$panl[$rslt.not("."+_c.hidden).length?"removeClass":"addClass"](_c.noresults);this.update();};$inpt.off(_e.keyup+"-searchfield "+_e.change+"-searchfield").on(_e.keyup+"-searchfield",function(e){if(!preventKeypressSearch(e.keyCode)){search.call(that);}}).on(_e.change+"-searchfield",function(e){search.call(that);});});}}});},add:function(){_c=$[_PLUGIN_]._c;_d=$[_PLUGIN_]._d;_e=$[_PLUGIN_]._e;_c.add("search hassearch noresultsmsg noresults nosubresults fullsubopensearch");_e.add("change keyup");},clickAnchor:function($a,inMenu){}};$[_PLUGIN_].defaults[_ADDON_]={add:false,addTo:"panels",search:true,placeholder:"Search",noResults:"No results found.",showTextItems:false,showSubPanels:true};$[_PLUGIN_].configuration[_ADDON_]={form:false};var _c,_d,_e,glbl;function preventKeypressSearch(c){switch(c){case 9:case 16:case 17:case 18:case 37:case 38:case 39:case 40:return true;}return false;}})(jQuery);
152   /* Ende jquery.mmenu.searchfield */
153   /* Start jquery.mmenu.navbars */
154   !function(n){var a="mmenu",t="navbars";n[a].addons[t]={setup:function(){var r=this,s=this.opts[t],c=this.conf[t];if(i=n[a].glbl,"undefined"!=typeof s){s instanceof Array||(s=[s]);var d={};n.each(s,function(i){var o=s[i];"boolean"==typeof o&&o&&(o={}),"object"!=typeof o&&(o={}),"undefined"==typeof o.content&&(o.content=["prev","title"]),o.content instanceof Array||(o.content=[o.content]),o=n.extend(!0,{},r.opts.navbar,o);var l=o.position,h=o.height;"number"!=typeof h&&(h=1),h=Math.min(4,Math.max(1,h)),"bottom"!=l&&(l="top"),d[l]||(d[l]=0),d[l]++;var f=n("<div />").addClass(e.navbar+" "+e.navbar+"-"+l+" "+e.navbar+"-"+l+"-"+d[l]+" "+e.navbar+"-size-"+h);d[l]+=h-1;for(var v=0,p=o.content.length;p>v;v++){var u=n[a].addons[t][o.content[v]]||!1;u?u.call(r,f,o,c):(u=o.content[v],u instanceof n||(u=n(o.content[v])),u.each(function(){f.append(n(this));}));}var b=Math.ceil(f.children().not("."+e.btn).length/h);b>1&&f.addClass(e.navbar+"-content-"+b),f.children("."+e.btn).length&&f.addClass(e.hasbtns),f.prependTo(r.$menu);});for(var o in d){r.$menu.addClass(e.hasnavbar+"-"+o+"-"+d[o]);}}},add:function(){e=n[a]._c,r=n[a]._d,s=n[a]._e,e.add("close hasbtns");},clickAnchor:function(){}},n[a].configuration[t]={breadcrumbSeparator:"/"},n[a].configuration.classNames[t]={panelTitle:"Title",panelNext:"Next",panelPrev:"Prev"};var e,r,s,i;}(jQuery),function(n){var a="mmenu",t="navbars",e="breadcrumbs";n[a].addons[t][e]=function(t,e,r){var s=n[a]._c,i=n[a]._d;s.add("breadcrumbs separator"),t.append('<span class="'+s.breadcrumbs+'"></span>'),this.bind("init",function(a){a.removeClass(s.hasnavbar).each(function(){for(var a=[],t=n(this),e=n('<span class="'+s.breadcrumbs+'"></span>'),c=n(this).children().first(),d=!0;c&&c.length;){c.is("."+s.panel)||(c=c.closest("."+s.panel));var o=c.children("."+s.navbar).children("."+s.title).text();a.unshift(d?"<span>"+o+"</span>":'<a href="#'+c.attr("id")+'">'+o+"</a>"),d=!1,c=c.data(i.parent);}e.append(a.join('<span class="'+s.separator+'">'+r.breadcrumbSeparator+"</span>")).appendTo(t.children("."+s.navbar));});});var c=function(){var n=this.$pnls.children("."+s.current),a=t.find("."+s.breadcrumbs),e=n.children("."+s.navbar).children("."+s.breadcrumbs);a.html(e.html());};this.bind("openPanel",c),this.bind("init",c);};}(jQuery),function(n){var a="mmenu",t="navbars",e="close";n[a].addons[t][e]=function(t){var e=n[a]._c,r=n[a].glbl;t.append('<a class="'+e.close+" "+e.btn+'" href="#"></a>');var s=function(n){t.find("."+e.close).attr("href","#"+n.attr("id"));};s.call(this,r.$page),this.bind("setPage",s);};}(jQuery),function(n){var a="mmenu",t="navbars",e="next";n[a].addons[t][e]=function(e){var r=n[a]._c;e.append('<a class="'+r.next+" "+r.btn+'" href="#"></a>');var s=function(n){n=n||this.$pnls.children("."+r.current);var a=e.find("."+r.next),s=n.find("."+this.conf.classNames[t].panelNext),i=s.attr("href"),c=s.html();a[i?"attr":"removeAttr"]("href",i),a[i||c?"removeClass":"addClass"](r.hidden),a.html(c);};this.bind("openPanel",s),this.bind("init",function(){s.call(this);});};}(jQuery),function(n){var a="mmenu",t="navbars",e="prev";n[a].addons[t][e]=function(e){var r=n[a]._c;e.append('<a class="'+r.prev+" "+r.btn+'" href="#"></a>'),this.bind("init",function(n){n.removeClass(r.hasnavbar);});var s=function(){var n=this.$pnls.children("."+r.current),a=e.find("."+r.prev),s=n.find("."+this.conf.classNames[t].panelPrev);s.length||(s=n.children("."+r.navbar).children("."+r.prev));var i=s.attr("href"),c=s.html();a[i?"attr":"removeAttr"]("href",i),a[i||c?"removeClass":"addClass"](r.hidden),a.html(c);};this.bind("openPanel",s),this.bind("init",s);};}(jQuery),function(n){var a="mmenu",t="navbars",e="searchfield";n[a].addons[t][e]=function(t){var e=n[a]._c,r=n('<div class="'+e.search+'" />').appendTo(t);"object"!=typeof this.opts.searchfield&&(this.opts.searchfield={}),this.opts.searchfield.add=!0,this.opts.searchfield.addTo=r;};}(jQuery),function(n){var a="mmenu",t="navbars",e="title";n[a].addons[t][e]=function(e,r){var s=n[a]._c;e.append('<a class="'+s.title+'"></a>');var i=function(n){n=n||this.$pnls.children("."+s.current);var a=e.find("."+s.title),i=n.find("."+this.conf.classNames[t].panelTitle);
154i.length||(i=n.children("."+s.navbar).children("."+s.title));var c=i.attr("href"),d=i.html()||r.title;a[c?"attr":"removeAttr"]("href",c),a[c||d?"removeClass":"addClass"](s.hidden),a.html(d);};this.bind("openPanel",i),this.bind("init",function(){i.call(this);});};}(jQuery);
155   /* Ende jquery.mmenu.navbars */
156   /* Start mediaelement */
157   /*!
158 * --GSBDocStart
159 * @module medialement.js 
160 * @version 2.23.5
161 * @see {@link http://mediaelementjs.com/}
162 * @author John Dyer (http://j.hn), 2010-2014
163 * @license MIT license
164 * 
165 * @desc mediaelements mit manuellen GSB-Anpassungen
166 * Creates a JavaScript object that mimics HTML5 MediaElement API
167 * for browsers that don't understand HTML5 or can't play the provided codec
168 * Can play MP4 (H.264), Ogg, WebM, FLV, WMV, WMA, ACC, and MP3
169 *--GSBDocEnd
170 * MediaElement.js
171 * HTML5 <video> and <audio> shim and player
172 * http://mediaelementjs.com/
173 *
174 * Creates a JavaScript object that mimics HTML5 MediaElement API
175 * for browsers that don't understand HTML5 or can't play the provided codec
176 * Can play MP4 (H.264), Ogg, WebM, FLV, WMV, WMA, ACC, and MP3
177 *
178 * Copyright 2010-2014, John Dyer (http://j.hn)
179 * License: MIT
180 *
181 */
182// Namespace
183var mejs = mejs || {};
184// version number
185mejs.version = '2.23.5';
186// player number (for missing, same id attr)
187mejs.meIndex = 0;
188// media types accepted by plugins
189mejs.plugins = {
190 silverlight: [
191  {version: [3,0], types: ['video/mp4','video/m4v','video/mov','video/wmv','audio/wma','audio/m4a','audio/mp3','audio/wav','audio/mpeg']}
192 ],
193 flash: [
194  {version: [9,0,124], types: ['video/mp4','video/m4v','video/mov','video/flv','video/rtmp','video/x-flv','audio/flv','audio/x-flv','audio/mp3','audio/m4a', 'audio/mp4', 'audio/mpeg', 'video/dailymotion', 'video/x-dailymotion', 'application/x-mpegURL', 'audio/ogg']}
195  // 'video/youtube', 'video/x-youtube',
196  // ,{version: [12,0], types: ['video/webm']} // for future reference (hopefully!)
197 ],
198 youtube: [
199  {version: null, types: ['video/youtube', 'video/x-youtube', 'audio/youtube', 'audio/x-youtube']}
200 ],
201 vimeo: [
202  {version: null, types: ['video/vimeo', 'video/x-vimeo']}
203 ]
204};
205/*
206Utility methods
207*/
208mejs.Utility = {
209 encodeUrl: function(url) {
210  return encodeURIComponent(url); //.replace(/\?/gi,'%3F').replace(/=/gi,'%3D').replace(/&/gi,'%26');
211 },
212 escapeHTML: function(s) {
213  return s.toString().split('&').join('&amp;').split('<').join('&lt;').split('"').join('&quot;');
214 },
215 absolutizeUrl: function(url) {
216  var el = document.createElement('div');
217  el.innerHTML = '<a href="' + this.escapeHTML(url) + '">x</a>';
218  return el.firstChild.href;
219 },
220 getScriptPath: function(scriptNames) {
221  var
222   i = 0,
223   j,
224   codePath = '',
225   testname = '',
226   slashPos,
227   filenamePos,
228   scriptUrl,
229   scriptPath,  
230   scriptFilename,
231   scripts = document.getElementsByTagName('script'),
232   il = scripts.length,
233   jl = scriptNames.length;
234  
235  // go through all <script> tags
236  for (; i < il; i++) {
237   scriptUrl = scripts[i].src;
238   slashPos = scriptUrl.lastIndexOf('/');
239   if (slashPos > -1) {
240    scriptFilename = scriptUrl.substring(slashPos + 1);
241    scriptPath = scriptUrl.substring(0, slashPos + 1);
242   } else {
243    scriptFilename = scriptUrl;
244    scriptPath = '';  
245   }
246  
247   // see if any <script> tags have a file name that matches the
248   for (j = 0; j < jl; j++) {
249    testname = scriptNames[j];
250    filenamePos = scriptFilename.indexOf(testname);
251    if (filenamePos > -1) {
252     codePath = scriptPath;
253     break;
254    }
255   }
256  
257   // if we found a path, then break and return it
258   if (codePath !== '') {
259    break;
260   }
261  }
262 
263  // send the best path back
264  return codePath;
265 },
266 /*
267  * Calculate the time format to use. We have a default format set in the
268  * options but it can be imcomplete. We ajust it according to the media
269  * duration.
270  *
271  * We support format like 'hh:mm:ss:ff'.
272  */
273 calculateTimeFormat: function(time, options, fps) {
274  if (time < 0) {
275   time = 0;
276  }
277  if(typeof fps == 'undefined') {
278      fps = 25;
279  }
280  var format = options.timeFormat,
281   firstChar = format[0],
282   firstTwoPlaces = (format[1] == format[0]),
283   separatorIndex = firstTwoPlaces? 2: 1,
284   separator = ':',
285   hours = Math.floor(time / 3600) % 24,
286   minutes = Math.floor(time / 60) % 60,
287   seconds = Math.floor(time % 60),
288   frames = Math.floor(((time % 1)*fps).toFixed(3)),
289   lis = [
290    [frames, 'f'],
291    [seconds, 's'],
292    [minutes, 'm'],
293    [hours, 'h']
294   ];
295  // Try to get the separator from the format
296  if (format.length < separatorIndex) {
297   separator = format[separatorIndex];
298  }
299  var required = false;
300  for (var i=0, len=lis.length; i < len; i++) {
301   if (format.indexOf(lis[i][1]) !== -1) {
302    required=true;
303   }
304   else if (required) {
305    var hasNextValue = false;
306    for (var j=i; j < len; j++) {
307     if (lis[j][0] > 0) {
308      hasNextValue = true;
309      break;
310     }
311    }
312    if (! hasNextValue) {
313     break;
314    }
315    if (!firstTwoPlaces) {
316     format = firstChar + format;
317    }
318    format = lis[i][1] + separator + format;
319    if (firstTwoPlaces) {
320     format = lis[i][1] + format;
321    }
322    firstChar = lis[i][1];
323   }
324  }
325  options.currentTimeFormat = format;
326 },
327 /*
328  * Prefix the given number by zero if it is lower than 10.
329  */
330 twoDigitsString: function(n) {
331  if (n < 10) {
332   return '0' + n;
333  }
334  return String(n);
335 },
336 secondsToTimeCode: function(time, options) {
337  if (time < 0) {
338   time = 0;
339  }
340  // Maintain backward compatibility with method signature before v2.18.
341  if (typeof options !== 'object') {
342   var format = 'm:ss';
343   format = arguments[1] ? 'hh:mm:ss' : format; // forceHours
344   format = arguments[2] ? format + ':ff' : format; // showFrameCount
345   options = {
346    currentTimeFormat: format,
347    framesPerSecond: arguments[3] || 25
348   };
349  }
350  var fps = options.framesPerSecond;
351  if(typeof fps === 'undefined') {
352   fps = 25;
353  }
354  var format = options.currentTimeFormat,
355   hours = Math.floor(time / 3600) % 24,
356   minutes = Math.floor(time / 60) % 60,
357   seconds = Math.floor(time % 60),
358   frames = Math.floor(((time % 1)*fps).toFixed(3));
359   lis = [
360    [frames, 'f'],
361    [seconds, 's'],
362    [minutes, 'm'],
363    [hours, 'h']
364   ];
365  var res = format;
366  for (i=0,len=lis.length; i < len; i++) {
367   res = res.replace(lis[i][1]+lis[i][1], this.twoDigitsString(lis[i][0]));
368   res = res.replace(lis[i][1], lis[i][0]);
369  }
370  return res;
371 },
372 timeCodeToSeconds: function(hh_mm_ss_ff, forceHours, showFrameCount, fps){
373  if (typeof showFrameCount == 'undefined') {
374      showFrameCount=false;
375  } else if(typeof fps == 'undefined') {
376      fps = 25;
377  }
378  var tc_array = hh_mm_ss_ff.split(":"),
379   tc_hh = parseInt(tc_array[0], 10),
380   tc_mm = parseInt(tc_array[1], 10),
381   tc_ss = parseInt(tc_array[2], 10),
382   tc_ff = 0,
383   tc_in_seconds = 0;
384 
385  if (showFrameCount) {
386      tc_ff = parseInt(tc_array[3])/fps;
387  }
388 
389  tc_in_seconds = ( tc_hh * 3600 ) + ( tc_mm * 60 ) + tc_ss + tc_ff;
390 
391  return tc_in_seconds;
392 },
393 convertSMPTEtoSeconds: function (SMPTE) {
394  if (typeof SMPTE != 'string')
395   return false;
396  SMPTE = SMPTE.replace(',', '.');
397 
398  var secs = 0,
399   decimalLen = (SMPTE.indexOf('.') != -1) ? SMPTE.split('.')[1].length : 0,
400   multiplier = 1;
401 
402  SMPTE = SMPTE.split(':').reverse();
403 
404  for (var i = 0; i < SMPTE.length; i++) {
405   multiplier = 1;
406   if (i > 0) {
407    multiplier = Math.pow(60, i);
408   }
409   secs += Number(SMPTE[i]) * multiplier;
410  }
411  return Number(secs.toFixed(decimalLen));
412 },
413 /* borrowed from SWFObject: http://code.google.com/p/swfobject/source/browse/trunk/swfobject/src/swfobject.js#474 */
414 removeSwf: function(id) {
415  var obj = document.getElementById(id);
416  if (obj && /object|embed/i.test(obj.nodeName)) {
417   if (mejs.MediaFeatures.isIE) {
418    obj.style.display = "none";
419    (function(){
420     if (obj.readyState == 4) {
421      mejs.Utility.removeObjectInIE(id);
422     } else {
423      setTimeout(arguments.callee, 10);
424     }
425    })();
426   } else {
427    obj.parentNode.removeChild(obj);
428   }
429  }
430 },
431 removeObjectInIE: function(id) {
432  var obj = document.getElementById(id);
433  if (obj) {
434   for (var i in obj) {
435    if (typeof obj[i] == "function") {
436     obj[i] = null;
437    }
438   }
439   obj.parentNode.removeChild(obj);
440  } 
441 },
442    determineScheme: function(url) {
443        if (url && url.indexOf("://") != -1) {
444            return url.substr(0, url.indexOf("://")+3);
445        }
446        return "//"; // let user agent figure this out
447    },
448 // taken from underscore
449 debounce: function(func, wait, immediate) {
450  var timeout;
451  return function() {
452   var context = this, args = arguments;
453   var later = function() {
454    timeout = null;
455    if (!immediate) func.apply(context, args);
456   };
457   var callNow = immediate && !timeout;
458   clearTimeout(timeout);
459   timeout = setTimeout(later, wait);
460   if (callNow) func.apply(context, args);
461  };
462 },
463 /**
464 * Returns true if targetNode appears after sourceNode in the dom.
465 * @param {HTMLElement} sourceNode - the source node for comparison
466 * @param {HTMLElement} targetNode - the node to compare against sourceNode
467 */
468 isNodeAfter: function(sourceNode, targetNode) {
469  return !!(
470   sourceNode &&
471   targetNode &&
472   typeof sourceNode.compareDocumentPosition === 'function' &&
473   sourceNode.compareDocumentPosition(targetNode) & Node.DOCUMENT_POSITION_PRECEDING
474  );
475 }
476};
477// Core detector, plugins are added below
478mejs.PluginDetector = {
479 // main public function to test a plug version number PluginDetector.hasPluginVersion('flash',[9,0,125]);
480 hasPluginVersion: function(plugin, v) {
481  var pv = this.plugins[plugin];
482  v[1] = v[1] || 0;
483  v[2] = v[2] || 0;
484  return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false;
485 },
486 // cached values
487 nav: window.navigator,
488 ua: window.navigator.userAgent.toLowerCase(),
489 // stored version numbers
490 plugins: [],
491 // runs detectPlugin() and stores the version number
492 addPlugin: function(p, pluginName, mimeType, activeX, axDetect) {
493  this.plugins[p] = this.detectPlugin(pluginName, mimeType, activeX, axDetect);
494 },
495 // get the version number from the mimetype (all but IE) or ActiveX (IE)
496 detectPlugin: function(pluginName, mimeType, activeX, axDetect) {
497  var version = [0,0,0],
498   description,
499   i,
500   ax;
501  // Firefox, Webkit, Opera
502  if (typeof(this.nav.plugins) != 'undefined' && typeof this.nav.plugins[pluginName] == 'object') {
503   description = this.nav.plugins[pluginName].description;
504   if (description && !(typeof this.nav.mimeTypes != 'undefined' && this.nav.mimeTypes[mimeType] && !this.nav.mimeTypes[mimeType].enabledPlugin)) {
505    version = description.replace(pluginName, '').replace(/^\s+/,'').replace(/\sr/gi,'.').split('.');
506    for (i=0; i<version.length; i++) {
507     version[i] = parseInt(version[i].match(/\d+/), 10);
508    }
509   }
510  // Internet Explorer / ActiveX
511  } else if (typeof(window.ActiveXObject) != 'undefined') {
512   try {
513    ax = new ActiveXObject(activeX);
514    if (ax) {
515     version = axDetect(ax);
516    }
517   }
518   catch (e) { }
519  }
520  return version;
521 }
522};
523// Add Flash detection
524mejs.PluginDetector.addPlugin('flash','Shockwave Flash','application/x-shockwave-flash','ShockwaveFlash.ShockwaveFlash', function(ax) {
525 // adapted from SWFObject
526 var version = [],
527  d = ax.GetVariable("$version");
528 if (d) {
529  d = d.split(" ")[1].split(",");
530  version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
531 }
532 return version;
533});
534// Add Silverlight detection
535mejs.PluginDetector.addPlugin('silverlight','Silverlight Plug-In','application/x-silverlight-2','AgControl.AgControl', function (ax) {
536 // Silverlight cannot report its version number to IE
537 // but it does have a isVersionSupported function, so we have to loop through it to get a version number.
538 // adapted from http://www.silverlightversion.com/
539 var v = [0,0,0,0],
540  loopMatch = function(ax, v, i, n) {
541   while(ax.isVersionSupported(v[0]+ "."+ v[1] + "." + v[2] + "." + v[3])){
542    v[i]+=n;
543   }
544   v[i] -= n;
545  };
546 loopMatch(ax, v, 0, 1);
547 loopMatch(ax, v, 1, 1);
548 loopMatch(ax, v, 2, 10000); // the third place in the version number is usually 5 digits (4.0.xxxxx)
549 loopMatch(ax, v, 2, 1000);
550 loopMatch(ax, v, 2, 100);
551 loopMatch(ax, v, 2, 10);
552 loopMatch(ax, v, 2, 1);
553 loopMatch(ax, v, 3, 1);
554 return v;
555});
556// add adobe acrobat
557/*
558PluginDetector.addPlugin('acrobat','Adobe Acrobat','application/pdf','AcroPDF.PDF', function (ax) {
559 var version = [],
560  d = ax.GetVersions().split(',')[0].split('=')[1].split('.');
561 if (d) {
562  version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
563 }
564 return version;
565});
566*/
567// necessary detection (fixes for <IE9)
568mejs.MediaFeatures = {
569 init: function() {
570  var
571   t = this,
572   d = document,
573   nav = mejs.PluginDetector.nav,
574   ua = mejs.PluginDetector.ua.toLowerCase(),
575   i,
576   v,
577   html5Elements = ['source','track','audio','video'];
578  // detect browsers (only the ones that have some kind of quirk we need to work around)
579  t.isiPad = (ua.match(/ipad/i) !== null);
580  t.isiPhone = (ua.match(/iphone/i) !== null);
581  t.isiOS = t.isiPhone || t.isiPad;
582  t.isAndroid = (ua.match(/android/i) !== null);
583  t.isBustedAndroid = (ua.match(/android 2\.[12]/) !== null);
584  t.isBustedNativeHTTPS = (location.protocol === 'https:' && (ua.match(/android [12]\./) !== null || ua.match(/macintosh.* version.* safari/) !== null));
585  t.isIE = (nav.appName.toLowerCase().indexOf("microsoft") != -1 || nav.appName.toLowerCase().match(/trident/gi) !== null);
586  t.isChrome = (ua.match(/chrome/gi) !== null);
587  t.isChromium = (ua.match(/chromium/gi) !== null);
588  t.isFirefox = (ua.match(/firefox/gi) !== null);
589  t.isWebkit = (ua.match(/webkit/gi) !== null);
590  t.isGecko = (ua.match(/gecko/gi) !== null) && !t.isWebkit && !t.isIE;
591  t.isOpera = (ua.match(/opera/gi) !== null);
592  t.hasTouch = ('ontouchstart' in window); //  && window.ontouchstart != null); // this breaks iOS 7
593  // Borrowed from `Modernizr.svgasimg`, sources:
594  // - https://github.com/Modernizr/Modernizr/issues/687
595  // - https://github.com/Modernizr/Modernizr/pull/1209/files
596  t.svgAsImg = !!document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#Image', '1.1');
597  // create HTML5 media elements for IE before 9, get a <video> element for fullscreen detection
598  for (i=0; i<html5Elements.length; i++) {
599   v = document.createElement(html5Elements[i]);
600  }
601  t.supportsMediaTag = (typeof v.canPlayType !== 'undefined' || t.isBustedAndroid);
602  // Fix for IE9 on Windows 7N / Windows 7KN (Media Player not installer)
603  try{
604   v.canPlayType("video/mp4");
605  }catch(e){
606   t.supportsMediaTag = false;
607  }
608  t.supportsPointerEvents = (function() {
609   // TAKEN FROM MODERNIZR
610   var element = document.createElement('x'),
611    documentElement = document.documentElement,
612    getComputedStyle = window.getComputedStyle,
613    supports;
614   if(!('pointerEvents' in element.style)){
615    return false;
616   }
617   element.style.pointerEvents = 'auto';
618   element.style.pointerEvents = 'x';
619   documentElement.appendChild(element);
620   supports = getComputedStyle &&
621    getComputedStyle(element, '').pointerEvents === 'auto';
622   documentElement.removeChild(element);
623   return !!supports;
624  })();
625   // Older versions of Firefox can't move plugins around without it resetting,
626  t.hasFirefoxPluginMovingProblem = false;
627  // detect native JavaScript fullscreen (Safari/Firefox only, Chrome still fails)
628  // iOS
629  t.hasiOSFullScreen = (typeof v.webkitEnterFullscreen !== 'undefined');
630  // W3C
631  t.hasNativeFullscreen = (typeof v.requestFullscreen !== 'undefined');
632  // webkit/firefox/IE11+
633  t.hasWebkitNativeFullScreen = (typeof v.webkitRequestFullScreen !== 'undefined');
634  t.hasMozNativeFullScreen = (typeof v.mozRequestFullScreen !== 'undefined');
635  t.hasMsNativeFullScreen = (typeof v.msRequestFullscreen !== 'undefined');
636  t.hasTrueNativeFullScreen = (t.hasWebkitNativeFullScreen || t.hasMozNativeFullScreen || t.hasMsNativeFullScreen);
637  t.nativeFullScreenEnabled = t.hasTrueNativeFullScreen;
638  // Enabled?
639  if (t.hasMozNativeFullScreen) {
640   t.nativeFullScreenEnabled = document.mozFullScreenEnabled;
641  } else if (t.hasMsNativeFullScreen) {
642   t.nativeFullScreenEnabled = document.msFullscreenEnabled;
643  }
644  if (t.isChrome) {
645   t.hasiOSFullScreen = false;
646  }
647  if (t.hasTrueNativeFullScreen) {
648   t.fullScreenEventName = '';
649   if (t.hasWebkitNativeFullScreen) {
650    t.fullScreenEventName = 'webkitfullscreenchange';
651   } else if (t.hasMozNativeFullScreen) {
652    t.fullScreenEventName = 'mozfullscreenchange';
653   } else if (t.hasMsNativeFullScreen) {
654    t.fullScreenEventName = 'MSFullscreenChange';
655   }
656   t.isFullScreen = function() {
657    if (t.hasMozNativeFullScreen) {
658     return d.mozFullScreen;
659    } else if (t.hasWebkitNativeFullScreen) {
660     return d.webkitIsFullScreen;
661    } else if (t.hasMsNativeFullScreen) {
662     return d.msFullscreenElement !== null;
663    }
664   }
665   t.requestFullScreen = function(el) {
666    if (t.hasWebkitNativeFullScreen) {
667     el.webkitRequestFullScreen();
668    } else if (t.hasMozNativeFullScreen) {
669     el.mozRequestFullScreen();
670    } else if (t.hasMsNativeFullScreen) {
671     el.msRequestFullscreen();
672    }
673   }
674   t.cancelFullScreen = function() {
675    if (t.hasWebkitNativeFullScreen) {
676     document.webkitCancelFullScreen();
677    } else if (t.hasMozNativeFullScreen) {
678     document.mozCancelFullScreen();
679    } else if (t.hasMsNativeFullScreen) {
680     document.msExitFullscreen();
681    }
682   }
683  }
684  // OS X 10.5 can't do this even if it says it can :(
685  if (t.hasiOSFullScreen && ua.match(/mac os x 10_5/i)) {
686   t.hasNativeFullScreen = false;
687   t.hasiOSFullScreen = false;
688  }
689 }
690};
691mejs.MediaFeatures.init();
692/*
693extension methods to <video> or <audio> object to bring it into parity with PluginMediaElement (see below)
694*/
695mejs.HtmlMediaElement = {
696 pluginType: 'native',
697 isFullScreen: false,
698 setCurrentTime: function (time) {
699  this.currentTime = time;
700 },
701 setMuted: function (muted) {
702  this.muted = muted;
703 },
704 setVolume: function (volume) {
705  this.volume = volume;
706 },
707 // for parity with the plugin versions
708 stop: function () {
709  this.pause();
710 },
711 // This can be a url string
712 // or an array [{src:'file.mp4',type:'video/mp4'},{src:'file.webm',type:'video/webm'}]
713 setSrc: function (url) {
714 
715  // Fix for IE9 which can't set .src when there are <source> elements. Awesome, right?
716  var
717   existingSources = this.getElementsByTagName('source');
718  while (existingSources.length > 0){
719   this.removeChild(existingSources[0]);
720  }
721  if (typeof url == 'string') {
722   this.src = url;
723  } else {
724   var i, media;
725   for (i=0; i<url.length; i++) {
726    media = url[i];
727    if (this.canPlayType(media.type)) {
728     this.src = media.src;
729     break;
730    }
731   }
732  }
733 },
734 setVideoSize: function (width, height) {
735  this.width = width;
736  this.height = height;
737 }
738};
739/*
740Mimics the <video/audio> element by calling Flash's External Interface or Silverlights [ScriptableMember]
741*/
742mejs.PluginMediaElement = function (pluginid, pluginType, mediaUrl) {
743 this.id = pluginid;
744 this.pluginType = pluginType;
745 this.src = mediaUrl;
746 this.events = {};
747 this.attributes = {};
748};
749// JavaScript values and ExternalInterface methods that match HTML5 video properties methods
750// http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/fl/video/FLVPlayback.html
751// http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html
752mejs.PluginMediaElement.prototype = {
753 // special
754 pluginElement: null,
755 pluginType: '',
756 isFullScreen: false,
757 // not implemented :(
758 playbackRate: -1,
759 defaultPlaybackRate: -1,
760 seekable: [],
761 played: [],
762 // HTML5 read-only properties
763 paused: true,
764 ended: false,
765 seeking: false,
766 duration: 0,
767 error: null,
768 tagName: '',
769 // HTML5 get/set properties, but only set (updated by event handlers)
770 muted: false,
771 volume: 1,
772 currentTime: 0,
773 // HTML5 methods
774 play: function () {
775  if (this.pluginApi != null) {
776   if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
777    this.pluginApi.playVideo();
778   } else {
779    this.pluginApi.playMedia();
780   }
781   this.paused = false;
782  }
783 },
784 load: function () {
785  if (this.pluginApi != null) {
786   if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
787   } else {
788    this.pluginApi.loadMedia();
789   }
790  
791   this.paused = false;
792  }
793 },
794 pause: function () {
795  if (this.pluginApi != null) {
796   if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
797          if( this.pluginApi.getPlayerState() == 1 ) {
798        this.pluginApi.pauseVideo();
799                }
800   } else {
801    this.pluginApi.pauseMedia();
802   }  
803  
804  
805   this.paused = true;
806  }
807 },
808 stop: function () {
809  if (this.pluginApi != null) {
810   if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
811    this.pluginApi.stopVideo();
812   } else {
813    this.pluginApi.stopMedia();
814   }
815   this.paused = true;
816  }
817 },
818 canPlayType: function(type) {
819  var i,
820   j,
821   pluginInfo,
822   pluginVersions = mejs.plugins[this.pluginType];
823  for (i=0; i<pluginVersions.length; i++) {
824   pluginInfo = pluginVersions[i];
825   // test if user has the correct plugin version
826   if (mejs.PluginDetector.hasPluginVersion(this.pluginType, pluginInfo.version)) {
827    // test for plugin playback types
828    for (j=0; j<pluginInfo.types.length; j++) {
829     // find plugin that can play the type
830     if (type == pluginInfo.types[j]) {
831      return 'probably';
832     }
833    }
834   }
835  }
836  return '';
837 },
838 positionFullscreenButton: function(x,y,visibleAndAbove) {
839  if (this.pluginApi != null && this.pluginApi.positionFullscreenButton) {
840   this.pluginApi.positionFullscreenButton(Math.floor(x),Math.floor(y),visibleAndAbove);
841  }
842 },
843 hideFullscreenButton: function() {
844  if (this.pluginApi != null && this.pluginApi.hideFullscreenButton) {
845   this.pluginApi.hideFullscreenButton();
846  } 
847 },
848 // custom methods since not all JavaScript implementations support get/set
849 // This can be a url string
850 // or an array [{src:'file.mp4',type:'video/mp4'},{src:'file.webm',type:'video/webm'}]
851 setSrc: function (url) {
852  if (typeof url == 'string') {
853   this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(url));
854   this.src = mejs.Utility.absolutizeUrl(url);
855  } else {
856   var i, media;
857   for (i=0; i<url.length; i++) {
858    media = url[i];
859    if (this.canPlayType(media.type)) {
860     this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(media.src));
861     this.src = mejs.Utility.absolutizeUrl(media.src);
862     break;
863    }
864   }
865  }
866 },
867 setCurrentTime: function (time) {
868  if (this.pluginApi != null) {
869   if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
870    this.pluginApi.seekTo(time);
871   } else {
872    this.pluginApi.setCurrentTime(time);
873   }   
874  
875  
876  
877   this.currentTime = time;
878  }
879 },
880 setVolume: function (volume) {
881  if (this.pluginApi != null) {
882   // same on YouTube and MEjs
883   if (this.pluginType == 'youtube') {
884    this.pluginApi.setVolume(volume * 100);
885   } else {
886    this.pluginApi.setVolume(volume);
887   }
888   this.volume = volume;
889  }
890 },
891 setMuted: function (muted) {
892  if (this.pluginApi != null) {
893   if (this.pluginType == 'youtube') {
894    if (muted) {
895     this.pluginApi.mute();
896    } else {
897     this.pluginApi.unMute();
898    }
899    this.muted = muted;
900    this.dispatchEvent({type:'volumechange'});
901   } else {
902    this.pluginApi.setMuted(muted);
903   }
904   this.muted = muted;
905  }
906 },
907 // additional non-HTML5 methods
908 setVideoSize: function (width, height) {
909 
910  //if (this.pluginType == 'flash' || this.pluginType == 'silverlight') {
911   if (this.pluginElement && this.pluginElement.style) {
912    this.pluginElement.style.width = width + 'px';
913    this.pluginElement.style.height = height + 'px';
914   }
915   if (this.pluginApi != null && this.pluginApi.setVideoSize) {
916    this.pluginApi.setVideoSize(width, height);
917   }
918  //}
919 },
920 setFullscreen: function (fullscreen) {
921  if (this.pluginApi != null && this.pluginApi.setFullscreen) {
922   this.pluginApi.setFullscreen(fullscreen);
923  }
924 },
925 enterFullScreen: function() {
926  if (this.pluginApi != null && this.pluginApi.setFullscreen) {
927   this.setFullscreen(true);
928  } 
929 
930 },
931 exitFullScreen: function() {
932  if (this.pluginApi != null && this.pluginApi.setFullscreen) {
933   this.setFullscreen(false);
934  }
935 },
936 // start: fake events
937 addEventListener: function (eventName, callback, bubble) {
938  this.events[eventName] = this.events[eventName] || [];
939  this.events[eventName].push(callback);
940 },
941 removeEventListener: function (eventName, callback) {
942  if (!eventName) { this.events = {}; return true; }
943  var callbacks = this.events[eventName];
944  if (!callbacks) return true;
945  if (!callback) { this.events[eventName] = []; return true; }
946  for (var i = 0; i < callbacks.length; i++) {
947   if (callbacks[i] === callback) {
948    this.events[eventName].splice(i, 1);
949    return true;
950   }
951  }
952  return false;
953 },
954 dispatchEvent: function (event) {
955  var i,
956   args,
957   callbacks = this.events[event.type];
958  if (callbacks) {
959   for (i = 0; i < callbacks.length; i++) {
960    callbacks[i].apply(this, [event]);
961   }
962  }
963 },
964 // end: fake events
965 // fake DOM attribute methods
966 hasAttribute: function(name){
967  return (name in this.attributes); 
968 },
969 removeAttribute: function(name){
970  delete this.attributes[name];
971 },
972 getAttribute: function(name){
973  if (this.hasAttribute(name)) {
974   return this.attributes[name];
975  }
976  return null;
977 },
978 setAttribute: function(name, value){
979  this.attributes[name] = value;
980 },
981 remove: function() {
982  mejs.Utility.removeSwf(this.pluginElement.id);
983 }
984};
985/*
986Default options
987*/
988mejs.MediaElementDefaults = {
989 // allows testing on HTML5, flash, silverlight
990 // auto: attempts to detect what the browser can do
991 // auto_plugin: prefer plugins and then attempt native HTML5
992 // native: forces HTML5 playback
993 // shim: disallows HTML5, will attempt either Flash or Silverlight
994 // none: forces fallback view
995 mode: 'auto',
996 // remove or reorder to change plugin priority and availability
997 plugins: ['flash','silverlight','youtube','vimeo'],
998 // shows debug errors on screen
999 enablePluginDebug: false,
1000 // use plugin for browsers that have trouble with Basic Authentication on HTTPS sites
1001 httpsBasicAuthSite: false,
1002 // overrides the type specified, useful for dynamic instantiation
1003 type: '',
1004 // path to Flash and Silverlight plugins
1005 pluginPath: mejs.Utility.getScriptPath(['mediaelement.js','mediaelement.min.js','mediaelement-and-player.js','mediaelement-and-player.min.js']),
1006 // name of flash file
1007 flashName: 'flashmediaelement.swf',
1008 // streamer for RTMP streaming
1009 flashStreamer: '',
1010 // set to 'always' for CDN version
1011 flashScriptAccess: 'sameDomain',
1012 // turns on the smoothing filter in Flash
1013 enablePluginSmoothing: false,
1014 // enabled pseudo-streaming (seek) on .mp4 files
1015 enablePseudoStreaming: false,
1016 // start query parameter sent to server for pseudo-streaming
1017 pseudoStreamingStartQueryParam: 'start',
1018 // name of silverlight file
1019 silverlightName: 'silverlightmediaelement.xap',
1020 // default if the <video width> is not specified
1021 defaultVideoWidth: 480,
1022 // default if the <video height> is not specified
1023 defaultVideoHeight: 270,
1024 // overrides <video width>
1025 pluginWidth: -1,
1026 // overrides <video height>
1027 pluginHeight: -1,
1028 // additional plugin variables in 'key=value' form
1029 pluginVars: [],
1030 // rate in milliseconds for Flash and Silverlight to fire the timeupdate event
1031 // larger number is less accurate, but less strain on plugin->JavaScript bridge
1032 timerRate: 250,
1033 // initial volume for player
1034 startVolume: 0.8,
1035 // custom error message in case media cannot be played; otherwise, Download File
1036 // link will be displayed
1037 customError: "",
1038 success: function () { },
1039 error: function () { }
1040};
1041/*
1042Determines if a browser supports the <video> or <audio> element
1043and returns either the native element or a Flash/Silverlight version that
1044mimics HTML5 MediaElement
1045*/
1046mejs.MediaElement = function (el, o) {
1047 return mejs.HtmlMediaElementShim.create(el,o);
1048};
1049mejs.HtmlMediaElementShim = {
1050 create: function(el, o) {
1051  var
1052   options = {},
1053   htmlMediaElement = (typeof(el) == 'string') ? document.getElementById(el) : el,
1054   tagName = htmlMediaElement.tagName.toLowerCase(),
1055   isMediaTag = (tagName === 'audio' || tagName === 'video'),
1056   src = (isMediaTag) ? htmlMediaElement.getAttribute('src') : htmlMediaElement.getAttribute('href'),
1057   poster = htmlMediaElement.getAttribute('poster'),
1058   autoplay =  htmlMediaElement.getAttribute('autoplay'),
1059   preload =  htmlMediaElement.getAttribute('preload'),
1060   controls =  htmlMediaElement.getAttribute('controls'),
1061   playback,
1062   prop;
1063  // extend options
1064  for (prop in mejs.MediaElementDefaults) {
1065   options[prop] = mejs.MediaElementDefaults[prop];
1066  }
1067  for (prop in o) {
1068   options[prop] = o[prop];
1069  } 
1070 
1071  // clean up attributes
1072  src =   (typeof src == 'undefined'  || src === null || src == '') ? null : src; 
1073  poster = (typeof poster == 'undefined'  || poster === null) ? '' : poster;
1074  preload =  (typeof preload == 'undefined'  || preload === null || preload === 'false') ? 'none' : preload;
1075  autoplay =  !(typeof autoplay == 'undefined' || autoplay === null || autoplay === 'false');
1076  controls =  !(typeof controls == 'undefined' || controls === null || controls === 'false');
1077  // test for HTML5 and plugin capabilities
1078  playback = this.determinePlayback(htmlMediaElement, options, mejs.MediaFeatures.supportsMediaTag, isMediaTag, src);
1079  playback.url = (playback.url !== null) ? mejs.Utility.absolutizeUrl(playback.url) : '';
1080         playback.scheme = mejs.Utility.determineScheme(playback.url);
1081  if (playback.method == 'native') {
1082   // second fix for android
1083   if (mejs.MediaFeatures.isBustedAndroid) {
1084    htmlMediaElement.src = playback.url;
1085    htmlMediaElement.addEventListener('click', function() {
1086     htmlMediaElement.play();
1087    }, false);
1088   }
1089 
1090   // add methods to native HTMLMediaElement
1091   return this.updateNative(playback, options, autoplay, preload);
1092  } else if (playback.method !== '') {
1093   // create plugin to mimic HTMLMediaElement
1094  
1095   return this.createPlugin( playback,  options, poster, autoplay, preload, controls);
1096  } else {
1097   // boo, no HTML5, no Flash, no Silverlight.
1098   this.createErrorMessage( playback, options, poster );
1099  
1100   return this;
1101  }
1102 },
1103 determinePlayback: function(htmlMediaElement, options, supportsMediaTag, isMediaTag, src) {
1104  var
1105   mediaFiles = [],
1106   i,
1107   j,
1108   k,
1109   l,
1110   n,
1111   type,
1112   result = { method: '', url: '', htmlMediaElement: htmlMediaElement, isVideo: (htmlMediaElement.tagName.toLowerCase() !== 'audio'), scheme: ''},
1113   pluginName,
1114   pluginVersions,
1115   pluginInfo,
1116   dummy,
1117   media;
1118  
1119  // STEP 1: Get URL and type from <video src> or <source src>
1120  // supplied type overrides <video type> and <source type>
1121  if (typeof options.type != 'undefined' && options.type !== '') {
1122  
1123   // accept either string or array of types
1124   if (typeof options.type == 'string') {
1125    mediaFiles.push({type:options.type, url:src});
1126   } else {
1127   
1128    for (i=0; i<options.type.length; i++) {
1129     mediaFiles.push({type:options.type[i], url:src});
1130    }
1131   }
1132  // test for src attribute first
1133  } else if (src !== null) {
1134   type = this.formatType(src, htmlMediaElement.getAttribute('type'));
1135   mediaFiles.push({type:type, url:src});
1136  // then test for <source> elements
1137  } else {
1138   // test <source> types to see if they are usable
1139   for (i = 0; i < htmlMediaElement.childNodes.length; i++) {
1140    n = htmlMediaElement.childNodes[i];
1141    if (n.nodeType == 1 && n.tagName.toLowerCase() == 'source') {
1142     src = n.getAttribute('src');
1143     type = this.formatType(src, n.getAttribute('type'));
1144     media = n.getAttribute('media');
1145     if (!media || !window.matchMedia || (window.matchMedia && window.matchMedia(media).matches)) {
1146      mediaFiles.push({type:type, url:src});
1147     }
1148    }
1149   }
1150  }
1151 
1152  // in the case of dynamicly created players
1153  // check for audio types
1154  if (!isMediaTag && mediaFiles.length > 0 && mediaFiles[0].url !== null && this.getTypeFromFile(mediaFiles[0].url).indexOf('audio') > -1) {
1155   result.isVideo = false;
1156  }
1157 
1158  // STEP 2: Test for playback method
1159 
1160  // special case for Android which sadly doesn't implement the canPlayType function (always returns '')
1161  if (result.isVideo && mejs.MediaFeatures.isBustedAndroid) {
1162   htmlMediaElement.canPlayType = function(type) {
1163    return (type.match(/video\/(mp4|m4v)/gi) !== null) ? 'maybe' : '';
1164   };
1165  } 
1166 
1167  // special case for Chromium to specify natively supported video codecs (i.e. WebM and Theora)
1168  if (result.isVideo && mejs.MediaFeatures.isChromium) {
1169   htmlMediaElement.canPlayType = function(type) {
1170    return (type.match(/video\/(webm|ogv|ogg)/gi) !== null) ? 'maybe' : '';
1171   };
1172  }
1173  // test for native playback first
1174  if (supportsMediaTag && (options.mode === 'auto' || options.mode === 'auto_plugin' || options.mode === 'native')  && !(mejs.MediaFeatures.isBustedNativeHTTPS && options.httpsBasicAuthSite === true)) {
1175     
1176   if (!isMediaTag) {
1177    // create a real HTML5 Media Element
1178    dummy = document.createElement( result.isVideo ? 'video' : 'audio');  
1179    htmlMediaElement.parentNode.insertBefore(dummy, htmlMediaElement);
1180    htmlMediaElement.style.display = 'none';
1181   
1182    // use this one from now on
1183    result.htmlMediaElement = htmlMediaElement = dummy;
1184   }
1185   
1186   for (i=0; i<mediaFiles.length; i++) {
1187    // normal check
1188    if (mediaFiles[i].type == "video/m3u8" || htmlMediaElement.canPlayType(mediaFiles[i].type).replace(/no/, '') !== ''
1189     // special case for Mac/Safari 5.0.3 which answers '' to canPlayType('audio/mp3') but 'maybe' to canPlayType('audio/mpeg')
1190     || htmlMediaElement.canPlayType(mediaFiles[i].type.replace(/mp3/,'mpeg')).replace(/no/, '') !== ''
1191     // special case for m4a supported by detecting mp4 support
1192     || htmlMediaElement.canPlayType(mediaFiles[i].type.replace(/m4a/,'mp4')).replace(/no/, '') !== '') {
1193     result.method = 'native';
1194     result.url = mediaFiles[i].url;
1195     break;
1196    }
1197   }  
1198  
1199   if (result.method === 'native') {
1200    if (result.url !== null) {
1201     htmlMediaElement.src = result.url;
1202    }
1203  
1204    // if `auto_plugin` mode, then cache the native result but try plugins.
1205    if (options.mode !== 'auto_plugin') {
1206     return result;
1207    }
1208   }
1209  }
1210  // if native playback didn't work, then test plugins
1211  if (options.mode === 'auto' || options.mode === 'auto_plugin' || options.mode === 'shim') {
1212   for (i=0; i<mediaFiles.length; i++) {
1213    type = mediaFiles[i].type;
1214    // test all plugins in order of preference [silverlight, flash]
1215    for (j=0; j<options.plugins.length; j++) {
1216     pluginName = options.plugins[j];
1217  
1218     // test version of plugin (for future features)
1219     pluginVersions = mejs.plugins[pluginName];   
1220    
1221     for (k=0; k<pluginVersions.length; k++) {
1222      pluginInfo = pluginVersions[k];
1223    
1224      // test if user has the correct plugin version
1225     
1226      // for youtube/vimeo
1227      if (pluginInfo.version == null ||
1228      
1229       mejs.PluginDetector.hasPluginVersion(pluginName, pluginInfo.version)) {
1230       // test for plugin playback types
1231       for (l=0; l<pluginInfo.types.length; l++) {
1232        // find plugin that can play the type
1233        if (type.toLowerCase() == pluginInfo.types[l].toLowerCase()) {
1234         result.method = pluginName;
1235         result.url = mediaFiles[i].url;
1236         return result;
1237        }
1238       }
1239      }
1240     }
1241    }
1242   }
1243  }
1244 
1245  // at this point, being in 'auto_plugin' mode implies that we tried plugins but failed.
1246  // if we have native support then return that.
1247  if (options.mode === 'auto_plugin' && result.method === 'native') {
1248   return result;
1249  }
1250  // what if there's nothing to play? just grab the first available
1251  if (result.method === '' && mediaFiles.length > 0) {
1252   result.url = mediaFiles[0].url;
1253  }
1254  return result;
1255 },
1256 formatType: function(url, type) {
1257  // if no type is supplied, fake it with the extension
1258  if (url && !type) { 
1259   return this.getTypeFromFile(url);
1260  } else {
1261   // only return the mime part of the type in case the attribute contains the codec
1262   // see http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-source-element
1263   // `video/mp4; codecs="avc1.42E01E, mp4a.40.2"` becomes `video/mp4`
1264  
1265   if (type && ~type.indexOf(';')) {
1266    return type.substr(0, type.indexOf(';'));
1267   } else {
1268    return type;
1269   }
1270  }
1271 },
1272 getTypeFromFile: function(url) {
1273  url = url.split('?')[0];
1274  var
1275   ext = url.substring(url.lastIndexOf('.') + 1).toLowerCase(),
1276   av = /(mp4|m4v|ogg|ogv|m3u8|webm|webmv|flv|wmv|mpeg|mov)/gi.test(ext) ? 'video/' : 'audio/';
1277  return this.getTypeFromExtension(ext, av);
1278 },
1279 getTypeFromExtension: function(ext, av) {
1280  av = av || '';
1281 
1282  switch (ext) {
1283   case 'mp4':
1284   case 'm4v':
1285   case 'm4a':
1286   case 'f4v':
1287   case 'f4a':
1288    return av + 'mp4';
1289   case 'flv':
1290    return av + 'x-flv';
1291   case 'webm':
1292   case 'webma':
1293   case 'webmv':
1294    return av + 'webm';
1295   case 'ogg':
1296   case 'oga':
1297   case 'ogv':
1298    return av + 'ogg';
1299   case 'm3u8':
1300    return 'application/x-mpegurl';
1301   case 'ts':
1302    return av + 'mp2t';
1303   default:
1304    return av + ext;
1305  }
1306 },
1307 createErrorMessage: function(playback, options, poster) {
1308  var
1309   htmlMediaElement = playback.htmlMediaElement,
1310   errorContainer = document.createElement('div'),
1311   errorContent = options.customError;
1312  
1313  errorContainer.className = 'me-cannotplay';
1314  try {
1315   errorContainer.style.width = htmlMediaElement.width + 'px';
1316   errorContainer.style.height = htmlMediaElement.height + 'px';
1317  } catch (e) {}
1318  if (!errorContent) {
1319   errorContent = '<a href="' + playback.url + '">';
1320   if (poster !== '') {
1321    errorContent += '<img src="' + poster + '" width="100%" height="100%" alt="" />';
1322   }
1323   errorContent += '<span>' + mejs.i18n.t('mejs.download-file') + '</span></a>';
1324  }
1325  errorContainer.innerHTML = errorContent;
1326  htmlMediaElement.parentNode.insertBefore(errorContainer, htmlMediaElement);
1327  htmlMediaElement.style.display = 'none';
1328  options.error(htmlMediaElement);
1329 },
1330 createPlugin:function(playback, options, poster, autoplay, preload, controls) {
1331  var
1332   htmlMediaElement = playback.htmlMediaElement,
1333   width = 1,
1334   height = 1,
1335   pluginid = 'me_' + playback.method + '_' + (mejs.meIndex++),
1336   pluginMediaElement = new mejs.PluginMediaElement(pluginid, playback.method, playback.url),
1337   container = document.createElement('div'),
1338   specialIEContainer,
1339   node,
1340   initVars;
1341  // copy tagName from html media element
1342  pluginMediaElement.tagName = htmlMediaElement.tagName;
1343  // copy attributes from html media element to plugin media element
1344  for (var i = 0; i < htmlMediaElement.attributes.length; i++) {
1345   var attribute = htmlMediaElement.attributes[i];
1346   if (attribute.specified) {
1347    pluginMediaElement.setAttribute(attribute.name, attribute.value);
1348   }
1349  }
1350  // check for placement inside a <p> tag (sometimes WYSIWYG editors do this)
1351  node = htmlMediaElement.parentNode;
1352  while (node !== null && node.tagName != null && node.tagName.toLowerCase() !== 'body' &&
1353    node.parentNode != null && node.parentNode.tagName != null && node.parentNode.constructor != null && node.parentNode.constructor.name === "ShadowRoot") {
1354   if (node.parentNode.tagName.toLowerCase() === 'p') {
1355    node.parentNode.parentNode.insertBefore(node, node.parentNode);
1356    break;
1357   }
1358   node = node.parentNode;
1359  }
1360  if (playback.isVideo) {
1361   width = (options.pluginWidth > 0) ? options.pluginWidth : (options.videoWidth > 0) ? options.videoWidth : (htmlMediaElement.getAttribute('width') !== null) ? htmlMediaElement.getAttribute('width') : options.defaultVideoWidth;
1362   height = (options.pluginHeight > 0) ? options.pluginHeight : (options.videoHeight > 0) ? options.videoHeight : (htmlMediaElement.getAttribute('height') !== null) ? htmlMediaElement.getAttribute('height') : options.defaultVideoHeight;
1363 
1364   // in case of '%' make sure it's encoded
1365   width = mejs.Utility.encodeUrl(width);
1366   height = mejs.Utility.encodeUrl(height);
1367 
1368  } else {
1369   if (options.enablePluginDebug) {
1370    width = 320;
1371    height = 240;
1372   }
1373  }
1374  // register plugin
1375  pluginMediaElement.success = options.success;
1376 
1377  // add container (must be added to DOM before inserting HTML for IE)
1378  container.className = 'me-plugin';
1379  container.id = pluginid + '_container';
1380 
1381  if (playback.isVideo) {
1382    htmlMediaElement.parentNode.insertBefore(container, htmlMediaElement);
1383  } else {
1384    document.body.insertBefore(container, document.body.childNodes[0]);
1385  }
1386 
1387  if (playback.method === 'flash' || playback.method === 'silverlight') {
1388   var canPlayVideo = htmlMediaElement.getAttribute('type') === 'audio/mp4',
1389    childrenSources = htmlMediaElement.getElementsByTagName('source');
1390   if (childrenSources && !canPlayVideo) {
1391    for (var i = 0, total = childrenSources.length; i < total; i++) {
1392     if (childrenSources[i].getAttribute('type') === 'audio/mp4') {
1393      canPlayVideo = true;
1394     }
1395    }
1396   }
1397   // flash/silverlight vars
1398   initVars = [
1399    'id=' + pluginid,
1400    'isvideo=' + ((playback.isVideo || canPlayVideo) ? "true" : "false"),
1401    'autoplay=' + ((autoplay) ? "true" : "false"),
1402    'preload=' + preload,
1403    'width=' + width,
1404    'startvolume=' + options.startVolume,
1405    'timerrate=' + options.timerRate,
1406    'flashstreamer=' + options.flashStreamer,
1407    'height=' + height,
1408    'pseudostreamstart=' + options.pseudoStreamingStartQueryParam];
1409   if (playback.url !== null) {
1410    if (playback.method == 'flash') {
1411     initVars.push('file=' + mejs.Utility.encodeUrl(playback.url));
1412    } else {
1413     initVars.push('file=' + playback.url);
1414    }
1415   }
1416   if (options.enablePluginDebug) {
1417    initVars.push('debug=true');
1418   }
1419   if (options.enablePluginSmoothing) {
1420    initVars.push('smoothing=true');
1421   }
1422   if (options.enablePseudoStreaming) {
1423    initVars.push('pseudostreaming=true');
1424   }
1425   if (controls) {
1426    initVars.push('controls=true'); // shows controls in the plugin if desired
1427   }
1428   if (options.pluginVars) {
1429    initVars = initVars.concat(options.pluginVars);
1430   } 
1431  
1432   // call from plugin
1433   window[pluginid + '_init'] = function() {
1434    switch (pluginMediaElement.pluginType) {
1435     case 'flash':
1436      pluginMediaElement.pluginElement = pluginMediaElement.pluginApi = document.getElementById(pluginid);
1437      break;
1438     case 'silverlight':
1439      pluginMediaElement.pluginElement = document.getElementById(pluginMediaElement.id);
1440      pluginMediaElement.pluginApi = pluginMediaElement.pluginElement.Content.MediaElementJS;
1441      break;
1442    }
1443    if (pluginMediaElement.pluginApi != null && pluginMediaElement.success) {
1444     pluginMediaElement.success(pluginMediaElement, htmlMediaElement);
1445    }
1446   };
1447  
1448   // event call from plugin
1449   window[pluginid + '_event'] = function(eventName, values) {
1450 
1451    var
1452     e,
1453     i,
1454     bufferedTime;
1455         
1456    // fake event object to mimic real HTML media event.
1457    e = {
1458     type: eventName,
1459     target: pluginMediaElement
1460    };
1461 
1462    // attach all values to element and event object
1463    for (i in values) {
1464     pluginMediaElement[i] = values[i];
1465     e[i] = values[i];
1466    }
1467 
1468    // fake the newer W3C buffered TimeRange (loaded and total have been removed)
1469    bufferedTime = values.bufferedTime || 0;
1470 
1471    e.target.buffered = e.buffered = {
1472     start: function(index) {
1473      return 0;
1474     },
1475     end: function (index) {
1476      return bufferedTime;
1477     },
1478     length: 1
1479    };
1480 
1481    pluginMediaElement.dispatchEvent(e);
1482   }  
1483  
1484  
1485  }
1486  switch (playback.method) {
1487   case 'silverlight':
1488    container.innerHTML =
1489'<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="' + pluginid + '" name="' + pluginid + '" width="' + width + '" height="' + height + '" class="mejs-shim">' +
1490'<param name="initParams" value="' + initVars.join(',') + '" />' +
1491'<param name="windowless" value="true" />' +
1492'<param name="background" value="black" />' +
1493'<param name="minRuntimeVersion" value="3.0.0.0" />' +
1494'<param name="autoUpgrade" value="true" />' +
1495'<param name="source" value="' + options.pluginPath + options.silverlightName + '" />' +
1496'</object>';
1497     break;
1498   case 'flash':
1499    if (mejs.MediaFeatures.isIE) {
1500     specialIEContainer = document.createElement('div');
1501     container.appendChild(specialIEContainer);
1502     specialIEContainer.outerHTML =
1503'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/s
1503hockwave/cabs/flash/swflash.cab" ' +
1504'id="' + pluginid + '" width="' + width + '" height="' + height + '" class="mejs-shim">' +
1505'<param name="movie" value="' + options.pluginPath + options.flashName + '?' + (new Date().getTime()) + '" />' +
1506'<param name="flashvars" value="' + initVars.join('&amp;') + '" />' +
1507'<param name="quality" value="high" />' +
1508'<param name="bgcolor" value="#000000" />' +
1509'<param name="wmode" value="transparent" />' +
1510'<param name="allowScriptAccess" value="' + options.flashScriptAccess + '" />' +
1511'<param name="allowFullScreen" value="true" />' +
1512'<param name="scale" value="default" />' +
1513'</object>';
1514    } else {
1515     container.innerHTML =
1516'<embed id="' + pluginid + '" name="' + pluginid + '" ' +
1517'play="true" ' +
1518'loop="false" ' +
1519'quality="high" ' +
1520'bgcolor="#000000" ' +
1521'wmode="transparent" ' +
1522'allowScriptAccess="' + options.flashScriptAccess + '" ' +
1523'allowFullScreen="true" ' +
1524'type="application/x-shockwave-flash" pluginspage="//www.macromedia.com/go/getflashplayer" ' +
1525'src="' + options.pluginPath + options.flashName + '" ' +
1526'flashvars="' + initVars.join('&') + '" ' +
1527'width="' + width + '" ' +
1528'height="' + height + '" ' +
1529'scale="default"' +
1530'class="mejs-shim"></embed>';
1531    }
1532    break;
1533  
1534   case 'youtube':
1535  
1536   
1537    var videoId;
1538    // youtu.be url from share button
1539    if (playback.url.lastIndexOf("youtu.be") != -1) {
1540     videoId = playback.url.substr(playback.url.lastIndexOf('/')+1);
1541     if (videoId.indexOf('?') != -1) {
1542      videoId = videoId.substr(0, videoId.indexOf('?'));
1543     }
1544    }
1545    else {
1546     // https://www.youtube.com/watch?v=
1547     var videoIdMatch = playback.url.match( /[?&]v=([^&#]+)|&|#|$/ );
1548     if ( videoIdMatch ) {
1549      videoId = videoIdMatch[1];
1550     }
1551    }
1552    youtubeSettings = {
1553      container: container,
1554      containerId: container.id,
1555      pluginMediaElement: pluginMediaElement,
1556      pluginId: pluginid,
1557      videoId: videoId,
1558      height: height,
1559      width: width,
1560                        scheme: playback.scheme,
1561      variables: options.youtubeIframeVars
1562     };   
1563   
1564    // favor iframe version of YouTube
1565    if (window.postMessage) {
1566     mejs.YouTubeApi.enqueueIframe(youtubeSettings); 
1567    } else if (mejs.PluginDetector.hasPluginVersion('flash', [10,0,0]) ) {
1568     mejs.YouTubeApi.createFlash(youtubeSettings, options);
1569    }
1570    break;
1571  
1572   // DEMO Code. Does NOT work.
1573   case 'vimeo':
1574    var player_id = pluginid + "_player";
1575    pluginMediaElement.vimeoid = playback.url.substr(playback.url.lastIndexOf('/')+1);
1576   
1577    container.innerHTML ='<iframe src="' + playback.scheme + 'player.vimeo.com/video/' + pluginMediaElement.vimeoid + '?api=1&portrait=0&byline=0&title=0&player_id=' + player_id + '" width="' + width +'" height="' + height +'" frameborder="0" class="mejs-shim" id="' + player_id + '" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
1578    if (typeof($f) == 'function') { // froogaloop available
1579     var player = $f(container.childNodes[0]),
1580      playerState = -1;
1581    
1582     player.addEvent('ready', function() {
1583 
1584      player.playVideo = function() {
1585       player.api( 'play' );
1586      };
1587      player.stopVideo = function() {
1588       player.api( 'unload' );
1589      };
1590      player.pauseVideo = function() {
1591       player.api( 'pause' );
1592      };
1593      player.seekTo = function( seconds ) {
1594       player.api( 'seekTo', seconds );
1595      };
1596      player.setVolume = function( volume ) {
1597       player.api( 'setVolume', volume );
1598      };
1599      player.setMuted = function( muted ) {
1600       if( muted ) {
1601        player.lastVolume = player.api( 'getVolume' );
1602        player.api( 'setVolume', 0 );
1603       } else {
1604        player.api( 'setVolume', player.lastVolume );
1605        delete player.lastVolume;
1606       }
1607      };
1608      // parity with YT player
1609      player.getPlayerState = function() {
1610       return playerState;
1611      };
1612      function createEvent(player, pluginMediaElement, eventName, e) {
1613       var event = {
1614        type: eventName,
1615        target: pluginMediaElement
1616       };
1617       if (eventName == 'timeupdate') {
1618        pluginMediaElement.currentTime = event.currentTime = e.seconds;
1619        pluginMediaElement.duration = event.duration = e.duration;
1620       }
1621       pluginMediaElement.dispatchEvent(event);
1622      }
1623      player.addEvent('play', function() {
1624       playerState = 1;
1625       createEvent(player, pluginMediaElement, 'play');
1626       createEvent(player, pluginMediaElement, 'playing');
1627      });
1628      player.addEvent('pause', function() {
1629       playerState = 2;      
1630       createEvent(player, pluginMediaElement, 'pause');
1631      });
1632      player.addEvent('finish', function() {
1633       playerState = 0;      
1634       createEvent(player, pluginMediaElement, 'ended');
1635      });
1636      player.addEvent('playProgress', function(e) {
1637       createEvent(player, pluginMediaElement, 'timeupdate', e);
1638      });
1639     
1640      player.addEvent('seek', function(e) {
1641       playerState = 3;
1642       createEvent(player, pluginMediaElement, 'seeked', e);
1643      });
1644     
1645      player.addEvent('loadProgress', function(e) {
1646       playerState = 3;
1647       createEvent(player, pluginMediaElement, 'progress', e);
1648      });           
1649      pluginMediaElement.pluginElement = container;
1650      pluginMediaElement.pluginApi = player;
1651      pluginMediaElement.success(pluginMediaElement, pluginMediaElement.pluginElement);     
1652     });
1653    }
1654    else {
1655     console.warn("You need to include froogaloop for vimeo to work");
1656    }
1657    break;  
1658  }
1659  // hide original element
1660  htmlMediaElement.style.display = 'none';
1661  // prevent browser from autoplaying when using a plugin
1662  htmlMediaElement.removeAttribute('autoplay');
1663 
1664  return pluginMediaElement;
1665 },
1666 updateNative: function(playback, options, autoplay, preload) {
1667 
1668  var htmlMediaElement = playback.htmlMediaElement,
1669   m;
1670 
1671 
1672  // add methods to video object to bring it into parity with Flash Object
1673  for (m in mejs.HtmlMediaElement) {
1674   htmlMediaElement[m] = mejs.HtmlMediaElement[m];
1675  }
1676  /*
1677  Chrome now supports preload="none"
1678  if (mejs.MediaFeatures.isChrome) {
1679 
1680   // special case to enforce preload attribute (Chrome doesn't respect this)
1681   if (preload === 'none' && !autoplay) {
1682  
1683    // forces the browser to stop loading (note: fails in IE9)
1684    htmlMediaElement.src = '';
1685    htmlMediaElement.load();
1686    htmlMediaElement.canceledPreload = true;
1687    htmlMediaElement.addEventListener('play',function() {
1688     if (htmlMediaElement.canceledPreload) {
1689      htmlMediaElement.src = playback.url;
1690      htmlMediaElement.load();
1691      htmlMediaElement.play();
1692      htmlMediaElement.canceledPreload = false;
1693     }
1694    }, false);
1695   // for some reason Chrome forgets how to autoplay sometimes.
1696   } else if (autoplay) {
1697    htmlMediaElement.load();
1698    htmlMediaElement.play();
1699   }
1700  }
1701  */
1702  // fire success code
1703  options.success(htmlMediaElement, htmlMediaElement);
1704 
1705  return htmlMediaElement;
1706 }
1707};
1708/*
1709 - test on IE (object vs. embed)
1710 - determine when to use iframe (Firefox, Safari, Mobile) vs. Flash (Chrome, IE)
1711 - fullscreen?
1712*/
1713// YouTube Flash and Iframe API
1714mejs.YouTubeApi = {
1715 isIframeStarted: false,
1716 isIframeLoaded: false,
1717 loadIframeApi: function(yt) {
1718  if (!this.isIframeStarted) {
1719   var tag = document.createElement('script');
1720   tag.src = yt.scheme + "www.youtube.com/player_api";
1721   var firstScriptTag = document.getElementsByTagName('script')[0];
1722   firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
1723   this.isIframeStarted = true;
1724  }
1725 },
1726 iframeQueue: [],
1727 enqueueIframe: function(yt) {
1728 
1729  if (this.isLoaded) {
1730   this.createIframe(yt);
1731  } else {
1732   this.loadIframeApi(yt);
1733   this.iframeQueue.push(yt);
1734  }
1735 },
1736 createIframe: function(settings) {
1737  var
1738  pluginMediaElement = settings.pluginMediaElement,
1739  defaultVars = {controls:0, wmode:'transparent', rel:0, showinfo:0},
1740  player = new YT.Player(settings.containerId, {
1741   height: settings.height,
1742   width: settings.width,
1743   videoId: settings.videoId,
1744   playerVars: mejs.$.extend({}, defaultVars, settings.variables),
1745   events: {
1746    'onReady': function(e) {
1747    
1748     // wrapper to match
1749     player.setVideoSize = function(width, height) {
1750      player.setSize(width, height);
1751     };
1752    
1753     // hook up iframe object to MEjs
1754     settings.pluginMediaElement.pluginApi = player;
1755     // hook nocookie = IFrameID.src.replace("youtube","youtube-nocookie");
1756     settings.pluginMediaElement.pluginElement = document.getElementById(settings.containerId);
1757     // init mejs
1758     pluginMediaElement.success(pluginMediaElement, pluginMediaElement.pluginElement);
1759     mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'canplay');
1760    
1761     // create timer
1762     setInterval(function() {
1763      mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'timeupdate');
1764     }, 250);
1765     if (typeof pluginMediaElement.attributes.autoplay !== 'undefined') {
1766      player.playVideo();
1767     }
1768    },
1769    'onStateChange': function(e) {
1770    
1771     mejs.YouTubeApi.handleStateChange(e.data, player, pluginMediaElement);
1772    
1773    }
1774   }
1775  });
1776 },
1777 createEvent: function (player, pluginMediaElement, eventName) {
1778  var event = {
1779   type: eventName,
1780   target: pluginMediaElement
1781  };
1782  if (player && player.getDuration) {
1783  
1784   // time
1785   pluginMediaElement.currentTime = event.currentTime = player.getCurrentTime();
1786   pluginMediaElement.duration = event.duration = player.getDuration();
1787  
1788   // state
1789   event.paused = pluginMediaElement.paused;
1790   event.ended = pluginMediaElement.ended;  
1791  
1792   // sound
1793   event.muted = player.isMuted();
1794   event.volume = player.getVolume() / 100;
1795  
1796   // progress
1797   event.bytesTotal = player.getVideoBytesTotal();
1798   event.bufferedBytes = player.getVideoBytesLoaded();
1799  
1800   // fake the W3C buffered TimeRange
1801   var bufferedTime = event.bufferedBytes / event.bytesTotal * event.duration;
1802  
1803   event.target.buffered = event.buffered = {
1804    start: function(index) {
1805     return 0;
1806    },
1807    end: function (index) {
1808     return bufferedTime;
1809    },
1810    length: 1
1811   };
1812  }
1813 
1814  // send event up the chain
1815  pluginMediaElement.dispatchEvent(event);
1816 },
1817 iFrameReady: function() {
1818 
1819  this.isLoaded = true;
1820  this.isIframeLoaded = true;
1821 
1822  while (this.iframeQueue.length > 0) {
1823   var settings = this.iframeQueue.pop();
1824   this.createIframe(settings);
1825  }
1826 },
1827 // FLASH!
1828 flashPlayers: {},
1829 createFlash: function(settings) {
1830 
1831  this.flashPlayers[settings.pluginId] = settings;
1832 
1833  /*
1834  settings.container.innerHTML =
1835   '<object type="application/x-shockwave-flash" id="' + settings.pluginId + '" data="' + settings.scheme + 'www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid=' + settings.pluginId  + '&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0" ' +
1836    'width="' + settings.width + '" height="' + settings.height + '" style="visibility: visible; " class="mejs-shim">' +
1837    '<param name="allowScriptAccess" value="' + options.flashScriptAccess + '">' +
1838    '<param name="wmode" value="transparent">' +
1839   '</object>';
1840  */
1841  var specialIEContainer,
1842   youtubeUrl = settings.scheme + 'www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid=' + settings.pluginId  + '&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0';
1843  
1844  if (mejs.MediaFeatures.isIE) {
1845  
1846   specialIEContainer = document.createElement('div');
1847   settings.container.appendChild(specialIEContainer);
1848   specialIEContainer.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="' + settings.scheme + 'download.macromedia.com/pub/s
1848hockwave/cabs/flash/swflash.cab" ' +
1849'id="' + settings.pluginId + '" width="' + settings.width + '" height="' + settings.height + '" class="mejs-shim">' +
1850 '<param name="movie" value="' + youtubeUrl + '" />' +
1851 '<param name="wmode" value="transparent" />' +
1852 '<param name="allowScriptAccess" value="' + options.flashScriptAccess + '" />' +
1853 '<param name="allowFullScreen" value="true" />' +
1854'</object>';
1855  } else {
1856  settings.container.innerHTML =
1857   '<object type="application/x-shockwave-flash" id="' + settings.pluginId + '" data="' + youtubeUrl + '" ' +
1858    'width="' + settings.width + '" height="' + settings.height + '" style="visibility: visible; " class="mejs-shim">' +
1859    '<param name="allowScriptAccess" value="' + options.flashScriptAccess + '">' +
1860    '<param name="wmode" value="transparent">' +
1861   '</object>';
1862  } 
1863 
1864 },
1865 flashReady: function(id) {
1866  var
1867   settings = this.flashPlayers[id],
1868   player = document.getElementById(id),
1869   pluginMediaElement = settings.pluginMediaElement;
1870 
1871  // hook up and return to MediaELementPlayer.success
1872  pluginMediaElement.pluginApi =
1873  pluginMediaElement.pluginElement = player;
1874 
1875  settings.success(pluginMediaElement, pluginMediaElement.pluginElement);
1876 
1877  // load the youtube video
1878  player.cueVideoById(settings.videoId);
1879 
1880  var callbackName = settings.containerId + '_callback';
1881 
1882  window[callbackName] = function(e) {
1883   mejs.YouTubeApi.handleStateChange(e, player, pluginMediaElement);
1884  };
1885 
1886  player.addEventListener('onStateChange', callbackName);
1887 
1888  setInterval(function() {
1889   mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'timeupdate');
1890  }, 250);
1891 
1892  mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'canplay');
1893 },
1894 handleStateChange: function(youTubeState, player, pluginMediaElement) {
1895  switch (youTubeState) {
1896   case -1: // not started
1897    pluginMediaElement.paused = true;
1898    pluginMediaElement.ended = true;
1899    mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'loadedmetadata');
1900    //createYouTubeEvent(player, pluginMediaElement, 'loadeddata');
1901    break;
1902   case 0:
1903    pluginMediaElement.paused = false;
1904    pluginMediaElement.ended = true;
1905    mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'ended');
1906    break;
1907   case 1:
1908    pluginMediaElement.paused = false;
1909    pluginMediaElement.ended = false;   
1910    mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'play');
1911    mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'playing');
1912    break;
1913   case 2:
1914    pluginMediaElement.paused = true;
1915    pluginMediaElement.ended = false;   
1916    mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'pause');
1917    break;
1918   case 3: // buffering
1919    mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'progress');
1920    break;
1921   case 5:
1922    // cued?
1923    break;     
1924  
1925  }  
1926 
1927 }
1928}
1929// IFRAME
1930window.onYouTubePlayerAPIReady = function() {
1931 mejs.YouTubeApi.iFrameReady();
1932};
1933// FLASH
1934window.onYouTubePlayerReady = function(id) {
1935 mejs.YouTubeApi.flashReady(id);
1936};
1937window.mejs = mejs;
1938window.MediaElement = mejs.MediaElement;
1939/**
1940 * Localize strings
1941 *
1942 * Include translations from JS files and method to pluralize properly strings.
1943 *
1944 */
1945(function (doc, win, mejs, undefined) {
1946 var i18n = {
1947  /**
1948   * @type {String}
1949   */
1950  'default': 'de',
1951  /**
1952   * @type {String[]}
1953   */
1954  locale: {
1955   language: (mejs.i18n && mejs.i18n.locale.language) || '',
1956   strings: (mejs.i18n && mejs.i18n.locale.strings) || {}
1957  },
1958  /**
1959   * Filters for available languages.
1960   *
1961   * This plural forms are grouped in family groups based on
1962   * https://developer.mozilla.org/en-US/docs/Mozilla/Localization/Localization_and_Plurals#List_of_Plural_Rules
1963   * with some additions and corrections according to the Localization Guide list
1964   * (http://localization-guide.readthedocs.io/en/latest/l10n/pluralforms.html)
1965   *
1966   * Arguments are dynamic following the structure:
1967   * - argument1 : Number to determine form
1968   * - argument2...argumentN: Possible matches
1969   *
1970   * @type {Function[]}
1971   */
1972  pluralForms: [
1973   // 0: Chinese, Japanese, Korean, Persian, Turkish, Thai, Lao, Aymará,
1974   // Tibetan, Chiga, Dzongkha, Indonesian, Lojban, Georgian, Kazakh, Khmer, Kyrgyz, Malay,
1975   // Burmese, Yakut, Sundanese, Tatar, Uyghur, Vietnamese, Wolof
1976   function () {
1977    return arguments[1];
1978   },
1979   // 1: Danish, Dutch, English, Faroese, Frisian, German, Norwegian, Swedish, Estonian, Finnish,
1980   // Hungarian, Basque, Greek, Hebrew, Italian, Portuguese, Spanish, Catalan, Afrikaans,
1981   // Angika, Assamese, Asturian, Azerbaijani, Bulgarian, Bengali, Bodo, Aragonese, Dogri,
1982   // Esperanto, Argentinean Spanish, Fulah, Friulian, Galician, Gujarati, Hausa,
1983   // Hindi, Chhattisgarhi, Armenian, Interlingua, Greenlandic, Kannada, Kurdish, Letzeburgesch,
1984   // Maithili, Malayalam, Mongolian, Manipuri, Marathi, Nahuatl, Neapolitan, Norwegian Bokmal,
1985   // Nepali, Norwegian Nynorsk, Norwegian (old code), Northern Sotho, Oriya, Punjabi, Papiamento,
1986   // Piemontese, Pashto, Romansh, Kinyarwanda, Santali, Scots, Sindhi, Northern Sami, Sinhala,
1987   // Somali, Songhay, Albanian, Swahili, Tamil, Telugu, Turkmen, Urdu, Yoruba
1988   function () {
1989    var args = arguments;
1990    if (args[0] === 1) {
1991     return args[1];
1992    } else {
1993     return args[2];
1994    }
1995   },
1996   // 2: French, Brazilian Portuguese, Acholi, Akan, Amharic, Mapudungun, Breton, Filipino,
1997   // Gun, Lingala, Mauritian Creole, Malagasy, Maori, Occitan, Tajik, Tigrinya, Uzbek, Walloon
1998   function () {
1999    var args = arguments;
2000    if ([0, 1].indexOf(args[0]) > -1) {
2001     return args[1];
2002    } else {
2003     return args[2];
2004    }
2005   },
2006   // 3: Latvian
2007   function () {
2008    var args = arguments;
2009    if (args[0] % 10 === 1 && args[0] % 100 !== 11) {
2010     return args[1];
2011    } else if (args[0] !== 0) {
2012     return args[2];
2013    } else {
2014     return args[3];
2015    }
2016   },
2017   // 4: Scottish Gaelic
2018   function () {
2019    var args = arguments;
2020    if (args[0] === 1 || args[0] === 11) {
2021     return args[1];
2022    } else if (args[0] === 2 || args[0] === 12) {
2023     return args[2];
2024    } else if (args[0] > 2 && args[0] < 20) {
2025     return args[3];
2026    } else {
2027     return args[4];
2028    }
2029   },
2030   // 5:  Romanian
2031   function () {
2032    if (args[0] === 1) {
2033     return args[1];
2034    } else if (args[0] === 0 || (args[0] % 100 > 0 && args[0] % 100 < 20)) {
2035     return args[2];
2036    } else {
2037     return args[3];
2038    }
2039   },
2040   // 6: Lithuanian
2041   function () {
2042    var args = arguments;
2043    if (args[0] % 10 === 1 && args[0] % 100 !== 11) {
2044     return args[1];
2045    } else if (args[0] % 10 >= 2 && (args[0] % 100 < 10 || args[0] % 100 >= 20)) {
2046     return args[2];
2047    } else {
2048     return [3];
2049    }
2050   },
2051   // 7: Belarusian, Bosnian, Croatian, Serbian, Russian, Ukrainian
2052   function () {
2053    var args = arguments;
2054    if (args[0] % 10 === 1 && args[0] % 100 !== 11) {
2055     return args[1];
2056    } else if (args[0] % 10 >= 2 && args[0] % 10 <= 4 && (args[0] % 100 < 10 || args[0] % 100 >= 20)) {
2057     return args[2];
2058    } else {
2059     return args[3];
2060    }
2061   },
2062   // 8:  Slovak, Czech
2063   function () {
2064    var args = arguments;
2065    if (args[0] === 1) {
2066     return args[1];
2067    } else if (args[0] >= 2 && args[0] <= 4) {
2068     return args[2];
2069    } else {
2070     return args[3];
2071    }
2072   },
2073   // 9: Polish
2074   function () {
2075    var args = arguments;
2076    if (args[0] === 1) {
2077     return args[1];
2078    } else if (args[0] % 10 >= 2 && args[0] % 10 <= 4 && (args[0] % 100 < 10 || args[0] % 100 >= 20)) {
2079     return args[2];
2080    } else {
2081     return args[3];
2082    }
2083   },
2084   // 10: Slovenian
2085   function () {
2086    var args = arguments;
2087    if (args[0] % 100 === 1) {
2088     return args[2];
2089    } else if (args[0] % 100 === 2) {
2090     return args[3];
2091    } else if (args[0] % 100 === 3 || args[0] % 100 === 4) {
2092     return args[4];
2093    } else {
2094     return args[1];
2095    }
2096   },
2097   // 11: Irish Gaelic
2098   function () {
2099    var args = arguments;
2100    if (args[0] === 1) {
2101     return args[1];
2102    } else if (args[0] === 2) {
2103     return args[2];
2104    } else if (args[0] > 2 && args[0] < 7) {
2105     return args[3];
2106    } else if (args[0] > 6 && args[0] < 11) {
2107     return args[4];
2108    } else {
2109     return args[5];
2110    }
2111   },
2112   // 12: Arabic
2113   function () {
2114    var args = arguments;
2115    if (args[0] === 0) {
2116     return args[1];
2117    } else if (args[0] === 1) {
2118     return args[2];
2119    } else if (args[0] === 2) {
2120     return args[3];
2121    } else if (args[0] % 100 >= 3 && args[0] % 100 <= 10) {
2122     return args[4];
2123    } else if (args[0] % 100 >= 11) {
2124     return args[5];
2125    } else {
2126     return args[6];
2127    }
2128   },
2129   // 13: Maltese
2130   function () {
2131    var args = arguments;
2132    if (args[0] === 1) {
2133     return args[1];
2134    } else if (args[0] === 0 || (args[0] % 100 > 1 && args[0] % 100 < 11)) {
2135     return args[2];
2136    } else if (args[0] % 100 > 10 && args[0] % 100 < 20) {
2137     return args[3];
2138    } else {
2139     return args[4];
2140    }
2141   },
2142   // 14: Macedonian
2143   function () {
2144    var args = arguments;
2145    if (args[0] % 10 === 1) {
2146     return args[1];
2147    } else if (args[0] % 10 === 2) {
2148     return args[2];
2149    } else {
2150     return args[3];
2151    }
2152   },
2153   // 15:  Icelandic
2154   function () {
2155    var args = arguments;
2156    if (args[0] !== 11 && args[0] % 10 === 1) {
2157     return args[1];
2158    } else {
2159     return args[2];
2160    }
2161   },
2162   // New additions
2163   // 16:  Kashubian
2164   // Note: in https://developer.mozilla.org/en-US/docs/Mozilla/Localization/Localization_and_Plurals#List_of_Plural_Rules
2165   // Breton is listed as #16 but in the Localization Guide it belongs to the group 2
2166   function () {
2167    var args = arguments;
2168    if (args[0] === 1) {
2169     return args[1];
2170    } else if (args[0] % 10 >= 2 && args[0] % 10 <= 4 && (args[0] % 100 < 10 || args[0] % 100 >= 20)) {
2171     return args[2];
2172    } else {
2173     return args[3];
2174    }
2175   },
2176   // 17:  Welsh
2177   function () {
2178    var args = arguments;
2179    if (args[0] === 1) {
2180     return args[1];
2181    } else if (args[0] === 2) {
2182     return args[2];
2183    } else if (args[0] !== 8 && args[0] !== 11) {
2184     return args[3];
2185    } else {
2186     return args[4];
2187    }
2188   },
2189   // 18:  Javanese
2190   function () {
2191    var args = arguments;
2192    if (args[0] === 0) {
2193     return args[1];
2194    } else {
2195     return args[2];
2196    }
2197   },
2198   // 19:  Cornish
2199   function () {
2200    var args = arguments;
2201    if (args[0] === 1) {
2202     return args[1];
2203    } else if (args[0] === 2) {
2204     return args[2];
2205    } else if (args[0] === 3) {
2206     return args[3];
2207    } else {
2208     return args[4];
2209    }
2210   },
2211   // 20:  Mandinka
2212   function () {
2213    var args = arguments;
2214    if (args[0] === 0) {
2215     return args[1];
2216    } else if (args[0] === 1) {
2217     return args[2];
2218    } else {
2219     return args[3];
2220    }
2221   }
2222  ],
2223  /**
2224   * Get specified language
2225   *
2226   */
2227  getLanguage: function () {
2228   var language = i18n.locale.language || i18n['default'];
2229   return /^(x\-)?[a-z]{2,}(\-\w{2,})?(\-\w{2,})?$/.exec(language) ? language : i18n['default'];
2230  },
2231  /**
2232   * Translate a string to a specified language, including optionally a number to pluralize translation
2233   *
2234   * @param {String} message
2235   * @param {Number} pluralParam
2236   * @return {String}
2237   */
2238  t: function (message, pluralParam) {
2239   if (typeof message === 'string' && message.length) {
2240    var
2241     language = i18n.getLanguage(),
2242     str,
2243     pluralForm,
2244     /**
2245      * Modify string using algorithm to detect plural forms.
2246      *
2247      * @private
2248      * @see http://stackoverflow.com/questions/1353408/messageformat-in-javascript-parameters-in-localized-ui-strings
2249      * @param {String|String[]}
2249 input   - String or array of strings to pick the plural form
2250      * @param {Number} number           - Number to determine the proper plural form
2251      * @param {Number} form             - Number of language family to apply plural form
2252      * @return {String}
2253      */
2254     plural = function (input, number, form) {
2255      if (typeof input !== 'object' || typeof number !== 'number' || typeof form !== 'number') {
2256       return input;
2257      }
2258      if (typeof input === 'string') {
2259       return input;
2260      }
2261      // Perform plural form or return original text
2262      return i18n.pluralForms[form].apply(null, [number].concat(input));
2263     },
2264     /**
2265      *
2266      * @param {String} input
2267      * @return {String}
2268      */
2269     escapeHTML = function (input) {
2270      var map = {
2271       '&': '&amp;',
2272       '<': '&lt;',
2273       '>': '&gt;',
2274       '"': '&quot;'
2275      };
2276      return input.replace(/[&<>"]/g, function(c) {
2277       return map[c];
2278      });
2279     }
2280    ;
2281    // Fetch the localized version of the string
2282    if (i18n.locale.strings && i18n.locale.strings[language]) {
2283     str = i18n.locale.strings[language][message];
2284     if (typeof pluralParam === 'number') {
2285      pluralForm = i18n.locale.strings[language]['mejs.plural-form'];
2286      str = plural.apply(null, [str, pluralParam, pluralForm]);
2287     }
2288    }
2289    // Fallback to default language if requested uid is not translated
2290    if (!str && i18n.locale.strings && i18n.locale.strings[i18n['default']]) {
2291     str = i18n.locale.strings[i18n['default']][message];
2292     if (typeof pluralParam === 'number') {
2293      pluralForm = i18n.locale.strings[i18n['default']]['mejs.plural-form'];
2294      str = plural.apply(null, [str, pluralParam, pluralForm]);
2295     }
2296    }
2297    // As a last resort, use the requested uid, to mimic original behavior of i18n utils (in which uid was the english text)
2298    str = str || message;
2299    // Replace token
2300    if (typeof pluralParam === 'number') {
2301     str = str.replace('%1', pluralParam);
2302    }
2303    return escapeHTML(str);
2304   }
2305   return message;
2306  }
2307 };
2308 // i18n fixes for compatibility with WordPress
2309 if (typeof mejsL10n !== 'undefined') {
2310  i18n.locale.language = mejsL10n.language;
2311 }
2312 // Register variable
2313 mejs.i18n = i18n;
2314}(document, window, mejs));
2315// i18n fixes for compatibility with WordPress
2316;(function (mejs, undefined) {
2317 "use strict";
2318 if (typeof mejsL10n !== 'undefined') {
2319  mejs[mejsL10n.language] = mejsL10n.strings;
2320 }
2321}(mejs.i18n.locale.strings));
2322/*!
2323 * This is a i18n.locale language object.
2324 *
2325 * English; This can serve as a template for other languages to translate
2326 *
2327 * @author
2328 *   TBD
2329 *   Sascha Greuel (Twitter: @SoftCreatR)
2330 *
2331 * @see
2332 *   me-i18n.js
2333 *
2334 * @params
2335 *  - exports - CommonJS, window ..
2336 */
2337(function (exports) {
2338    "use strict";
2339    if (exports.en === undefined) {
2340        exports.en = {
2341            "mejs.plural-form": 1,
2342            // me-shim
2343            "mejs.download-file": "Download File",
2344            // mep-feature-contextmenu
2345            "mejs.fullscreen-off": "Turn off Fullscreen",
2346            "mejs.fullscreen-on": "Go Fullscreen",
2347            "mejs.download-video": "Download Video",
2348            // mep-feature-fullscreen
2349            "mejs.fullscreen": "Fullscreen",
2350            // mep-feature-jumpforward
2351            "mejs.time-jump-forward": ["Jump forward 1 second", "Jump forward %1 seconds"],
2352            // mep-feature-playpause
2353            "mejs.play": "Play",
2354            "mejs.pause": "Pause",
2355            // mep-feature-postroll
2356            "mejs.close": "Close",
2357            // mep-feature-progress
2358            "mejs.time-slider": "Time Slider",
2359            "mejs.time-help-text": "Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.",
2360            // mep-feature-skipback
2361            "mejs.time-skip-back": ["Skip back 1 second", "Skip back %1 seconds"],
2362            // mep-feature-tracks
2363            "mejs.captions-subtitles": "Captions/Subtitles",
2364            "mejs.none": "None",
2365            // mep-feature-volume
2366            "mejs.mute-toggle": "Mute Toggle",
2367            "mejs.volume-help-text": "Use Up/Down Arrow keys to increase or decrease volume.",
2368            "mejs.unmute": "Unmute",
2369            "mejs.mute": "Mute",
2370            "mejs.volume-slider": "Volume Slider",
2371            // mep-player
2372            "mejs.video-player": "Video Player",
2373            "mejs.audio-player": "Audio Player",
2374            // mep-feature-ads
2375            "mejs.ad-skip": "Skip ad",
2376            "mejs.ad-skip-info": ["Skip in 1 second", "Skip in %1 seconds"],
2377            // mep-feature-sourcechooser
2378            "mejs.source-chooser": "Source Chooser"
2379        };
2380    }
2381}(mejs.i18n.locale.strings));
2382   /* Ende mediaelement */
2383   /* Start mediaelement_i18n_de */
2384   /*!
2385 * --GSBDocStart
2386 * @module medialement.js 
2387 * @version 2.23.5
2388 * @see {@link http://me-i18n.js}
2389 * @author Jalios (Twitter: @Jalios)
2390 *   Sascha Greuel (Twitter: @SoftCreatR)
2391 * @license MIT license
2392 * 
2393 * @desc Addon zur Ausgabe von deutschen Labels
2394 *--GSBDocEnd
2395 * This is a i18n.locale language object.
2396 *
2397 * German
2398 *
2399 * @see
2400 *   me-i18n.js
2401 *
2402 * @params
2403 *  - exports - CommonJS, window ..
2404 */
2405(function(exports){if(exports.de===undefined){exports.de={"mejs.plural-form":1,"mejs.download-file":"Datei herunterladen","mejs.fullscreen-off":"Vollbildmodus beenden","mejs.fullscreen-on":"Vollbild","mejs.download-video":"Video herunterladen","mejs.fullscreen":"Vollbild","mejs.time-jump-forward":["1 Sekunde vorspulen","%1 Sekunden vorspulen"],"mejs.play":"Abspielen","mejs.pause":"Pause","mejs.close":"Schließen","mejs.time-slider":"Zeitschieberegler","mejs.time-help-text":"Verwende die Pfeiltaste nach links/rechts, um eine Sekunde zu spulen, hoch/runter um zehn Sekunden zu spulen.","mejs.time-skip-back":["1 Sekunde zurückspulen","%1 Sekunden zurückspulen"],"mejs.captions-subtitles":"Überschriften/Untertitel","mejs.none":"Keine","mejs.mute-toggle":"Stummschaltung umschalten","mejs.volume-help-text":"Verwende die Pfeiltaste nach oben/nach unten um die Lautstärke zu erhöhen oder zu verringern.","mejs.unmute":"Stummschaltung aufheben","mejs.mute":"Stummschalten","mejs.volume-slider":"Lautstärkeregler","mejs.video-player":"Video-Player","mejs.audio-player":"Audio-Player","mejs.ad-skip":"Werbung überspringen","mejs.ad-skip-info":["Überspringen in 1 Sekunde","Überspringen in %1 Sekunden"],"mejs.source-chooser":"Quellenauswahl"};}}(mejs.i18n.locale.strings));
2406   /* Ende mediaelement_i18n_de */
2407   /* Start mediaelementplayer */
2408   /*!
2409 * --GSBDocStart
2410 * @module MediaElementPlayer
2411 * @version 2.23.5
2412 * @see {@link http://mediaelementjs.com/}
2413 * @author John Dyer (http://j.hn/), 2010-2013 
2414 * @license MIT license
2415 *
2416 * @desc Creates a controller bar for HTML5 &ltvideo> add &ltaudio> tags
2417 * using jQuery and MediaElement.js (HTML5 Flash/Silverlight wrapper)
2418 *--GSBDocEnd
2419
2420 * Copyright 2010-2013, John Dyer (http://j.hn/)
2421 * License: MIT
2422 *
2423 */
2424if (typeof jQuery != 'undefined') {
2425 mejs.$ = jQuery;
2426} else if (typeof Zepto != 'undefined') {
2427 mejs.$ = Zepto;
2428 // define `outerWidth` method which has not been realized in Zepto
2429 Zepto.fn.outerWidth = function(includeMargin) {
2430  var width = $(this).width();
2431  if (includeMargin) {
2432   width += parseInt($(this).css('margin-right'), 10);
2433   width += parseInt($(this).css('margin-left'), 10);
2434  }
2435  return width
2436 }
2437} else if (typeof ender != 'undefined') {
2438 mejs.$ = ender;
2439}
2440(function ($) {
2441 // default player values
2442 mejs.MepDefaults = {
2443  // url to poster (to fix iOS 3.x)
2444  poster: '',
2445  // When the video is ended, we can show the poster.
2446  showPosterWhenEnded: false,
2447  // default if the <video width> is not specified
2448  defaultVideoWidth: 480,
2449  // default if the <video height> is not specified
2450  defaultVideoHeight: 270,
2451  // if set, overrides <video width>
2452  videoWidth: -1,
2453  // if set, overrides <video height>
2454  videoHeight: -1,
2455  // default if the user doesn't specify
2456  defaultAudioWidth: 400,
2457  // default if the user doesn't specify
2458  defaultAudioHeight: 30,
2459  // default amount to move back when back key is pressed
2460  defaultSeekBackwardInterval: function(media) {
2461   return (media.duration * 0.05);
2462  },
2463  // default amount to move forward when forward key is pressed
2464  defaultSeekForwardInterval: function(media) {
2465   return (media.duration * 0.05);
2466  },
2467  // set dimensions via JS instead of CSS
2468  setDimensions: true,
2469  // width of audio player
2470  audioWidth: -1,
2471  // height of audio player
2472  audioHeight: -1,
2473  // initial volume when the player starts (overrided by user cookie)
2474  startVolume: 0.8,
2475  // useful for <audio> player loops
2476  loop: false,
2477  // rewind to beginning when media ends
2478  autoRewind: true,
2479  // resize to media dimensions
2480  enableAutosize: true,
2481  /*
2482   * Time format to use. Default: 'mm:ss'
2483   * Supported units:
2484   *   h: hour
2485   *   m: minute
2486   *   s: second
2487   *   f: frame count
2488   * When using 'hh', 'mm', 'ss' or 'ff' we always display 2 digits.
2489   * If you use 'h', 'm', 's' or 'f' we display 1 digit if possible.
2490   *
2491   * Example to display 75 seconds:
2492   * Format 'mm:ss': 01:15
2493   * Format 'm:ss': 1:15
2494   * Format 'm:s': 1:15
2495   */
2496  timeFormat: '',
2497  // forces the hour marker (##:00:00)
2498  alwaysShowHours: false,
2499  // show framecount in timecode (##:00:00:00)
2500  showTimecodeFrameCount: false,
2501  // used when showTimecodeFrameCount is set to true
2502  framesPerSecond: 25,
2503  // automatically calculate the width of the progress bar based on the sizes of other elements
2504  autosizeProgress : true,
2505  // Hide controls when playing and mouse is not over the video
2506  alwaysShowControls: false,
2507  // Display the video control
2508  hideVideoControlsOnLoad: false,
2509  // Enable click video element to toggle play/pause
2510  clickToPlayPause: true,
2511  // Time in ms to hide controls
2512  controlsTimeoutDefault: 1500,
2513  // Time in ms to trigger the timer when mouse moves
2514  controlsTimeoutMouseEnter: 2500,
2515  // Time in ms to trigger the timer when mouse leaves
2516  controlsTimeoutMouseLeave: 1000,
2517  // force iPad's native controls
2518  iPadUseNativeControls: false,
2519  // force iPhone's native controls
2520  iPhoneUseNativeControls: false,
2521  // force Android's native controls
2522  AndroidUseNativeControls: false,
2523  // features to show
2524  features: ['playpause','current','progress','duration','tracks','volume','fullscreen'],
2525  // only for dynamic
2526  isVideo: true,
2527  // stretching modes (auto, fill, responsive, none)
2528  stretching: 'auto',
2529  // turns keyboard support on and off for this instance
2530  enableKeyboard: true,
2531  // when this player starts, it will pause other players
2532  pauseOtherPlayers: true,
2533  // array of keyboard actions such as play pause
2534  keyActions: [
2535    {
2536      keys: [
2537        32, // SPACE
2538        179 // GOOGLE play/pause button
2539         ],
2540      action: function(player, media, key, event) {
2541       if (!mejs.MediaFeatures.isFirefox) {
2542        if (media.paused || media.ended) {
2543         media.play();
2544        } else {
2545         media.pause();
2546        }
2547       }
2548      }
2549    },
2550    {
2551      keys: [38], // UP
2552      action: function(player, media, key, event) {
2553        player.container.find('.mejs-volume-slider').css('display','block');
2554        if (player.isVideo) {
2555          player.showControls();
2556          player.startControlsTimer();
2557        }
2558        var newVolume = Math.min(media.volume + 0.1, 1);
2559        media.setVolume(newVolume);
2560      }
2561    },
2562    {
2563      keys: [40], // DOWN
2564      action: function(player, media, key, event) {
2565        player.container.find('.mejs-volume-slider').css('display','block');
2566        if (player.isVideo) {
2567          player.showControls();
2568          player.startControlsTimer();
2569        }
2570        var newVolume = Math.max(media.volume - 0.1, 0);
2571        media.setVolume(newVolume);
2572      }
2573    },
2574    {
2575      keys: [
2576        37, // LEFT
2577        227 // Google TV rewind
2578      ],
2579      action: function(player, media, key, event) {
2580        if (!isNaN(media.duration) && media.duration > 0) {
2581          if (player.isVideo) {
2582            player.showControls();
2583            player.startControlsTimer();
2584          }
2585          // 5%
2586          var newTime = Math.max(media.currentTime - player.options.defaultSeekBackwardInterval(media), 0);
2587          media.setCurrentTime(newTime);
2588        }
2589      }
2590    },
2591    {
2592      keys: [
2593        39, // RIGHT
2594        228 // Google TV forward
2595      ],
2596      action: function(player, media, key, event) {
2597        if (!isNaN(media.duration) && media.duration > 0) {
2598          if (player.isVideo) {
2599            player.showControls();
2600            player.startControlsTimer();
2601          }
2602          // 5%
2603          var newTime = Math.min(media.currentTime + player.options.defaultSeekForwardInterval(media), media.duration);
2604          media.setCurrentTime(newTime);
2605        }
2606      }
2607    },
2608    {
2609      keys: [70], // F
2610      action: function(player, media, key, event) {
2611        if (typeof player.enterFullScreen != 'undefined') {
2612          if (player.isFullScreen) {
2613            player.exitFullScreen();
2614          } else {
2615            player.enterFullScreen();
2616          }
2617        }
2618      }
2619    },
2620    {
2621      keys: [77], // M
2622      action: function(player, media, key, event) {
2623        player.container.find('.mejs-volume-slider').css('display','block');
2624        if (player.isVideo) {
2625          player.showControls();
2626          player.startControlsTimer();
2627        }
2628        if (player.media.muted) {
2629          player.setMuted(false);
2630        } else {
2631          player.setMuted(true);
2632        }
2633      }
2634    }
2635  ]
2636 };
2637 mejs.mepIndex = 0;
2638 mejs.players = {};
2639 // wraps a MediaElement object in player controls
2640 mejs.MediaElementPlayer = function(node, o) {
2641  // enforce object, even without "new" (via John Resig)
2642  if ( !(this instanceof mejs.MediaElementPlayer) ) {
2643   return new mejs.MediaElementPlayer(node, o);
2644  }
2645  var t = this;
2646  // these will be reset after the MediaElement.success fires
2647  t.$media = t.$node = $(node);
2648  t.node = t.media = t.$media[0];
2649  if(!t.node) {
2650   return;
2651  }
2652  // check for existing player
2653  if (typeof t.node.player != 'undefined') {
2654   return t.node.player;
2655  }
2656  // try to get options from data-mejsoptions
2657  if (typeof o == 'undefined') {
2658   o = t.$node.data('mejsoptions');
2659  }
2660  // extend default options
2661  t.options = $.extend({},mejs.MepDefaults,o);
2662  if (!t.options.timeFormat) {
2663   // Generate the time format according to options
2664   t.options.timeFormat = 'mm:ss';
2665   if (t.options.alwaysShowHours) {
2666    t.options.timeFormat = 'hh:mm:ss';
2667   }
2668   if (t.options.showTimecodeFrameCount) {
2669    t.options.timeFormat += ':ff';
2670   }
2671  }
2672  mejs.Utility.calculateTimeFormat(0, t.options, t.options.framesPerSecond || 25);
2673  // unique ID
2674  t.id = 'mep_' + mejs.mepIndex++;
2675  // add to player array (for focus events)
2676  mejs.players[t.id] = t;
2677  // start up
2678  t.init();
2679  return t;
2680 };
2681 // actual player
2682 mejs.MediaElementPlayer.prototype = {
2683  hasFocus: false,
2684  controlsAreVisible: true,
2685  init: function() {
2686   var
2687    t = this,
2688    mf = mejs.MediaFeatures,
2689    // options for MediaElement (shim)
2690    meOptions = $.extend(true, {}, t.options, {
2691     success: function(media, domNode) { t.meReady(media, domNode); },
2692     error: function(e) { t.handleError(e);}
2693    }),
2694    tagName = t.media.tagName.toLowerCase();
2695   t.isDynamic = (tagName !== 'audio' && tagName !== 'video');
2696   if (t.isDynamic) {
2697    // get video from src or href?
2698    t.isVideo = t.options.isVideo;
2699   } else {
2700    t.isVideo = (tagName !== 'audio' && t.options.isVideo);
2701   }
2702   // use native controls in iPad, iPhone, and Android
2703   if ((mf.isiPad && t.options.iPadUseNativeControls) || (mf.isiPhone && t.options.iPhoneUseNativeControls)) {
2704    // add controls and stop
2705    t.$media.attr('controls', 'controls');
2706    // attempt to fix iOS 3 bug
2707    //t.$media.removeAttr('poster');
2708        // no Issue found on iOS3 -ttroxell
2709    // override Apple's autoplay override for iPads
2710    if (mf.isiPad && t.media.getAttribute('autoplay') !== null) {
2711     t.play();
2712    }
2713   } else if (mf.isAndroid && t.options.AndroidUseNativeControls) {
2714    // leave default player
2715   } else if (t.isVideo || (!t.isVideo && t.options.features.length)) {
2716    // DESKTOP: use MediaElementPlayer controls
2717    // remove native controls
2718    t.$media.removeAttr('controls');
2719    var videoPlayerTitle = t.isVideo ?
2720     mejs.i18n.t('mejs.video-player') : mejs.i18n.t('mejs.audio-player');
2721    // insert description for screen readers
2722    $('<span class="mejs-offscreen">' + videoPlayerTitle + '</span>').insertBefore(t.$media);
2723    // build container
2724    t.container =
2725     $('<div id="' + t.id + '" class="mejs-container ' + (mejs.MediaFeatures.svgAsImg ? 'svg' : 'no-svg') +
2726       '" tabindex="0" role="application" aria-label="' + videoPlayerTitle + '">'+
2727      '<div class="mejs-inner">'+
2728       '<div class="mejs-mediaelement"></div>'+
2729       '<div class="mejs-layers"></div>'+
2730       '<div class="mejs-controls"></div>'+
2731       '<div class="mejs-clear"></div>'+
2732      '</div>' +
2733     '</div>')
2734     .addClass(t.$media[0].className)
2735     .insertBefore(t.$media)
2736     .focus(function ( e ) {
2737      if( !t.controlsAreVisible && !t.hasFocus && t.controlsEnabled) {
2738       t.showControls(true);
2739       // In versions older than IE11, the focus causes the playbar to be displayed
2740       // if user clicks on the Play/Pause button in the control bar once it attempts
2741       // to hide it
2742       if (!t.hasMsNativeFullScreen) {
2743        // If e.relatedTarget appears before container, send focus to play button,
2744        // else send focus to last control button.
2745        var btnSelector = '.mejs-playpause-button > button';
2746        if (mejs.Utility.isNodeAfter(e.relatedTarget, t.container[0])) {
2747         btnSelector = '.mejs-controls .mejs-button:last-child > button';
2748        }
2749        var button = t.container.find(btnSelector);
2750        button.focus();
2751       }
2752      }
2753     });
2754    // When no elements in controls, hide bar completely
2755    if (!t.options.features.length) {
2756     t.container.css('background', 'transparent').find('.mejs-controls').hide();
2757    }
2758    if (t.isVideo && t.options.stretching === 'fill' && !t.container.parent('mejs-fill-container').length) {
2759     // outer container
2760     t.outerContainer = t.$media.parent();
2761     t.container.wrap('<div class="mejs-fill-container"/>');
2762    }
2763    // add classes for user and content
2764    t.container.addClass(
2765     (mf.isAndroid ? 'mejs-android ' : '') +
2766     (mf.isiOS ? 'mejs-ios ' : '') +
2767     (mf.isiPad ? 'mejs-ipad ' : '') +
2768     (mf.isiPhone ? 'mejs-iphone ' : '') +
2769     (t.isVideo ? 'mejs-video ' : 'mejs-audio ')
2770    );
2771    // move the <video/video> tag into the right spot
2772    t.container.find('.mejs-mediaelement').append(t.$media);
2773    // needs to be assigned here, after iOS remap
2774    t.node.player = t;
2775    // find parts
2776    t.controls = t.container.find('.mejs-controls');
2777    t.layers = t.container.find('.mejs-layers');
2778    // determine the size
2779    /* size priority:
2780     (1) videoWidth (forced),
2781     (2) style="width;height;"
2782     (3) width attribute,
2783     (4) defaultVideoWidth (for unspecified cases)
2784    */
2785    var tagType = (t.isVideo ? 'video' : 'audio'),
2786     capsTagName = tagType.substring(0,1).toUpperCase() + tagType.substring(1);
2787    if (t.options[tagType + 'Width'] > 0 || t.options[tagType + 'Width'].toString().indexOf('%') > -1) {
2788     t.width = t.options[tagType + 'Width'];
2789    } else if (t.media.style.width !== '' && t.media.style.width !== null) {
2790     t.width = t.media.style.width;
2791    } else if (t.media.getAttribute('width') !== null) {
2792     t.width = t.$media.attr('width');
2793    } else {
2794     t.width = t.options['default' + capsTagName + 'Width'];
2795    }
2796    if (t.options[tagType + 'Height'] > 0 || t.options[tagType + 'Height'].toString().indexOf('%') > -1) {
2797     t.height = t.options[tagType + 'Height'];
2798    } else if (t.media.style.height !== '' && t.media.style.height !== null) {
2799     t.height = t.media.style.height;
2800    } else if (t.$media[0].getAttribute('height') !== null) {
2801     t.height = t.$media.attr('height');
2802    } else {
2803     t.height = t.options['default' + capsTagName + 'Height'];
2804    }
2805    // set the size, while we wait for the plugins to load below
2806    t.setPlayerSize(t.width, t.height);
2807    // create MediaElementShim
2808    meOptions.pluginWidth = t.width;
2809    meOptions.pluginHeight = t.height;
2810   }
2811   // Hide media completely for audio that doesn't have any features
2812   else if (!t.isVideo && !t.options.features.length) {
2813    t.$media.hide();
2814   }
2815   // create MediaElement shim
2816   mejs.MediaElement(t.$media[0], meOptions);
2817   if (typeof(t.container) !== 'undefined' && t.options.features.length && t.controlsAreVisible) {
2818    // controls are shown when loaded
2819    t.container.trigger('controlsshown');
2820   }
2821  },
2822  showControls: function(doAnimation) {
2823   var t = this;
2824   doAnimation = typeof doAnimation == 'undefined' || doAnimation;
2825   if (t.controlsAreVisible)
2826    return;
2827   if (doAnimation) {
2828    t.controls
2829     .removeClass('mejs-offscreen')
2830     .stop(true, true).fadeIn(200, function() {
2831      t.controlsAreVisible = true;
2832      t.container.trigger('controlsshown');
2833     });
2834    // any additional controls people might add and want to hide
2835    t.container.find('.mejs-control')
2836     .removeClass('mejs-offscreen')
2837     .stop(true, true).fadeIn(200, function() {t.controlsAreVisible = true;});
2838   } else {
2839    t.controls
2840     .removeClass('mejs-offscreen')
2841     .css('display','block');
2842    // any additional controls people might add and want to hide
2843    t.container.find('.mejs-control')
2844     .removeClass('mejs-offscreen')
2845     .css('display','block');
2846    t.controlsAreVisible = true;
2847    t.container.trigger('controlsshown');
2848   }
2849   t.setControlsSize();
2850  },
2851  hideControls: function(doAnimation) {
2852   var t = this;
2853   doAnimation = typeof doAnimation == 'undefined' || doAnimation;
2854   if (!t.controlsAreVisible || t.options.alwaysShowControls || t.keyboardAction || t.media.paused || t.media.ended)
2855    return;
2856   if (doAnimation) {
2857    // fade out main controls
2858    t.controls.stop(true, true).fadeOut(200, function() {
2859     $(this)
2860      .addClass('mejs-offscreen')
2861      .css('display','block');
2862     t.controlsAreVisible = false;
2863     t.container.trigger('controlshidden');
2864    });
2865    // any additional controls people might add and want to hide
2866    t.container.find('.mejs-control').stop(true, true).fadeOut(200, function() {
2867     $(this)
2868      .addClass('mejs-offscreen')
2869      .css('display','block');
2870    });
2871   } else {
2872    // hide main controls
2873    t.controls
2874     .addClass('mejs-offscreen')
2875     .css('display','block');
2876    // hide others
2877    t.container.find('.mejs-control')
2878     .addClass('mejs-offscreen')
2879     .css('display','block');
2880    t.controlsAreVisible = false;
2881    t.container.trigger('controlshidden');
2882   }
2883  },
2884  controlsTimer: null,
2885  startControlsTimer: function(timeout) {
2886   var t = this;
2887   timeout = typeof timeout != 'undefined' ? timeout : t.options.controlsTimeoutDefault;
2888   t.killControlsTimer('start');
2889   t.controlsTimer = setTimeout(function() {
2890    //
2891    t.hideControls();
2892    t.killControlsTimer('hide');
2893   }, timeout);
2894  },
2895  killControlsTimer: function(src) {
2896   var t = this;
2897   if (t.controlsTimer !== null) {
2898    clearTimeout(t.controlsTimer);
2899    delete t.controlsTimer;
2900    t.controlsTimer = null;
2901   }
2902  },
2903  controlsEnabled: true,
2904  disableControls: function() {
2905   var t= this;
2906   t.killControlsTimer();
2907   t.hideControls(false);
2908   this.controlsEnabled = false;
2909  },
2910  enableControls: function() {
2911   var t= this;
2912   t.showControls(false);
2913   t.controlsEnabled = true;
2914  },
2915  // Sets up all controls and events
2916  meReady: function(media, domNode) {
2917  
2918   var
2919    t = this,
2920    mf = mejs.MediaFeatures,
2921    autoplayAttr = domNode.getAttribute('autoplay'),
2922    autoplay = !(typeof autoplayAttr == 'undefined' || autoplayAttr === null || autoplayAttr === 'false'),
2923    featureIndex,
2924    feature;
2925   // make sure it can't create itself again if a plugin reloads
2926   if (t.created) {
2927    return;
2928   } else {
2929    t.created = true;
2930   }
2931   t.media = media;
2932   t.domNode = domNode;
2933   if (!(mf.isAndroid && t.options.AndroidUseNativeControls) && !(mf.isiPad && t.options.iPadUseNativeControls) && !(mf.isiPhone && t.options.iPhoneUseNativeControls)) {
2934    // In the event that no features are specified for audio,
2935    // create only MediaElement instance rather than
2936    // doing all the work to create a full player
2937    if (!t.isVideo && !t.options.features.length) {
2938     // force autoplay for HTML5
2939     if (autoplay && media.pluginType == 'native') {
2940      t.play();
2941     }
2942     if (t.options.success) {
2943      if (typeof t.options.success == 'string') {
2944       window[t.options.success](t.media, t.domNode, t);
2945      } else {
2946       t.options.success(t.media, t.domNode, t);
2947      }
2948     }
2949     return;
2950    }
2951    // two built in features
2952    t.buildposter(t, t.controls, t.layers, t.media);
2953    t.buildkeyboard(t, t.controls, t.layers, t.media);
2954    t.buildoverlays(t, t.controls, t.layers, t.media);
2955    // grab for use by features
2956    t.findTracks();
2957    // add user-defined features/controls
2958    for (featureIndex in t.options.features) {
2959     feature = t.options.features[featureIndex];
2960     if (t['build' + feature]) {
2961      try {
2962       t['build' + feature](t, t.controls, t.layers, t.media);
2963      } catch (e) {
2964       // TODO: report control error
2965       //throw e;
2966      
2967      
2968      }
2969     }
2970    }
2971    t.container.trigger('controlsready');
2972    // reset all layers and controls
2973    t.setPlayerSize(t.width, t.height);
2974    t.setControlsSize();
2975    // controls fade
2976    if (t.isVideo) {
2977     if (mejs.MediaFeatures.hasTouch && !t.options.alwaysShowControls) {
2978      // for touch devices (iOS, Android)
2979      // show/hide without animation on touch
2980      t.$media.bind('touchstart', function() {
2981       // toggle controls
2982       if (t.controlsAreVisible) {
2983        t.hideControls(false);
2984       } else {
2985        if (t.controlsEnabled) {
2986         t.showControls(false);
2987        }
2988       }
2989      });
2990     } else {
2991      // create callback here since it needs access to current
2992      // MediaElement object
2993      t.clickToPlayPauseCallback = function() {
2994       //
2995       if (t.options.clickToPlayPause) {
2996        if (t.media.paused) {
2997         t.play();
2998        } else {
2999         t.pause();
3000        }
3001        var button = t.$media.closest('.mejs-container').find('.mejs-overlay-button'),
3002         pressed = button.attr('aria-pressed');
3003        button.attr('aria-pressed', !pressed);
3004       }
3005      };
3006      // click to play/pause
3007      t.media.addEventListener('click', t.clickToPlayPauseCallback, false);
3008      // show/hide controls
3009      t.container
3010       .bind('mouseenter', function () {
3011        if (t.controlsEnabled) {
3012         if (!t.options.alwaysShowControls ) {
3013          t.killControlsTimer('enter');
3014          t.showControls();
3015          t.startControlsTimer(t.options.controlsTimeoutMouseEnter);
3016         }
3017        }
3018       })
3019       .bind('mousemove', function() {
3020        if (t.controlsEnabled) {
3021         if (!t.controlsAreVisible) {
3022          t.showControls();
3023         }
3024         if (!t.options.alwaysShowControls) {
3025          t.startControlsTimer(t.options.controlsTimeoutMouseEnter);
3026         }
3027        }
3028       })
3029       .bind('mouseleave', function () {
3030        if (t.controlsEnabled) {
3031         if (!t.media.paused && !t.options.alwaysShowControls) {
3032          t.startControlsTimer(t.options.controlsTimeoutMouseLeave);
3033         }
3034        }
3035       });
3036     }
3037     if(t.options.hideVideoControlsOnLoad) {
3038      t.hideControls(false);
3039     }
3040     // check for autoplay
3041     if (autoplay && !t.options.alwaysShowControls) {
3042      t.hideControls();
3043     }
3044     // resizer
3045     if (t.options.enableAutosize) {
3046      t.media.addEventListener('loadedmetadata', function(e) {
3047       // if the <video height> was not set and the options.videoHeight was not set
3048       // then resize to the real dimensions
3049       if (t.options.videoHeight <= 0 && t.domNode.getAttribute('height') === null && !isNaN(e.target.videoHeight)) {
3050        t.setPlayerSize(e.target.videoWidth, e.target.videoHeight);
3051        t.setControlsSize();
3052        t.media.setVideoSize(e.target.videoWidth, e.target.videoHeight);
3053       }
3054      }, false);
3055     }
3056    }
3057    // EVENTS
3058    // FOCUS: when a video starts playing, it takes focus from other players (possibly pausing them)
3059    t.media.addEventListener('play', function() {
3060     var playerIndex;
3061     // go through all other players
3062     for (playerIndex in mejs.players) {
3063      var p = mejs.players[playerIndex];
3064      if (p.id != t.id && t.options.pauseOtherPlayers && !p.paused && !p.ended) {
3065       p.pause();
3066      }
3067      p.hasFocus = false;
3068     }
3069     t.hasFocus = true;
3070    },false);
3071    // ended for all
3072    t.media.addEventListener('ended', function (e) {
3073     if(t.options.autoRewind) {
3074      try{
3075       t.media.setCurrentTime(0);
3076       // Fixing an Android stock browser bug, where "seeked" isn't fired correctly after ending the video and jumping to the beginning
3077       window.setTimeout(function(){
3078        $(t.container).find('.mejs-overlay-loading').parent().hide();
3079       }, 20);
3080      } catch (exp) {
3081      }
3082     }
3083     if (t.media.pluginType === 'youtube') {
3084      t.media.stop();
3085     } else {
3086      t.media.pause();
3087     }
3088     if (t.setProgressRail) {
3089      t.setProgressRail();
3090     }
3091     if (t.setCurrentRail) {
3092      t.setCurrentRail();
3093     }
3094     if (t.options.loop) {
3095      t.play();
3096     } else if (!t.options.alwaysShowControls && t.controlsEnabled) {
3097      t.showControls();
3098     }
3099    }, false);
3100    // resize on the first play
3101    t.media.addEventListener('loadedmetadata', function() {
3102     mejs.Utility.calculateTimeFormat(t.duration, t.options, t.options.framesPerSecond || 25);
3103     if (t.updateDuration) {
3104      t.updateDuration();
3105     }
3106     if (t.updateCurrent) {
3107      t.updateCurrent();
3108     }
3109     if (!t.isFullScreen) {
3110      t.setPlayerSize(t.width, t.height);
3111      t.setControlsSize();
3112     }
3113    }, false);
3114    // Only change the time format when necessary
3115    var duration = null;
3116    t.media.addEventListener('timeupdate',function() {
3117     if (duration !== this.duration) {
3118      duration = this.duration;
3119      mejs.Utility.calculateTimeFormat(duration, t.options, t.options.framesPerSecond || 25);
3120     
3121      // make sure to fill in and resize the controls (e.g., 00:00 => 01:13:15
3122      if (t.updateDuration) {
3123       t.updateDuration();
3124      }
3125      if (t.updateCurrent) {
3126       t.updateCurrent();
3127      }
3128      t.setControlsSize();
3129     
3130     }
3131    }, false);
3132    t.container.focusout(function (e) {
3133     if( e.relatedTarget ) { //FF is working on supporting focusout https://bugzilla.mozilla.org/show_bug.cgi?id=687787
3134      var $target = $(e.relatedTarget);
3135      if (t.keyboardAction && $target.parents('.mejs-container').length === 0) {
3136       t.keyboardAction = false;
3137       if (t.isVideo && !t.options.alwaysShowControls) {
3138        t.hideControls(true);
3139       }
3140      }
3141     }
3142    });
3143    // webkit has trouble doing this without a delay
3144    setTimeout(function () {
3145     t.setPlayerSize(t.width, t.height);
3146     t.setControlsSize();
3147    }, 50);
3148    // adjust controls whenever window sizes (used to be in fullscreen only)
3149    t.globalBind('resize', function() {
3150     // don't resize for fullscreen mode
3151     if ( !(t.isFullScreen || (mejs.MediaFeatures.hasTrueNativeFullScreen && document.webkitIsFullScreen)) ) {
3152      t.setPlayerSize(t.width, t.height);
3153     }
3154     // always adjust controls
3155     t.setControlsSize();
3156    });
3157    // This is a work-around for a bug in the YouTube iFrame player, which means
3158    // we can't use the play() API for the initial playback on iOS or Android;
3159    // user has to start playback directly by tapping on the iFrame.
3160    if (t.media.pluginType == 'youtube' && ( mf.isiOS || mf.isAndroid ) ) {
3161     t.container.find('.mejs-overlay-play').hide();
3162     t.container.find('.mejs-poster').hide();
3163    }
3164   }
3165   // force autoplay for HTML5
3166   if (autoplay && media.pluginType == 'native') {
3167    t.play();
3168   }
3169   if (t.options.success) {
3170    if (typeof t.options.success == 'string') {
3171     window[t.options.success](t.media, t.domNode, t);
3172    } else {
3173     t.options.success(t.media, t.domNode, t);
3174    }
3175   }
3176  },
3177  handleError: function(e) {
3178   var t = this;
3179   if (t.controls) {
3180    t.controls.hide();
3181   }
3182   // Tell user that the file cannot be played
3183   if (t.options.error) {
3184    t.options.error(e);
3185   }
3186  },
3187  setPlayerSize: function(width,height) {
3188   var t = this;
3189   if( !t.options.setDimensions ) {
3190    return false;
3191   }
3192   if (typeof width != 'undefined') {
3193    t.width = width;
3194   }
3195   if (typeof height != 'undefined') {
3196    t.height = height;
3197   }
3198   // check stretching modes
3199   switch (t.options.stretching) {
3200    case 'fill':
3201     // The 'fill' effect only makes sense on video; for audio we will set the dimensions
3202     if (t.isVideo) {
3203      this.setFillMode();
3204     } else {
3205      this.setDimensions(t.width, t.height);
3206     }
3207     break;
3208    case 'responsive':
3209     this.setResponsiveMode();
3210     break;
3211    case 'none':
3212     this.setDimensions(t.width, t.height);
3213     break;
3214    // This is the 'auto' mode
3215    default:
3216     if (this.hasFluidMode() === true) {
3217      this.setResponsiveMode();
3218     } else {
3219      this.setDimensions(t.width, t.height);
3220     }
3221     break;
3222   }
3223  },
3224  hasFluidMode: function() {
3225   var t = this;
3226 
3227   // detect 100% mode - use currentStyle for IE since css() doesn't return percentages
3228   return (t.height.toString().indexOf('%') > 0 || (t.$node.css('max-width') !== 'none' && t.$node.css('max-width') !== 't.width') || (t.$node[0].currentStyle && t.$node[0].currentStyle.maxWidth === '100%'));
3229  },
3230  setResponsiveMode: function() {
3231   var t = this;
3232 
3233   // do we have the native dimensions yet?
3234   var nativeWidth = (function() {
3235    if (t.isVideo) {
3236     if (t.media.videoWidth && t.media.videoWidth > 0) {
3237      return t.media.videoWidth;
3238     } else if (t.media.getAttribute('width') !== null) {
3239      return t.media.getAttribute('width');
3240     } else {
3241      return t.options.defaultVideoWidth;
3242     }
3243    } else {
3244     return t.options.defaultAudioWidth;
3245    }
3246   })();
3247 
3248   var nativeHeight = (function() {
3249    if (t.isVideo) {
3250     if (t.media.videoHeight && t.media.videoHeight > 0) {
3251      return t.media.videoHeight;
3252     } else if (t.media.getAttribute('height') !== null) {
3253      return t.media.getAttribute('height');
3254     } else {
3255      return t.options.defaultVideoHeight;
3256     }
3257    } else {
3258     return t.options.defaultAudioHeight;
3259    }
3260   })();
3261 
3262   var parentWidth = t.container.parent().closest(':visible').width(),
3263   parentHeight = t.container.parent().closest(':visible').height(),
3264   newHeight = t.isVideo || !t.options.autosizeProgress ? parseInt(parentWidth * nativeHeight/nativeWidth, 10) : nativeHeight;
3265  
3266   // When we use percent, the newHeight can't be calculated so we get the container height
3267   if (isNaN(newHeight) || ( parentHeight !== 0 && newHeight > parentHeight && parentHeight > nativeHeight)) {
3268    newHeight = parentHeight;
3269   }
3270 
3271   if (t.container.parent().length > 0 && t.container.parent()[0].tagName.toLowerCase() === 'body') { // && t.container.siblings().count == 0) {
3272    parentWidth = $(window).width();
3273    newHeight = $(window).height();
3274   }
3275 
3276   if ( newHeight && parentWidth ) {
3277  
3278    // set outer container size
3279    t.container
3280     .width(parentWidth)
3281     .height(newHeight);
3282   
3283    // set native <video> or <audio> and shims
3284    t.$media.add(t.container.find('.mejs-shim'))
3285     .width('100%')
3286     .height('100%');
3287   
3288    // if shim is ready, send the size to the embeded plugin
3289    if (t.isVideo) {
3290     if (t.media.setVideoSize) {
3291      t.media.setVideoSize(parentWidth, newHeight);
3292     }
3293    }
3294 
3295    // set the layers
3296    t.layers.children('.mejs-layer')
3297     .width('100%')
3298     .height('100%');
3299   }
3300  },
3301  setFillMode: function() {
3302   var t = this,
3303    parent = t.outerContainer;
3304   if (!parent.width()) {
3305    parent.height(t.$media.width());
3306   }
3307   if (!parent.height()) {
3308    parent.height(t.$media.height());
3309   }
3310   var parentWidth = parent.width(),
3311    parentHeight = parent.height();
3312  
3313   t.setDimensions('100%', '100%');
3314  
3315   // This prevents an issue when displaying poster
3316   t.container.find('.mejs-poster img').css('display', 'block');
3317  
3318   targetElement = t.container.find('object, embed, iframe, video');
3319  
3320   // calculate new width and height
3321   var initHeight = t.height,
3322    initWidth = t.width,
3323    // scale to the target width
3324    scaleX1 = parentWidth,
3325    scaleY1 = (initHeight * parentWidth) / initWidth,
3326    // scale to the target height
3327    scaleX2 = (initWidth * parentHeight) / initHeight,
3328    scaleY2 = parentHeight,
3329    // now figure out which one we should use
3330    bScaleOnWidth = !(scaleX2 > parentWidth),
3331    finalWidth = bScaleOnWidth ? Math.floor(scaleX1) : Math.floor(scaleX2),
3332    finalHeight = bScaleOnWidth ? Math.floor(scaleY1) : Math.floor(scaleY2);
3333  
3334   if (bScaleOnWidth) {
3335    targetElement.height(finalHeight).width(parentWidth);
3336    if (t.media.setVideoSize) {
3337     t.media.setVideoSize(parentWidth, finalHeight);
3338    }
3339   } else {
3340    targetElement.height(parentHeight).width(finalWidth);
3341    if (t.media.setVideoSize) {
3342     t.media.setVideoSize(finalWidth, parentHeight);
3343    }
3344   }
3345  
3346   targetElement.css({
3347    'margin-left': Math.floor((parentWidth - finalWidth) / 2),
3348    'margin-top': 0
3349   });
3350  },
3351 
3352  setDimensions: function(width, height) {
3353   var t = this;
3354  
3355   t.container
3356    .width(width)
3357    .height(height);
3358  
3359   t.layers.children('.mejs-layer')
3360    .width(width)
3361    .height(height);
3362  },
3363  setControlsSize: function() {
3364   var t = this,
3365    usedWidth = 0,
3366    railWidth = 0,
3367    rail = t.controls.find('.mejs-time-rail'),
3368    total = t.controls.find('.mejs-time-total'),
3369    others = rail.siblings(),
3370    lastControl = others.last(),
3371    lastControlPosition = null,
3372    avoidAutosizeProgress = t.options && !t.options.autosizeProgress;
3373   // skip calculation if hidden
3374   if (!t.container.is(':visible') || !rail.length || !rail.is(':visible')) {
3375    return;
3376   }
3377   // allow the size to come from custom CSS
3378   if (avoidAutosizeProgress) {
3379    // Also, frontends devs can be more flexible
3380    // due the opportunity of absolute positioning.
3381    railWidth = parseInt(rail.css('width'), 10);
3382   }
3383   // attempt to autosize
3384   if (railWidth === 0 || !railWidth) {
3385    // find the size of all the other controls besides the rail
3386    others.each(function() {
3387     var $this = $(this);
3388     if ($this.css('position') != 'absolute' && $this.is(':visible')) {
3389      usedWidth += $(this).outerWidth(true);
3390     }
3391    });
3392    // fit the rail into the remaining space
3393    railWidth = t.controls.width() - usedWidth - (rail.outerWidth(true) - rail.width());
3394   }
3395   // resize the rail,
3396   // but then check if the last control (say, the fullscreen button) got pushed down
3397   // this often happens when zoomed
3398   do {
3399    // outer area
3400    // we only want to set an inline style with the width of the rail
3401    // if we're trying to autosize.
3402    if (!avoidAutosizeProgress) {
3403     rail.width(railWidth);
3404    }
3405    // dark space
3406    total.width(railWidth - (total.outerWidth(true) - total.width()));
3407    if (lastControl.css('position') != 'absolute') {
3408     lastControlPosition = lastControl.length ? lastControl.position() : null;
3409     railWidth--;
3410    }
3411   } while (lastControlPosition !== null && lastControlPosition.top.toFixed(2) > 0 && railWidth > 0);
3412   t.container.trigger('controlsresize');
3413  },
3414  buildposter: function(player, controls, layers, media) {
3415   var t = this,
3416    poster =
3417    $('<div class="mejs-poster mejs-layer">' +
3418    '</div>')
3419     .appendTo(layers),
3420    posterUrl = player.$media.attr('poster');
3421   // prioriy goes to option (this is useful if you need to support iOS 3.x (iOS completely fails with poster)
3422   if (player.options.poster !== '') {
3423    posterUrl = player.options.poster;
3424   }
3425   // second, try the real poster
3426   if ( posterUrl ) {
3427    t.setPoster(posterUrl);
3428   } else {
3429    poster.hide();
3430   }
3431   media.addEventListener('play',function() {
3432    poster.hide();
3433   }, false);
3434   if(player.options.showPosterWhenEnded && player.options.autoRewind){
3435    media.addEventListener('ended',function() {
3436     poster.show();
3437    }, false);
3438   }
3439  },
3440  setPoster: function(url) {
3441   var t = this,
3442    posterDiv = t.container.find('.mejs-poster'),
3443    posterImg = posterDiv.find('img');
3444   if (posterImg.length === 0) {
3445    posterImg = $('<img width="100%" height="100%" alt="" />').appendTo(posterDiv);
3446   }
3447   posterImg.attr('src', url);
3448   posterDiv.css({'background-image' : 'url(' + url + ')'});
3449  },
3450  buildoverlays: function(player, controls, layers, media) {
3451   var t = this;
3452   if (!player.isVideo)
3453    return;
3454   var
3455   loading =
3456    $('<div class="mejs-overlay mejs-layer">'+
3457     '<div class="mejs-overlay-loading"><span></span></div>'+
3458    '</div>')
3459    .hide() // start out hidden
3460    .appendTo(layers),
3461   error =
3462    $('<div class="mejs-overlay mejs-layer">'+
3463     '<div class="mejs-overlay-error"></div>'+
3464    '</div>')
3465    .hide() // start out hidden
3466    .appendTo(layers),
3467   // this needs to come last so it's on top
3468   bigPlay =
3469    $('<div class="mejs-overlay mejs-layer mejs-overlay-play">'+
3470     '<div class="mejs-overlay-button" role="button" aria-label="' + mejs.i18n.t('mejs.play') + '" aria-pressed="false"></div>'+
3471    '</div>')
3472    .appendTo(layers)
3473    .bind('click', function() {  // Removed 'touchstart' due issues on Samsung Android devices where a tap on bigPlay started and immediately stopped the video
3474     if (t.options.clickToPlayPause) {
3475      if (media.paused) {
3476       media.play();
3477      }
3478      var button = $(this).find('.mejs-overlay-button'),
3479       pressed = button.attr('aria-pressed');
3480      button.attr('aria-pressed', !!pressed);
3481     }
3482    });
3483   /*
3484   if (mejs.MediaFeatures.isiOS || mejs.MediaFeatures.isAndroid) {
3485    bigPlay.remove();
3486    loading.remove();
3487   }
3488   */
3489   // show/hide big play button
3490   media.addEventListener('play',function() {
3491    bigPlay.hide();
3492    loading.hide();
3493    controls.find('.mejs-time-buffering').hide();
3494    error.hide();
3495   }, false);
3496   media.addEventListener('playing', function() {
3497    bigPlay.hide();
3498    loading.hide();
3499    controls.find('.mejs-time-buffering').hide();
3500    error.hide();
3501   }, false);
3502   media.addEventListener('seeking', function() {
3503    loading.show();
3504    controls.find('.mejs-time-buffering').show();
3505   }, false);
3506   media.addEventListener('seeked', function() {
3507    loading.hide();
3508    controls.find('.mejs-time-buffering').hide();
3509   }, false);
3510   media.addEventListener('pause',function() {
3511    if (!mejs.MediaFeatures.isiPhone) {
3512     bigPlay.show();
3513    }
3514   }, false);
3515   media.addEventListener('waiting', function() {
3516    loading.show();
3517    controls.find('.mejs-time-buffering').show();
3518   }, false);
3519   // show/hide loading
3520   media.addEventListener('loadeddata',function() {
3521    // for some reason Chrome is firing this event
3522    //if (mejs.MediaFeatures.isChrome && media.getAttribute && media.getAttribute('preload') === 'none')
3523    // return;
3524    loading.show();
3525    controls.find('.mejs-time-buffering').show();
3526    // Firing the 'canplay' event after a timeout which isn't getting fired on some Android 4.1 devices (https://github.com/johndyer/mediaelement/issues/1305)
3527    if (mejs.MediaFeatures.isAndroid) {
3528     media.canplayTimeout = window.setTimeout(
3529      function() {
3530       if (document.createEvent) {
3531        var evt = document.createEvent('HTMLEvents');
3532        evt.initEvent('canplay', true, true);
3533        return media.dispatchEvent(evt);
3534       }
3535      }, 300
3536     );
3537    }
3538   }, false);
3539   media.addEventListener('canplay',function() {
3540    loading.hide();
3541    controls.find('.mejs-time-buffering').hide();
3542    clearTimeout(media.canplayTimeout); // Clear timeout inside 'loadeddata' to prevent 'canplay' to fire twice
3543   }, false);
3544   // error handling
3545   media.addEventListener('error',function(e) {
3546    t.handleError(e);
3547    loading.hide();
3548    bigPlay.hide();
3549    error.show();
3550    error.find('.mejs-overlay-error').html("Error loading this resource");
3551   }, false);
3552   media.addEventListener('keydown', function(e) {
3553    t.onkeydown(player, media, e);
3554   }, false);
3555  },
3556  buildkeyboard: function(player, controls, layers, media) {
3557    var t = this;
3558    t.container.keydown(function () {
3559     t.keyboardAction = true;
3560    });
3561    // listen for key presses
3562    t.globalBind('keydown', function(event) {
3563     player.hasFocus = $(event.target).closest('.mejs-container').length !== 0
3564      && $(event.target).closest('.mejs-container').attr('id') === player.$media.closest('.mejs-container').attr('id');
3565     return t.onkeydown(player, media, event);
3566    });
3567    // check if someone clicked outside a player region, then kill its focus
3568    t.globalBind('click', function(event) {
3569     player.hasFocus = $(event.target).closest('.mejs-container').length !== 0;
3570    });
3571  },
3572  onkeydown: function(player, media, e) {
3573   if (player.hasFocus && player.options.enableKeyboard) {
3574    // find a matching key
3575    for (var i = 0, il = player.options.keyActions.length; i < il; i++) {
3576     var keyAction = player.options.keyActions[i];
3577     for (var j = 0, jl = keyAction.keys.length; j < jl; j++) {
3578      if (e.keyCode == keyAction.keys[j]) {
3579       if (typeof(e.preventDefault) == "function") e.preventDefault();
3580       keyAction.action(player, media, e.keyCode, e);
3581       return false;
3582      }
3583     }
3584    }
3585   }
3586   return true;
3587  },
3588  findTracks: function() {
3589   var t = this,
3590    tracktags = t.$media.find('track');
3591   // store for use by plugins
3592   t.tracks = [];
3593   tracktags.each(function(index, track) {
3594    track = $(track);
3595    t.tracks.push({
3596     srclang: (track.attr('srclang')) ? track.attr('srclang').toLowerCase() : '',
3597     src: track.attr('src'),
3598     kind: track.attr('kind'),
3599     label: track.attr('label') || '',
3600     entries: [],
3601     isLoaded: false
3602    });
3603   });
3604  },
3605  changeSkin: function(className) {
3606   this.container[0].className = 'mejs-container ' + className;
3607   this.setPlayerSize(this.width, this.height);
3608   this.setControlsSize();
3609  },
3610  play: function() {
3611   this.load();
3612   this.media.play();
3613  },
3614  pause: function() {
3615   try {
3616    this.media.pause();
3617   } catch (e) {}
3618  },
3619  load: function() {
3620   if (!this.isLoaded) {
3621    this.media.load();
3622   }
3623   this.isLoaded = true;
3624  },
3625  setMuted: function(muted) {
3626   this.media.setMuted(muted);
3627  },
3628  setCurrentTime: function(time) {
3629   this.media.setCurrentTime(time);
3630  },
3631  getCurrentTime: function() {
3632   return this.media.currentTime;
3633  },
3634  setVolume: function(volume) {
3635   this.media.setVolume(volume);
3636  },
3637  getVolume: function() {
3638   return this.media.volume;
3639  },
3640  setSrc: function(src) {
3641   var
3642    t = this;
3643   // If using YouTube, its API is different to load a specific source
3644   if (t.media.pluginType === 'youtube') {
3645    var videoId;
3646    if (typeof src !== 'string') {
3647     var i, media;
3648     for (i=0; i<src.length; i++) {
3649      media = src[i];
3650      if (this.canPlayType(media.type)) {
3651       src = media.src;
3652       break;
3653      }
3654     }
3655    }
3656    // youtu.be url from share button
3657    if (src.lastIndexOf('youtu.be') !== -1) {
3658     videoId = src.substr(src.lastIndexOf('/') + 1);
3659     if (videoId.indexOf('?') !== -1) {
3660      videoId = videoId.substr(0, videoId.indexOf('?'));
3661     }
3662    } else {
3663     // https://www.youtube.com/watch?v=
3664     var videoIdMatch = src.match(/[?&]v=([^&#]+)|&|#|$/);
3665     if (videoIdMatch) {
3666      videoId = videoIdMatch[1];
3667     }
3668    }
3669    if (t.media.getAttribute('autoplay') !== null) {
3670     t.media.pluginApi.loadVideoById(videoId);
3671    } else {
3672     t.media.pluginApi.cueVideoById(videoId);
3673    }
3674   }
3675   else {
3676    t.media.setSrc(src);
3677   }
3678  },
3679  remove: function() {
3680   var t = this, featureIndex, feature;
3681   t.container.prev('.mejs-offscreen').remove();
3682   // invoke features cleanup
3683   for (featureIndex in t.options.features) {
3684    feature = t.options.features[featureIndex];
3685    if (t['clean' + feature]) {
3686     try {
3687      t['clean' + feature](t);
3688     } catch (e) {
3689      // TODO: report control error
3690      //throw e;
3691      //
3692      //
3693     }
3694    }
3695   }
3696   // grab video and put it back in place
3697   if (!t.isDynamic) {
3698    t.$media.prop('controls', true);
3699    // detach events from the video
3700    // TODO: detach event listeners better than this;
3701    //   also detach ONLY the events attached by this plugin!
3702    t.$node.clone().insertBefore(t.container).show();
3703    t.$node.remove();
3704   } else {
3705    t.$node.insertBefore(t.container);
3706   }
3707   if (t.media.pluginType !== 'native') {
3708    t.media.remove();
3709   }
3710   // Remove the player from the mejs.players object so that pauseOtherPlayers doesn't blow up when trying to pause a non existance flash api.
3711   delete mejs.players[t.id];
3712   if (typeof t.container == 'object') {
3713    t.container.remove();
3714   }
3715   t.globalUnbind();
3716   delete t.node.player;
3717  },
3718  rebuildtracks: function(){
3719   var t = this;
3720   t.findTracks();
3721   t.buildtracks(t, t.controls, t.layers, t.media);
3722  },
3723  resetSize: function(){
3724   var t = this;
3725   // webkit has trouble doing this without a delay
3726   setTimeout(function () {
3727    //
3728    t.setPlayerSize(t.width, t.height);
3729    t.setControlsSize();
3730   }, 50);
3731  }
3732 };
3733 (function(){
3734  var rwindow = /^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/;
3735  function splitEvents(events, id) {
3736   // add player ID as an event namespace so it's easier to unbind them all later
3737   var ret = {d: [], w: []};
3738   $.each((events || '').split(' '), function(k, v){
3739    var eventname = v + '.' + id;
3740    if (eventname.indexOf('.') === 0) {
3741     ret.d.push(eventname);
3742     ret.w.push(eventname);
3743    }
3744    else {
3745     ret[rwindow.test(v) ? 'w' : 'd'].push(eventname);
3746    }
3747   });
3748   ret.d = ret.d.join(' ');
3749   ret.w = ret.w.join(' ');
3750   return ret;
3751  }
3752  mejs.MediaElementPlayer.prototype.globalBind = function(events, data, callback) {
3753   var t = this;
3754   var doc = t.node ? t.node.ownerDocument : document;
3755   events = splitEvents(events, t.id);
3756   if (events.d) $(doc).bind(events.d, data, callback);
3757   if (events.w) $(window).bind(events.w, data, callback);
3758  };
3759  mejs.MediaElementPlayer.prototype.globalUnbind = function(events, callback) {
3760   var t = this;
3761   var doc = t.node ? t.node.ownerDocument : document;
3762   events = splitEvents(events, t.id);
3763   if (events.d) $(doc).unbind(events.d, callback);
3764   if (events.w) $(window).unbind(events.w, callback);
3765  };
3766 })();
3767 // turn into jQuery plugin
3768 if (typeof $ != 'undefined') {
3769  $.fn.mediaelementplayer = function (options) {
3770   if (options === false) {
3771    this.each(function () {
3772     var player = $(this).data('mediaelementplayer');
3773     if (player) {
3774      player.remove();
3775     }
3776     $(this).removeData('mediaelementplayer');
3777    });
3778   }
3779   else {
3780    this.each(function () {
3781     $(this).data('mediaelementplayer', new mejs.MediaElementPlayer(this, options));
3782    });
3783   }
3784   return this;
3785  };
3786  $(document).ready(function() {
3787   // auto enable using JSON attribute
3788   $('.mejs-player').mediaelementplayer();
3789  });
3790 }
3791 // push out to window
3792 window.MediaElementPlayer = mejs.MediaElementPlayer;
3793})(mejs.$);
3794(function($) {
3795 $.extend(mejs.MepDefaults, {
3796  playText: '',
3797  pauseText: ''
3798 });
3799 // PLAY/pause BUTTON
3800 $.extend(MediaElementPlayer.prototype, {
3801  buildplaypause: function(player, controls, layers, media) {
3802   var
3803    t = this,
3804    op = t.options,
3805    playTitle = op.playText ? op.playText : mejs.i18n.t('mejs.play'),
3806    pauseTitle = op.pauseText ? op.pauseText : mejs.i18n.t('mejs.pause'),
3807    play =
3808    $('<div class="mejs-button mejs-playpause-button mejs-play" >' +
3809     '<button type="button" aria-controls="' + t.id + '" title="' + playTitle + '" aria-label="' + pauseTitle + '"></button>' +
3810    '</div>')
3811    .appendTo(controls)
3812    .click(function(e) {
3813     e.preventDefault();
3814   
3815     if (media.paused) {
3816      media.play();
3817     } else {
3818      media.pause();
3819     }
3820    
3821     return false;
3822    }),
3823    play_btn = play.find('button');
3824   function togglePlayPause(which) {
3825    if ('play' === which) {
3826     play.removeClass('mejs-play').addClass('mejs-pause');
3827     play_btn.attr({
3828      'title': pauseTitle,
3829      'aria-label': pauseTitle
3830     });
3831    } else {
3832     play.removeClass('mejs-pause').addClass('mejs-play');
3833     play_btn.attr({
3834      'title': playTitle,
3835      'aria-label': playTitle
3836     });
3837    }
3838   };
3839   togglePlayPause('pse');
3840   media.addEventListener('play',function() {
3841    togglePlayPause('play');
3842   }, false);
3843   media.addEventListener('playing',function() {
3844    togglePlayPause('play');
3845   }, false);
3846   media.addEventListener('pause',function() {
3847    togglePlayPause('pse');
3848   }, false);
3849   media.addEventListener('paused',function() {
3850    togglePlayPause('pse');
3851   }, false);
3852  }
3853 });
3854})(mejs.$);
3855(function($) {
3856 $.extend(mejs.MepDefaults, {
3857  stopText: 'Stop'
3858 });
3859 // STOP BUTTON
3860 $.extend(MediaElementPlayer.prototype, {
3861  buildstop: function(player, controls, layers, media) {
3862   var t = this;
3863   $('<div class="mejs-button mejs-stop-button mejs-stop">' +
3864     '<button type="button" aria-controls="' + t.id + '" title="' + t.options.stopText + '" aria-label="' + t.options.stopText + '"></button>' +
3865    '</div>')
3866    .appendTo(controls)
3867    .click(function() {
3868     if (!media.paused) {
3869      media.pause();
3870     }
3871     if (media.currentTime > 0) {
3872      media.setCurrentTime(0);
3873                        media.pause();
3874      controls.find('.mejs-time-current').width('0px');
3875      controls.find('.mejs-time-handle').css('left', '0px');
3876      controls.find('.mejs-time-float-current').html( mejs.Utility.secondsToTimeCode(0, player.options));
3877      controls.find('.mejs-currenttime').html( mejs.Utility.secondsToTimeCode(0, player.options));
3878      layers.find('.mejs-poster').show();
3879     }
3880    });
3881  }
3882 });
3883})(mejs.$);
3884(function($) {
3885 $.extend(mejs.MepDefaults, {
3886  // Enable tooltip that shows time in progress bar
3887  enableProgressTooltip: true,
3888  progressHelpText: ''
3889 });
3890 // progress/loaded bar
3891 $.extend(MediaElementPlayer.prototype, {
3892  buildprogress: function(player, controls, layers, media) {
3893   var
3894    t = this,
3895    mouseIsDown = false,
3896    mouseIsOver = false,
3897    lastKeyPressTime = 0,
3898    startedPaused = false,
3899    autoRewindInitial = player.options.autoRewind,
3900    progressTitle = t.options.progressHelpText ? t.options.progressHelpText : mejs.i18n.t('mejs.time-help-text'),
3901    tooltip = player.options.enableProgressTooltip ? '<span class="mejs-time-float">' +
3902     '<span class="mejs-time-float-current">00:00</span>' +
3903     '<span class="mejs-time-float-corner"></span>' +
3904    '</span>' : "";
3905   $('<div class="mejs-time-rail">' +
3906    '<span  class="mejs-time-total mejs-time-slider">' +
3907    //'<span class="mejs-offscreen">' + progressTitle + '</span>' +
3908     '<span class="mejs-time-buffering"></span>' +
3909     '<span class="mejs-time-loaded"></span>' +
3910     '<span class="mejs-time-current"></span>' +
3911     '<span class="mejs-time-handle"></span>' +
3912      tooltip +
3913    '</span>' +
3914   '</div>')
3915    .appendTo(controls);
3916   controls.find('.mejs-time-buffering').hide();
3917   t.total = controls.find('.mejs-time-total');
3918   t.loaded  = controls.find('.mejs-time-loaded');
3919   t.current  = controls.find('.mejs-time-current');
3920   t.handle  = controls.find('.mejs-time-handle');
3921   t.timefloat  = controls.find('.mejs-time-float');
3922   t.timefloatcurrent  = controls.find('.mejs-time-float-current');
3923   t.slider = controls.find('.mejs-time-slider');
3924   var handleMouseMove = function (e) {
3925     var offset = t.total.offset(),
3926      width = t.total.width(),
3927      percentage = 0,
3928      newTime = 0,
3929      pos = 0,
3930      x;
3931     // mouse or touch position relative to the object
3932     if (e.originalEvent && e.originalEvent.changedTouches) {
3933      x = e.originalEvent.changedTouches[0].pageX;
3934     } else if (e.changedTouches) { // for Zepto
3935      x = e.changedTouches[0].pageX;
3936     } else {
3937      x = e.pageX;
3938     }
3939     if (media.duration) {
3940      if (x < offset.left) {
3941       x = offset.left;
3942      } else if (x > width + offset.left) {
3943       x = width + offset.left;
3944      }
3945      pos = x - offset.left;
3946      percentage = (pos / width);
3947      newTime = (percentage <= 0.02) ? 0 : percentage * media.duration;
3948      // seek to where the mouse is
3949      if (mouseIsDown && newTime !== media.currentTime) {
3950       media.setCurrentTime(newTime);
3951      }
3952      // position floating time box
3953      if (!mejs.MediaFeatures.hasTouch) {
3954       t.timefloat.css('left', pos);
3955       t.timefloatcurrent.html( mejs.Utility.secondsToTimeCode(newTime, player.options) );
3956       t.timefloat.show();
3957      }
3958     }
3959    },
3960    // Accessibility for slider
3961    updateSlider = function (e) {
3962     var seconds = media.currentTime,
3963      timeSliderText = mejs.i18n.t('mejs.time-slider'),
3964      time = mejs.Utility.secondsToTimeCode(seconds, player.options),
3965      duration = media.duration;
3966     t.slider.attr({
3967      'aria-label': timeSliderText,
3968      'aria-valuemin': 0,
3969      'aria-valuemax': duration,
3970      'aria-valuenow': seconds,
3971      'aria-valuetext': time,
3972      'role': 'slider',
3973      'tabindex': 0
3974     });
3975    },
3976    restartPlayer = function () {
3977     var now = new Date();
3978     if (now - lastKeyPressTime >= 1000) {
3979      media.play();
3980     }
3981    };
3982   t.slider.bind('focus', function (e) {
3983    player.options.autoRewind = false;
3984   });
3985   t.slider.bind('blur', function (e) {
3986    player.options.autoRewind = autoRewindInitial;
3987   });
3988   t.slider.bind('keydown', function (e) {
3989    if ((new Date() - lastKeyPressTime) >= 1000) {
3990     startedPaused = media.paused;
3991    }
3992    var keyCode = e.keyCode,
3993     duration = media.duration,
3994     seekTime = media.currentTime,
3995     seekForward  = player.options.defaultSeekForwardInterval(media),
3996     seekBackward = player.options.defaultSeekBackwardInterval(media);
3997    switch (keyCode) {
3998     case 37: // left
3999     case 40: // Down
4000      seekTime -= seekBackward;
4001      break;
4002     case 39: // Right
4003     case 38: // Up
4004      seekTime += seekForward;
4005      break;
4006     case 36: // Home
4007      seekTime = 0;
4008      break;
4009     case 35: // end
4010      seekTime = duration;
4011      break;
4012     case 32: // space
4013     case 13: // enter
4014      media.paused ? media.play() : media.pause();
4015      return;
4016     default:
4017      return;
4018    }
4019    seekTime = seekTime < 0 ? 0 : (seekTime >= duration ? duration : Math.floor(seekTime));
4020    lastKeyPressTime = new Date();
4021    if (!startedPaused) {
4022     media.pause();
4023    }
4024    if (seekTime < media.duration && !startedPaused) {
4025     setTimeout(restartPlayer, 1100);
4026    }
4027    media.setCurrentTime(seekTime);
4028    e.preventDefault();
4029    e.stopPropagation();
4030    return false;
4031   });
4032   // handle clicks
4033   //controls.find('.mejs-time-rail').delegate('span', 'click', handleMouseMove);
4034   t.total
4035    .bind('mousedown touchstart', function (e) {
4036     // only handle left clicks or touch
4037     if (e.which === 1 || e.which === 0) {
4038      mouseIsDown = true;
4039      handleMouseMove(e);
4040      t.globalBind('mousemove.dur touchmove.dur', function(e) {
4041       handleMouseMove(e);
4042      });
4043      t.globalBind('mouseup.dur touchend.dur', function (e) {
4044       mouseIsDown = false;
4045       if (typeof t.timefloat !== 'undefined') {
4046        t.timefloat.hide();
4047       }
4048       t.globalUnbind('.dur');
4049      });
4050     }
4051    })
4052    .bind('mouseenter', function(e) {
4053     mouseIsOver = true;
4054     t.globalBind('mousemove.dur', function(e) {
4055      handleMouseMove(e);
4056     });
4057     if (typeof t.timefloat !== 'undefined' && !mejs.MediaFeatures.hasTouch) {
4058      t.timefloat.show();
4059     }
4060    })
4061    .bind('mouseleave',function(e) {
4062     mouseIsOver = false;
4063     if (!mouseIsDown) {
4064      t.globalUnbind('.dur');
4065      if (typeof t.timefloat !== 'undefined') {
4066       t.timefloat.hide();
4067      }
4068     }
4069    });
4070   // loading
4071   media.addEventListener('progress', function (e) {
4072    player.setProgressRail(e);
4073    player.setCurrentRail(e);
4074   }, false);
4075   // current time
4076   media.addEventListener('timeupdate', function(e) {
4077    player.setProgressRail(e);
4078    player.setCurrentRail(e);
4079    updateSlider(e);
4080   }, false);
4081   t.container.on('controlsresize', function(e) {
4082    player.setProgressRail(e);
4083    player.setCurrentRail(e);
4084   });
4085  },
4086  setProgressRail: function(e) {
4087   var
4088    t = this,
4089    target = (e !== undefined) ? e.target : t.media,
4090    percent = null;
4091   // newest HTML5 spec has buffered array (FF4, Webkit)
4092   if (target && target.buffered && target.buffered.length > 0 && target.buffered.end && target.duration) {
4093    // account for a real array with multiple values - always read the end of the last buffer
4094    percent = target.buffered.end(target.buffered.length - 1) / target.duration;
4095   }
4096   // Some browsers (e.g., FF3.6 and Safari 5) cannot calculate target.bufferered.end()
4097   // to be anything other than 0. If the byte count is available we use this instead.
4098   // Browsers that support the else if do not seem to have the bufferedBytes value and
4099   // should skip to there. Tested in Safari 5, Webkit head, FF3.6, Chrome 6, IE 7/8.
4100   else if (target && target.bytesTotal !== undefined && target.bytesTotal > 0 && target.bufferedBytes !== undefined) {
4101    percent = target.bufferedBytes / target.bytesTotal;
4102   }
4103   // Firefox 3 with an Ogg file seems to go this way
4104   else if (e && e.lengthComputable && e.total !== 0) {
4105    percent = e.loaded / e.total;
4106   }
4107   // finally update the progress bar
4108   if (percent !== null) {
4109    percent = Math.min(1, Math.max(0, percent));
4110    // update loaded bar
4111    if (t.loaded && t.total) {
4112     t.loaded.width(t.total.width() * percent);
4113    }
4114   }
4115  },
4116  setCurrentRail: function() {
4117   var t = this;
4118 
4119   if (t.media.currentTime !== undefined && t.media.duration) {
4120    // update bar and handle
4121    if (t.total && t.handle) {
4122     var
4123      newWidth = Math.round(t.total.width() * t.media.currentTime / t.media.duration),
4124      handlePos = newWidth - Math.round(t.handle.outerWidth(true) / 2);
4125     t.current.width(newWidth);
4126     t.handle.css('left', handlePos);
4127    }
4128   }
4129  }
4130 });
4131})(mejs.$);
4132(function($) {
4133 // options
4134 $.extend(mejs.MepDefaults, {
4135  duration: -1,
4136  timeAndDurationSeparator: '<span> | </span>'
4137 });
4138 // current and duration 00:00 / 00:00
4139 $.extend(MediaElementPlayer.prototype, {
4140  buildcurrent: function(player, controls, layers, media) {
4141   var t = this;
4142  
4143   $('<div class="mejs-time" role="timer" aria-live="off">' +
4144     '<span class="mejs-currenttime">' +
4145      mejs.Utility.secondsToTimeCode(0, player.options) +
4146                    '</span>'+
4147    '</div>')
4148   .appendTo(controls);
4149  
4150   t.currenttime = t.controls.find('.mejs-currenttime');
4151   media.addEventListener('timeupdate',function() {
4152    if (t.controlsAreVisible) {
4153     player.updateCurrent();
4154    }
4155   }, false);
4156  },
4157  buildduration: function(player, controls, layers, media) {
4158   var t = this;
4159  
4160   if (controls.children().last().find('.mejs-currenttime').length > 0) {
4161    $(t.options.timeAndDurationSeparator +
4162     '<span class="mejs-duration">' +
4163      mejs.Utility.secondsToTimeCode(t.options.duration, t.options) +
4164     '</span>')
4165     .appendTo(controls.find('.mejs-time'));
4166   } else {
4167    // add class to current time
4168    controls.find('.mejs-currenttime').parent().addClass('mejs-currenttime-container');
4169   
4170    $('<div class="mejs-time mejs-duration-container">'+
4171     '<span class="mejs-duration">' +
4172      mejs.Utility.secondsToTimeCode(t.options.duration, t.options) +
4173     '</span>' +
4174    '</div>')
4175    .appendTo(controls);
4176   }
4177  
4178   t.durationD = t.controls.find('.mejs-duration');
4179   media.addEventListener('timeupdate',function() {
4180    if (t.controlsAreVisible) {
4181     player.updateDuration();
4182    }
4183   }, false);
4184  },
4185 
4186  updateCurrent:  function() {
4187   var t = this;
4188  
4189   var currentTime = t.media.currentTime;
4190  
4191   if (isNaN(currentTime)) {
4192    currentTime = 0;
4193   }
4194   if (t.currenttime) {
4195    t.currenttime.html(mejs.Utility.secondsToTimeCode(currentTime, t.options));
4196   }
4197  },
4198 
4199  updateDuration: function() {
4200   var t = this;
4201  
4202   var duration = t.media.duration;
4203   if (t.options.duration > 0) {
4204    duration = t.options.duration;
4205   }
4206  
4207   if (isNaN(duration)) {
4208    duration = 0;
4209   }
4210   //Toggle the long video class if the video is longer than an hour.
4211   t.container.toggleClass("mejs-long-video", duration > 3600);
4212  
4213   if (t.durationD && duration > 0) {
4214    t.durationD.html(mejs.Utility.secondsToTimeCode(duration, t.options));
4215   } 
4216  }
4217 });
4218})(mejs.$);
4219(function ($) {
4220 $.extend(mejs.MepDefaults, {
4221  muteText: mejs.i18n.t('mejs.mute-toggle'),
4222  allyVolumeControlText: mejs.i18n.t('mejs.volume-help-text'),
4223  hideVolumeOnTouchDevices: true,
4224  audioVolume: 'horizontal',
4225  videoVolume: 'vertical'
4226 });
4227 $.extend(MediaElementPlayer.prototype, {
4228  buildvolume: function (player, controls, layers, media) {
4229   // Android and iOS don't support volume controls
4230   if ((mejs.MediaFeatures.isAndroid || mejs.MediaFeatures.isiOS) && this.options.hideVolumeOnTouchDevices)
4231    return;
4232   var t = this,
4233    mode = (t.isVideo) ? t.options.videoVolume : t.options.audioVolume,
4234    mute = (mode == 'horizontal') ?
4235     // horizontal version
4236     $('<div class="mejs-button mejs-volume-button mejs-mute">' +
4237      '<button type="button" aria-controls="' + t.id +
4238      '" title="' + t.options.muteText +
4239      '" aria-label="' + t.options.muteText +
4240      '"></button>' +
4241      '</div>' +
4242      '<a href="javascript:void(0);" class="mejs-horizontal-volume-slider">' + // outer background
4243      '<span class="mejs-offscreen">' + t.options.allyVolumeControlText + '</span>' +
4244      '<div class="mejs-horizontal-volume-total"></div>' + // line background
4245      '<div class="mejs-horizontal-volume-current"></div>' + // current volume
4246      '<div class="mejs-horizontal-volume-handle"></div>' + // handle
4247      '</a>'
4248     )
4249     .appendTo(controls) :
4250     // vertical version
4251     $('<div class="mejs-button mejs-volume-button mejs-mute">' +
4252      '<button type="button" aria-controls="' + t.id +
4253      '" title="' + t.options.muteText +
4254      '" aria-label="' + t.options.muteText +
4255      '"></button>' +
4256      '<a href="javascript:void(0);" class="mejs-volume-slider">' + // outer background
4257      '<span class="mejs-offscreen">' + t.options.allyVolumeControlText + '</span>' +
4258      '<div class="mejs-volume-total"></div>' + // line background
4259      '<div class="mejs-volume-current"></div>' + // current volume
4260      '<div class="mejs-volume-handle"></div>' + // handle
4261      '</a>' +
4262      '</div>')
4263     .appendTo(controls),
4264    volumeSlider = t.container.find('.mejs-volume-slider, .mejs-horizontal-volume-slider'),
4265    volumeTotal = t.container.find('.mejs-volume-total, .mejs-horizontal-volume-total'),
4266    volumeCurrent = t.container.find('.mejs-volume-current, .mejs-horizontal-volume-current'),
4267    volumeHandle = t.container.find('.mejs-volume-handle, .mejs-horizontal-volume-handle'),
4268    positionVolumeHandle = function (volume, secondTry) {
4269     if (!volumeSlider.is(':visible') && typeof secondTry == 'undefined') {
4270      volumeSlider.show();
4271      positionVolumeHandle(volume, true);
4272      volumeSlider.hide();
4273      return;
4274     }
4275     // correct to 0-1
4276     volume = Math.max(0, volume);
4277     volume = Math.min(volume, 1);
4278     // adjust mute button style
4279     if (volume === 0) {
4280      mute.removeClass('mejs-mute').addClass('mejs-unmute');
4281      mute.children('button').attr('title', mejs.i18n.t('mejs.unmute')).attr('aria-label', mejs.i18n.t('mejs.unmute'));
4282     } else {
4283      mute.removeClass('mejs-unmute').addClass('mejs-mute');
4284      mute.children('button').attr('title', mejs.i18n.t('mejs.mute')).attr('aria-label', mejs.i18n.t('mejs.mute'));
4285     }
4286     // top/left of full size volume slider background
4287     var totalPosition = volumeTotal.position();
4288     // position slider
4289     if (mode == 'vertical') {
4290      var
4291       // height of the full size volume slider background
4292       totalHeight = volumeTotal.height(),
4293       // the new top position based on the current volume
4294       // 70% volume on 100px height == top:30px
4295       newTop = totalHeight - (totalHeight * volume);
4296      // handle
4297      volumeHandle.css('top', Math.round(totalPosition.top + newTop - (volumeHandle.height() / 2)));
4298      // show the current visibility
4299      volumeCurrent.height(totalHeight - newTop);
4300      volumeCurrent.css('top', totalPosition.top + newTop);
4301     } else {
4302      var
4303       // height of the full size volume slider background
4304       totalWidth = volumeTotal.width(),
4305       // the new left position based on the current volume
4306       newLeft = totalWidth * volume;
4307      // handle
4308      volumeHandle.css('left', Math.round(totalPosition.left + newLeft - (volumeHandle.width() / 2)));
4309      // rezize the current part of the volume bar
4310      volumeCurrent.width(Math.round(newLeft));
4311     }
4312    },
4313    handleVolumeMove = function (e) {
4314     var volume = null,
4315      totalOffset = volumeTotal.offset();
4316     // calculate the new volume based on the moust position
4317     if (mode === 'vertical') {
4318      var
4319       railHeight = volumeTotal.height(),
4320       newY = e.pageY - totalOffset.top;
4321      volume = (railHeight - newY) / railHeight;
4322      // the controls just hide themselves (usually when mouse moves too far up)
4323      if (totalOffset.top === 0 || totalOffset.left === 0) {
4324       return;
4325      }
4326     } else {
4327      var
4328       railWidth = volumeTotal.width(),
4329       newX = e.pageX - totalOffset.left;
4330      volume = newX / railWidth;
4331     }
4332     // ensure the volume isn't outside 0-1
4333     volume = Math.max(0, volume);
4334     volume = Math.min(volume, 1);
4335     // position the slider and handle
4336     positionVolumeHandle(volume);
4337     // set the media object (this will trigger the volumechanged event)
4338     if (volume === 0) {
4339      media.setMuted(true);
4340     } else {
4341      media.setMuted(false);
4342     }
4343     media.setVolume(volume);
4344    },
4345    mouseIsDown = false,
4346    mouseIsOver = false;
4347   // SLIDER
4348   mute
4349   .hover(function () {
4350    volumeSlider.show();
4351    mouseIsOver = true;
4352   }, function () {
4353    mouseIsOver = false;
4354    if (!mouseIsDown && mode == 'vertical') {
4355     volumeSlider.hide();
4356    }
4357   });
4358   var updateVolumeSlider = function (e) {
4359    var volume = Math.floor(media.volume * 100);
4360    volumeSlider.attr({
4361     'aria-label': mejs.i18n.t('mejs.volume-slider'),
4362     'aria-valuemin': 0,
4363     'aria-valuemax': 100,
4364     'aria-valuenow': volume,
4365     'aria-valuetext': volume + '%',
4366     'role': 'slider',
4367     'tabindex': 0
4368    });
4369   };
4370   volumeSlider
4371   .bind('mouseover', function () {
4372    mouseIsOver = true;
4373   })
4374   .bind('mousedown', function (e) {
4375    handleVolumeMove(e);
4376    t.globalBind('mousemove.vol', function (e) {
4377     handleVolumeMove(e);
4378    });
4379    t.globalBind('mouseup.vol', function () {
4380     mouseIsDown = false;
4381     t.globalUnbind('.vol');
4382     if (!mouseIsOver && mode == 'vertical') {
4383      volumeSlider.hide();
4384     }
4385    });
4386    mouseIsDown = true;
4387    return false;
4388   })
4389   .bind('keydown', function (e) {
4390    var keyCode = e.keyCode;
4391    var volume = media.volume;
4392    switch (keyCode) {
4393     case 38: // Up
4394      volume = Math.min(volume + 0.1, 1);
4395      break;
4396     case 40: // Down
4397      volume = Math.max(0, volume - 0.1);
4398      break;
4399     default:
4400      return true;
4401    }
4402    mouseIsDown = false;
4403    positionVolumeHandle(volume);
4404    media.setVolume(volume);
4405    return false;
4406   });
4407   // MUTE button
4408   mute.find('button').click(function () {
4409    media.setMuted(!media.muted);
4410   });
4411   //Keyboard input
4412   mute.find('button').bind('focus', function () {
4413    volumeSlider.show();
4414   });
4415   // listen for volume change events from other sources
4416   media.addEventListener('volumechange', function (e) {
4417    if (!mouseIsDown) {
4418     if (media.muted) {
4419      positionVolumeHandle(0);
4420      mute.removeClass('mejs-mute').addClass('mejs-unmute');
4421     } else {
4422      positionVolumeHandle(media.volume);
4423      mute.removeClass('mejs-unmute').addClass('mejs-mute');
4424     }
4425    }
4426    updateVolumeSlider(e);
4427   }, false);
4428   // mutes the media and sets the volume icon muted if the initial volume is set to 0
4429   if (player.options.startVolume === 0) {
4430    media.setMuted(true);
4431   }
4432   // shim gets the startvolume as a parameter, but we have to set it on the native <video> and <audio> elements
4433   if (media.pluginType === 'native') {
4434    media.setVolume(player.options.startVolume);
4435   }
4436   t.container.on('controlsresize', function () {
4437    if (media.muted) {
4438     positionVolumeHandle(0);
4439     mute.removeClass('mejs-mute').addClass('mejs-unmute');
4440    } else {
4441     positionVolumeHandle(media.volume);
4442     mute.removeClass('mejs-unmute').addClass('mejs-mute');
4443    }
4444   });
4445  }
4446 });
4447})(mejs.$);
4448(function($) {
4449 $.extend(mejs.MepDefaults, {
4450  usePluginFullScreen: true,
4451  newWindowCallback: function() { return '';},
4452  fullscreenText: ''
4453 });
4454 $.extend(MediaElementPlayer.prototype, {
4455  isFullScreen: false,
4456  isNativeFullScreen: false,
4457  isInIframe: false,
4458      
4459  // Possible modes
4460  // (1) 'native-native'  HTML5 video  + browser fullscreen (IE10+, etc.)
4461  // (2) 'plugin-native'  plugin video + browser fullscreen (fails in some versions of Firefox)
4462  // (3) 'fullwindow'  Full window (retains all UI)
4463  // usePluginFullScreen = true
4464  // (4) 'plugin-click'  Flash 1 - click through with pointer events
4465  // (5) 'plugin-hover'  Flash 2 - hover popup in flash (IE6-8) 
4466  fullscreenMode: '',
4467  buildfullscreen: function(player, controls, layers, media) {
4468   if (!player.isVideo)
4469    return;
4470   
4471   player.isInIframe = (window.location != window.parent.location);
4472 
4473   // detect on start
4474   media.addEventListener('loadstart', function() { player.detectFullscreenMode(); });
4475   
4476   // build button
4477   var t = this,
4478    hideTimeout = null,
4479    fullscreenTitle = t.options.fullscreenText ? t.options.fullscreenText : mejs.i18n.t('mejs.fullscreen'),
4480    fullscreenBtn =
4481     $('<div class="mejs-button mejs-fullscreen-button">' +
4482      '<button type="button" aria-controls="' + t.id + '" title="' + fullscreenTitle + '" aria-label="' + fullscreenTitle + '"></button>' +
4483     '</div>')
4484     .appendTo(controls)
4485     .on('click', function() {
4486     
4487      // toggle fullscreen
4488      var isFullScreen = (mejs.MediaFeatures.hasTrueNativeFullScreen && mejs.MediaFeatures.isFullScreen()) || player.isFullScreen;
4489      if (isFullScreen) {
4490       player.exitFullScreen();
4491      } else {
4492       player.enterFullScreen();
4493      }
4494     })         
4495     .on('mouseover', function() {
4496     
4497      // very old browsers with a plugin
4498      if (t.fullscreenMode == 'plugin-hover') {     
4499       if (hideTimeout !== null) {
4500        clearTimeout(hideTimeout);
4501        delete hideTimeout;
4502       }
4503       var buttonPos = fullscreenBtn.offset(),
4504        containerPos = player.container.offset();
4505       media.positionFullscreenButton(buttonPos.left - containerPos.left, buttonPos.top - containerPos.top, true);
4506      }
4507     })
4508     .on('mouseout', function() {
4509      if (t.fullscreenMode == 'plugin-hover') {     
4510       if (hideTimeout !== null) {
4511        clearTimeout(hideTimeout);
4512        delete hideTimeout;
4513       }
4514       hideTimeout = setTimeout(function() {
4515        media.hideFullscreenButton();
4516       }, 1500);
4517      }
4518     });
4519    
4520   player.fullscreenBtn = fullscreenBtn;
4521   t.globalBind('keydown',function (e) {
4522    if (e.keyCode == 27 && ((mejs.MediaFeatures.hasTrueNativeFullScreen && mejs.MediaFeatures.isFullScreen()) || t.isFullScreen)) {
4523     player.exitFullScreen();
4524    }
4525   });
4526  
4527   t.normalHeight = 0;
4528   t.normalWidth = 0;    
4529    
4530   // setup native fullscreen event
4531   if (mejs.MediaFeatures.hasTrueNativeFullScreen) {
4532    // chrome doesn't alays fire this in an iframe
4533    var fullscreenChanged = function(e) {
4534     if (player.isFullScreen) {
4535      if (mejs.MediaFeatures.isFullScreen()) {
4536       player.isNativeFullScreen = true;
4537       // reset the controls once we are fully in full screen
4538       player.setControlsSize();
4539      } else {
4540       player.isNativeFullScreen = false;
4541       // when a user presses ESC
4542       // make sure to put the player back into place
4543       player.exitFullScreen();
4544      }
4545     }
4546    };
4547    player.globalBind(mejs.MediaFeatures.fullScreenEventName, fullscreenChanged);
4548   }
4549  },
4550 
4551  detectFullscreenMode: function() {
4552  
4553   var t = this,
4554    mode = '',
4555    features = mejs.MediaFeatures;
4556  
4557   if (features.hasTrueNativeFullScreen && t.media.pluginType === 'native') {
4558    mode = 'native-native';
4559   } else if (features.hasTrueNativeFullScreen && t.media.pluginType !== 'native' && !features.hasFirefoxPluginMovingProblem) {
4560    mode = 'plugin-native';    
4561   } else if (t.usePluginFullScreen) {
4562    if (mejs.MediaFeatures.supportsPointerEvents) {
4563     mode = 'plugin-click';
4564     // this needs some special setup
4565     t.createPluginClickThrough();   
4566    } else {
4567     mode = 'plugin-hover';
4568    }
4569   
4570   } else {
4571    mode = 'fullwindow';
4572   }
4573  
4574  
4575   t.fullscreenMode = mode; 
4576   return mode;
4577  },
4578 
4579  isPluginClickThroughCreated: false,
4580 
4581  createPluginClickThrough: function() {
4582   
4583   var t = this;
4584  
4585   // don't build twice
4586   if (t.isPluginClickThroughCreated) {
4587    return;
4588   }
4589   // allows clicking through the fullscreen button and controls down directly to Flash
4590   /*
4591    When a user puts his mouse over the fullscreen button, we disable the controls so that mouse events can go down to flash (pointer-events)
4592    We then put a divs over the video and on either side of the fullscreen button
4593    to capture mouse movement and restore the controls once the mouse moves outside of the fullscreen button
4594   */
4595   var fullscreenIsDisabled = false,
4596    restoreControls = function() {
4597     if (fullscreenIsDisabled) {
4598      // hide the hovers
4599      for (var i in hoverDivs) {
4600       hoverDivs[i].hide();
4601      }
4602      // restore the control bar
4603      t.fullscreenBtn.css('pointer-events', '');
4604      t.controls.css('pointer-events', '');
4605      // prevent clicks from pausing video
4606      t.media.removeEventListener('click', t.clickToPlayPauseCallback);
4607      // store for later
4608      fullscreenIsDisabled = false;
4609     }
4610    },
4611    hoverDivs = {},
4612    hoverDivNames = ['top', 'left', 'right', 'bottom'],
4613    i, len,
4614    positionHoverDivs = function() {
4615     var fullScreenBtnOffsetLeft = fullscreenBtn.offset().left - t.container.offset().left,
4616      fullScreenBtnOffsetTop = fullscreenBtn.offset().top - t.container.offset().top,
4617      fullScreenBtnWidth = fullscreenBtn.outerWidth(true),
4618      fullScreenBtnHeight = fullscreenBtn.outerHeight(true),
4619      containerWidth = t.container.width(),
4620      containerHeight = t.container.height();
4621     for (i in hoverDivs) {
4622      hoverDivs[i].css({position: 'absolute', top: 0, left: 0}); //, backgroundColor: '#f00'});
4623     }
4624     // over video, but not controls
4625     hoverDivs['top']
4626      .width( containerWidth )
4627      .height( fullScreenBtnOffsetTop );
4628     // over controls, but not the fullscreen button
4629     hoverDivs['left']
4630      .width( fullScreenBtnOffsetLeft )
4631      .height( fullScreenBtnHeight )
4632      .css({top: fullScreenBtnOffsetTop});
4633     // after the fullscreen button
4634     hoverDivs['right']
4635      .width( containerWidth - fullScreenBtnOffsetLeft - fullScreenBtnWidth )
4636      .height( fullScreenBtnHeight )
4637      .css({top: fullScreenBtnOffsetTop,
4638        left: fullScreenBtnOffsetLeft + fullScreenBtnWidth});
4639     // under the fullscreen button
4640     hoverDivs['bottom']
4641      .width( containerWidth )
4642      .height( containerHeight - fullScreenBtnHeight - fullScreenBtnOffsetTop )
4643      .css({top: fullScreenBtnOffsetTop + fullScreenBtnHeight});
4644    };
4645   t.globalBind('resize', function() {
4646    positionHoverDivs();
4647   });
4648   for (i = 0, len = hoverDivNames.length; i < len; i++) {
4649    hoverDivs[hoverDivNames[i]] = $('<div class="mejs-fullscreen-hover" />').appendTo(t.container).mouseover(restoreControls).hide();
4650   }
4651   // on hover, kill the fullscreen button's HTML handling, allowing clicks down to Flash
4652   fullscreenBtn.on('mouseover',function() {
4653    if (!t.isFullScreen) {
4654     var buttonPos = fullscreenBtn.offset(),
4655      containerPos = player.container.offset();
4656     // move the button in Flash into place
4657     media.positionFullscreenButton(buttonPos.left - containerPos.left, buttonPos.top - containerPos.top, false);
4658     // allows click through
4659     t.fullscreenBtn.css('pointer-events', 'none');
4660     t.controls.css('pointer-events', 'none');
4661     // restore click-to-play
4662     t.media.addEventListener('click', t.clickToPlayPauseCallback);
4663     // show the divs that will restore things
4664     for (i in hoverDivs) {
4665      hoverDivs[i].show();
4666     }
4667     positionHoverDivs();
4668     fullscreenIsDisabled = true;
4669    }
4670   });
4671   // restore controls anytime the user enters or leaves fullscreen
4672   media.addEventListener('fullscreenchange', function(e) {
4673    t.isFullScreen = !t.isFullScreen;
4674    // don't allow plugin click to pause video - messes with
4675    // plugin's controls
4676    if (t.isFullScreen) {
4677     t.media.removeEventListener('click', t.clickToPlayPauseCallback);
4678    } else {
4679     t.media.addEventListener('click', t.clickToPlayPauseCallback);
4680    }
4681    restoreControls();
4682   });
4683   // the mouseout event doesn't work on the fullscren button, because we already killed the pointer-events
4684   // so we use the document.mousemove event to restore controls when the mouse moves outside the fullscreen button
4685   t.globalBind('mousemove', function(e) {
4686    // if the mouse is anywhere but the fullsceen button, then restore it all
4687    if (fullscreenIsDisabled) {
4688     var fullscreenBtnPos = fullscreenBtn.offset();
4689     if (e.pageY < fullscreenBtnPos.top || e.pageY > fullscreenBtnPos.top + fullscreenBtn.outerHeight(true) ||
4690      e.pageX < fullscreenBtnPos.left || e.pageX > fullscreenBtnPos.left + fullscreenBtn.outerWidth(true)
4691      ) {
4692      fullscreenBtn.css('pointer-events', '');
4693      t.controls.css('pointer-events', '');
4694      fullscreenIsDisabled = false;
4695     }
4696    }
4697   });
4698   t.isPluginClickThroughCreated = true;
4699  }, 
4700  cleanfullscreen: function(player) {
4701   player.exitFullScreen();
4702  },
4703        containerSizeTimeout: null,
4704  enterFullScreen: function() {
4705   var t = this;
4706   if (mejs.MediaFeatures.isiOS && mejs.MediaFeatures.hasiOSFullScreen && typeof t.media.webkitEnterFullscreen === 'function') {
4707       t.media.webkitEnterFullscreen();
4708    return;
4709   }
4710   // set it to not show scroll bars so 100% will work
4711            $(document.documentElement).addClass('mejs-fullscreen');
4712   // store sizing
4713   t.normalHeight = t.container.height();
4714   t.normalWidth = t.container.width();
4715   // attempt to do true fullscreen
4716   if (t.fullscreenMode === 'native-native' || t.fullscreenMode === 'plugin-native') {
4717    mejs.MediaFeatures.requestFullScreen(t.container[0]);
4718    //return;
4719    if (t.isInIframe) {
4720     // sometimes exiting from fullscreen doesn't work
4721     // notably in Chrome <iframe>. Fixed in version 17
4722     setTimeout(function checkFullscreen() {
4723      if (t.isNativeFullScreen) {
4724       var percentErrorMargin = 0.002, // 0.2%
4725        windowWidth = $(window).width(),
4726        screenWidth = screen.width,
4727        absDiff = Math.abs(screenWidth - windowWidth),
4728        marginError = screenWidth * percentErrorMargin;
4729       // check if the video is suddenly not really fullscreen
4730       if (absDiff > marginError) {
4731        // manually exit
4732        t.exitFullScreen();
4733       } else {
4734        // test again
4735        setTimeout(checkFullscreen, 500);
4736       }
4737      }
4738     
4739     }, 1000);
4740    }
4741   
4742   } else if (t.fullscreeMode == 'fullwindow') {   
4743    // move into position
4744   
4745   }  
4746  
4747   // make full size
4748   t.container
4749    .addClass('mejs-container-fullscreen')
4750    .width('100%')
4751    .height('100%');
4752    //.css({position: 'fixed', left: 0, top: 0, right: 0, bottom: 0, overflow: 'hidden', width: '100%', height: '100%', 'z-index': 1000});
4753   // Only needed for safari 5.1 native full screen, can cause display issues elsewhere
4754   // Actually, it seems to be needed for IE8, too
4755   //if (mejs.MediaFeatures.hasTrueNativeFullScreen) {
4756    t.containerSizeTimeout = setTimeout(function() {
4757     t.container.css({width: '100%', height: '100%'});
4758     t.setControlsSize();
4759    }, 500);
4760   //}
4761   if (t.media.pluginType === 'native') {
4762    t.$media
4763     .width('100%')
4764     .height('100%');
4765   } else {
4766    t.container.find('.mejs-shim')
4767     .width('100%')
4768     .height('100%');
4769   
4770    setTimeout(function() {
4771     var win = $(window),
4772      winW = win.width(),
4773      winH = win.height();
4774      
4775     t.media.setVideoSize(winW,winH);  
4776    }, 500);
4777   }
4778   t.layers.children('div')
4779    .width('100%')
4780    .height('100%');
4781   if (t.fullscreenBtn) {
4782    t.fullscreenBtn
4783     .removeClass('mejs-fullscreen')
4784     .addClass('mejs-unfullscreen');
4785   }
4786   t.setControlsSize();
4787   t.isFullScreen = true;
4788   var zoomFactor = Math.min(screen.width / t.width, screen.height / t.height);
4789   t.container.find('.mejs-captions-text').css('font-size', zoomFactor * 100 + '%');
4790   t.container.find('.mejs-captions-text').css('line-height', 'normal');
4791   t.container.find('.mejs-captions-position').css('bottom', '45px');
4792   t.container.trigger('enteredfullscreen');
4793  },
4794  exitFullScreen: function() {
4795   var t = this;
4796            // Prevent container from attempting to stretch a second time
4797            clearTimeout(t.containerSizeTimeout);
4798   // firefox can't adjust plugins
4799   /*
4800   if (t.media.pluginType !== 'native' && mejs.MediaFeatures.isFirefox) {
4801    t.media.setFullscreen(false);
4802    //player.isFullScreen = false;
4803    return;
4804   }
4805   */
4806   // come out of native fullscreen
4807   if (mejs.MediaFeatures.hasTrueNativeFullScreen && (mejs.MediaFeatures.isFullScreen() || t.isFullScreen)) {
4808    mejs.MediaFeatures.cancelFullScreen();
4809   }
4810   // restore scroll bars to document
4811            $(document.documentElement).removeClass('mejs-fullscreen');
4812   t.container
4813    .removeClass('mejs-container-fullscreen')
4814    .width(t.normalWidth)
4815    .height(t.normalHeight);
4816   if (t.media.pluginType === 'native') {
4817    t.$media
4818     .width(t.normalWidth)
4819     .height(t.normalHeight);
4820   } else {
4821    t.container.find('.mejs-shim')
4822     .width(t.normalWidth)
4823     .height(t.normalHeight);
4824    t.media.setVideoSize(t.normalWidth, t.normalHeight);
4825   }
4826   t.layers.children('div')
4827    .width(t.normalWidth)
4828    .height(t.normalHeight);
4829   t.fullscreenBtn
4830    .removeClass('mejs-unfullscreen')
4831    .addClass('mejs-fullscreen');
4832   t.setControlsSize();
4833   t.isFullScreen = false;
4834   t.container.find('.mejs-captions-text').css('font-size','');
4835   t.container.find('.mejs-captions-text').css('line-height', '');
4836   t.container.find('.mejs-captions-position').css('bottom', '');
4837   t.container.trigger('exitedfullscreen');
4838  }
4839 });
4840})(mejs.$);
4841(function($) {
4842 // Speed
4843 $.extend(mejs.MepDefaults, {
4844  // We also support to pass object like this:
4845  // [{name: 'Slow', value: '0.75'}, {name: 'Normal', value: '1.00'}, ...]
4846  speeds: ['2.00', '1.50', '1.25', '1.00', '0.75'],
4847  defaultSpeed: '1.00',
4848 
4849  speedChar: 'x'
4850 });
4851 $.extend(MediaElementPlayer.prototype, {
4852  buildspeed: function(player, controls, layers, media) {
4853   var t = this;
4854   if (t.media.pluginType == 'native') {
4855    var
4856     speedButton = null,
4857     speedSelector = null,
4858     playbackSpeed = null,
4859     inputId = null;
4860    var speeds = [];
4861    var defaultInArray = false;
4862    for (var i=0, len=t.options.speeds.length; i < len; i++) {
4863     var s = t.options.speeds[i];
4864     if (typeof(s) === 'string'){
4865      speeds.push({
4866       name: s + t.options.speedChar,
4867       value: s
4868      });
4869      if(s === t.options.defaultSpeed) {
4870       defaultInArray = true;
4871      }
4872     }
4873     else {
4874      speeds.push(s);
4875      if(s.value === t.options.defaultSpeed) {
4876       defaultInArray = true;
4877      }
4878     }
4879    }
4880    if (!defaultInArray) {
4881     speeds.push({
4882      name: t.options.defaultSpeed + t.options.speedChar,
4883      value: t.options.defaultSpeed
4884     });
4885    }
4886    speeds.sort(function(a, b) {
4887     return parseFloat(b.value) - parseFloat(a.value);
4888    });
4889    var getSpeedNameFromValue = function(value) {
4890     for(i=0,len=speeds.length; i <len; i++) {
4891      if (speeds[i].value === value) {
4892       return speeds[i].name;
4893      }
4894     }
4895    };
4896    var html = '<div class="mejs-button mejs-speed-button">' +
4897       '<button type="button">' + getSpeedNameFromValue(t.options.defaultSpeed) + '</button>' +
4898       '<div class="mejs-speed-selector">' +
4899       '<ul>';
4900    for (i = 0, il = speeds.length; i<il; i++) {
4901     inputId = t.id + '-speed-' + speeds[i].value;
4902     html += '<li>' +
4903        '<input type="radio" name="speed" ' +
4904           'value="' + speeds[i].value + '" ' +
4905           'id="' + inputId + '" ' +
4906           (speeds[i].value === t.options.defaultSpeed ? ' checked' : '') +
4907           ' />' +
4908        '<label for="' + inputId + '" ' +
4909           (speeds[i].value === t.options.defaultSpeed ? ' class="mejs-speed-selected"' : '') +
4910           '>' + speeds[i].name + '</label>' +
4911       '</li>';
4912    }
4913    html += '</ul></div></div>';
4914    speedButton = $(html).appendTo(controls);
4915    speedSelector = speedButton.find('.mejs-speed-selector');
4916    playbackSpeed = t.options.defaultSpeed;
4917    media.addEventListener('loadedmetadata', function(e) {
4918     if (playbackSpeed) {
4919      media.playbackRate = parseFloat(playbackSpeed);
4920     }
4921    }, true);
4922    speedSelector
4923     .on('click', 'input[type="radio"]', function() {
4924      var newSpeed = $(this).attr('value');
4925      playbackSpeed = newSpeed;
4926      media.playbackRate = parseFloat(newSpeed);
4927      speedButton.find('button').html(getSpeedNameFromValue(newSpeed));
4928      speedButton.find('.mejs-speed-selected').removeClass('mejs-speed-selected');
4929      speedButton.find('input[type="radio"]:checked').next().addClass('mejs-speed-selected');
4930     });
4931    speedButton
4932     .one( 'mouseenter focusin', function() {
4933      speedSelector
4934       .height(
4935        speedButton.find('.mejs-speed-selector ul').outerHeight(true) +
4936        speedButton.find('.mejs-speed-translations').outerHeight(true))
4937       .css('top', (-1 * speedSelector.height()) + 'px');
4938     });
4939   }
4940  }
4941 });
4942})(mejs.$);
4943(function($) {
4944 // add extra default options
4945 $.extend(mejs.MepDefaults, {
4946  // this will automatically turn on a <track>
4947  startLanguage: '',
4948  tracksText: '',
4949  // By default, no WAI-ARIA live region - don't make a
4950  // screen reader speak captions over an audio track.
4951  tracksAriaLive: false,
4952  // option to remove the [cc] button when no <track kind="subtitles"> are present
4953  hideCaptionsButtonWhenEmpty: true,
4954  // If true and we only have one track, change captions to popup
4955  toggleCaptionsButtonWhenOnlyOne: false,
4956  // #id or .class
4957  slidesSelector: ''
4958 });
4959 $.extend(MediaElementPlayer.prototype, {
4960  hasChapters: false,
4961  cleartracks: function(player, controls, layers, media){
4962   if(player) {
4963    if(player.captions) player.captions.remove();
4964    if(player.chapters) player.chapters.remove();
4965    if(player.captionsText) player.captionsText.remove();
4966    if(player.captionsButton) player.captionsButton.remove();
4967   }
4968  },
4969  buildtracks: function(player, controls, layers, media) {
4970   if (player.tracks.length === 0)
4971    return;
4972   var t = this,
4973    attr = t.options.tracksAriaLive ?
4974     'role="log" aria-live="assertive" aria-atomic="false"' : '',
4975    tracksTitle = t.options.tracksText ? t.options.tracksText : mejs.i18n.t('mejs.captions-subtitles'),
4976    i,
4977    kind;
4978   if (t.domNode.textTracks) { // if browser will do native captions, prefer mejs captions, loop through tracks and hide
4979    for (i = t.domNode.textTracks.length - 1; i >= 0; i--) {
4980     t.domNode.textTracks[i].mode = "hidden";
4981    }
4982   }
4983   t.cleartracks(player, controls, layers, media);
4984   player.chapters =
4985     $('<div class="mejs-chapters mejs-layer"></div>')
4986      .prependTo(layers).hide();
4987   player.captions =
4988     $('<div class="mejs-captions-layer mejs-layer"><div class="mejs-captions-position mejs-captions-position-hover" ' +
4989     attr + '><span class="mejs-captions-text"></span></div></div>')
4990      .prependTo(layers).hide();
4991   player.captionsText = player.captions.find('.mejs-captions-text');
4992   player.captionsButton =
4993     $('<div class="mejs-button mejs-captions-button">'+
4994      '<button type="button" aria-controls="' + t.id + '" title="' + tracksTitle + '" aria-label="' + tracksTitle + '"></button>'+
4995      '<div class="mejs-captions-selector">'+
4996       '<ul>'+
4997        '<li>'+
4998         '<input type="radio" name="' + player.id + '_captions" id="' + player.id + '_captions_none" value="none" checked="checked" />' +
4999         '<label for="' + player.id + '_captions_none">' + mejs.i18n.t('mejs.none') +'</label>'+
5000        '</li>' +
5001       '</ul>'+
5002      '</div>'+
5003     '</div>')
5004      .appendTo(controls);
5005   var subtitleCount = 0;
5006   for (i=0; i<player.tracks.length; i++) {
5007    kind = player.tracks[i].kind;
5008    if (kind === 'subtitles' || kind === 'captions') {
5009     subtitleCount++;
5010    }
5011   }
5012   // if only one language then just make the button a toggle
5013   if (t.options.toggleCaptionsButtonWhenOnlyOne && subtitleCount == 1){
5014    // click
5015    player.captionsButton.on('click',function() {
5016     if (player.selectedTrack === null) {
5017      lang = player.tracks[0].srclang;
5018     } else {
5019      lang = 'none';
5020     }
5021     player.setTrack(lang);
5022    });
5023   } else {
5024    // hover or keyboard focus
5025    player.captionsButton.on( 'mouseenter focusin', function() {
5026     $(this).find('.mejs-captions-selector').removeClass('mejs-offscreen');
5027    })
5028    // handle clicks to the language radio buttons
5029    .on('click','input[type=radio]',function() {
5030     lang = this.value;
5031     player.setTrack(lang);
5032    });
5033    player.captionsButton.on( 'mouseleave focusout', function() {
5034     $(this).find(".mejs-captions-selector").addClass("mejs-offscreen");
5035    });
5036   }
5037   if (!player.options.alwaysShowControls) {
5038    // move with controls
5039    player.container
5040     .bind('controlsshown', function () {
5041      // push captions above controls
5042      player.container.find('.mejs-captions-position').addClass('mejs-captions-position-hover');
5043     })
5044     .bind('controlshidden', function () {
5045      if (!media.paused) {
5046       // move back to normal place
5047       player.container.find('.mejs-captions-position').removeClass('mejs-captions-position-hover');
5048      }
5049     });
5050   } else {
5051    player.container.find('.mejs-captions-position').addClass('mejs-captions-position-hover');
5052   }
5053   player.trackToLoad = -1;
5054   player.selectedTrack = null;
5055   player.isLoadingTrack = false;
5056   // add to list
5057   for (i=0; i<player.tracks.length; i++) {
5058    kind = player.tracks[i].kind;
5059    if (kind === 'subtitles' || kind === 'captions') {
5060     player.addTrackButton(player.tracks[i].srclang, player.tracks[i].label);
5061    }
5062   }
5063   // start loading tracks
5064   player.loadNextTrack();
5065   media.addEventListener('timeupdate',function() {
5066    player.displayCaptions();
5067   }, false);
5068   if (player.options.slidesSelector !== '') {
5069    player.slidesContainer = $(player.options.slidesSelector);
5070    media.addEventListener('timeupdate',function() {
5071     player.displaySlides();
5072    }, false);
5073   }
5074   media.addEventListener('loadedmetadata', function() {
5075    player.displayChapters();
5076   }, false);
5077   player.container.hover(
5078    function () {
5079     // chapters
5080     if (player.hasChapters) {
5081      player.chapters.removeClass('mejs-offscreen');
5082      player.chapters.fadeIn(200).height(player.chapters.find('.mejs-chapter').outerHeight());
5083     }
5084    },
5085    function () {
5086     if (player.hasChapters && !media.paused) {
5087      player.chapters.fadeOut(200, function() {
5088       $(this).addClass('mejs-offscreen');
5089       $(this).css('display','block');
5090      });
5091     }
5092    });
5093   t.container.on('controlsresize', function() {
5094    t.adjustLanguageBox();
5095   });
5096   // check for autoplay
5097   if (player.node.getAttribute('autoplay') !== null) {
5098    player.chapters.addClass('mejs-offscreen');
5099   }
5100  },
5101  setTrack: function(lang){
5102   var t = this,
5103    i;
5104   if (lang == 'none') {
5105    t.selectedTrack = null;
5106    t.captionsButton.removeClass('mejs-captions-enabled');
5107   } else {
5108    for (i=0; i<t.tracks.length; i++) {
5109     if (t.tracks[i].srclang == lang) {
5110      if (t.selectedTrack === null)
5111       t.captionsButton.addClass('mejs-captions-enabled');
5112      t.selectedTrack = t.tracks[i];
5113      t.captions.attr('lang', t.selectedTrack.srclang);
5114      t.displayCaptions();
5115      break;
5116     }
5117    }
5118   }
5119  },
5120  loadNextTrack: function() {
5121   var t = this;
5122   t.trackToLoad++;
5123   if (t.trackToLoad < t.tracks.length) {
5124    t.isLoadingTrack = true;
5125    t.loadTrack(t.trackToLoad);
5126   } else {
5127    // add done?
5128    t.isLoadingTrack = false;
5129    t.checkForTracks();
5130   }
5131  },
5132  loadTrack: function(index){
5133   var
5134    t = this,
5135    track = t.tracks[index],
5136    after = function() {
5137     track.isLoaded = true;
5138     t.enableTrackButton(track.srclang, track.label);
5139     t.loadNextTrack();
5140    };
5141   if (track.src !== undefined || track.src !== "") {
5142    $.ajax({
5143     url: track.src,
5144     dataType: "text",
5145     success: function(d) {
5146      // parse the loaded file
5147      if (typeof d == "string" && (/<tt\s+xml/ig).exec(d)) {
5148       track.entries = mejs.TrackFormatParser.dfxp.parse(d);
5149      } else {
5150       track.entries = mejs.TrackFormatParser.webvtt.parse(d);
5151      }
5152      after();
5153      if (track.kind == 'chapters') {
5154       t.media.addEventListener('play', function() {
5155        if (t.media.duration > 0) {
5156         t.displayChapters(track);
5157        }
5158       }, false);
5159      }
5160      if (track.kind == 'slides') {
5161       t.setupSlides(track);
5162      }
5163     },
5164     error: function() {
5165      t.removeTrackButton(track.srclang);
5166      t.loadNextTrack();
5167     }
5168    });
5169   }
5170  },
5171  enableTrackButton: function(lang, label) {
5172   var t = this;
5173   if (label === '') {
5174    label = mejs.language.codes[lang] || lang;
5175   }
5176   t.captionsButton
5177    .find('input[value=' + lang + ']')
5178     .prop('disabled',false)
5179    .siblings('label')
5180     .html( label );
5181   // auto select
5182   if (t.options.startLanguage == lang) {
5183    $('#' + t.id + '_captions_' + lang).prop('checked', true).trigger('click');
5184   }
5185   t.adjustLanguageBox();
5186  },
5187  removeTrackButton: function(lang) {
5188   var t = this;
5189   t.captionsButton.find('input[value=' + lang + ']').closest('li').remove();
5190   t.adjustLanguageBox();
5191  },
5192  addTrackButton: function(lang, label) {
5193   var t = this;
5194   if (label === '') {
5195    label = mejs.language.codes[lang] || lang;
5196   }
5197   t.captionsButton.find('ul').append(
5198    $('<li>'+
5199     '<input type="radio" name="' + t.id + '_captions" id="' + t.id + '_captions_' + lang + '" value="' + lang + '" disabled="disabled" />' +
5200     '<label for="' + t.id + '_captions_' + lang + '">' + label + ' (loading)' + '</label>'+
5201    '</li>')
5202   );
5203   t.adjustLanguageBox();
5204   // remove this from the dropdownlist (if it exists)
5205   t.container.find('.mejs-captions-translations option[value=' + lang + ']').remove();
5206  },
5207  adjustLanguageBox:function() {
5208   var t = this;
5209   // adjust the size of the outer box
5210   t.captionsButton.find('.mejs-captions-selector').height(
5211    t.captionsButton.find('.mejs-captions-selector ul').outerHeight(true) +
5212    t.captionsButton.find('.mejs-captions-translations').outerHeight(true)
5213   );
5214  },
5215  checkForTracks: function() {
5216   var
5217    t = this,
5218    hasSubtitles = false;
5219   // check if any subtitles
5220   if (t.options.hideCaptionsButtonWhenEmpty) {
5221    for (var i=0; i<t.tracks.length; i++) {
5222     var kind = t.tracks[i].kind;
5223     if ((kind === 'subtitles' || kind === 'captions') && t.tracks[i].isLoaded) {
5224      hasSubtitles = true;
5225      break;
5226     }
5227    }
5228    if (!hasSubtitles) {
5229     t.captionsButton.hide();
5230     t.setControlsSize();
5231    }
5232   }
5233  },
5234  displayCaptions: function() {
5235   if (typeof this.tracks == 'undefined')
5236    return;
5237   var
5238    t = this,
5239    i,
5240    track = t.selectedTrack;
5241   if (track !== null && track.isLoaded) {
5242    for (i=0; i<track.entries.times.length; i++) {
5243     if (t.media.currentTime >= track.entries.times[i].start && t.media.currentTime <= track.entries.times[i].stop) {
5244      // Set the line before the timecode as a class so the cue can be targeted if needed
5245      t.captionsText.html(track.entries.text[i]).attr('class', 'mejs-captions-text ' + (track.entries.times[i].identifier || ''));
5246      t.captions.show().height(0);
5247      return; // exit out if one is visible;
5248     }
5249    }
5250    t.captions.hide();
5251   } else {
5252    t.captions.hide();
5253   }
5254  },
5255  setupSlides: function(track) {
5256   var t = this;
5257   t.slides = track;
5258   t.slides.entries.imgs = [t.slides.entries.text.length];
5259   t.showSlide(0);
5260  },
5261  showSlide: function(index) {
5262   if (typeof this.tracks == 'undefined' || typeof this.slidesContainer == 'undefined') {
5263    return;
5264   }
5265   var t = this,
5266    url = t.slides.entries.text[index],
5267    img = t.slides.entries.imgs[index];
5268   if (typeof img == 'undefined' || typeof img.fadeIn == 'undefined') {
5269    t.slides.entries.imgs[index] = img = $('<img src="' + url + '">')
5270      .on('load', function() {
5271       img.appendTo(t.slidesContainer)
5272        .hide()
5273        .fadeIn()
5274        .siblings(':visible')
5275         .fadeOut();
5276      });
5277   } else {
5278    if (!img.is(':visible') && !img.is(':animated')) {
5279     //
5280     img.fadeIn()
5281      .siblings(':visible')
5282       .fadeOut();
5283    }
5284   }
5285  },
5286  displaySlides: function() {
5287   if (typeof this.slides == 'undefined')
5288    return;
5289   var
5290    t = this,
5291    slides = t.slides,
5292    i;
5293   for (i=0; i<slides.entries.times.length; i++) {
5294    if (t.media.currentTime >= slides.entries.times[i].start && t.media.currentTime <= slides.entries.times[i].stop){
5295     t.showSlide(i);
5296     return; // exit out if one is visible;
5297    }
5298   }
5299  },
5300  displayChapters: function() {
5301   var
5302    t = this,
5303    i;
5304   for (i=0; i<t.tracks.length; i++) {
5305    if (t.tracks[i].kind == 'chapters' && t.tracks[i].isLoaded) {
5306     t.drawChapters(t.tracks[i]);
5307     t.hasChapters = true;
5308     break;
5309    }
5310   }
5311  },
5312  drawChapters: function(chapters) {
5313   var
5314    t = this,
5315    i,
5316    dur,
5317    //width,
5318    //left,
5319    percent = 0,
5320    usedPercent = 0;
5321   t.chapters.empty();
5322   for (i=0; i<chapters.entries.times.length; i++) {
5323    dur = chapters.entries.times[i].stop - chapters.entries.times[i].start;
5324    percent = Math.floor(dur / t.media.duration * 100);
5325    if (percent + usedPercent > 100 || // too large
5326     i == chapters.entries.times.length-1 && percent + usedPercent < 100) // not going to fill it in
5327     {
5328     percent = 100 - usedPercent;
5329    }
5330    //width = Math.floor(t.width * dur / t.media.duration);
5331    //left = Math.floor(t.width * chapters.entries.times[i].start / t.media.duration);
5332    //if (left + width > t.width) {
5333    // width = t.width - left;
5334    //}
5335    t.chapters.append( $(
5336     '<div class="mejs-chapter" rel="' + chapters.entries.times[i].start + '" style="left: ' + usedPercent.toString() + '%;width: ' + percent.toString() + '%;">' +
5337      '<div class="mejs-chapter-block' + ((i==chapters.entries.times.length-1) ? ' mejs-chapter-block-last' : '') + '">' +
5338       '<span class="ch-title">' + chapters.entries.text[i] + '</span>' +
5339       '<span class="ch-time">' + mejs.Utility.secondsToTimeCode(chapters.entries.times[i].start, t.options) + '&ndash;' + mejs.Utility.secondsToTimeCode(chapters.entries.times[i].stop, t.options) + '</span>' +
5340      '</div>' +
5341     '</div>'));
5342    usedPercent += percent;
5343   }
5344   t.chapters.find('div.mejs-chapter').click(function() {
5345    t.media.setCurrentTime( parseFloat( $(this).attr('rel') ) );
5346    if (t.media.paused) {
5347     t.media.play();
5348    }
5349   });
5350   t.chapters.show();
5351  }
5352 });
5353 mejs.language = {
5354  codes:  {
5355   af:'Afrikaans',
5356   sq:'Albanian',
5357   ar:'Arabic',
5358   be:'Belarusian',
5359   bg:'Bulgarian',
5360   ca:'Catalan',
5361   zh:'Chinese',
5362   'zh-cn':'Chinese Simplified',
5363   'zh-tw':'Chinese Traditional',
5364   hr:'Croatian',
5365   cs:'Czech',
5366   da:'Danish',
5367   nl:'Dutch',
5368   en:'English',
5369   et:'Estonian',
5370   fl:'Filipino',
5371   fi:'Finnish',
5372   fr:'French',
5373   gl:'Galician',
5374   de:'Deutsch',
5375   el:'Greek',
5376   ht:'Haitian Creole',
5377   iw:'Hebrew',
5378   hi:'Hindi',
5379   hu:'Hungarian',
5380   is:'Icelandic',
5381   id:'Indonesian',
5382   ga:'Irish',
5383   it:'Italian',
5384   ja:'Japanese',
5385   ko:'Korean',
5386   lv:'Latvian',
5387   lt:'Lithuanian',
5388   mk:'Macedonian',
5389   ms:'Malay',
5390   mt:'Maltese',
5391   no:'Norwegian',
5392   fa:'Persian',
5393   pl:'Polish',
5394   pt:'Portuguese',
5395   // 'pt-pt':'Portuguese (Portugal)',
5396   ro:'Romanian',
5397   ru:'Russian',
5398   sr:'Serbian',
5399   sk:'Slovak',
5400   sl:'Slovenian',
5401   es:'Spanish',
5402   sw:'Swahili',
5403   sv:'Swedish',
5404   tl:'Tagalog',
5405   th:'Thai',
5406   tr:'Turkish',
5407   uk:'Ukrainian',
5408   vi:'Vietnamese',
5409   cy:'Welsh',
5410   yi:'Yiddish'
5411  }
5412 };
5413 /*
5414 Parses WebVTT format which should be formatted as
5415 ================================
5416 WEBVTT
5417 1
5418 00:00:01,1 --> 00:00:05,000
5419 A line of text
5420 2
5421 00:01:15,1 --> 00:02:05,000
5422 A second line of text
5423 ===============================
5424 Adapted from: http://www.delphiki.com/html5/playr
5425 */
5426 mejs.TrackFormatParser = {
5427  webvtt: {
5428   pattern_timecode: /^((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/,
5429   parse: function(trackText) {
5430    var
5431     i = 0,
5432     lines = mejs.TrackFormatParser.split2(trackText, /\r?\n/),
5433     entries = {text:[], times:[]},
5434     timecode,
5435     text,
5436     identifier;
5437    for(; i<lines.length; i++) {
5438     timecode = this.pattern_timecode.exec(lines[i]);
5439     if (timecode && i<lines.length) {
5440      if ((i - 1) >= 0 && lines[i - 1] !== '') {
5441       identifier = lines[i - 1];
5442      }
5443      i++;
5444      // grab all the (possibly multi-line) text that follows
5445      text = lines[i];
5446      i++;
5447      while(lines[i] !== '' && i<lines.length){
5448       text = text + '\n' + lines[i];
5449       i++;
5450      }
5451      text = $.trim(text).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "<a href='$1' target='_blank'>$1</a>");
5452      // Text is in a different array so I can use .join
5453      entries.text.push(text);
5454      entries.times.push(
5455      {
5456       identifier: identifier,
5457       start: (mejs.Utility.convertSMPTEtoSeconds(timecode[1]) === 0) ? 0.200 : mejs.Utility.convertSMPTEtoSeconds(timecode[1]),
5458       stop: mejs.Utility.convertSMPTEtoSeconds(timecode[3]),
5459       settings: timecode[5]
5460      });
5461     }
5462     identifier = '';
5463    }
5464    return entries;
5465   }
5466  },
5467  // Thanks to Justin Capella: https://github.com/johndyer/mediaelement/pull/420
5468  dfxp: {
5469   parse: function(trackText) {
5470    trackText = $(trackText).filter("tt");
5471    var
5472     i = 0,
5473     container = trackText.children("div").eq(0),
5474     lines = container.find("p"),
5475     styleNode = trackText.find("#" + container.attr("style")),
5476     styles,
5477     text,
5478     entries = {text:[], times:[]};
5479    if (styleNode.length) {
5480     var attributes = styleNode.removeAttr("id").get(0).attributes;
5481     if (attributes.length) {
5482      styles = {};
5483      for (i = 0; i < attributes.length; i++) {
5484       styles[attributes[i].name.split(":")[1]] = attributes[i].value;
5485      }
5486     }
5487    }
5488    for(i = 0; i<lines.length; i++) {
5489     var style;
5490     var _temp_times = {
5491      start: null,
5492      stop: null,
5493      style: null
5494     };
5495     if (lines.eq(i).attr("begin")) _temp_times.start = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i).attr("begin"));
5496     if (!_temp_times.start && lines.eq(i-1).attr("end")) _temp_times.start = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i-1).attr("end"));
5497     if (lines.eq(i).attr("end")) _temp_times.stop = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i).attr("end"));
5498     if (!_temp_times.stop && lines.eq(i+1).attr("begin")) _temp_times.stop = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i+1).attr("begin"));
5499     if (styles) {
5500      style = "";
5501      for (var _style in styles) {
5502       style += _style + ":" + styles[_style] + ";";
5503      }
5504     }
5505     if (style) _temp_times.style = style;
5506     if (_temp_times.start === 0) _temp_times.start = 0.200;
5507     entries.times.push(_temp_times);
5508     text = $.trim(lines.eq(i).html()).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "<a href='$1' target='_blank'>$1</a>");
5509     entries.text.push(text);
5510    }
5511    return entries;
5512   }
5513  },
5514  split2: function (text, regex) {
5515   // normal version for compliant browsers
5516   // see below for IE fix
5517   return text.split(regex);
5518  }
5519 };
5520 // test for browsers with bad String.split method.
5521 if ('x\n\ny'.split(/\n/gi).length != 3) {
5522  // add super slow IE8 and below version
5523  mejs.TrackFormatParser.split2 = function(text, regex) {
5524   var
5525    parts = [],
5526    chunk = '',
5527    i;
5528   for (i=0; i<text.length; i++) {
5529    chunk += text.substring(i,i+1);
5530    if (regex.test(chunk)) {
5531     parts.push(chunk.replace(regex, ''));
5532     chunk = '';
5533    }
5534   }
5535   parts.push(chunk);
5536   return parts;
5537  };
5538 }
5539})(mejs.$);
5540// Source Chooser Plugin
5541(function($) {
5542 $.extend(mejs.MepDefaults, {
5543  sourcechooserText: ''
5544 });
5545 $.extend(MediaElementPlayer.prototype, {
5546  buildsourcechooser: function(player, controls, layers, media) {
5547   var
5548    t = this,
5549    sourceTitle = t.options.sourcechooserText ? t.options.sourcechooserText : mejs.i18n.t('mejs.source-chooser'),
5550    hoverTimeout
5551   ;
5552   player.sourcechooserButton =
5553    $('<div class="mejs-button mejs-sourcechooser-button">'+
5554      '<button type="button" role="button" aria-haspopup="true" aria-owns="' + t.id + '" title="' + sourceTitle + '" aria-label="' + sourceTitle + '"></button>'+
5555      '<div class="mejs-sourcechooser-selector mejs-offscreen" role="menu" aria-expanded="false" aria-hidden="true">'+
5556       '<ul>'+
5557       '</ul>'+
5558      '</div>'+
5559     '</div>')
5560     .appendTo(controls)
5561     // hover
5562     .hover(function() {
5563      clearTimeout(hoverTimeout);
5564      player.showSourcechooserSelector();
5565     }, function() {
5566      var self = $(this);
5567      hoverTimeout = setTimeout(function () {
5568      player.hideSourcechooserSelector();
5569      }, 500);
5570     })
5571     // keyboard menu activation
5572     .on('keydown', function (e) {
5573      var keyCode = e.keyCode;
5574      switch (keyCode) {
5575       case 32: // space
5576        if (!mejs.MediaFeatures.isFirefox) { // space sends the click event in Firefox
5577         player.showSourcechooserSelector();
5578        }
5579        $(this).find('.mejs-sourcechooser-selector')
5580         .find('input[type=radio]:checked').first().focus();
5581        break;
5582       case 13: // enter
5583        player.showSourcechooserSelector();
5584        $(this).find('.mejs-sourcechooser-selector')
5585         .find('input[type=radio]:checked').first().focus();
5586        break;
5587       case 27: // esc
5588        player.hideSourcechooserSelector();
5589        $(this).find('button').focus();
5590        break;
5591       default:
5592        return true;
5593        }
5594       })
5595     // close menu when tabbing away
5596     .on('focusout', mejs.Utility.debounce(function (e) { // Safari triggers focusout multiple times
5597      // Firefox does NOT support e.relatedTarget to see which element
5598      // just lost focus, so wait to find the next focused element
5599      setTimeout(function () {
5600       var parent = $(document.activeElement).closest('.mejs-sourcechooser-selector');
5601       if (!parent.length) {
5602        // focus is outside the control; close menu
5603        player.hideSourcechooserSelector();
5604       }
5605      }, 0);
5606     }, 100))
5607     // handle clicks to the source radio buttons
5608     .delegate('input[type=radio]', 'click', function() {
5609      // set aria states
5610      $(this).attr('aria-selected', true).attr('checked', 'checked');
5611      $(this).closest('.mejs-sourcechooser-selector').find('input[type=radio]').not(this).attr('aria-selected', 'false').removeAttr('checked');
5612      var src = this.value;
5613      if (media.currentSrc != src) {
5614       var currentTime = media.currentTime;
5615       var paused = media.paused;
5616       media.pause();
5617       media.setSrc(src);
5618       media.addEventListener('loadedmetadata', function(e) {
5619        media.currentTime = currentTime;
5620       }, true);
5621       var canPlayAfterSourceSwitchHandler = function(e) {
5622        if (!paused) {
5623         media.play();
5624        }
5625        media.removeEventListener("canplay", canPlayAfterSourceSwitchHandler, true);
5626       };
5627       media.addEventListener('canplay', canPlayAfterSourceSwitchHandler, true);
5628       media.load();
5629      }
5630     })
5631     // Handle click so that screen readers can toggle the menu
5632     .delegate('button', 'click', function (e) {
5633      if ($(this).siblings('.mejs-sourcechooser-selector').hasClass('mejs-offscreen')) {
5634       player.showSourcechooserSelector();
5635       $(this).siblings('.mejs-sourcechooser-selector').find('input[type=radio]:checked').first().focus();
5636      } else {
5637       player.hideSourcechooserSelector();
5638      }
5639     });
5640   // add to list
5641   for (var i in this.node.children) {
5642    var src = this.node.children[i];
5643    if (src.nodeName === 'SOURCE' && (media.canPlayType(src.type) == 'probably' || media.canPlayType(src.type) == 'maybe')) {
5644     player.addSourceButton(src.src, src.title, src.type, media.src == src.src);
5645    }
5646   }
5647  },
5648  addSourceButton: function(src, label, type, isCurrent) {
5649   var t = this;
5650   if (label === '' || label == undefined) {
5651    label = src;
5652   }
5653   type = type.split('/')[1];
5654   t.sourcechooserButton.find('ul').append(
5655    $('<li>'+
5656      '<input type="radio" name="' + t.id + '_sourcechooser" id="' + t.id + '_sourcechooser_' + label + type + '" role="menuitemradio" value="' + src + '" ' + (isCurrent ? 'checked="checked"' : '') + 'aria-selected="' + isCurrent + '"' + ' />'+
5657      '<label for="' + t.id + '_sourcechooser_' + label + type + '" aria-hidden="true">' + label + ' (' + type + ')</label>'+
5658     '</li>')
5659   );
5660   t.adjustSourcechooserBox();
5661  },
5662  adjustSourcechooserBox: function() {
5663   var t = this;
5664   // adjust the size of the outer box
5665   t.sourcechooserButton.find('.mejs-sourcechooser-selector').height(
5666    t.sourcechooserButton.find('.mejs-sourcechooser-selector ul').outerHeight(true)
5667   );
5668  },
5669  hideSourcechooserSelector: function () {
5670   this.sourcechooserButton.find('.mejs-sourcechooser-selector')
5671    .addClass('mejs-offscreen')
5672    .attr('aria-expanded', 'false')
5673    .attr('aria-hidden', 'true')
5674    .find('input[type=radio]') // make radios not fucusable
5675    .attr('tabindex', '-1');
5676  },
5677  showSourcechooserSelector: function () {
5678   this.sourcechooserButton.find('.mejs-sourcechooser-selector')
5679    .removeClass('mejs-offscreen')
5680    .attr('aria-expanded', 'true')
5681    .attr('aria-hidden', 'false')
5682    .find('input[type=radio]')
5683    .attr('tabindex', '0');
5684  }
5685 });
5686})(mejs.$);
5687/*
5688* ContextMenu Plugin
5689*
5690*
5691*/
5692(function($) {
5693$.extend(mejs.MepDefaults,
5694 { 'contextMenuItems': [
5695  // demo of a fullscreen option
5696  {
5697   render: function(player) {
5698   
5699    // check for fullscreen plugin
5700    if (typeof player.enterFullScreen == 'undefined')
5701     return null;
5702  
5703    if (player.isFullScreen) {
5704     return mejs.i18n.t('mejs.fullscreen-off');
5705    } else {
5706     return mejs.i18n.t('mejs.fullscreen-on');
5707    }
5708   },
5709   click: function(player) {
5710    if (player.isFullScreen) {
5711     player.exitFullScreen();
5712    } else {
5713     player.enterFullScreen();
5714    }
5715   }
5716  }
5717  ,
5718  // demo of a mute/unmute button
5719  {
5720   render: function(player) {
5721    if (player.media.muted) {
5722     return mejs.i18n.t('mejs.unmute');
5723    } else {
5724     return mejs.i18n.t('mejs.mute');
5725    }
5726   },
5727   click: function(player) {
5728    if (player.media.muted) {
5729     player.setMuted(false);
5730    } else {
5731     player.setMuted(true);
5732    }
5733   }
5734  },
5735  // separator
5736  {
5737   isSeparator: true
5738  }
5739  ,
5740  // demo of simple download video
5741  {
5742   render: function(player) {
5743    return mejs.i18n.t('mejs.download-video');
5744   },
5745   click: function(player) {
5746    window.location.href = player.media.currentSrc;
5747   }
5748  }
5749 ]}
5750);
5751 $.extend(MediaElementPlayer.prototype, {
5752  buildcontextmenu: function(player, controls, layers, media) {
5753  
5754   // create context menu
5755   player.contextMenu = $('<div class="mejs-contextmenu"></div>')
5756        .appendTo($('body'))
5757        .hide();
5758  
5759   // create events for showing context menu
5760   player.container.bind('contextmenu', function(e) {
5761    if (player.isContextMenuEnabled) {
5762     e.preventDefault();
5763     player.renderContextMenu(e.clientX-1, e.clientY-1);
5764     return false;
5765    }
5766   });
5767   player.container.bind('click', function() {
5768    player.contextMenu.hide();
5769   });
5770   player.contextMenu.bind('mouseleave', function() {
5771    //
5772    player.startContextMenuTimer();
5773   
5774   }); 
5775  },
5776  cleancontextmenu: function(player) {
5777   player.contextMenu.remove();
5778  },
5779 
5780  isContextMenuEnabled: true,
5781  enableContextMenu: function() {
5782   this.isContextMenuEnabled = true;
5783  },
5784  disableContextMenu: function() {
5785   this.isContextMenuEnabled = false;
5786  },
5787 
5788  contextMenuTimeout: null,
5789  startContextMenuTimer: function() {
5790   //
5791  
5792   var t = this;
5793  
5794   t.killContextMenuTimer();
5795  
5796   t.contextMenuTimer = setTimeout(function() {
5797    t.hideContextMenu();
5798    t.killContextMenuTimer();
5799   }, 750);
5800  },
5801  killContextMenuTimer: function() {
5802   var timer = this.contextMenuTimer;
5803  
5804   //
5805  
5806   if (timer != null) {   
5807    clearTimeout(timer);
5808    delete timer;
5809    timer = null;
5810   }
5811  }, 
5812 
5813  hideContextMenu: function() {
5814   this.contextMenu.hide();
5815  },
5816 
5817  renderContextMenu: function(x,y) {
5818  
5819   // alway re-render the items so that things like "turn fullscreen on" and "turn fullscreen off" are always written correctly
5820   var t = this,
5821    html = '',
5822    items = t.options.contextMenuItems;
5823  
5824   for (var i=0, il=items.length; i<il; i++) {
5825   
5826    if (items[i].isSeparator) {
5827     html += '<div class="mejs-contextmenu-separator"></div>';
5828    } else {
5829   
5830     var rendered = items[i].render(t);
5831   
5832     // render can return null if the item doesn't need to be used at the moment
5833     if (rendered != null) {
5834      html += '<div class="mejs-contextmenu-item" data-itemindex="' + i + '" id="element-' + (Math.random()*1000000) + '">' + rendered + '</div>';
5835     }
5836    }
5837   }
5838  
5839   // position and show the context menu
5840   t.contextMenu
5841    .empty()
5842    .append($(html))
5843    .css({top:y, left:x})
5844    .show();
5845   
5846   // bind events
5847   t.contextMenu.find('.mejs-contextmenu-item').each(function() {
5848      
5849    // which one is this?
5850    var $dom = $(this),
5851     itemIndex = parseInt( $dom.data('itemindex'), 10 ),
5852     item = t.options.contextMenuItems[itemIndex];
5853   
5854    // bind extra functionality?
5855    if (typeof item.show != 'undefined')
5856     item.show( $dom , t);
5857   
5858    // bind click action
5859    $dom.click(function() {  
5860     // perform click action
5861     if (typeof item.click != 'undefined')
5862      item.click(t);
5863    
5864     // close
5865     t.contextMenu.hide();   
5866    });   
5867   });
5868  
5869   // stop the controls from hiding
5870   setTimeout(function() {
5871    t.killControlsTimer('rev3');
5872   }, 100);
5873     
5874  }
5875 });
5876})(mejs.$);
5877(function($) {
5878 // skip back button
5879 $.extend(mejs.MepDefaults, {
5880  skipBackInterval: 30,
5881  // %1 will be replaced with skipBackInterval in this string
5882  skipBackText: ''
5883 });
5884 $.extend(MediaElementPlayer.prototype, {
5885  buildskipback: function(player, controls, layers, media) {
5886   var
5887    t = this,
5888    defaultTitle = mejs.i18n.t('mejs.time-skip-back', t.options.skipBackInterval),
5889    skipTitle = t.options.skipBackText ? t.options.skipBackText : defaultTitle,
5890    // create the loop button
5891    loop =
5892    $('<div class="mejs-button mejs-skip-back-button">' +
5893     '<button type="button" aria-controls="' + t.id + '" title="' + skipTitle + '" aria-label="' + skipTitle + '">' + t.options.skipBackInterval + '</button>' +
5894    '</div>')
5895    // append it to the toolbar
5896    .appendTo(controls)
5897    // add a click toggle event
5898    .click(function() {
5899     media.setCurrentTime(Math.max(media.currentTime - t.options.skipBackInterval, 0));
5900     $(this).find('button').blur();
5901    });
5902  }
5903 });
5904})(mejs.$);
5905/**
5906 * Postroll plugin
5907 */
5908(function($) {
5909 $.extend(mejs.MepDefaults, {
5910  postrollCloseText: ''
5911 });
5912 // Postroll
5913 $.extend(MediaElementPlayer.prototype, {
5914  buildpostroll: function(player, controls, layers, media) {
5915   var
5916    t = this,
5917    postrollTitle = t.options.postrollCloseText ? t.options.postrollCloseText : mejs.i18n.t('mejs.close'),
5918    postrollLink = t.container.find('link[rel="postroll"]').attr('href');
5919   if (typeof postrollLink !== 'undefined') {
5920    player.postroll =
5921     $('<div class="mejs-postroll-layer mejs-layer"><a class="mejs-postroll-close" onclick="$(this).parent().hide();return false;">' + postrollTitle + '</a>
5921<div class="mejs-postroll-layer-content"></div></div>').prependTo(layers).hide();
5922    t.media.addEventListener('ended', function (e) {
5923     $.ajax({
5924      dataType: 'html',
5925      url: postrollLink,
5926      success: function (data, textStatus) {
5927       layers.find('.mejs-postroll-layer-content').html(data);
5928      }
5929     });
5930     player.postroll.show();
5931    }, false);
5932   }
5933  }
5934 });
5935})(mejs.$);
5936/*
5937MediaElement-Markers is a MediaElement.js plugin that lets you add Visual Cues in the progress time rail.
5938This plugin also lets you register a custom callback function that will be called everytime the play position reaches a marker.
5939Marker position and a reference to the MediaElement Player object is passed to the registered callback function for any post processing. Marker color is configurable.
5940*/
5941(function ($) {
5942    // markers
5943    $.extend(mejs.MepDefaults, {
5944        markerColor: '#E9BC3D', //default marker color
5945        markers: [],
5946        markerCallback: function () {
5947        }
5948    });
5949    $.extend(MediaElementPlayer.prototype, {
5950        buildmarkers: function (player, controls, layers, media) {
5951            var t = this,
5952                i = 0,
5953                currentPos = -1,
5954                currentMarker = -1,
5955                lastPlayPos = -1, //Track backward seek
5956                lastMarkerCallBack = -1; //Prevents successive firing of callbacks
5957            for (i = 0; i < player.options.markers.length; ++i) {
5958                controls.find('.mejs-time-total').append('<span class="mejs-time-marker"></span>');
5959            }
5960            media.addEventListener('durationchange', function (e) {
5961                player.setmarkers(controls);
5962            });
5963            media.addEventListener('timeupdate', function (e) {
5964                currentPos = Math.floor(media.currentTime);
5965                if (lastPlayPos > currentPos) {
5966                    if (lastMarkerCallBack > currentPos) {
5967                        lastMarkerCallBack = -1;
5968                    }
5969                } else {
5970                    lastPlayPos = currentPos;
5971                }
5972                for (i = 0; i < player.options.markers.length; ++i) {
5973                    currentMarker = Math.floor(player.options.markers[i]);
5974                    if (currentPos === currentMarker && currentMarker !== lastMarkerCallBack) {
5975                        player.options.markerCallback(media, media.currentTime); //Fires the callback function
5976                        lastMarkerCallBack = currentMarker;
5977                    }
5978                }
5979            }, false);
5980        },
5981        setmarkers: function (controls) {
5982            var t = this,
5983                i = 0,
5984                left;
5985            for (i = 0; i < t.options.markers.length; ++i) {
5986                if (Math.floor(t.options.markers[i]) <= t.media.duration && Math.floor(t.options.markers[i]) >= 0) {
5987                    left = 100 * Math.floor(t.options.markers[i]) / t.media.duration;
5988                    $(controls.find('.mejs-time-marker')[i]).css({
5989                        "width": "1px",
5990                        "left": left+"%",
5991                        "background": t.options.markerColor
5992                    });
5993                }
5994            }
5995        }
5996    });
5997})(mejs.$);
5998   /* Ende mediaelementplayer */
5999   /* Start jquery.socialshareprivacy */
6000   /*!
6001 * --GSBDocStart
6002 * @module jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz
6003 * @version 1.4.1
6004 * @see {@link https://github.com/patrickheck/socialshareprivacy}
6005 * @author Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, 2011
6006 * @license MIT license
6007 * 
6008 * @desc SocialSharePrivacy ist ein jQuery-Plugin, das Ihnen erlaubt, Knöpfe von sozialen Netzwerken mit Schutz der Privatsphäre hinzuzufügen.
6009 * Zu Beginn sind alle Schaltflächen inaktiv, sodass keine Daten an Webseiten übertragen werden. Erst nach einem ersten Klick werden sie aktiviert und der Code der Quelle wird geladen.
6010 *
6011 * @example 
6012 * &lt;head>
6013 *  ....
6014 *   &lt;script type="text/javascript" src="jquery.js"></script> 
6015 *   &lt;script type="text/javascript" src="jquery.socialshareprivacy.js"></script>
6016 *   &lt;script type="text/javascript">
6017 *      jQuery(document).ready(function($){
6018 *        if($('#socialshareprivacy').length > 0){
6019 *          $('#socialshareprivacy').socialSharePrivacy({
6020 *          "css_path"  : "/js/plugins/socialshareprivacy/socialshareprivacy.css",
6021 *          "lang_path" : "/js/plugins/socialshareprivacy/lang/",
6022 *          "language"  : "de"
6023 *            });
6024 *        }
6025 *      });
6026 *     &lt;/script>
6027 *  …
6028 * &lt;/head>
6029 * &lt;body>
6030 * …
6031 * &lt;div id="socialshareprivacy"></div>
6032 * …
6033 *&lt;/body>
6034 *--GSBDocEnd
6035 * 
6036 * https://github.com/patrickheck/socialshareprivacy
6037 * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html
6038 *
6039 * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt
6040 * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de,
6041 *
6042 * Copyright (c) 2011 Tilmann Kuhn
6043 * object-zoo, http://www.object-zoo.net
6044 *
6045 * is released under the MIT License http://www.opensource.org/licenses/mit-license.php
6046 *
6047 * Spread the word, link to us if you can.
6048 */
6049(function($){function abbreviateText(text,length){var abbreviated=decodeURIComponent(text);if(abbreviated.length<=length){return text;}var lastWhitespaceIndex=abbreviated.substring(0,length-1).lastIndexOf(" ");abbreviated=encodeURIComponent(abbreviated.substring(0,lastWhitespaceIndex))+"\u2026";return abbreviated;}function getMeta(name){var metaContent=$('meta[name="'+name+'"]').attr("content");return metaContent||"";}function getTweetText(){var title=getMeta("DC.title");var creator=getMeta("DC.creator");if(title.length>0&&creator.length>0){title+=" - "+creator;}
6049else{title=$("title").text();}return encodeURIComponent(title);}function getURI(){var uri=document.location.href;var canonical=$("link[rel=canonical]").attr("href");if(canonical&&canonical.length>0){if(canonical.indexOf("http")<0){canonical=document.location.protocol+"//"+document.location.host+canonical;}uri=canonical;}return uri;}function cookieSet(name,value,days,path,domain){var expires=new Date();expires.setTime(expires.getTime()+(days*24*60*60*1000));document.cookie=name+"="+value+"; expires="+expires.toUTCString()+"; path="+path+"; domain="+domain;}function cookieDel(name,value,path,domain){var expires=new Date();expires.setTime(expires.getTime()-100);document.cookie=name+"="+value+"; expires="+expires.toUTCString()+"; path="+path+"; domain="+domain;}$.fn.socialSharePrivacy=function(settings){var defaults={"services":{"facebook":{"status":"on","dummy_img":"","txt_info":"2 Klicks f&uuml;r mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k&ouml;nnen Ihre Empfehlung an Facebook senden. Schon beim Aktivieren werden Daten an Dritte &uuml;bertragen &ndash; siehe <em>i</em>.","txt_fb_off":"nicht mit Facebook verbunden","txt_fb_on":"mit Facebook verbunden","perma_option":"on","display_name":"Facebook","referrer_track":"","language":"de_DE","action":"recommend","dummy_caption":"Empfehlen"},"twitter":{"status":"on","dummy_img":"","txt_info":"2 Klicks f&uuml;r mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k&ouml;nnen Ihre Empfehlung an Twitter senden. Schon beim Aktivieren werden Daten an Dritte &uuml;bertragen &ndash; siehe <em>i</em>.","txt_twitter_off":"nicht mit Twitter verbunden","txt_twitter_on":"mit Twitter verbunden","perma_option":"on","display_name":"Twitter","referrer_track":"","tweet_text":getTweetText,"language":"en","dummy_caption":"Tweet"},"gplus":{"status":"on","dummy_img":"","txt_info":"2 Klicks f&uuml;r mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k&ouml;nnen Ihre Empfehlung an Google+ senden. Schon beim Aktivieren werden Daten an Dritte &uuml;bertragen &ndash; siehe <em>i</em>.","txt_gplus_off":"nicht mit Google+ verbunden","txt_gplus_on":"mit Google+ verbunden","perma_option":"on","display_name":"Google+","referrer_track":"","language":"de"}},"info_link":"http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html","txt_help":"Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter oder Google in die USA &uuml;bertragen und unter Umst&auml;nden auch dort gespeichert. N&auml;heres erfahren Sie durch einen Klick auf das <em>i</em>.","settings_perma":"Dauerhaft aktivieren und Daten&uuml;ber&shy;tragung zustimmen:","cookie_path":"/","cookie_domain":document.location.host,"cookie_expires":"365","css_path":"socialshareprivacy/socialshareprivacy.css","uri":getURI};var options=$.extend(true,defaults,settings);var facebook_on=(options.services.facebook.status==="on");var twitter_on=(options.services.twitter.status==="on");var gplus_on=(options.services.gplus.status==="on");if(!facebook_on&&!twitter_on&&!gplus_on){return;}if(options.css_path.length>0){if(document.createStyleSheet){document.createStyleSheet(options.css_path);}else{$("head").append('<link rel="stylesheet" type="text/css" href="'+options.css_path+'" />');}}return this.each(function(){$(this).prepend('<ul class="social_share_privacy_area"></ul>');var context=$(".social_share_privacy_area",this);var uri=options.uri;if(typeof uri==="function"){uri=uri(context);}if(facebook_on){var fb_enc_uri=encodeURIComponent(uri+options.services.facebook.referrer_track);var fb_code='<iframe src="http://www.facebook.com/plugins/like.php?locale='+options.services.facebook.language+"&amp;href="+fb_enc_uri+"&amp;send=false&amp;layout=button_count&amp;width=120&amp;show_faces=false&amp;action="+options.services.facebook.action+'&amp;colorscheme=light&amp;font&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:145px; height:21px;" allowTransparency="true"></iframe>';var fb_dummy_btn;if(options.services.facebook.dummy_img){fb_dummy_btn='<img class="fb_like_privacy_dummy" src="'+options.services.facebook.dummy_img+'" alt="'+options.services.facebook.dummy_caption+'" />';}else{fb_dummy_btn='<div class="fb_like_privacy_dummy"><span>'+options.services.facebook.dummy_caption+"</span></div>";}context.append('<li class="facebook help_info"><span class="info">'+options.services.facebook.txt_info+'</span><span class="switch off">'+options.services.facebook.txt_fb_off+'</span><div class="fb_like dummy_btn">'+fb_dummy_btn+"</div></li>");var $container_fb=$("li.facebook",context);context.on("click","li.facebook div.fb_like .fb_like_privacy_dummy,li.facebook span.switch",function(){if($container_fb.find("span.switch").hasClass("off")){$container_fb.addClass("info_off");$container_fb.find("span.switch").addClass("on").removeClass("off").html(options.services.facebook.txt_fb_on);$container_fb.find(".fb_like_privacy_dummy").replaceWith(fb_code);}else{$container_fb.removeClass("info_off");$container_fb.find("span.switch").addClass("off").removeClass("on").html(options.services.facebook.txt_fb_off);$container_fb.find(".fb_like").html(fb_dummy_btn);}});}if(twitter_on){var text=options.services.twitter.tweet_text;if(typeof text==="function"){text=text();}text=abbreviateText(text,"120");var twitter_enc_uri=encodeURIComponent(uri+options.services.twitter.referrer_track);var twitter_count_url=encodeURIComponent(uri);var twitter_code='<iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://platform.twitter.com/widgets/tweet_button.html?url='+twitter_enc_uri+"&amp;counturl="+twitter_count_url+"&amp;text="+text+"&amp;count=horizontal&amp;lang="+options.services.twitter.language+'" style="width:130px; height:25px;"></iframe>';var twitter_dummy_btn;if(options.services.twitter.dummy_img){twitter_dummy_btn='<img class="tweet_this_dummy" src="'+options.services.twitter.dummy_img+'" alt="'+options.services.twitter.dummy_caption+'" />';}else{twitter_dummy_btn='<div class="tweet_this_dummy"><span>'+options.services.twitter.dummy_caption+"</span></div>";}context.append('<li class="twitter help_info"><span class="info">'+options.services.twitter.txt_info+'</span><span class="switch off">'+options.services.twitter.txt_twitter_off+'</span><div class="tweet dummy_btn">'+twitter_dummy_btn+"</div></li>");var $container_tw=$("li.twitter",context);context.on("click","li.twitter .tweet_this_dummy,li.twitter span.switch",function(){if($container_tw.find("span.switch").hasClass("off")){$container_tw.addClass("info_off");$container_tw.find("span.switch").addClass("on").removeClass("off").html(options.services.twitter.txt_twitter_on);$container_tw.find(".tweet_this_dummy").replaceWith(twitter_code);}else{$container_tw.removeClass("info_off");$container_tw.find("span.switch").addClass("off").removeClass("on").html(options.services.twitter.txt_twitter_off);$container_tw.find(".tweet").html(twitter_dummy_btn);}});}
6049if(gplus_on){var gplus_uri=uri+options.services.gplus.referrer_track;var gplus_code='<div class="g-plusone" data-size="medium" data-href="'+gplus_uri+'"></div><script type="text/javascript">window.___gcfg = {lang: "'+options.services.gplus.language+'"}; (function() { var po = document.createElement("script"); po.type = "text/javascript"; po.async = true; po.src = "https://apis.google.com/js/plusone.js"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(po, s); })(); <\/script>';var gplus_dummy_btn;if(options.services.gplus.dummy_img){gplus_dummy_btn='<img src="'+options.services.gplus.dummy_img+'" alt="+1" class="gplus_one_dummy" />';}else{gplus_dummy_btn='<div class="gplus_one_dummy">+1</div>';}context.append('<li class="gplus help_info"><span class="info">'+options.services.gplus.txt_info+'</span><span class="switch off">'+options.services.gplus.txt_gplus_off+'</span><div class="gplusone dummy_btn">'+gplus_dummy_btn+"</div></li>");var $container_gplus=$("li.gplus",context);context.on("click","li.gplus div.gplusone .gplus_one_dummy,li.gplus span.switch",function(){if($container_gplus.find("span.switch").hasClass("off")){$container_gplus.addClass("info_off");$container_gplus.find("span.switch").addClass("on").removeClass("off").html(options.services.gplus.txt_gplus_on);$container_gplus.find(".gplus_one_dummy").replaceWith(gplus_code);}else{$container_gplus.removeClass("info_off");$container_gplus.find("span.switch").addClass("off").removeClass("on").html(options.services.gplus.txt_gplus_off);$container_gplus.find(".gplusone").html(gplus_dummy_btn);}});}context.append('<li class="settings_info"><div class="settings_info_menu off perma_option_off"><a href="'+options.info_link+'"><span class="help_info icon"><span class="info">'+options.txt_help+"</span></span></a></div></li>");context.on("mouseenter",".help_info:not(.info_off)",function(){var $info_wrapper=$(this);var timeout_id=window.setTimeout(function(){$($info_wrapper).addClass("display");},500);$(this).data("timeout_id",timeout_id);});context.on("mouseleave",".help_info",function(){var timeout_id=$(this).data("timeout_id");window.clearTimeout(timeout_id);if($(this).hasClass("display")){$(this).removeClass("display");}});var facebook_perma=(options.services.facebook.perma_option==="on");var twitter_perma=(options.services.twitter.perma_option==="on");var gplus_perma=(options.services.gplus.perma_option==="on");if(((facebook_on&&facebook_perma)||(twitter_on&&twitter_perma)||(gplus_on&&gplus_perma))&&(!!JSON&&!!JSON.parse)){var cookie_list=document.cookie.split(";");var cookies="{";var i=0;for(;i<cookie_list.length;i+=1){var foo=cookie_list[i].split("=");cookies+='"'+$.trim(foo[0])+'":"'+$.trim(foo[1])+'"';if(i<cookie_list.length-1){cookies+=",";}}cookies+="}";cookies=JSON.parse(cookies);var $container_settings_info=$("li.settings_info",context);$container_settings_info.find(".settings_info_menu").removeClass("perma_option_off");$container_settings_info.find(".settings_info_menu").append('<span class="settings">Einstellungen</span><form><fieldset><legend>'+options.settings_perma+"</legend></fieldset></form>");var checked=' checked="checked"';if(facebook_on&&facebook_perma){var perma_status_facebook=cookies.socialSharePrivacy_facebook==="perma_on"?checked:"";$container_settings_info.find("form fieldset").append('<input type="checkbox" name="perma_status_facebook" id="perma_status_facebook"'+perma_status_facebook+' /><label for="perma_status_facebook">'+options.services.facebook.display_name+"</label>");}if(twitter_on&&twitter_perma){var perma_status_twitter=cookies.socialSharePrivacy_twitter==="perma_on"?checked:"";$container_settings_info.find("form fieldset").append('<input type="checkbox" name="perma_status_twitter" id="perma_status_twitter"'+perma_status_twitter+' /><label for="perma_status_twitter">'+options.services.twitter.display_name+"</label>");}if(gplus_on&&gplus_perma){var perma_status_gplus=cookies.socialSharePrivacy_gplus==="perma_on"?checked:"";$container_settings_info.find("form fieldset").append('<input type="checkbox" name="perma_status_gplus" id="perma_status_gplus"'+perma_status_gplus+' /><label for="perma_status_gplus">'+options.services.gplus.display_name+"</label>");}$container_settings_info.find("span.settings").css("cursor","pointer");$container_settings_info.on("mouseenter","span.settings",function(){var timeout_id=window.setTimeout(function(){$container_settings_info.find(".settings_info_menu").removeClass("off").addClass("on");},500);$(this).data("timeout_id",timeout_id);});$container_settings_info.on("mouseleave",function(){var timeout_id=$(this).data("timeout_id");window.clearTimeout(timeout_id);$container_settings_info.find(".settings_info_menu").removeClass("on").addClass("off");});$container_settings_info.on("click","fieldset input",function(event){var click=event.target.id;var service=click.substr(click.lastIndexOf("_")+1,click.length);var cookie_name="socialSharePrivacy_"+service;if($("#"+event.target.id+":checked").length){cookieSet(cookie_name,"perma_on",options.cookie_expires,options.cookie_path,options.cookie_domain);$("form fieldset label[for="+click+"]",context).addClass("checked");}else{cookieDel(cookie_name,"perma_on",options.cookie_path,options.cookie_domain);$("form fieldset label[for="+click+"]",context).removeClass("checked");}});if(facebook_on&&facebook_perma&&cookies.socialSharePrivacy_facebook==="perma_on"){$("li.facebook span.switch",context).click();}if(twitter_on&&twitter_perma&&cookies.socialSharePrivacy_twitter==="perma_on"){$("li.twitter span.switch",context).click();}if(gplus_on&&gplus_perma&&cookies.socialSharePrivacy_gplus==="perma_on"){$("li.gplus span.switch",context).click();}}});};}(jQuery));
6050   /* Ende jquery.socialshareprivacy */
6051   /* Start slick */
6052   /*!
6053 * --GSBDocStart
6054 * @module slick.js 
6055 * @version 1.3.15
6056 * @see {@link http://kenwheeler.github.io}
6057 * @author Ken Wheeler
6058 * @license MIT license
6059 * 
6060 * @desc Ermöglicht die Implementierung von Karussells (bsp. mehrere Bilder nebeneinander anzeigbar)
6061 *--GSBDocEnd
6062     _ _      _       _
6063 ___| (_) ___| | __  (_)___
6064/ __| | |/ __| |/ /  | / __|
6065\__ \ | | (__|   < _ | \__ \
6066|___/_|_|\___|_|\_(_)/ |___/
6067                   |__/
6068
6069 Version: 1.3.15
6070  Author: Ken Wheeler
6071 Website: http://kenwheeler.github.io
6072    Docs: http://kenwheeler.github.io/slick
6073    Repo: http://github.com/kenwheeler/slick
6074  Issues: http://github.com/kenwheeler/slick/issues
6075
6076 */
6077(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory);}else{if(typeof exports!=="undefined"){module.exports=factory(require("jquery"));}else{factory(jQuery);}}}(function($){var Slick=window.Slick||{};Slick=(function(){var instanceUid=0;function Slick(element,settings){var _=this,responsiveSettings,breakpoint;_.defaults={accessibility:true,adaptiveHeight:false,appendArrows:$(element),appendDots:$(element),arrows:true,asNavFor:null,prevArrow:'<button type="button" data-role="none" class="slick-prev">Previous</button>',nextArrow:'<button type="button" data-role="none" class="slick-next">Next</button>
6077',autoplay:false,autoplaySpeed:3000,centerMode:false,centerPadding:"50px",cssEase:"ease",customPaging:function(slider,i){return'<button type="button" data-role="none">'+(i+1)+"</button>";},dots:false,dotsClass:"slick-dots",draggable:true,easing:"linear",fade:false,focusOnSelect:false,infinite:true,initialSlide:0,lazyLoad:"ondemand",onBeforeChange:null,onAfterChange:null,onInit:null,onReInit:null,onSetPosition:null,pauseOnHover:true,pauseOnDotsHover:false,respondTo:"window",responsive:null,rtl:false,slide:"div",slidesToShow:1,slidesToScroll:1,speed:500,swipe:true,swipeToSlide:false,touchMove:true,touchThreshold:5,useCSS:true,variableWidth:false,vertical:false,waitForAnimate:true};_.initials={animating:false,dragging:false,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:false,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:false};$.extend(_,_.initials);_.activeBreakpoint=null;_.animType=null;_.animProp=null;_.breakpoints=[];_.breakpointSettings=[];_.cssTransitions=false;_.paused=false;_.positionProp=null;_.respondTo=null;_.shouldClick=true;_.$slider=$(element);_.$slidesCache=null;_.transformType=null;_.transitionType=null;_.windowWidth=0;_.windowTimer=null;_.options=$.extend({},_.defaults,settings);_.currentSlide=_.options.initialSlide;_.originalSettings=_.options;responsiveSettings=_.options.responsive||null;if(responsiveSettings&&responsiveSettings.length>-1){_.respondTo=_.options.respondTo||"window";for(breakpoint in responsiveSettings){if(responsiveSettings.hasOwnProperty(breakpoint)){_.breakpoints.push(responsiveSettings[breakpoint].breakpoint);_.breakpointSettings[responsiveSettings[breakpoint].breakpoint]=responsiveSettings[breakpoint].settings;}}_.breakpoints.sort(function(a,b){return b-a;});}_.autoPlay=$.proxy(_.autoPlay,_);_.autoPlayClear=$.proxy(_.autoPlayClear,_);_.changeSlide=$.proxy(_.changeSlide,_);_.clickHandler=$.proxy(_.clickHandler,_);_.selectHandler=$.proxy(_.selectHandler,_);_.setPosition=$.proxy(_.setPosition,_);_.swipeHandler=$.proxy(_.swipeHandler,_);_.dragHandler=$.proxy(_.dragHandler,_);_.keyHandler=$.proxy(_.keyHandler,_);_.autoPlayIterator=$.proxy(_.autoPlayIterator,_);_.instanceUid=instanceUid++;_.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/;_.init();_.checkResponsive();}return Slick;}());Slick.prototype.addSlide=function(markup,index,addBefore){var _=this;if(typeof(index)==="boolean"){addBefore=index;index=null;}else{if(index<0||(index>=_.slideCount)){return false;}}_.unload();if(typeof(index)==="number"){if(index===0&&_.$slides.length===0){$(markup).appendTo(_.$slideTrack);}else{if(addBefore){$(markup).insertBefore(_.$slides.eq(index));}else{$(markup).insertAfter(_.$slides.eq(index));}}}else{if(addBefore===true){$(markup).prependTo(_.$slideTrack);}else{$(markup).appendTo(_.$slideTrack);}}_.$slides=_.$slideTrack.children(this.options.slide);_.$slideTrack.children(this.options.slide).detach();_.$slideTrack.append(_.$slides);_.$slides.each(function(index,element){$(element).attr("index",index);});_.$slidesCache=_.$slides;_.reinit();};Slick.prototype.animateSlide=function(targetLeft,callback){var animProps={},_=this;if(_.options.slidesToShow===1&&_.options.adaptiveHeight===true&&_.options.vertical===false){var targetHeight=_.$slides.eq(_.currentSlide).outerHeight(true);_.$list.animate({height:targetHeight},_.options.speed);}if(_.options.rtl===true&&_.options.vertical===false){targetLeft=-targetLeft;}if(_.transformsEnabled===false){if(_.options.vertical===false){_.$slideTrack.animate({left:targetLeft},_.options.speed,_.options.easing,callback);}else{_.$slideTrack.animate({top:targetLeft},_.options.speed,_.options.easing,callback);}}else{if(_.cssTransitions===false){$({animStart:_.currentLeft}).animate({animStart:targetLeft},{duration:_.options.speed,easing:_.options.easing,step:function(now){if(_.options.vertical===false){animProps[_.animType]="translate("+now+"px, 0px)";_.$slideTrack.css(animProps);}else{animProps[_.animType]="translate(0px,"+now+"px)";_.$slideTrack.css(animProps);}},complete:function(){if(callback){callback.call();}}});}else{_.applyTransition();if(_.options.vertical===false){animProps[_.animType]="translate3d("+targetLeft+"px, 0px, 0px)";}else{animProps[_.animType]="translate3d(0px,"+targetLeft+"px, 0px)";}_.$slideTrack.css(animProps);if(callback){setTimeout(function(){_.disableTransition();callback.call();},_.options.speed);}}}};Slick.prototype.asNavFor=function(index){var _=this,asNavFor=_.options.asNavFor!=null?$(_.options.asNavFor).getSlick():null;if(asNavFor!=null){asNavFor.slideHandler(index,true);}};Slick.prototype.applyTransition=function(slide){var _=this,transition={};if(_.options.fade===false){transition[_.transitionType]=_.transformType+" "+_.options.speed+"ms "+_.options.cssEase;}else{transition[_.transitionType]="opacity "+_.options.speed+"ms "+_.options.cssEase;}if(_.options.fade===false){_.$slideTrack.css(transition);}else{_.$slides.eq(slide).css(transition);}};Slick.prototype.autoPlay=function(){var _=this;if(_.autoPlayTimer){clearInterval(_.autoPlayTimer);}if(_.slideCount>_.options.slidesToShow&&_.paused!==true){_.autoPlayTimer=setInterval(_.autoPlayIterator,_.options.autoplaySpeed);}};Slick.prototype.autoPlayClear=function(){var _=this;if(_.autoPlayTimer){clearInterval(_.autoPlayTimer);}};Slick.prototype.autoPlayIterator=function(){var _=this;if(_.options.infinite===false){if(_.direction===1){if((_.currentSlide+1)===_.slideCount-1){_.direction=0;}_.slideHandler(_.currentSlide+_.options.slidesToScroll);}else{if((_.currentSlide-1===0)){_.direction=1;}_.slideHandler(_.currentSlide-_.options.slidesToScroll);}}else{_.slideHandler(_.currentSlide+_.options.slidesToScroll);}};Slick.prototype.buildArrows=function(){var _=this;if(_.options.arrows===true&&_.slideCount>_.options.slidesToShow){_.$prevArrow=$(_.options.prevArrow);_.$nextArrow=$(_.options.nextArrow);if(_.htmlExpr.test(_.options.prevArrow)){_.$prevArrow.appendTo(_.options.appendArrows);}if(_.htmlExpr.test(_.options.nextArrow)){_.$nextArrow.appendTo(_.options.appendArrows);}if(_.options.infinite!==true){_.$prevArrow.addClass("slick-disabled");}}};Slick.prototype.buildDots=function(){var _=this,i,dotString;if(_.options.dots===true&&_.slideCount>_.options.slidesToShow){dotString='<ul class="'+_.options.dotsClass+'">';
6077for(i=0;i<=_.getDotCount();i+=1){dotString+="<li>"+_.options.customPaging.call(this,_,i)+"</li>";}dotString+="</ul>";_.$dots=$(dotString).appendTo(_.options.appendDots);_.$dots.find("li").first().addClass("slick-active");}};Slick.prototype.buildOut=function(){var _=this;_.$slides=_.$slider.children(_.options.slide+":not(.slick-cloned)").addClass("slick-slide");_.slideCount=_.$slides.length;_.$slides.each(function(index,element){$(element).attr("index",index);});_.$slidesCache=_.$slides;_.$slider.addClass("slick-slider");_.$slideTrack=(_.slideCount===0)?$('<div class="slick-track"/>').appendTo(_.$slider):_.$slides.wrapAll('<div class="slick-track"/>').parent();_.$list=_.$slideTrack.wrap('<div class="slick-list"/>').parent();_.$slideTrack.css("opacity",0);if(_.options.centerMode===true){_.options.slidesToScroll=1;}$("img[data-lazy]",_.$slider).not("[src]").addClass("slick-loading");_.setupInfinite();_.buildArrows();_.buildDots();_.updateDots();if(_.options.accessibility===true){_.$list.prop("tabIndex",0);}_.setSlideClasses(typeof this.currentSlide==="number"?this.currentSlide:0);if(_.options.draggable===true){_.$list.addClass("draggable");}};Slick.prototype.checkResponsive=function(){var _=this,breakpoint,targetBreakpoint,respondToWidth;var sliderWidth=_.$slider.width();var windowWidth=window.innerWidth||$(window).width();if(_.respondTo==="window"){respondToWidth=windowWidth;}else{if(_.respondTo==="slider"){respondToWidth=sliderWidth;}else{if(_.respondTo==="min"){respondToWidth=Math.min(windowWidth,sliderWidth);}}}if(_.originalSettings.responsive&&_.originalSettings.responsive.length>-1&&_.originalSettings.responsive!==null){targetBreakpoint=null;for(breakpoint in _.breakpoints){if(_.breakpoints.hasOwnProperty(breakpoint)){if(respondToWidth<_.breakpoints[breakpoint]){targetBreakpoint=_.breakpoints[breakpoint];}}}if(targetBreakpoint!==null){if(_.activeBreakpoint!==null){if(targetBreakpoint!==_.activeBreakpoint){_.activeBreakpoint=targetBreakpoint;_.options=$.extend({},_.originalSettings,_.breakpointSettings[targetBreakpoint]);_.refresh();}}else{_.activeBreakpoint=targetBreakpoint;_.options=$.extend({},_.originalSettings,_.breakpointSettings[targetBreakpoint]);_.refresh();}}else{if(_.activeBreakpoint!==null){_.activeBreakpoint=null;_.options=_.originalSettings;_.refresh();}}}};Slick.prototype.changeSlide=function(event,dontAnimate){var _=this,$target=$(event.target),indexOffset,slideOffset,unevenOffset,navigables,prevNavigable;$target.is("a")&&event.preventDefault();unevenOffset=(_.slideCount%_.options.slidesToScroll!==0);indexOffset=unevenOffset?0:(_.slideCount-_.currentSlide)%_.options.slidesToScroll;switch(event.data.message){case"previous":slideOffset=indexOffset===0?_.options.slidesToScroll:_.options.slidesToShow-indexOffset;if(_.slideCount>_.options.slidesToShow){_.slideHandler(_.currentSlide-slideOffset,false,dontAnimate);}break;case"next":slideOffset=indexOffset===0?_.options.slidesToScroll:indexOffset;if(_.slideCount>_.options.slidesToShow){_.slideHandler(_.currentSlide+slideOffset,false,dontAnimate);}break;case"index":var index=event.data.index===0?0:event.data.index||$(event.target).parent().index()*_.options.slidesToScroll;navigables=_.getNavigableIndexes();prevNavigable=0;if(navigables[index]&&navigables[index]===index){if(index>navigables[navigables.length-1]){index=navigables[navigables.length-1];}else{for(var n in navigables){if(index<navigables[n]){index=prevNavigable;break;}prevNavigable=navigables[n];}}}_.slideHandler(index,false,dontAnimate);default:return;}};Slick.prototype.clickHandler=function(event){var _=this;if(_.shouldClick===false){event.stopImmediatePropagation();event.stopPropagation();event.preventDefault();}};Slick.prototype.destroy=function(){var _=this;_.autoPlayClear();_.touchObject={};$(".slick-cloned",_.$slider).remove();if(_.$dots){_.$dots.remove();}if(_.$prevArrow&&(typeof _.options.prevArrow!=="object")){_.$prevArrow.remove();}if(_.$nextArrow&&(typeof _.options.nextArrow!=="object")){_.$nextArrow.remove();}if(_.$slides.parent().hasClass("slick-track")){_.$slides.unwrap().unwrap();}_.$slides.removeClass("slick-slide slick-active slick-center slick-visible").removeAttr("index").css({position:"",left:"",top:"",zIndex:"",opacity:"",width:""});_.$slider.removeClass("slick-slider");_.$slider.removeClass("slick-initialized");_.$list.off(".slick");$(window).off(".slick-"+_.instanceUid);$(document).off(".slick-"+_.instanceUid);};Slick.prototype.disableTransition=function(slide){var _=this,transition={};transition[_.transitionType]="";if(_.options.fade===false){_.$slideTrack.css(transition);}else{_.$slides.eq(slide).css(transition);}};Slick.prototype.fadeSlide=function(oldSlide,slideIndex,callback){var _=this;if(_.cssTransitions===false){_.$slides.eq(slideIndex).css({zIndex:1000});_.$slides.eq(slideIndex).animate({opacity:1},_.options.speed,_.options.easing,callback);_.$slides.eq(oldSlide).animate({opacity:0}
6077,_.options.speed,_.options.easing);}else{_.applyTransition(slideIndex);_.applyTransition(oldSlide);_.$slides.eq(slideIndex).css({opacity:1,zIndex:1000});_.$slides.eq(oldSlide).css({opacity:0});if(callback){setTimeout(function(){_.disableTransition(slideIndex);_.disableTransition(oldSlide);callback.call();},_.options.speed);}}};Slick.prototype.filterSlides=function(filter){var _=this;if(filter!==null){_.unload();_.$slideTrack.children(this.options.slide).detach();_.$slidesCache.filter(filter).appendTo(_.$slideTrack);_.reinit();}};Slick.prototype.getCurrent=function(){var _=this;return _.currentSlide;};Slick.prototype.getDotCount=function(){var _=this;var breakPoint=0;var counter=0;var pagerQty=0;if(_.options.infinite===true){pagerQty=Math.ceil(_.slideCount/_.options.slidesToScroll);}else{while(breakPoint<_.slideCount){++pagerQty;breakPoint=counter+_.options.slidesToShow;counter+=_.options.slidesToScroll<=_.options.slidesToShow?_.options.slidesToScroll:_.options.slidesToShow;}}return pagerQty-1;};Slick.prototype.getLeft=function(slideIndex){var _=this,targetLeft,verticalHeight,verticalOffset=0,slideWidth,targetSlide;_.slideOffset=0;verticalHeight=_.$slides.first().outerHeight();if(_.options.infinite===true){if(_.slideCount>_.options.slidesToShow){_.slideOffset=(_.slideWidth*_.options.slidesToShow)*-1;verticalOffset=(verticalHeight*_.options.slidesToShow)*-1;}if(_.slideCount%_.options.slidesToScroll!==0){if(slideIndex+_.options.slidesToScroll>_.slideCount&&_.slideCount>_.options.slidesToShow){if(slideIndex>_.slideCount){_.slideOffset=((_.options.slidesToShow-(slideIndex-_.slideCount))*_.slideWidth)*-1;verticalOffset=((_.options.slidesToShow-(slideIndex-_.slideCount))*verticalHeight)*-1;}else{_.slideOffset=((_.slideCount%_.options.slidesToScroll)*_.slideWidth)*-1;verticalOffset=((_.slideCount%_.options.slidesToScroll)*verticalHeight)*-1;}}}}else{if(slideIndex+_.options.slidesToShow>_.slideCount){_.slideOffset=((slideIndex+_.options.slidesToShow)-_.slideCount)*_.slideWidth;verticalOffset=((slideIndex+_.options.slidesToShow)-_.slideCount)*verticalHeight;}}if(_.slideCount<=_.options.slidesToShow){_.slideOffset=0;verticalOffset=0;}if(_.options.centerMode===true&&_.options.infinite===true){_.slideOffset+=_.slideWidth*Math.floor(_.options.slidesToShow/2)-_.slideWidth;}else{if(_.options.centerMode===true){_.slideOffset=0;_.slideOffset+=_.slideWidth*Math.floor(_.options.slidesToShow/2);}}if(_.options.vertical===false){targetLeft=((slideIndex*_.slideWidth)*-1)+_.slideOffset;}else{targetLeft=((slideIndex*verticalHeight)*-1)+verticalOffset;}if(_.options.variableWidth===true){if(_.slideCount<=_.options.slidesToShow||_.options.infinite===false){targetSlide=_.$slideTrack.children(".slick-slide").eq(slideIndex);}else{targetSlide=_.$slideTrack.children(".slick-slide").eq(slideIndex+_.options.slidesToShow);}targetLeft=targetSlide[0]?targetSlide[0].offsetLeft*-1:0;if(_.options.centerMode===true){if(_.options.infinite===false){targetSlide=_.$slideTrack.children(".slick-slide").eq(slideIndex);}else{targetSlide=_.$slideTrack.children(".slick-slide").eq(slideIndex+_.options.slidesToShow+1);}targetLeft=targetSlide[0]?targetSlide[0].offsetLeft*-1:0;targetLeft+=(_.$list.width()-targetSlide.outerWidth())/2;}}return targetLeft;};Slick.prototype.getNavigableIndexes=function(){var _=this;var breakPoint=0;var counter=0;var indexes=[];while(breakPoint<_.slideCount){indexes.push(breakPoint);breakPoint=counter+_.options.slidesToScroll;counter+=_.options.slidesToScroll<=_.options.slidesToShow?_.options.slidesToScroll:_.options.slidesToShow;}return indexes;};Slick.prototype.getSlideCount=function(){var _=this,slidesTraversed;if(_.options.swipeToSlide===true){var swipedSlide=null;_.$slideTrack.find(".slick-slide").each(function(index,slide){if(slide.offsetLeft+($(slide).outerWidth()/2)>(_.swipeLeft*-1)){swipedSlide=slide;return false;}});slidesTraversed=Math.abs($(swipedSlide).attr("index")-_.currentSlide);return slidesTraversed;}else{return _.options.slidesToScroll;}};Slick.prototype.init=function(){var _=this;if(!$(_.$slider).hasClass("slick-initialized")){$(_.$slider).addClass("slick-initialized");_.buildOut();_.setProps();_.startLoad();_.loadSlider();_.initializeEvents();_.updateArrows();_.updateDots();}if(_.options.onInit!==null){_.options.onInit.call(this,_);}};Slick.prototype.initArrowEvents=function(){var _=this;if(_.options.arrows===true&&_.slideCount>_.options.slidesToShow){_.$prevArrow.on("click.slick",{message:"previous"},_.changeSlide);_.$nextArrow.on("click.slick",{message:"next"},_.changeSlide);}};Slick.prototype.initDotEvents=function(){var _=this;if(_.options.dots===true&&_.slideCount>_.options.slidesToShow){$("li",_.$dots).on("click.slick",{message:"index"},_.changeSlide);}if(_.options.dots===true&&_.options.pauseOnDotsHover===true&&_.options.autoplay===true){$("li",_.$dots).on("mouseenter.slick",function(){_.paused=true;_.autoPlayClear();}
6077).on("mouseleave.slick",function(){_.paused=false;_.autoPlay();});}};Slick.prototype.initializeEvents=function(){var _=this;_.initArrowEvents();_.initDotEvents();_.$list.on("touchstart.slick mousedown.slick",{action:"start"},_.swipeHandler);_.$list.on("touchmove.slick mousemove.slick",{action:"move"},_.swipeHandler);_.$list.on("touchend.slick mouseup.slick",{action:"end"},_.swipeHandler);_.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},_.swipeHandler);_.$list.on("click.slick",_.clickHandler);if(_.options.pauseOnHover===true&&_.options.autoplay===true){_.$list.on("mouseenter.slick",function(){_.paused=true;_.autoPlayClear();});_.$list.on("mouseleave.slick",function(){_.paused=false;_.autoPlay();});}if(_.options.accessibility===true){_.$list.on("keydown.slick",_.keyHandler);}if(_.options.focusOnSelect===true){$(_.options.slide,_.$slideTrack).on("click.slick",_.selectHandler);}$(window).on("orientationchange.slick.slick-"+_.instanceUid,function(){_.checkResponsive();_.setPosition();});$(window).on("resize.slick.slick-"+_.instanceUid,function(){if($(window).width()!==_.windowWidth){clearTimeout(_.windowDelay);_.windowDelay=window.setTimeout(function(){_.windowWidth=$(window).width();_.checkResponsive();_.setPosition();},50);}});$("*[draggable!=true]",_.$slideTrack).on("dragstart",function(e){e.preventDefault();});$(window).on("load.slick.slick-"+_.instanceUid,_.setPosition);$(document).on("ready.slick.slick-"+_.instanceUid,_.setPosition);};Slick.prototype.initUI=function(){var _=this;if(_.options.arrows===true&&_.slideCount>_.options.slidesToShow){_.$prevArrow.show();_.$nextArrow.show();}if(_.options.dots===true&&_.slideCount>_.options.slidesToShow){_.$dots.show();}if(_.options.autoplay===true){_.autoPlay();}};Slick.prototype.keyHandler=function(event){var _=this;if(event.keyCode===37&&_.options.accessibility===true){_.changeSlide({data:{message:"previous"}});}else{if(event.keyCode===39&&_.options.accessibility===true){_.changeSlide({data:{message:"next"}});}}};Slick.prototype.lazyLoad=function(){var _=this,loadRange,cloneRange,rangeStart,rangeEnd;function loadImages(imagesScope){$("img[data-lazy]",imagesScope).each(function(){var image=$(this),imageSource=$(this).attr("data-lazy");image.load(function(){image.animate({opacity:1},200);}).css({opacity:0}).attr("src",imageSource).removeAttr("data-lazy").removeClass("slick-loading");});}if(_.options.centerMode===true){if(_.options.infinite===true){rangeStart=_.currentSlide+(_.options.slidesToShow/2+1);rangeEnd=rangeStart+_.options.slidesToShow+2;}else{rangeStart=Math.max(0,_.currentSlide-(_.options.slidesToShow/2+1));rangeEnd=2+(_.options.slidesToShow/2+1)+_.currentSlide;}}
6077else{rangeStart=_.options.infinite?_.options.slidesToShow+_.currentSlide:_.currentSlide;rangeEnd=rangeStart+_.options.slidesToShow;if(_.options.fade===true){if(rangeStart>0){rangeStart--;}if(rangeEnd<=_.slideCount){rangeEnd++;}}}loadRange=_.$slider.find(".slick-slide").slice(rangeStart,rangeEnd);loadImages(loadRange);if(_.slideCount<=_.options.slidesToShow){cloneRange=_.$slider.find(".slick-slide");loadImages(cloneRange);}else{if(_.currentSlide>=_.slideCount-_.options.slidesToShow){cloneRange=_.$slider.find(".slick-cloned").slice(0,_.options.slidesToShow);loadImages(cloneRange);}else{if(_.currentSlide===0){cloneRange=_.$slider.find(".slick-cloned").slice(_.options.slidesToShow*-1);loadImages(cloneRange);}}}};Slick.prototype.loadSlider=function(){var _=this;_.setPosition();_.$slideTrack.css({opacity:1});_.$slider.removeClass("slick-loading");_.initUI();if(_.options.lazyLoad==="progressive"){_.progressiveLazyLoad();}};Slick.prototype.postSlide=function(index){var _=this;if(_.options.onAfterChange!==null){_.options.onAfterChange.call(this,_,index);}_.animating=false;_.setPosition();_.swipeLeft=null;if(_.options.autoplay===true&&_.paused===false){_.autoPlay();}};Slick.prototype.progressiveLazyLoad=function(){var _=this,imgCount,targetImage;imgCount=$("img[data-lazy]",_.$slider).length;if(imgCount>0){targetImage=$("img[data-lazy]",_.$slider).first();targetImage.attr("src",targetImage.attr("data-lazy")).removeClass("slick-loading").load(function(){targetImage.removeAttr("data-lazy");_.progressiveLazyLoad();}).error(function(){targetImage.removeAttr("data-lazy");_.progressiveLazyLoad();});}};Slick.prototype.refresh=function(){var _=this,currentSlide=_.currentSlide;_.destroy();$.extend(_,_.initials);_.init();_.changeSlide({data:{message:"index",index:currentSlide,}},true);};Slick.prototype.reinit=function(){var _=this;_.$slides=_.$slideTrack.children(_.options.slide).addClass("slick-slide");_.slideCount=_.$slides.length;if(_.currentSlide>=_.slideCount&&_.currentSlide!==0){_.currentSlide=_.currentSlide-_.options.slidesToScroll;}if(_.slideCount<=_.options.slidesToShow){_.currentSlide=0;}_.setProps();_.setupInfinite();_.buildArrows();_.updateArrows();_.initArrowEvents();_.buildDots();_.updateDots();_.initDotEvents();if(_.options.focusOnSelect===true){$(_.options.slide,_.$slideTrack).on("click.slick",_.selectHandler);}_.setSlideClasses(0);_.setPosition();if(_.options.onReInit!==null){_.options.onReInit.call(this,_);}};Slick.prototype.removeSlide=function(index,removeBefore,removeAll){var _=this;if(typeof(index)==="boolean"){removeBefore=index;index=removeBefore===true?0:_.slideCount-1;}else{index=removeBefore===true?--index:index;}if(_.slideCount<1||index<0||index>_.slideCount-1){return false;}_.unload();if(removeAll===true){_.$slideTrack.children().remove();}else{_.$slideTrack.children(this.options.slide).eq(index).remove();}_.$slides=_.$slideTrack.children(this.options.slide);_.$slideTrack.children(this.options.slide).detach();_.$slideTrack.append(_.$slides);_.$slidesCache=_.$slides;_.reinit();};Slick.prototype.setCSS=function(position){var _=this,positionProps={},x,y;if(_.options.rtl===true){position=-position;}x=_.positionProp=="left"?position+"px":"0px";y=_.positionProp=="top"?position+"px":"0px";positionProps[_.positionProp]=position;if(_.transformsEnabled===false){_.$slideTrack.css(positionProps);}else{positionProps={};if(_.cssTransitions===false){positionProps[_.animType]="translate("+x+", "+y+")";_.$slideTrack.css(positionProps);}else{positionProps[_.animType]="translate3d("+x+", "+y+", 0px)";_.$slideTrack.css(positionProps);}}};Slick.prototype.setDimensions=function(){var _=this;if(_.options.vertical===false){if(_.options.centerMode===true){_.$list.css({padding:("0px "+_.options.centerPadding)});}}else{_.$list.height(_.$slides.first().outerHeight(true)*_.options.slidesToShow);if(_.options.centerMode===true){_.$list.css({padding:(_.options.centerPadding+" 0px")});}}_.listWidth=_.$list.width();_.listHeight=_.$list.height();if(_.options.vertical===false&&_.options.variableWidth===false){_.slideWidth=Math.ceil(_.listWidth/_.options.slidesToShow);_.$slideTrack.width(Math.ceil((_.slideWidth*_.$slideTrack.children(".slick-slide").length)));}else{if(_.options.variableWidth===true){var trackWidth=0;
6077_.slideWidth=Math.ceil(_.listWidth/_.options.slidesToShow);_.$slideTrack.children(".slick-slide").each(function(){trackWidth+=Math.ceil($(this).outerWidth(true));});_.$slideTrack.width(Math.ceil(trackWidth)+1);}else{_.slideWidth=Math.ceil(_.listWidth);_.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true)*_.$slideTrack.children(".slick-slide").length)));}}var offset=_.$slides.first().outerWidth(true)-_.$slides.first().width();if(_.options.variableWidth===false){_.$slideTrack.children(".slick-slide").width(_.slideWidth-offset);}};Slick.prototype.setFade=function(){var _=this,targetLeft;_.$slides.each(function(index,element){targetLeft=(_.slideWidth*index)*-1;if(_.options.rtl===true){$(element).css({position:"relative",right:targetLeft,top:0,zIndex:800,opacity:0});}else{$(element).css({position:"relative",left:targetLeft,top:0,zIndex:800,opacity:0});}});_.$slides.eq(_.currentSlide).css({zIndex:900,opacity:1});};Slick.prototype.setHeight=function(){var _=this;if(_.options.slidesToShow===1&&_.options.adaptiveHeight===true&&_.options.vertical===false){var targetHeight=_.$slides.eq(_.currentSlide).outerHeight(true);_.$list.css("height",targetHeight);}};Slick.prototype.setPosition=function(){var _=this;_.setDimensions();_.setHeight();if(_.options.fade===false){_.setCSS(_.getLeft(_.currentSlide));}else{_.setFade();}if(_.options.onSetPosition!==null){_.options.onSetPosition.call(this,_);}};Slick.prototype.setProps=function(){var _=this,bodyStyle=document.body.style;_.positionProp=_.options.vertical===true?"top":"left";if(_.positionProp==="top"){_.$slider.addClass("slick-vertical");}else{_.$slider.removeClass("slick-vertical");}if(bodyStyle.WebkitTransition!==undefined||bodyStyle.MozTransition!==undefined||bodyStyle.msTransition!==undefined){if(_.options.useCSS===true){_.cssTransitions=true;}}if(bodyStyle.OTransform!==undefined){_.animType="OTransform";_.transformType="-o-transform";_.transitionType="OTransition";if(bodyStyle.perspectiveProperty===undefined&&bodyStyle.webkitPerspective===undefined){_.animType=false;}}if(bodyStyle.MozTransform!==undefined){_.animType="MozTransform";_.transformType="-moz-transform";_.transitionType="MozTransition";if(bodyStyle.perspectiveProperty===undefined&&bodyStyle.MozPerspective===undefined){_.animType=false;}}if(bodyStyle.webkitTransform!==undefined){_.animType="webkitTransform";_.transformType="-webkit-transform";_.transitionType="webkitTransition";if(bodyStyle.perspectiveProperty===undefined&&bodyStyle.webkitPerspective===undefined){_.animType=false;}}if(bodyStyle.msTransform!==undefined){_.animType="msTransform";_.transformType="-ms-transform";_.transitionType="msTransition";if(bodyStyle.msTransform===undefined){_.animType=false;}}if(bodyStyle.transform!==undefined&&_.animType!==false){_.animType="transform";_.transformType="transform";_.transitionType="transition";}_.transformsEnabled=(_.animType!==null&&_.animType!==false);};Slick.prototype.setSlideClasses=function(index){var _=this,centerOffset,allSlides,indexOffset,remainder;_.$slider.find(".slick-slide").removeClass("slick-active").removeClass("slick-center");allSlides=_.$slider.find(".slick-slide");if(_.options.centerMode===true){centerOffset=Math.floor(_.options.slidesToShow/2);if(_.options.infinite===true){if(index>=centerOffset&&index<=(_.slideCount-1)-centerOffset){_.$slides.slice(index-centerOffset,index+centerOffset+1).addClass("slick-active");}else{indexOffset=_.options.slidesToShow+index;allSlides.slice(indexOffset-centerOffset+1,indexOffset+centerOffset+2).addClass("slick-active");}if(index===0){allSlides.eq(allSlides.length-1-_.options.slidesToShow).addClass("slick-center");}else{if(index===_.slideCount-1){allSlides.eq(_.options.slidesToShow).addClass("slick-center");}}}_.$slides.eq(index).addClass("slick-center");}else{if(index>=0&&index<=(_.slideCount-_.options.slidesToShow)){_.$slides.slice(index,index+_.options.slidesToShow).addClass("slick-active");}else{if(allSlides.length<=_.options.slidesToShow){allSlides.addClass("slick-active");}else{remainder=_.slideCount%_.options.slidesToShow;indexOffset=_.options.infinite===true?_.options.slidesToShow+index:index;if(_.options.slidesToShow==_.options.slidesToScroll&&(_.slideCount-index)<_.options.slidesToShow){allSlides.slice(indexOffset-(_.options.slidesToShow-remainder),indexOffset+remainder).addClass("slick-active");}else{allSlides.slice(indexOffset,indexOffset+_.options.slidesToShow).addClass("slick-active");}}}}if(_.options.lazyLoad==="ondemand"){_.lazyLoad();}};Slick.prototype.setupInfinite=function(){var _=this,i,slideIndex,infiniteCount;if(_.options.fade===true){_.options.centerMode=false;}if(_.options.infinite===true&&_.options.fade===false){slideIndex=null;if(_.slideCount>_.options.slidesToShow){if(_.options.centerMode===true){infiniteCount=_.options.slidesToShow+1;}else{infiniteCount=_.options.slidesToShow;}for(i=_.slideCount;i>(_.slideCount-infiniteCount);i-=1){slideIndex=i-1;$(_.$slides[slideIndex]).clone(true).attr("id","").attr("index",slideIndex-_.slideCount).prependTo(_.$slideTrack).addClass("slick-cloned");}for(i=0;i<infiniteCount;i+=1){slideIndex=i;$(_.$slides[slideIndex]).clone(true).attr("id","").attr("index",slideIndex+_.slideCount).appendTo(_.$slideTrack).addClass("slick-cloned");}_.$slideTrack.find(".slick-cloned").find("[id]").each(function(){$(this).attr("id","");});}}};Slick.prototype.selectHandler=function(event){var _=this;
6077var index=parseInt($(event.target).parents(".slick-slide").attr("index"));if(!index){index=0;}if(_.slideCount<=_.options.slidesToShow){_.$slider.find(".slick-slide").removeClass("slick-active");_.$slides.eq(index).addClass("slick-active");if(_.options.centerMode===true){_.$slider.find(".slick-slide").removeClass("slick-center");_.$slides.eq(index).addClass("slick-center");}_.asNavFor(index);return;}_.slideHandler(index);};Slick.prototype.slideHandler=function(index,sync,dontAnimate){var targetSlide,animSlide,oldSlide,slideLeft,unevenOffset,targetLeft=null,_=this;sync=sync||false;if(_.animating===true&&_.options.waitForAnimate===true){return;}if(_.options.fade===true&&_.currentSlide===index){return;}if(_.slideCount<=_.options.slidesToShow){return;}if(sync===false){_.asNavFor(index);}targetSlide=index;targetLeft=_.getLeft(targetSlide);slideLeft=_.getLeft(_.currentSlide);_.currentLeft=_.swipeLeft===null?slideLeft:_.swipeLeft;if(_.options.infinite===false&&_.options.centerMode===false&&(index<0||index>_.getDotCount()*_.options.slidesToScroll)){if(_.options.fade===false){targetSlide=_.currentSlide;if(dontAnimate!==true){_.animateSlide(slideLeft,function(){_.postSlide(targetSlide);});}else{_.postSlide(targetSlide);}}return;}else{if(_.options.infinite===false&&_.options.centerMode===true&&(index<0||index>(_.slideCount-_.options.slidesToScroll))){if(_.options.fade===false){targetSlide=_.currentSlide;if(dontAnimate!==true){_.animateSlide(slideLeft,function(){_.postSlide(targetSlide);});}else{_.postSlide(targetSlide);}}return;}}if(_.options.autoplay===true){clearInterval(_.autoPlayTimer);}if(targetSlide<0){if(_.slideCount%_.options.slidesToScroll!==0){animSlide=_.slideCount-(_.slideCount%_.options.slidesToScroll);}else{animSlide=_.slideCount+targetSlide;}}else{if(targetSlide>=_.slideCount){if(_.slideCount%_.options.slidesToScroll!==0){animSlide=0;}else{animSlide=targetSlide-_.slideCount;}}else{animSlide=targetSlide;}}_.animating=true;if(_.options.onBeforeChange!==null&&index!==_.currentSlide){_.options.onBeforeChange.call(this,_,_.currentSlide,animSlide);}oldSlide=_.currentSlide;_.currentSlide=animSlide;_.setSlideClasses(_.currentSlide);_.updateDots();_.updateArrows();if(_.options.fade===true){if(dontAnimate!==true){_.fadeSlide(oldSlide,animSlide,function(){_.postSlide(animSlide);});}else{_.postSlide(animSlide);}return;}if(dontAnimate!==true){_.animateSlide(targetLeft,function(){_.postSlide(animSlide);});}else{_.postSlide(animSlide);}};Slick.prototype.startLoad=function(){var _=this;if(_.options.arrows===true&&_.slideCount>_.options.slidesToShow){_.$prevArrow.hide();_.$nextArrow.hide();}if(_.options.dots===true&&_.slideCount>_.options.slidesToShow){_.$dots.hide();}_.$slider.addClass("slick-loading");};Slick.prototype.swipeDirection=function(){var xDist,yDist,r,swipeAngle,_=this;xDist=_.touchObject.startX-_.touchObject.curX;yDist=_.touchObject.startY-_.touchObject.curY;r=Math.atan2(yDist,xDist);swipeAngle=Math.round(r*180/Math.PI);if(swipeAngle<0){swipeAngle=360-Math.abs(swipeAngle);}if((swipeAngle<=45)&&(swipeAngle>=0)){return(_.options.rtl===false?"left":"right");}if((swipeAngle<=360)&&(swipeAngle>=315)){return(_.options.rtl===false?"left":"right");}if((swipeAngle>=135)&&(swipeAngle<=225)){return(_.options.rtl===false?"right":"left");}return"vertical";};Slick.prototype.swipeEnd=function(event){var _=this,slideCount;_.dragging=false;_.shouldClick=(_.touchObject.swipeLength>10)?false:true;if(_.touchObject.curX===undefined){return false;}if(_.touchObject.swipeLength>=_.touchObject.minSwipe){switch(_.swipeDirection()){case"left":_.slideHandler(_.currentSlide+_.getSlideCount());_.currentDirection=0;_.touchObject={};break;case"right":_.slideHandler(_.currentSlide-_.getSlideCount());_.currentDirection=1;_.touchObject={};break;}}else{if(_.touchObject.startX!==_.touchObject.curX){_.slideHandler(_.currentSlide);_.touchObject={};}}};Slick.prototype.swipeHandler=function(event){var _=this;if((_.options.swipe===false)||("ontouchend" in document&&_.options.swipe===false)){return;}else{if(_.options.draggable===false&&event.type.indexOf("mouse")!==-1){return;}}_.touchObject.fingerCount=event.originalEvent&&event.originalEvent.touches!==undefined?event.originalEvent.touches.length:1;_.touchObject.minSwipe=_.listWidth/_.options.touchThreshold;switch(event.data.action){case"start":_.swipeStart(event);break;case"move":_.swipeMove(event);break;case"end":_.swipeEnd(event);break;}};Slick.prototype.swipeMove=function(event){var _=this,curLeft,swipeDirection,positionOffset,touches;touches=event.originalEvent!==undefined?event.originalEvent.touches:null;if(!_.dragging||touches&&touches.length!==1){return false;}curLeft=_.getLeft(_.currentSlide);_.touchObject.curX=touches!==undefined?touches[0].pageX:event.clientX;_.touchObject.curY=touches!==undefined?touches[0].pageY:event.clientY;_.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(_.touchObject.curX-_.touchObject.startX,2)));swipeDirection=_.swipeDirection();if(swipeDirection==="vertical"){return;}if(event.originalEvent!==undefined&&_.touchObject.swipeLength>4){event.preventDefault();}positionOffset=(_.options.rtl===false?1:-1)*(_.touchObject.curX>_.touchObject.startX?1:-1);if(_.options.vertical===false){_.swipeLeft=curLeft+_.touchObject.swipeLength*positionOffset;}else{_.swipeLeft=curLeft+(_.touchObject.swipeLength*(_.$list.height()/_.listWidth))*positionOffset;}if(_.options.fade===true||_.options.touchMove===false){return false;}if(_.animating===true){_.swipeLeft=null;return false;}_.setCSS(_.swipeLeft);};Slick.prototype.swipeStart=function(event){var _=this,touches;if(_.touchObject.fingerCount!==1||_.slideCount<=_.options.slidesToShow){_.touchObject={};return false;}if(event.originalEvent!==undefined&&event.originalEvent.touches!==undefined){touches=event.originalEvent.touches[0];}_.touchObject.startX=_.touchObject.curX=touches!==undefined?touches.pageX:event.clientX;_.touchObject.startY=_.touchObject.curY=touches!==undefined?touches.pageY:event.clientY;_.dragging=true;};Slick.prototype.unfilterSlides=function(){var _=this;if(_.$slidesCache!==null){_.unload();_.$slideTrack.children(this.options.slide).detach();_.$slidesCache.appendTo(_.$slideTrack);_.reinit();}};Slick.prototype.unload=function(){var _=this;$(".slick-cloned",_.$slider).remove();if(_.$dots){_.$dots.remove();}if(_.$prevArrow&&(typeof _.options.prevArrow!=="object")){_.$prevArrow.remove();}if(_.$nextArrow&&(typeof _.options.nextArrow!=="object")){_.$nextArrow.remove();}_.$slides.removeClass("slick-slide slick-active slick-visible").css("width","");};Slick.prototype.updateArrows=function(){var _=this,centerOffset;centerOffset=Math.floor(_.options.slidesToShow/2);if(_.options.arrows===true&&_.options.infinite!==true&&_.slideCount>_.options.slidesToShow){_.$prevArrow.removeClass("slick-disabled");_.$nextArrow.removeClass("slick-disabled");if(_.currentSlide===0){_.$prevArrow.addClass("slick-disabled");_.$nextArrow.removeClass("slick-disabled");}else{if(_.currentSlide>=_.slideCount-_.options.slidesToShow&&_.options.centerMode===false){_.$nextArrow.addClass("slick-disabled");_.$prevArrow.removeClass("slick-disabled");}else{if(_.currentSlide>_.slideCount-_.options.slidesToShow+centerOffset&&_.options.centerMode===true){_.$nextArrow.addClass("slick-disabled");_.$prevArrow.removeClass("slick-disabled");}}}}};Slick.prototype.updateDots=function(){var _=this;if(_.$dots!==null){_.$dots.find("li").removeClass("slick-active");_.$dots.find("li").eq(Math.floor(_.currentSlide/_.options.slidesToScroll)).addClass("slick-active");}};$.fn.slick=function(options){var _=this;return _.each(function(index,element){element.slick=new Slick(element,options);});};$.fn.slickAdd=function(slide,slideIndex,addBefore){var _=this;return _.each(function(index,element){element.slick.addSlide(slide,slideIndex,addBefore);});};$.fn.slickCurrentSlide=function(){var _=this;return _.get(0).slick.getCurrent();};$.fn.slickFilter=function(filter){var _=this;return _.each(function(index,element){element.slick.filterSlides(filter);});};$.fn.slickGoTo=function(slide,dontAnimate){var _=this;return _.each(function(index,element){element.slick.changeSlide({data:{message:"index",index:
vendor: 25,668 bytes, lines 6077-6094
6077parseInt(slide)}},dontAnimate);});};$.fn.slickNext=function(){var _=this;return _.each(function(index,element){element.slick.changeSlide({data:{message:"next"}});});};$.fn.slickPause=function(){var _=this;return _.each(function(index,element){element.slick.autoPlayClear();element.slick.paused=true;});};$.fn.slickPlay=function(){var _=this;return _.each(function(index,element){element.slick.paused=false;element.slick.autoPlay();});};$.fn.slickPrev=function(){var _=this;return _.each(function(index,element){element.slick.changeSlide({data:{message:"previous"}});});};$.fn.slickRemove=function(slideIndex,removeBefore){var _=this;return _.each(function(index,element){element.slick.removeSlide(slideIndex,removeBefore);});};$.fn.slickRemoveAll=function(){var _=this;return _.each(function(index,element){element.slick.removeSlide(null,null,true);});};$.fn.slickGetOption=function(option){var _=this;return _.get(0).slick.options[option];};$.fn.slickSetOption=function(option,value,refresh){var _=this;return _.each(function(index,element){element.slick.options[option]=value;if(refresh===true){element.slick.unload();element.slick.reinit();}});};$.fn.slickUnfilter=function(){var _=this;return _.each(function(index,element){element.slick.unfilterSlides();});};$.fn.unslick=function(){var _=this;return _.each(function(index,element){if(element.slick){element.slick.destroy();}});};$.fn.getSlick=function(){var s=null;var _=this;_.each(function(index,element){s=element.slick;});return s;};}));
6078   /* Ende slick */
6079   /* Start jquery.magnific-popup */
6080   /*! Magnific Popup - v0.9.9 - 2013-12-27
6081* http://dimsemenov.com/plugins/magnific-popup/
6082* Copyright (c) 2013 Dmitry Semenov;
6083
6084 * --GSBDocStart
6085 * @module Magnific Popup
6086 * @version 0.9.9
6087 * @see {@link http://dimsemenov.com/plugins/magnific-popup/}
6088 * @author Dmitry Semenov, 2013
6089 * @license MIT license
6090 * 
6091 * @desc Responsives Lightbox & Dialog Skript mit dem Fokus auf Performanz und dem besten Erlebnis für den Nutzer auf jedem Endgerät
6092 *--GSBDocEnd
6093 */
6094(function($){var CLOSE_EVENT="Close",BEFORE_CLOSE_EVENT="BeforeClose",AFTER_CLOSE_EVENT="AfterClose",BEFORE_APPEND_EVENT="BeforeAppend",MARKUP_PARSE_EVENT="MarkupParse",OPEN_EVENT="Open",CHANGE_EVENT="Change",NS="mfp",EVENT_NS="."+NS,READY_CLASS="mfp-ready",REMOVING_CLASS="mfp-removing",PREVENT_CLOSE_CLASS="mfp-prevent-close";var mfp,MagnificPopup=function(){},_isJQ=!!(window.jQuery),_prevStatus,_window=$(window),_body,_document,_prevContentType,_wrapClasses,_currPopupType;var _mfpOn=function(name,f){mfp.ev.on(NS+name+EVENT_NS,f);},_getEl=function(className,appendTo,html,raw){var el=document.createElement("div");el.className="mfp-"+className;if(html){el.innerHTML=html;}if(!raw){el=$(el);if(appendTo){el.appendTo(appendTo);}}else{if(appendTo){appendTo.appendChild(el);}}return el;},_mfpTrigger=function(e,data){mfp.ev.triggerHandler(NS+e,data);if(mfp.st.callbacks){e=e.charAt(0).toLowerCase()+e.slice(1);if(mfp.st.callbacks[e]){mfp.st.callbacks[e].apply(mfp,$.isArray(data)?data:[data]);}}},_getCloseBtn=function(type){if(type!==_currPopupType||!mfp.currTemplate.closeBtn){mfp.currTemplate.closeBtn=$(mfp.st.closeMarkup.replace("%title%",mfp.st.tClose));_currPopupType=type;}return mfp.currTemplate.closeBtn;},_checkInstance=function(){if(!$.magnificPopup.instance){mfp=new MagnificPopup();mfp.init();$.magnificPopup.instance=mfp;}},supportsTransitions=function(){var s=document.createElement("p").style,v=["ms","O","Moz","Webkit"];if(s["transition"]!==undefined){return true;}while(v.length){if(v.pop()+"Transition" in s){return true;}}return false;};MagnificPopup.prototype={constructor:MagnificPopup,init:function(){var appVersion=navigator.appVersion;mfp.isIE7=appVersion.indexOf("MSIE 7.")!==-1;mfp.isIE8=appVersion.indexOf("MSIE 8.")!==-1;mfp.isLowIE=mfp.isIE7||mfp.isIE8;mfp.isAndroid=(/android/gi).test(appVersion);mfp.isIOS=(/iphone|ipad|ipod/gi).test(appVersion);mfp.supportsTransition=supportsTransitions();mfp.probablyMobile=(mfp.isAndroid||mfp.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent));_document=$(document);mfp.popupsCache={};},open:function(data){if(!_body){_body=$(document.body);}var i;if(data.isObj===false){mfp.items=data.items.toArray();mfp.index=0;var items=data.items,item;for(i=0;i<items.length;i++){item=items[i];if(item.parsed){item=item.el[0];}if(item===data.el[0]){mfp.index=i;break;}}}else{mfp.items=$.isArray(data.items)?data.items:[data.items];mfp.index=data.index||0;}if(mfp.isOpen){mfp.updateItemHTML();return;}mfp.types=[];_wrapClasses="";if(data.mainEl&&data.mainEl.length){mfp.ev=data.mainEl.eq(0);}else{mfp.ev=_document;}if(data.key){if(!mfp.popupsCache[data.key]){mfp.popupsCache[data.key]={};}mfp.currTemplate=mfp.popupsCache[data.key];}else{mfp.currTemplate={};}mfp.st=$.extend(true,{},$.magnificPopup.defaults,data);mfp.fixedContentPos=mfp.st.fixedContentPos==="auto"?!mfp.probablyMobile:mfp.st.fixedContentPos;if(mfp.st.modal){mfp.st.closeOnContentClick=false;mfp.st.closeOnBgClick=false;mfp.st.showCloseBtn=false;mfp.st.enableEscapeKey=false;}if(!mfp.bgOverlay){mfp.bgOverlay=_getEl("bg").on("click"+EVENT_NS,function(){mfp.close();});mfp.wrap=_getEl("wrap").attr("tabindex",-1).on("click"+EVENT_NS,function(e){if(mfp._checkIfClose(e.target)){mfp.close();}});mfp.container=_getEl("container",mfp.wrap);}mfp.contentContainer=_getEl("content");if(mfp.st.preloader){mfp.preloader=_getEl("preloader",mfp.container,mfp.st.tLoading);}var modules=$.magnificPopup.modules;for(i=0;i<modules.length;i++){var n=modules[i];n=n.charAt(0).toUpperCase()+n.slice(1);mfp["init"+n].call(mfp);}_mfpTrigger("BeforeOpen");if(mfp.st.showCloseBtn){if(!mfp.st.closeBtnInside){mfp.wrap.append(_getCloseBtn());}else{_mfpOn(MARKUP_PARSE_EVENT,function(e,template,values,item){values.close_replaceWith=_getCloseBtn(item.type);});_wrapClasses+=" mfp-close-btn-in";}}if(mfp.st.alignTop){_wrapClasses+=" mfp-align-top";}if(mfp.fixedContentPos){mfp.wrap.css({overflow:mfp.st.overflowY,overflowX:"hidden",overflowY:mfp.st.overflowY});}else{mfp.wrap.css({top:_window.scrollTop(),position:"absolute"});}if(mfp.st.fixedBgPos===false||(mfp.st.fixedBgPos==="auto"&&!mfp.fixedContentPos)){mfp.bgOverlay.css({height:_document.height(),position:"absolute"});}if(mfp.st.enableEscapeKey){_document.on("keyup"+EVENT_NS,function(e){if(e.keyCode===27){mfp.close();}});}_window.on("resize"+EVENT_NS,function(){mfp.updateSize();});if(!mfp.st.closeOnContentClick){_wrapClasses+=" mfp-auto-cursor";}if(_wrapClasses){mfp.wrap.addClass(_wrapClasses);}var windowHeight=mfp.wH=_window.height();var windowStyles={};if(mfp.fixedContentPos){if(mfp._hasScrollBar(windowHeight)){var s=mfp._getScrollbarSize();if(s){windowStyles.marginRight=s;}}}if(mfp.fixedContentPos){if(!mfp.isIE7){windowStyles.overflow="hidden";}else{$("body, html").css("overflow","hidden");}}var classesToadd=mfp.st.mainClass;if(mfp.isIE7){classesToadd+=" mfp-ie7";}if(classesToadd){mfp._addClassToMFP(classesToadd);}mfp.updateItemHTML();_mfpTrigger("BuildControls");$("html").css(windowStyles);mfp.bgOverlay.add(mfp.wrap).prependTo(mfp.st.prependTo||_body);mfp._lastFocusedEl=document.activeElement;setTimeout(function(){if(mfp.content){mfp._addClassToMFP(READY_CLASS);mfp._setFocus();}else{mfp.bgOverlay.addClass(READY_CLASS);}_document.on("focusin"+EVENT_NS,mfp._onFocusIn);},16);mfp.isOpen=true;mfp.updateSize(windowHeight);_mfpTrigger(OPEN_EVENT);return data;},close:function(){if(!mfp.isOpen){return;}_mfpTrigger(BEFORE_CLOSE_EVENT);mfp.isOpen=false;if(mfp.st.removalDelay&&!mfp.isLowIE&&mfp.supportsTransition){mfp._addClassToMFP(REMOVING_CLASS);setTimeout(function(){mfp._close();},mfp.st.removalDelay);}else{mfp._close();}},_close:function(){_mfpTrigger(CLOSE_EVENT);var classesToRemove=REMOVING_CLASS+" "+READY_CLASS+" ";mfp.bgOverlay.detach();mfp.wrap.detach();mfp.container.empty();if(mfp.st.mainClass){classesToRemove+=mfp.st.mainClass+" ";}mfp._removeClassFromMFP(classesToRemove);if(mfp.fixedContentPos){var windowStyles={marginRight:""};if(mfp.isIE7){$("body, html").css("overflow","");}else{windowStyles.overflow="";}$("html").css(windowStyles);}_document.off("keyup"+EVENT_NS+" focusin"+EVENT_NS);mfp.ev.off(EVENT_NS);mfp.wrap.attr("class","mfp-wrap").removeAttr("style");mfp.bgOverlay.attr("class","mfp-bg");mfp.container.attr("class","mfp-container");if(mfp.st.showCloseBtn&&(!mfp.st.closeBtnInside||mfp.currTemplate[mfp.currItem.type]===true)){if(mfp.currTemplate.closeBtn){mfp.currTemplate.closeBtn.detach();}}if(mfp._lastFocusedEl){$(mfp._lastFocusedEl).focus();}mfp.currItem=null;mfp.content=null;mfp.currTemplate=null;mfp.prevHeight=0;_mfpTrigger(AFTER_CLOSE_EVENT);},updateSize:function(winHeight){if(mfp.isIOS){var zoomLevel=document.documentElement.clientWidth/window.innerWidth;var height=window.innerHeight*zoomLevel;mfp.wrap.css("height",height);mfp.wH=height;}else{mfp.wH=winHeight||_window.height();}if(!mfp.fixedContentPos){mfp.wrap.css("height",mfp.wH);}_mfpTrigger("Resize");},updateItemHTML:function(){var item=mfp.items[mfp.index];mfp.contentContainer.detach();if(mfp.content){mfp.content.detach();}if(!item.parsed){item=mfp.parseEl(mfp.index);}var type=item.type;_mfpTrigger("BeforeChange",[mfp.currItem?mfp.currItem.type:"",type]);mfp.currItem=item;if(!mfp.currTemplate[type]){var markup=mfp.st[type]?mfp.st[type].markup:false;_mfpTrigger("FirstMarkupParse",markup);if(markup){mfp.currTemplate[type]=$(markup);}else{mfp.currTemplate[type]=true;}}if(_prevContentType&&_prevContentType!==item.type){mfp.container.removeClass("mfp-"+_prevContentType+"-holder");}var newContent=mfp["get"+type.charAt(0).toUpperCase()+type.slice(1)](item,mfp.currTemplate[type]);mfp.appendContent(newContent,type);item.preloaded=true;_mfpTrigger(CHANGE_EVENT,item);_prevContentType=item.type;mfp.container.prepend(mfp.contentContainer);_mfpTrigger("AfterChange");},appendContent:function(newContent,type){mfp.content=newContent;if(newContent){if(mfp.st.showCloseBtn&&mfp.st.closeBtnInside&&mfp.currTemplate[type]===true){if(!mfp.content.find(".mfp-close").length){mfp.content.append(_getCloseBtn());}}else{mfp.content=newContent;}}else{mfp.content="";}_mfpTrigger(BEFORE_APPEND_EVENT);mfp.container.addClass("mfp-"+type+"-holder");mfp.contentContainer.append(mfp.content);},parseEl:function(index){var item=mfp.items[index],type;if(item.tagName){item={el:$(item)};}else{type=item.type;item={data:item,src:item.src};}if(item.el){var types=mfp.types;for(var i=0;i<types.length;i++){if(item.el.hasClass("mfp-"+types[i])){type=types[i];break;}}item.src=item.el.attr("data-mfp-src");if(!item.src){item.src=item.el.attr("href");}}item.type=type||mfp.st.type||"inline";item.index=index;item.parsed=true;mfp.items[index]=item;_mfpTrigger("ElementParse",item);return mfp.items[index];},addGroup:function(el,options){var eHandler=function(e){e.mfpEl=this;mfp._openClick(e,el,options);};if(!options){options={};}var eName="click.magnificPopup";options.mainEl=el;if(options.items){options.isObj=true;el.off(eName).on(eName,eHandler);}else{options.isObj=false;if(options.delegate){el.off(eName).on(eName,options.delegate,eHandler);}else{options.items=el;el.off(eName).on(eName,eHandler);}}},_openClick:function(e,el,options){var midClick=options.midClick!==undefined?options.midClick:$.magnificPopup.defaults.midClick;if(!midClick&&(e.which===2||e.ctrlKey||e.metaKey)){return;}var disableOn=options.disableOn!==undefined?options.disableOn:$.magnificPopup.defaults.disableOn;if(disableOn){if($.isFunction(disableOn)){if(!disableOn.call(mfp)){return true;}}else{if(_window.width()<disableOn){return true;}}}if(e.type){e.preventDefault();if(mfp.isOpen){e.stopPropagation();}}options.el=$(e.mfpEl);if(options.delegate){options.items=el.find(options.delegate);}mfp.open(options);},updateStatus:function(status,text){if(mfp.preloader){if(_prevStatus!==status){mfp.container.removeClass("mfp-s-"+_prevStatus);}if(!text&&status==="loading"){text=mfp.st.tLoading;}var data={status:status,text:text};_mfpTrigger("UpdateStatus",data);status=data.status;text=data.text;mfp.preloader.html(text);mfp.preloader.find("a").on("click",function(e){e.stopImmediatePropagation();});mfp.container.addClass("mfp-s-"+status);_prevStatus=status;}},_checkIfClose:function(target){if($(target).hasClass(PREVENT_CLOSE_CLASS)){return;}var closeOnContent=mfp.st.closeOnContentClick;var closeOnBg=mfp.st.closeOnBgClick;if(closeOnContent&&closeOnBg){return true;}else{if(!mfp.content||$(target).hasClass("mfp-close")||(mfp.preloader&&target===mfp.preloader[0])){return true;}if((target!==mfp.content[0]&&!$.contains(mfp.content[0],target))){if(closeOnBg){if($.contains(document,target)){return true;}}}else{if(closeOnContent){return true;}}}return false;},_addClassToMFP:function(cName){mfp.bgOverlay.addClass(cName);mfp.wrap.addClass(cName);},_removeClassFromMFP:function(cName){this.bgOverlay.removeClass(cName);mfp.wrap.removeClass(cName);},_hasScrollBar:function(winHeight){return((mfp.isIE7?_document.height():document.body.scrollHeight)>(winHeight||_window.height()));},_setFocus:function(){(mfp.st.focus?mfp.content.find(mfp.st.focus).eq(0):mfp.wrap).focus();},_onFocusIn:function(e){if(e.target!==mfp.wrap[0]&&!$.contains(mfp.wrap[0],e.target)){mfp._setFocus();return false;}},_parseMarkup:function(template,values,item){var arr;if(item.data){values=$.extend(item.data,values);}_mfpTrigger(MARKUP_PARSE_EVENT,[template,values,item]);$.each(values,function(key,value){if(value===undefined||value===false){return true;}arr=key.split("_");if(arr.length>1){var el=template.find(EVENT_NS+"-"+arr[0]);if(el.length>0){var attr=arr[1];if(attr==="replaceWith"){if(el[0]!==value[0]){el.replaceWith(value);}}else{if(attr==="img"){if(el.is("img")){el.attr("src",value);}else{el.replaceWith('<img src="'+value+'" class="'+el.attr("class")+'" />');}}else{el.attr(arr[1],value);}}}}else{template.find(EVENT_NS+"-"+key).html(value);}});},_getScrollbarSize:function(){if(mfp.scrollbarSize===undefined){var scrollDiv=document.createElement("div");scrollDiv.id="mfp-sbm";scrollDiv.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;";document.body.appendChild(scrollDiv);mfp.scrollbarSize=scrollDiv.offsetWidth-scrollDiv.clientWidth;document.body.removeChild(scrollDiv);}return mfp.scrollbarSize;}};$.magnificPopup={instance:null,proto:MagnificPopup.prototype,modules:[],open:function(options,index){_checkInstance();if(!options){options={};}else{options=$.extend(true,{},options);}options.isObj=true;options.index=index||0;return this.instance.open(options);},close:function(){return $.magnificPopup.instance&&$.magnificPopup.instance.close();},registerModule:function(name,module){if(module.options){$.magnificPopup.defaults[name]=module.options;}$.extend(this.proto,module.proto);this.modules.push(name);},defaults:{disableOn:0,key:null,midClick:false,mainClass:"",preloader:true,focus:"",closeOnContentClick:false,closeOnBgClick:true,closeBtnInside:true,showCloseBtn:true,enableEscapeKey:true,modal:false,alignTop:false,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&times;</button>',tClose:"Close (Esc)",tLoading:"Loading..."}};$.fn.magnificPopup=function(options){_checkInstance();var jqEl=$(this);if(typeof options==="string"){if(options==="open"){var items,itemOpts=_isJQ?jqEl.data("magnificPopup"):jqEl[0].magnificPopup,index=parseInt(arguments[1],10)||0;if(itemOpts.items){items=itemOpts.items[index];}else{items=jqEl;if(itemOpts.delegate){items=items.find(itemOpts.delegate);}items=items.eq(index);}mfp._openClick({mfpEl:items},jqEl,itemOpts);}else{if(mfp.isOpen){mfp[options].apply(mfp,Array.prototype.slice.call(arguments,1));}}}else{options=$.extend(true,{},options);if(_isJQ){jqEl.data("magnificPopup",options);}else{jqEl[0].magnificPopup=options;}mfp.addGroup(jqEl,options);}return jqEl;};var INLINE_NS="inline",_hiddenClass,_inlinePlaceholder,_lastInlineElement,_putInlineElementsBack=function(){if(_lastInlineElement){_inlinePlaceholder.after(_lastInlineElement.addClass(_hiddenClass)).detach();_lastInlineElement=null;}};$.magnificPopup.registerModule(INLINE_NS,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){mfp.types.push(INLINE_NS);_mfpOn(CLOSE_EVENT+"."+INLINE_NS,function(){_putInlineElementsBack();});},getInline:function(item,template){_putInlineElementsBack();if(item.src){var inlineSt=mfp.st.inline,el=$(item.src);if(el.length){var parent=el[0].parentNode;if(parent&&parent.tagName){if(!_inlinePlaceholder){_hiddenClass=inlineSt.hiddenClass;_inlinePlaceholder=_getEl(_hiddenClass);_hiddenClass="mfp-"+_hiddenClass;}_lastInlineElement=el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);}mfp.updateStatus("ready");}else{mfp.updateStatus("error",inlineSt.tNotFound);el=$("<div>");}item.inlineElement=el;return el;}mfp.updateStatus("ready");mfp._parseMarkup(template,{},item);return template;}}});var AJAX_NS="ajax",_ajaxCur,_removeAjaxCursor=function(){if(_ajaxCur){_body.removeClass(_ajaxCur);}},_destroyAjaxRequest=function(){_removeAjaxCursor();if(mfp.req){mfp.req.abort();}};$.magnificPopup.registerModule(AJAX_NS,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){mfp.types.push(AJAX_NS);_ajaxCur=mfp.st.ajax.cursor;_mfpOn(CLOSE_EVENT+"."+AJAX_NS,_destroyAjaxRequest);_mfpOn("BeforeChange."+AJAX_NS,_destroyAjaxRequest);},getAjax:function(item){if(_ajaxCur){_body.addClass(_ajaxCur);}mfp.updateStatus("loading");var opts=$.extend({url:item.src,success:function(data,textStatus,jqXHR){var temp={data:data,xhr:jqXHR};_mfpTrigger("ParseAjax",temp);mfp.appendContent($(temp.data),AJAX_NS);item.finished=true;_removeAjaxCursor();mfp._setFocus();setTimeout(function(){mfp.wrap.addClass(READY_CLASS);},16);mfp.updateStatus("ready");_mfpTrigger("AjaxContentAdded");},error:function(){_removeAjaxCursor();item.finished=item.loadError=true;mfp.updateStatus("error",mfp.st.ajax.tError.replace("%url%",item.src));}},mfp.st.ajax.settings);mfp.req=$.ajax(opts);return"";}}});var _imgInterval,_getTitle=function(item){if(item.data&&item.data.title!==undefined){return item.data.title;}var src=mfp.st.image.titleSrc;if(src){if($.isFunction(src)){return src.call(mfp,item);}else{if(item.el){return item.el.attr(src)||"";}}}return"";};$.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure">'+'<div class="mfp-close"></div>'+"<figure>"+'<div class="mfp-img"></div>'+"<figcaption>"+'<div class="mfp-bottom-bar">'+'<div class="mfp-title"></div>'+'<div class="mfp-counter"></div>'+"</div>"+"</figcaption>"+"</figure>"+"</div>",cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:true,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var imgSt=mfp.st.image,ns=".image";mfp.types.push("image");_mfpOn(OPEN_EVENT+ns,function(){if(mfp.currItem.type==="image"&&imgSt.cursor){_body.addClass(imgSt.cursor);}});_mfpOn(CLOSE_EVENT+ns,function(){if(imgSt.cursor){_body.removeClass(imgSt.cursor);}_window.off("resize"+EVENT_NS);});_mfpOn("Resize"+ns,mfp.resizeImage);if(mfp.isLowIE){_mfpOn("AfterChange",mfp.resizeImage);}},resizeImage:function(){var item=mfp.currItem;if(!item||!item.img){return;}if(mfp.st.image.verticalFit){var decr=0;if(mfp.isLowIE){decr=parseInt(item.img.css("padding-top"),10)+parseInt(item.img.css("padding-bottom"),10);}item.img.css("max-height",mfp.wH-decr);}},_onImageHasSize:function(item){if(item.img){item.hasSize=true;if(_imgInterval){clearInterval(_imgInterval);}item.isCheckingImgSize=false;_mfpTrigger("ImageHasSize",item);if(item.imgHidden){if(mfp.content){mfp.content.removeClass("mfp-loading");}item.imgHidden=false;}}},findImageSize:function(item){var counter=0,img=item.img[0],mfpSetInterval=function(delay){if(_imgInterval){clearInterval(_imgInterval);}_imgInterval=setInterval(function(){if(img.naturalWidth>0){mfp._onImageHasSize(item);return;}if(counter>200){clearInterval(_imgInterval);}counter++;if(counter===3){mfpSetInterval(10);}else{if(counter===40){mfpSetInterval(50);}else{if(counter===100){mfpSetInterval(500);}}}},delay);};mfpSetInterval(1);},getImage:function(item,template){var guard=0,onLoadComplete=function(){if(item){if(item.img[0].complete){item.img.off(".mfploader");if(item===mfp.currItem){mfp._onImageHasSize(item);mfp.updateStatus("ready");}item.hasSize=true;item.loaded=true;_mfpTrigger("ImageLoadComplete");}else{guard++;if(guard<200){setTimeout(onLoadComplete,100);}else{onLoadError();}}}},onLoadError=function(){if(item){item.img.off(".mfploader");if(item===mfp.currItem){mfp._onImageHasSize(item);mfp.updateStatus("error",imgSt.tError.replace("%url%",item.src));}item.hasSize=true;item.loaded=true;item.loadError=true;}},imgSt=mfp.st.image;var el=template.find(".mfp-img");if(el.length){var img=document.createElement("img");img.className="mfp-img";item.img=$(img).on("load.mfploader",onLoadComplete).on("error.mfploader",onLoadError);img.src=item.src;if(el.is("img")){item.img=item.img.clone();}img=item.img[0];if(img.naturalWidth>0){item.hasSize=true;}else{if(!img.width){item.hasSize=false;}}}mfp._parseMarkup(template,{title:_getTitle(item),img_replaceWith:item.img},item);mfp.resizeImage();if(item.hasSize){if(_imgInterval){clearInterval(_imgInterval);}if(item.loadError){template.addClass("mfp-loading");mfp.updateStatus("error",imgSt.tError.replace("%url%",item.src));}else{template.removeClass("mfp-loading");mfp.updateStatus("ready");}return template;}mfp.updateStatus("loading");item.loading=true;if(!item.hasSize){item.imgHidden=true;template.addClass("mfp-loading");mfp.findImageSize(item);}return template;}}});var hasMozTransform,getHasMozTransform=function(){if(hasMozTransform===undefined){hasMozTransform=document.createElement("p").style.MozTransform!==undefined;}return hasMozTransform;};$.magnificPopup.registerModule("zoom",{options:{enabled:false,easing:"ease-in-out",duration:300,opener:function(element){return element.is("img")?element:element.find("img");}},proto:{initZoom:function(){var zoomSt=mfp.st.zoom,ns=".zoom",image;if(!zoomSt.enabled||!mfp.supportsTransition){return;}var duration=zoomSt.duration,getElToAnimate=function(image){var newImg=image.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),transition="all "+(zoomSt.duration/1000)+"s "+zoomSt.easing,cssObj={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},t="transition";cssObj["-webkit-"+t]=cssObj["-moz-"+t]=cssObj["-o-"+t]=cssObj[t]=transition;newImg.css(cssObj);return newImg;},showMainContent=function(){mfp.content.css("visibility","visible");},openTimeout,animatedImg;_mfpOn("BuildControls"+ns,function(){if(mfp._allowZoom()){clearTimeout(openTimeout);mfp.content.css("visibility","hidden");image=mfp._getItemToZoom();if(!image){showMainContent();return;}animatedImg=getElToAnimate(image);animatedImg.css(mfp._getOffset());mfp.wrap.append(animatedImg);openTimeout=setTimeout(function(){animatedImg.css(mfp._getOffset(true));openTimeout=setTimeout(function(){showMainContent();setTimeout(function(){animatedImg.remove();image=animatedImg=null;_mfpTrigger("ZoomAnimationEnded");},16);},duration);},16);}});_mfpOn(BEFORE_CLOSE_EVENT+ns,function(){if(mfp._allowZoom()){clearTimeout(openTimeout);mfp.st.removalDelay=duration;if(!image){image=mfp._getItemToZoom();if(!image){return;}animatedImg=getElToAnimate(image);}animatedImg.css(mfp._getOffset(true));mfp.wrap.append(animatedImg);mfp.content.css("visibility","hidden");setTimeout(function(){animatedImg.css(mfp._getOffset());},16);}});_mfpOn(CLOSE_EVENT+ns,function(){if(mfp._allowZoom()){showMainContent();if(animatedImg){animatedImg.remove();}image=null;}});},_allowZoom:function(){return mfp.currItem.type==="image";},_getItemToZoom:function(){if(mfp.currItem.hasSize){return mfp.currItem.img;}else{return false;}},_getOffset:function(isLarge){var el;if(isLarge){el=mfp.currItem.img;}else{el=mfp.st.zoom.opener(mfp.currItem.el||mfp.currItem);}var offset=el.offset();var paddingTop=parseInt(el.css("padding-top"),10);var paddingBottom=parseInt(el.css("padding-bottom"),10);offset.top-=($(window).scrollTop()-paddingTop);var obj={width:el.width(),height:(_isJQ?el.innerHeight():el[0].offsetHeight)-paddingBottom-paddingTop};if(getHasMozTransform()){obj["-moz-transform"]=obj["transform"]="translate("+offset.left+"px,"+offset.top+"px)";}else{obj.left=offset.left;obj.top=offset.top;}return obj;}}});var IFRAME_NS="iframe",_emptyPage="//about:blank",_fixIframeBugs=function(isShowing){if(mfp.currTemplate[IFRAME_NS]){var el=mfp.currTemplate[IFRAME_NS].find("iframe");if(el.length){if(!isShowing){el[0].src=_emptyPage;}if(mfp.isIE8){el.css("display",isShowing?"block":"none");}}}};$.magnificPopup.registerModule(IFRAME_NS,{options:{markup:'<div class="mfp-iframe-scaler">'+'<div class="mfp-close"></div>'+'<iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe>'+"</div>",srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){mfp.types.push(IFRAME_NS);_mfpOn("BeforeChange",function(e,prevType,newType){if(prevType!==newType){if(prevType===IFRAME_NS){_fixIframeBugs();}else{if(newType===IFRAME_NS){_fixIframeBugs(true);}}}});_mfpOn(CLOSE_EVENT+"."+IFRAME_NS,function(){_fixIframeBugs();});},getIframe:function(item,template){var embedSrc=item.src;var iframeSt=mfp.st.iframe;$.each(iframeSt.patterns,function(){if(embedSrc.indexOf(this.index)>
6094-1){if(this.id){if(typeof this.id==="string"){embedSrc=embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length,embedSrc.length);}else{embedSrc=this.id.call(this,embedSrc);}}embedSrc=this.src.replace("%id%",embedSrc);return false;}});var dataObj={};if(iframeSt.srcAction){dataObj[iframeSt.srcAction]=embedSrc;}mfp._parseMarkup(template,dataObj,item);mfp.updateStatus("ready");return template;}}});var _getLoopedId=function(index){var numSlides=mfp.items.length;if(index>numSlides-1){return index-numSlides;}else{if(index<0){return numSlides+index;}}return index;},_replaceCurrTotal=function(text,curr,total){return text.replace(/%curr%/gi,curr+1).replace(/%total%/gi,total);};$.magnificPopup.registerModule("gallery",{options:{enabled:false,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:true,arrows:true,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var gSt=mfp.st.gallery,ns=".mfp-gallery",supportsFastClick=Boolean($.fn.mfpFastClick);mfp.direction=true;if(!gSt||!gSt.enabled){return false;}_wrapClasses+=" mfp-gallery";_mfpOn(OPEN_EVENT+ns,function(){if(gSt.navigateByImgClick){mfp.wrap.on("click"+ns,".mfp-img",function(){if(mfp.items.length>1){mfp.next();return false;}});}_document.on("keydown"+ns,function(e){if(e.keyCode===37){mfp.prev();}else{if(e.keyCode===39){mfp.next();}}});});_mfpOn("UpdateStatus"+ns,function(e,data){if(data.text){data.text=_replaceCurrTotal(data.text,mfp.currItem.index,mfp.items.length);}});_mfpOn(MARKUP_PARSE_EVENT+ns,function(e,element,values,item){var l=mfp.items.length;values.counter=l>1?_replaceCurrTotal(gSt.tCounter,item.index,l):"";});_mfpOn("BuildControls"+ns,function(){if(mfp.items.length>1&&gSt.arrows&&!mfp.arrowLeft){var markup=gSt.arrowMarkup,arrowLeft=mfp.arrowLeft=$(markup.replace(/%title%/gi,gSt.tPrev).replace(/%dir%/gi,"left")).addClass(PREVENT_CLOSE_CLASS),arrowRight=mfp.arrowRight=$(markup.replace(/%title%/gi,gSt.tNext).replace(/%dir%/gi,"right")).addClass(PREVENT_CLOSE_CLASS);var eName=supportsFastClick?"mfpFastClick":"click";arrowLeft[eName](function(){mfp.prev();});arrowRight[eName](function(){mfp.next();});if(mfp.isIE7){_getEl("b",arrowLeft[0],false,true);_getEl("a",arrowLeft[0],false,true);_getEl("b",arrowRight[0],false,true);_getEl("a",arrowRight[0],false,true);}mfp.container.append(arrowLeft.add(arrowRight));}});_mfpOn(CHANGE_EVENT+ns,function(){if(mfp._preloadTimeout){clearTimeout(mfp._preloadTimeout);}mfp._preloadTimeout=setTimeout(function(){mfp.preloadNearbyImages();mfp._preloadTimeout=null;},16);});_mfpOn(CLOSE_EVENT+ns,function(){_document.off(ns);mfp.wrap.off("click"+ns);if(mfp.arrowLeft&&supportsFastClick){mfp.arrowLeft.add(mfp.arrowRight).destroyMfpFastClick();}mfp.arrowRight=mfp.arrowLeft=null;});},next:function(){mfp.direction=true;mfp.index=_getLoopedId(mfp.index+1);mfp.updateItemHTML();},prev:function(){mfp.direction=false;mfp.index=_getLoopedId(mfp.index-1);mfp.updateItemHTML();},goTo:function(newIndex){mfp.direction=(newIndex>=mfp.index);mfp.index=newIndex;mfp.updateItemHTML();},preloadNearbyImages:function(){var p=mfp.st.gallery.preload,preloadBefore=Math.min(p[0],mfp.items.length),preloadAfter=Math.min(p[1],mfp.items.length),i;for(i=1;i<=(mfp.direction?preloadAfter:preloadBefore);i++){mfp._preloadItem(mfp.index+i);}for(i=1;i<=(mfp.direction?preloadBefore:preloadAfter);i++){mfp._preloadItem(mfp.index-i);}},_preloadItem:function(index){index=_getLoopedId(index);if(mfp.items[index].preloaded){return;}var item=mfp.items[index];if(!item.parsed){item=mfp.parseEl(index);}_mfpTrigger("LazyLoad",item);if(item.type==="image"){item.img=$('<img class="mfp-img" />').on("load.mfploader",function(){item.hasSize=true;}).on("error.mfploader",function(){item.hasSize=true;item.loadError=true;_mfpTrigger("LazyLoadError",item);}).attr("src",item.src);}item.preloaded=true;}}});var RETINA_NS="retina";$.magnificPopup.registerModule(RETINA_NS,{options:{replaceSrc:function(item){return item.src.replace(/\.\w+$/,function(m){return"@2x"+m;});},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var st=mfp.st.retina,ratio=st.ratio;
6094ratio=!isNaN(ratio)?ratio:ratio();if(ratio>1){_mfpOn("ImageHasSize"+"."+RETINA_NS,function(e,item){item.img.css({"max-width":item.img[0].naturalWidth/ratio,"width":"100%"});});_mfpOn("ElementParse"+"."+RETINA_NS,function(e,item){item.src=st.replaceSrc(item,ratio);});}}}}});(function(){var ghostClickDelay=1000,supportsTouch="ontouchstart" in window,unbindTouchMove=function(){_window.off("touchmove"+ns+" touchend"+ns);},eName="mfpFastClick",ns="."+eName;$.fn.mfpFastClick=function(callback){return $(this).each(function(){var elem=$(this),lock;if(supportsTouch){var timeout,startX,startY,pointerMoved,point,numPointers;elem.on("touchstart"+ns,function(e){pointerMoved=false;numPointers=1;point=e.originalEvent?e.originalEvent.touches[0]:e.touches[0];startX=point.clientX;startY=point.clientY;_window.on("touchmove"+ns,function(e){point=e.originalEvent?e.originalEvent.touches:e.touches;numPointers=point.length;point=point[0];if(Math.abs(point.clientX-startX)>10||Math.abs(point.clientY-startY)>10){pointerMoved=true;unbindTouchMove();}}).on("touchend"+ns,function(e){unbindTouchMove();if(pointerMoved||numPointers>1){return;}lock=true;e.preventDefault();clearTimeout(timeout);timeout=setTimeout(function(){lock=false;},ghostClickDelay);callback();});});}elem.on("click"+ns,function(){if(!lock){callback();}});});};$.fn.destroyMfpFastClick=function(){$(this).off("touchstart"+ns+" click"+ns);if(supportsTouch){_window.off("touchmove"+ns+" touchend"+ns);}};})();_checkInstance();})(window.jQuery||window.Zepto);
6095   /* Ende jquery.magnific-popup */
6096   /* Start picturefill */
6097   /*! Picturefill - v2.2.0 - 2014-10-30
6098 * http://scottjehl.github.io/picturefill
6099 * Copyright (c) 2014 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT 
6100 * --GSBDocStart
6101 * @module picturefill
6102 * @version 2.2.0
6103 * @see {@link http://scottjehl.github.io/picturefill}
6104 * @author Scott Jehl, Paul Irish, Nicholas Zakas, David Knight, 2012
6105 * @license MIT license
6106 * 
6107 * @desc matchMedia() polyfill - Test a CSS media type/query in JS
6108 *--GSBDocEnd
6109*/
6110/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
6111window.matchMedia||(window.matchMedia=function(){var styleMedia=(window.styleMedia||window.media);if(!styleMedia){var style=document.createElement("style"),script=document.getElementsByTagName("script")[0],info=null;style.type="text/css";style.id="matchmediajs-test";script.parentNode.insertBefore(style,script);info=("getComputedStyle" in window)&&window.getComputedStyle(style,null)||style.currentStyle;styleMedia={matchMedium:function(media){var text="@media "+media+"{ #matchmediajs-test { width: 1px; } }";if(style.styleSheet){style.styleSheet.cssText=text;}else{style.textContent=text;}return info.width==="1px";}};}return function(media){return{matches:styleMedia.matchMedium(media||"all"),media:media||"all"};};}());
6112/*! Picturefill - Responsive Images that work today.
6113 * Author: Scott Jehl, Filament Group, 2012 ( new proposal implemented by Shawn Jansepar )
6114 * License: MIT/GPLv2
6115 * Spec: http://picture.responsiveimages.org/
6116 */
6117(function(w,doc,image){if(w.HTMLPictureElement){w.picturefill=function(){};return;}doc.createElement("picture");var pf={};pf.ns="picturefill";(function(){pf.srcsetSupported="srcset" in image;pf.sizesSupported="sizes" in image;})();pf.trim=function(str){return str.trim?str.trim():str.replace(/^\s+|\s+$/g,"");};pf.endsWith=function(str,suffix){return str.endsWith?str.endsWith(suffix):str.indexOf(suffix,str.length-suffix.length)!==-1;};pf.restrictsMixedContent=function(){return w.location.protocol==="https:";};pf.matchesMedia=function(media){return w.matchMedia&&w.matchMedia(media).matches;};pf.getDpr=function(){return(w.devicePixelRatio||1);};pf.getWidthFromLength=function(length){length=length&&length.indexOf("%")>-1===false&&(parseFloat(length)>0||length.indexOf("calc(")>-1)?length:"100vw";length=length.replace("vw","%");if(!pf.lengthEl){pf.lengthEl=doc.createElement("div");pf.lengthEl.style.cssText="border:0;display:block;font-size:1em;
6117left:0;margin:0;padding:0;position:absolute;visibility:hidden";}pf.lengthEl.style.width=length;doc.body.appendChild(pf.lengthEl);pf.lengthEl.className="helper-from-picturefill-js";if(pf.lengthEl.offsetWidth<=0){pf.lengthEl.style.width=doc.documentElement.offsetWidth+"px";}var offsetWidth=pf.lengthEl.offsetWidth;doc.body.removeChild(pf.lengthEl);return offsetWidth;};pf.types={};pf.types["image/jpeg"]=true;pf.types["image/gif"]=true;pf.types["image/png"]=true;pf.types["image/svg+xml"]=doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1");pf.types["image/webp"]=function(){var type="image/webp";image.onerror=function(){pf.types[type]=false;picturefill();};image.onload=function(){pf.types[type]=image.width===1;picturefill();};image.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA=";};pf.verifyTypeSupport=function(source){var type=source.getAttribute("type");if(type===null||type===""){return true;}else{if(typeof(pf.types[type])==="function"){pf.types[type]();return"pending";}else{return pf.types[type];}}};pf.parseSize=function(sourceSizeStr){var match=/(\([^)]+\))?\s*(.+)/g.exec(sourceSizeStr);return{media:match&&match[1],length:match&&match[2]};};pf.findWidthFromSourceSize=function(sourceSizeListStr){var sourceSizeList=pf.trim(sourceSizeListStr).split(/\s*,\s*/),winningLength;for(var i=0,len=sourceSizeList.length;i<len;i++){var sourceSize=sourceSizeList[i],parsedSize=pf.parseSize(sourceSize),length=parsedSize.length,media=parsedSize.media;if(!length){continue;}if(!media||pf.matchesMedia(media)){winningLength=length;break;}}return pf.getWidthFromLength(winningLength);};pf.parseSrcset=function(srcset){var candidates=[];while(srcset!==""){srcset=srcset.replace(/^\s+/g,"");var pos=srcset.search(/\s/g),url,descriptor=null;if(pos!==-1){url=srcset.slice(0,pos);var last=url.slice(-1);if(last===","||url===""){url=url.replace(/,+$/,"");descriptor="";}srcset=srcset.slice(pos+1);if(descriptor===null){var descpos=srcset.indexOf(",");if(descpos!==-1){descriptor=srcset.slice(0,descpos);srcset=srcset.slice(descpos+1);}else{descriptor=srcset;srcset="";}}}else{url=srcset;srcset="";}if(url||descriptor){candidates.push({url:url,descriptor:descriptor});}}return candidates;};pf.parseDescriptor=function(descriptor,sizesattr){var sizes=sizesattr||"100vw",sizeDescriptor=descriptor&&descriptor.replace(/(^\s+|\s+$)/g,""),widthInCssPixels=pf.findWidthFromSourceSize(sizes),resCandidate;if(sizeDescriptor){var splitDescriptor=sizeDescriptor.split(" ");for(var i=splitDescriptor.length-1;i>=0;i--){var curr=splitDescriptor[i],lastchar=curr&&curr.slice(curr.length-1);if((lastchar==="h"||lastchar==="w")&&!pf.sizesSupported){resCandidate=parseFloat((parseInt(curr,10)/widthInCssPixels));}else{if(lastchar==="x"){var res=curr&&parseFloat(curr,10);resCandidate=res&&!isNaN(res)?res:1;}}}}return resCandidate||1;};pf.getCandidatesFromSourceSet=function(srcset,sizes){var candidates=pf.parseSrcset(srcset),formattedCandidates=[];for(var i=0,len=candidates.length;i<len;i++){var candidate=candidates[i];formattedCandidates.push({url:candidate.url,resolution:pf.parseDescriptor(candidate.descriptor,sizes)});}return formattedCandidates;};pf.dodgeSrcset=function(img){if(img.srcset){img[pf.ns].srcset=img.srcset;img.removeAttribute("srcset");}};pf.processSourceSet=function(el){var srcset=el.getAttribute("srcset"),sizes=el.getAttribute("sizes"),candidates=[];if(el.nodeName.toUpperCase()==="IMG"&&el[pf.ns]&&el[pf.ns].srcset){srcset=el[pf.ns].srcset;}if(srcset){candidates=pf.getCandidatesFromSourceSet(srcset,sizes);}return candidates;};pf.applyBestCandidate=function(candidates,picImg){var candidate,length,bestCandidate;candidates.sort(pf.ascendingSort);length=candidates.length;bestCandidate=candidates[length-1];for(var i=0;i<length;i++){candidate=candidates[i];if(candidate.resolution>=pf.getDpr()){bestCandidate=candidate;break;}}if(bestCandidate&&!pf.endsWith(picImg.src,bestCandidate.url)){if(pf.restrictsMixedContent()&&bestCandidate.url.substr(0,"http:".length).toLowerCase()==="http:"){if(typeof console!==undefined){console.warn("Blocked mixed content image "+bestCandidate.url);}}else{picImg.src=bestCandidate.url;picImg.currentSrc=picImg.src;var style=picImg.style||{},WebkitBackfaceVisibility="webkitBackfaceVisibility" in style,currentZoom=style.zoom;if(WebkitBackfaceVisibility){style.zoom=".999";WebkitBackfaceVisibility=picImg.offsetWidth;style.zoom=currentZoom;}}}};pf.ascendingSort=function(a,b){return a.resolution-b.resolution;};pf.removeVideoShim=function(picture){var videos=picture.getElementsByTagName("video");if(videos.length){var video=videos[0],vsources=video.getElementsByTagName("source");while(vsources.length){picture.insertBefore(vsources[0],video);}video.parentNode.removeChild(video);}};pf.getAllElements=function(){var elems=[],imgs=doc.getElementsByTagName("img");for(var h=0,len=imgs.length;h<len;
6117h++){var currImg=imgs[h];if(currImg.parentNode.nodeName.toUpperCase()==="PICTURE"||(currImg.getAttribute("srcset")!==null)||currImg[pf.ns]&&currImg[pf.ns].srcset!==null){elems.push(currImg);}}return elems;};pf.getMatch=function(img,picture){var sources=picture.childNodes,match;for(var j=0,slen=sources.length;j<slen;j++){var source=sources[j];if(source.nodeType!==1){continue;}if(source===img){return match;}if(source.nodeName.toUpperCase()!=="SOURCE"){continue;}if(source.getAttribute("src")!==null&&typeof console!==undefined){console.warn("The `src` attribute is invalid on `picture` `source` element; instead, use `srcset`.");}var media=source.getAttribute("media");if(!source.getAttribute("srcset")){continue;}if((!media||pf.matchesMedia(media))){var typeSupported=pf.verifyTypeSupport(source);if(typeSupported===true){match=source;break;}else{if(typeSupported==="pending"){return false;}}}}return match;};function picturefill(opt){var elements,element,parent,firstMatch,candidates,options=opt||{};elements=options.elements||pf.getAllElements();for(var i=0,plen=elements.length;i<plen;i++){element=elements[i];parent=element.parentNode;firstMatch=undefined;candidates=undefined;if(element.nodeName.toUpperCase()!=="IMG"){continue;}if(!element[pf.ns]){element[pf.ns]={};}if(!options.reevaluate&&element[pf.ns].evaluated){continue;}if(parent.nodeName.toUpperCase()==="PICTURE"){pf.removeVideoShim(parent);firstMatch=pf.getMatch(element,parent);if(firstMatch===false){continue;}}else{firstMatch=undefined;}if(parent.nodeName.toUpperCase()==="PICTURE"||(element.srcset&&!pf.srcsetSupported)||(!pf.sizesSupported&&(element.srcset&&element.srcset.indexOf("w")>-1))){pf.dodgeSrcset(element);}if(firstMatch){candidates=pf.processSourceSet(firstMatch);pf.applyBestCandidate(candidates,element);}else{candidates=pf.processSourceSet(element);if(element.srcset===undefined||element[pf.ns].srcset){pf.applyBestCandidate(candidates,element);}}element[pf.ns].evaluated=true;}}function runPicturefill(){picturefill();var intervalId=setInterval(function(){picturefill();if(/^loaded|^i|^c/.test(doc.readyState)){clearInterval(intervalId);return;}},250);function checkResize(){var resizeThrottle;if(!w._picturefillWorking){w._picturefillWorking=true;w.clearTimeout(resizeThrottle);resizeThrottle=w.setTimeout(function(){picturefill({reevaluate:true});w._picturefillWorking=false;},60);}}if(w.addEventListener){w.addEventListener("resize",checkResize,false);}else{if(w.attachEvent){w.attachEvent("onresize",checkResize);}}}runPicturefill();picturefill._=pf;if(typeof module==="object"&&typeof module.exports==="object"){module.exports=picturefill;}else{if(typeof define==="function"&&define.amd){define(function(){return picturefill;});}else{if(typeof w==="object"){w.picturefill=picturefill;}}}})(this,this.document,new this.Image());
6118   /* Ende picturefill */
6119   /* Start cookie */
6120   (function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory);}else{if(typeof exports==="object"){factory(require("jquery"));}else{factory(jQuery);}}}(function($){var pluses=/\+/g;function encode(s){return config.raw?s:encodeURIComponent(s);}function decode(s){return config.raw?s:decodeURIComponent(s);}function stringifyCookieValue(value){return encode(config.json?JSON.stringify(value):String(value));}function parseCookieValue(s){if(s.indexOf('"')===0){s=s.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\");}try{s=decodeURIComponent(s.replace(pluses," "));return config.json?JSON.parse(s):s;}catch(e){}}function read(s,converter){var value=config.raw?s:parseCookieValue(s);return $.isFunction(converter)?converter(value):value;}var config=$.cookie=function(key,value,options){if(value!==undefined&&!$.isFunction(value)){options=$.extend({},config.defaults,options);if(typeof options.expires==="number"){var days=options.expires,t=options.expires=new Date();t.setTime(+t+days*86400000);}return(document.cookie=[encode(key),"=",stringifyCookieValue(value),options.expires?"; expires="+options.expires.toUTCString():"",options.path?"; path="+options.path:"",options.domain?"; domain="+options.domain:"",options.secure?"; secure":""].join(""));}var result=key?undefined:{};var cookies=document.cookie?document.cookie.split("; "):[];for(var i=0,l=cookies.length;i<l;i++){var parts=cookies[i].split("=");var name=decode(parts.shift());var cookie=parts.join("=");if(key&&key===name){result=read(cookie,value);break;}if(!key&&(cookie=read(cookie))!==undefined){result[name]=cookie;}}return result;};config.defaults={};
6120$.removeCookie=function(key,options){if($.cookie(key)===undefined){return false;}$.cookie(key,"",$.extend({},options,{expires:-1}));return !$.cookie(key);};}));
6121   /* Ende cookie */
6122   /* Start gsb_autosuggest */
6123   /*!
6124 * Optionen:
6125 * minInputLength: Ab wieviel eingegebenen Zeichen werden Vorschlaege ausgegeben (optional (default: 2))
6126 *
6127 * --GSBDocStart
6128 * @module gsb_autosuggest
6129 * @version 1.0.0 
6130 * @see {@link http://semver.org|Semantic Versioning}
6131 * @author gsb
6132 *
6133 * @desc GSB-Plugin zur Darstellung von Suchvorschlaegen
6134 * Skript stellt die Autovervollständigung für Solr-Suche bereit
6135 *
6136 * @option
6137 * minInputLength: Ab wieviel eingegebenen Zeichen werden Vorschlaege ausgegeben (optional (default: 2))
6138 * 
6139 * @init
6140 *     base.init = function (options) {
6141 *       base.actionUrl = actionUrl;
6142 *     base.options = $.extend({}, $.gsb.AutoSuggest.defaultOptions, options);
6143 *--GSBDocEnd
6144 */
6145(function($){if(!$.gsb){$.gsb={};}$.gsb.AutoSuggestBoxCounter=1;$.gsb.AutoSuggest=function(el,actionUrl,options){var base=this;base.$el=$(el);base.el=el;base.boxNumber=$.gsb.AutoSuggestBoxCounter++;base.$input=base.$el.find("input[type=text]:first");base.$submit=base.$el.find("input[type=submit]:first");if(base.$submit.length==0){base.$submit=base.$el.find("input[type=image]:first");}base.$el.data("gsb.AutoSuggest",base);base.reqQuery=false;base.queries=[];base.enterPos=-1;base.debug=false;base.init=function(options){base.actionUrl=actionUrl;base.options=$.extend({},$.gsb.AutoSuggest.defaultOptions,options);var positions=base.$input.position();base.$box=$('<p id="searchAutoSuggestBox'+base.boxNumber+'" class="searchAutoSuggestBox"></p>');base.$box.css({"width":(base.$input.outerWidth()-2)+"px","top":(positions.top+base.$input.outerHeight())+"px","left":positions.left+"px"});base.$box.hide();$(window).resize(function(){positions=base.$input.position();base.$box.css({"top":(positions.top+base.$input.outerHeight())+"px","left":positions.left+"px"});});base.$input.attr("autocomplete","off");base.$input.get(0).onkeydown=function(e){e=e||window.event;if(e){var code=(e.keyCode!=undefined&&null!=e.keyCode?e.keyCode:e.which);if(code==13){return base.keydownEnter();}else{if(code==38){return base.keydownUp();}else{if(code==40){return base.keydownDown();}}}}};base.$input.get(0).onkeyup=function(e){var go=false;e=e||window.event;if(e){var code=(e.keyCode!=undefined&&null!=e.keyCode?e.keyCode:e.which);if(code!=13&&code!=38&&code!=40){go=true;}}else{go=true;}if(go){if(base.$input.val().length>=base.options.minInputLength){base.query(base.$input.val());}else{base.showSuggestionBox(false);}}};base.$input.after(base.$box);base.$box=base.$el.find("#searchAutoSuggestBox"+base.boxNumber);base.$input.bind("blur",function(){base.showSuggestionBox(false);});};base.query=function(value){base.reqQuery=value;if(typeof base.queries[base.reqQuery]=="undefined"){if(base.debug&&typeof console!="undefined"&&console&&console.log){console.log('AutoSuggest-AJAX-Anfrage für "'+base.reqQuery+'"');}$.ajax({url:base.actionUrl,dataType:"json",data:{"userQuery":value},error:function(jqXHR,textStatus,errorThrown){if(base.debug&&typeof console!="undefined"&&console&&console.log){console.log("AJAX Fehler beim Abruf der JSON-Resource "+base.actionUrl+": "+textStatus+" :: "+errorThrown);}},success:function(data){base.queries[value]=data.suggestions;if(base.reqQuery==value){if(base.debug&&typeof console!="undefined"&&console&&console.log){console.log('AJAX-Antwort für "'+base.reqQuery+'" wird nun verarbeitet...');}if(base.debug&&typeof console!="undefined"&&console&&console.log){console.log(data);}base.showSuggestions(data.suggestions);}else{if(base.debug&&typeof console!="undefined"&&console&&console.log){console.log('AJAX-Antwort für "'+base.reqQuery+'" ist nicht mehr relevant...');}}}});}else{base.showSuggestions(base.queries[base.reqQuery]);}};base.showSuggestions=function(suggestions){base.$box.empty();var count=0;for(var s in suggestions){if(suggestions.hasOwnProperty(s)&&suggestions[s].name){var $link=$('<a href="#"></a>');$link.html(suggestions[s].name);$link.click(function(e){e.preventDefault();base.$input.val($(this).text());base.$submit.click();});$link.appendTo(base.$box);count++;}}if(count>0){base.showSuggestionBox(true);}else{base.showSuggestionBox(false);}};base.showSuggestionBox=function(show){base.enterPos=-1;if(show){base.$box.fadeIn("fast");}else{base.$box.fadeOut("fast");}};
6145base.keydownDown=function(){if(base.debug&&typeof console!="undefined"&&console&&console.log){console.log("KEYDOWN down");}if(base.enterPos<0&&base.$box.find("a").length>0){base.$box.find("a").removeClass("active");base.enterPos=0;$(base.$box.find("a")[base.enterPos]).addClass("active");}else{if(base.enterPos<base.$box.find("a").length-1){base.$box.find("a").removeClass("active");base.enterPos++;$(base.$box.find("a")[base.enterPos]).addClass("active");}}};base.keydownUp=function(){if(base.debug&&typeof console!="undefined"&&console&&console.log){console.log("KEYDOWN up");}if(base.enterPos<0&&base.$box.find("a").length>0){base.$box.find("a").removeClass("active");base.enterPos=base.$box.find("a").length-1;$(base.$box.find("a")[base.enterPos]).addClass("active");}else{if(base.enterPos>0){base.$box.find("a").removeClass("active");base.enterPos--;$(base.$box.find("a")[base.enterPos]).addClass("active");}}};base.keydownEnter=function(){if(base.debug&&typeof console!="undefined"&&console&&console.log){console.log("KEYDOWN enter");}if(base.enterPos>=0&&base.$box.find("a").length>base.enterPos){base.$box.find("a")[base.enterPos].click();return false;}};base.init(options);};$.gsb.AutoSuggest.defaultOptions={minInputLength:2};$.fn.gsb_AutoSuggest=function(actionUrl,options){return this.each(function(){new $.gsb.AutoSuggest(this,actionUrl,options);});};})(jQuery);
6146   /* Ende gsb_autosuggest */
6147   /* Start gsb_banner */
6148   (function($){if(!$.gsb){$.gsb={};}$.gsb.banner=function(el,options){var base=this;base.$el=$(el);base.el=el;base.$el.data("gsb.banner",base);base.init=function(){base.options=$.extend({},$.gsb.banner.defaultOptions,options);base.$el.gsb_responsiveListener(base);};base.show=function(){if(base.options.animation){if(base.options.position=="top"){base.$el.animate({top:0},base.options.animationSpeed);}else{base.$el.animate({bottom:0},base.options.animationSpeed);}}else{base.$el.css(base.options.position,0);}};$.gsb.banner.prototype.createBanner=function(){var bannerHeight=base.$el.outerHeight()+base.options.topOffset;base.$el.css(base.options.position,-bannerHeight);if(!$.cookie(base.options.cookieName)){base.show();$.cookie(base.options.cookieName,"visible",{expires:base.options.cookieLifeTimeInDaysVisible,path:"/"});}else{if($.cookie(base.options.cookieName)==="visible"){base.show();}else{base.$el.css("display","none");}}base.$el.find(base.options.buttonClass).click(function(e){e.preventDefault();e.stopPropagation();if(base.options.animation){if(base.options.position=="top"){base.$el.animate({top:-bannerHeight},base.options.animationSpeed,function(){base.$el.css("display","none");});}else{base.$el.animate({bottom:-bannerHeight},base.options.animationSpeed,function(){base.$el.css("display","none");});}}else{base.$el.css("display","none");}$.cookie(base.options.cookieName,"closed",{expires:base.options.cookieLifeTimeInDaysClosed,path:"/"});});};base.init();};$.gsb.banner.defaultOptions={animation:typeof(animation)=="undefined"?false:animation,animationSpeed:1800,position:typeof(position)=="undefined"?"bottom":position,topOffset:20,buttonClass:".close",cookieName:"gsbbanner",cookieLifeTimeInDaysVisible:5,cookieLifeTimeInDaysClosed:5,respondToEvents:true,onRefresh:function(){this.createBanner();}};$.fn.gsb_banner=function(options){return this.each(function(){(new $.gsb.banner(this,options));});};})(jQuery);
6149   /* Ende gsb_banner */
6150   /* Start gsb_calendar */
6151   /*!
6152* --GSBDocStart
6153 * @module gsb_calendar
6154 * @version 1.0.0 
6155 * @see {@link http://semver.org|Semantic Versioning}
6156 * @author pespeloe
6157 *
6158 * @desc Kalendar-Modul für die Marginalspalte
6159 * GSB-Plugin zur Animation und zum Nachladen von Kalender
6160 * 
6161 * @init
6162 * $('#supplement .live-calendar').gsb_calendar({
6163 *   beforeInit: function(){
6164 *     $('#supplement .live-calendar').find('.has-tip').each(function(_, el){
6165 *       $('#' + $(el).attr('aria-describedby')).remove();
6166 *     });
6167 *   },
6168 *   afterInit: function afterInit(){
6169 *     $('#supplement .live-calendar').find('abbr, acronym').gsb_tooltip().foundation();
6170 *   }
6171 * });
6172 *--GSBDocEnd
6173 */
6174(function($){if(!$.gsb){$.gsb={};}$.gsb.calendar=function(el,options){var base=this;base.$el=$(el);base.el=el;base.$el.data("gsb.calendar",base);base.init=function(){base.options=$.extend({},$.gsb.calendar.defaultOptions,options);options=base.options;base.$el.on("click touchstart","td > a",function(e){e.preventDefault();e.stopPropagation();if($(this).parent().hasClass(options.detailsOpenedClass)){$(this).parent().removeClass(options.detailsOpenedClass).addClass(options.detailsClosedClass);}else{base.$el.find("."+options.detailsOpenedClass).removeClass(options.detailsOpenedClass);$(this).parent().removeClass(options.detailsClosedClass).addClass(options.detailsOpenedClass);}});base.$el.on("click touchstart",options.prevButton,function(e){e.preventDefault();e.stopPropagation();base.loadCalendar($(this).data("href"));});base.$el.on("click touchstart",options.nextButton,function(e){e.preventDefault();e.stopPropagation();base.loadCalendar($(this).data("href"));});};base.loadCalendar=function(href){if(typeof options.beforeInit==="function"){base.options.beforeInit.call($(this),base.$el);}base.$el.fadeTo(options.duration,0,function(){base.$el.load(href,function(){base.$el.fadeTo(options.duration,1,function(){base.addA11y();if(typeof options.afterInit==="function"){base.options.afterInit.call($(this),base.$el);}});});});};base.addA11y=function(elem){elem=elem||base.$el;var focusElements=elem.find("input,textarea,select,a,button").not(":hidden");focusElements[0].focus();};base.init();};$.gsb.calendar.defaultOptions={nextButton:".next > a",prevButton:".prev > a",fadeDuration:400,detailsOpenedClass:"opened",detailsClosedClass:"closed",beforeInit:undefined,afterInit:undefined};$.fn.gsb_calendar=function(options){return this.each(function(){(new $.gsb.calendar(this,options));});};})(jQuery);
6175   /* Ende gsb_calendar */
6176   /* Start gsb_clearfields */
6177   /*!
6178* --GSBDocStart
6179 * @module gsb_clearfields
6180 * @version 1.0.0 
6181 * @see {@link http://semver.org|Semantic Versioning}
6182 * @author sbaecker
6183 *
6184 * @desc GSB-Plugin zum autom. Leeren von Text-Input-Feldern
6185 * Script löscht die Text-Vorbelegung der unter Feld "Parameter" eingehängten Textfelder
6186 * 
6187 * @init
6188 *  $.gsb_clearfields();
6189 *--GSBDocEnd
6190 */
6191(function($){jQuery.fn.attachToField=function(id,defaultValue){var field=$("#"+id);var input_text=field.attr("value");return jQuery(field).bind("focus",function(){if(input_text==defaultValue){field.attr("value","");}}).bind("blur",function(){if(field.attr("value")==""){field.attr("value",input_text);}input_text=field.attr("value");});};})(jQuery);
6192   /* Ende gsb_clearfields */
6193   /* Start gsb_lightbox */
6194   (function($){if(!$.gsb){$.gsb={};}$.gsb.lightbox=function(el,userOptions){var lightbox=this,$el=lightbox.$el=$(el),options,disabled;function openerClickHandler(ev){if(!disabled){ev&&typeof ev.preventDefault=="function"&&ev.preventDefault();$el.data("magnificPopup").index=$(this).data("gsb.lightboxopener").index;}$el.magnificPopup("open");}function checkArrowState(mfp){if(!options.cycle&&mfp.arrowLeft&&mfp.arrowRight){if(mfp.index==0){mfp.arrowLeft.find("img").attr("src",options.imagePrevInactive);}else{mfp.arrowLeft.find("img").attr("src",options.imagePrev);}if(mfp.index==mfp.items.length-1){mfp.arrowRight.find("img").attr("src",options.imageNextInactive);}else{mfp.arrowRight.find("img").attr("src",options.imageNext);}}}function makeGallery(){options.reallyMagnificOptions.callbacks.open=function(){var mfp=this;mfp.wrap.find(".mfp-close").appendTo(mfp.contentContainer);if(options.imagePrev){$(".mfp-arrow-left").append('<img alt="'+options.reallyMagnificOptions.gallery.tPrev+'" src="'+options.imagePrev+'">');}if(options.imageNext){$(".mfp-arrow-right").append('<img alt="'+options.reallyMagnificOptions.gallery.tNext+'" src="'+options.imageNext+'">');}mfp.prev=function(){if(options.cycle||mfp.index!=0){$.magnificPopup.proto.prev.call(this);}};mfp.next=function(){if(options.cycle||mfp.index!=mfp.items.length-1){$.magnificPopup.proto.next.call(this);}};checkArrowState(this);if(typeof mfp.contentContainer.hammer=="function"&&!mfp.wrap.data("gsb.swipe")){mfp.contentContainer.hammer({drag_block_horizontal:true,stop_browser_behavior:{touchAction:"auto"},swipe_velocity:0.3}).on("swiperight",function(){mfp.prev();}).on("swipeleft",function(){mfp.next();}).data("gsb.swipe",{});}};options.reallyMagnificOptions.callbacks.change=function(){checkArrowState(this);};$.extend(options.reallyMagnificOptions,{items:$.map($(this).find(options.element),function(item){return{src:$(item).clone().find(".loupe").remove().end().removeClass("slick-slide").attr("style",null),type:"inline"};})},(userOptions||{}).magnificOptions);$el.magnificPopup(options.reallyMagnificOptions).unbind("click");}lightbox.el=el;lightbox.$el.data("gsb.lightbox",lightbox);lightbox.init=function(){var url,closeText,defer;options=lightbox.options=$.extend({},$.gsb.lightbox.defaultOptions,userOptions);options.reallyMagnificOptions=$.extend({},$.gsb.lightbox.defaultOptions.magnificOptions);closeText=options.magnificOptions.tClose;$.extend(options.reallyMagnificOptions,{disableOn:function(){return !disabled;},closeMarkup:'<button class="mfp-close">%title%</button>',});if(options.lightboxType=="single"){url=$el.data("lightbox-href");
6194if(url){options.reallyMagnificOptions.type="ajax";options.reallyMagnificOptions.ajax.settings.url=url;}else{if($el.parents(options.element).length){options.reallyMagnificOptions.type="image";}}$.extend(options.reallyMagnificOptions,(userOptions||{}).magnificOptions);$el.magnificPopup(options.reallyMagnificOptions);}else{if(options.lightboxType=="multiple"){url=$el.data("lightbox-href");if(url){$("<div />").load(url,makeGallery);}else{$el.on("init.slideshow.gsb",makeGallery);}$el.on("init.slideshow.gsb",function(){$el.find(".loupe").each(function(idx){var opener=$(this),openerData=opener.data("gsb.lightboxopener")||{};openerData.index=idx;opener.data("gsb.lightboxopener",openerData);opener.click(openerClickHandler).keydown(function(e){if(e.which==23){$(this).click();}});});});$.extend(true,options.reallyMagnificOptions,{gallery:{enabled:true}});$.extend(options.reallyMagnificOptions,(userOptions||{}).magnificOptions);}}};lightbox.closeLightbox=function(){$el.magnificPopup("close");};lightbox.disable=function(){disabled=true;};lightbox.enable=function(){disabled=false;};lightbox.addA11y=function(){};lightbox.init();};$.gsb.lightbox.defaultOptions={lightboxType:"single",cycle:false,element:".picture",imagePrev:"",imageNext:"",magnificOptions:{tClose:typeof CLOSE=="undefined"?"Schließen (Esc)":CLOSE,gallery:{tPrev:typeof PREV=="undefined"?"Vorheriges (linke Pfeiltaste)":PREV,tNext:typeof NEXT=="undefined"?"Nächstes (rechte Pfeiltaste)":NEXT,tCounter:typeof LIGHTBOX_X_OF_Y=="undefined"?"%curr% von %total%":LIGHTBOX_X_OF_Y},type:"ajax",closeOnContentClick:false,closeBtnInside:false,image:{verticalFit:true,titleSrc:function(){return $(this.currItem&&this.currItem.el).find("img").attr("alt");}},ajax:{settings:{}},callbacks:{afterChange:function(){$(this.content).find("video, audio").each(function(_,el){var data=$(el).data("gsb.Multimedia");if(!data){data=$(el).gsb_Multimedia().data("gsb.Multimedia");}if(!data.workaround&&typeof data.triggerRefresh=="function"){data.workaround=true;data.triggerRefresh();}});},buildControls:function(){if(this.contentContainer&&this.arrowLeft&&this.arrowRight){this.contentContainer.append(this.arrowLeft.add(this.arrowRight));}},open:function(){if(this.wrap&&this.wrap.find){this.wrap.find(".mfp-close").appendTo(this.contentContainer);}}}}};$.fn.gsb_lightbox=function(options){return this.each(function(){(new $.gsb.lightbox(this,options));});};})(jQuery);
6195   /* Ende gsb_lightbox */
6196   /* Start gsb_navigation */
6197   /*!
6198 * Licensed under the MIT license
6199* --GSBDocStart
6200 * @module gsb_navigation
6201 * @version 1.1.0
6202 * @see {@link http://semver.org|Semantic Versioning}
6203 * @author pespeloe
6204 *
6205 * @desc Das Addon dient der Darstellung des Flyout-Menüs auf der Seite
6206 *
6207 * @requires jQuery >= 1.11.1, gsb_responsiveListener
6208 *
6209 * @init
6210 *  $('#navPrimary').gsb_navigation();
6211 *--GSBDocEnd
6212 * */
6213(function($){if(!$.gsb){$.gsb={};}$.gsb.navigation=function(el,options){var base=this;base.$el=$(el);base.el=el;base.$el.data("gsb.navigation",base);base.init=function(){base.options=$.extend({},$.gsb.navigation.defaultOptions,options);base.delegateTo="#"+base.$el.attr("id")+base.options.hoverItem;base.$el.gsb_responsiveListener(base);};base._largeNavigation=function(){$(base.delegateTo).each(function(){var li=$(this),sub=li.find("li a"),ctrl=li.find("a").not(sub);li.find("a").on("focusin",function(e){li.find(base.options.displayItem).css({height:""});li.trigger("mouseenter",[!$(e.target).is(ctrl)||$(base.delegateTo).find(e.target).length]);li.siblings(".hovered").trigger("mouseleave");});li.find("a:first, a:last").blur(function(e){li.find(base.options.displayItem).css({height:0});});});$(base.delegateTo).on("mouseenter mouseleave",function(e,fromWithin){e.stopImmediatePropagation();var $box=$(this).find(base.options.displayItem).show().stop(),$height=$box.data("gsb.navigation.fullHeight"),$root=$(this),$relatedTarget=$(base.delegateTo).find(e.relatedTarget);if(!$height){$height=$box.outerHeight();$box.data("gsb.navigation.fullHeight",$height);}if(e.type==="mouseenter"){if(!fromWithin&&!$relatedTarget.length){$box.addClass("on").css({height:0,opacity:0}
6213).animate({height:$height,opacity:1},{duration:base.options.animSpeed});}else{$box.addClass("on").css({height:$height,opacity:1});}$root.addClass("hovered");gsb.log("gsb.navigation: Add root class 'hovered' for nav node '"+$root.find("h3 > a").text()+"'");}else{if(!fromWithin&&!$relatedTarget.length){$box.removeClass("on").css({height:$height,opacity:1}).animate({height:0,opacity:0},{duration:base.options.animSpeed});}else{$box.removeClass("on").css({height:0,opacity:0});}$root.removeClass("hovered");gsb.log("gsb.navigation: Remove root class 'hovered' for nav node '"+$root.find("h3 > a").text()+"'");}});base.$el.find(base.options.navTouchElement).on("touchstart",function(e){var $box=$(this).find(base.options.displayItem).stop(),$root=$(this).children("div");if($(this).parent().parent().hasClass("hovered")){e.preventDefault();}});},base.init();};$.gsb.navigation.defaultOptions={navTouchElement:"h3 > a",displayItem:".menu-box",hoverItem:"> ul > li",animSpeed:500,respondToEvents:true,onRefresh:function(){this._largeNavigation();},responsive:[{breakpoint:1024,onRefresh:function(){}}]};$.fn.gsb_navigation=function(options){return this.each(function(){(new $.gsb.navigation(this,options));});};})(jQuery);
6214   /* Ende gsb_navigation */
6215   /* Start gsb_serviceborder */
6216   /*!
6217* --GSBDocStart
6218 * @module gsb_serviceborder
6219 * @version 1.0.0
6220 * @see {@link http://semver.org|Semantic Versioning}
6221 * @author sbaecker
6222 *
6223 * @desc GSB-Plugin fuer Serviceleiste unter der Buehne
6224 * jQuery-Funktion zur Content-Vorschauansicht einer Vertikalennavigation bei Hover
6225 * 
6226 * @example
6227 * Erwartete HTML-Struktur:
6228 * <div id="service-border">
6229 *   <div id="tab">
6230 *     <ul class="tab">
6231 *       <li class="t-entry-1">
6232 *         <a class="navServiceNewsletter" href="...">Newsletter</a>
6233 *       </li>
6234 *       ...
6235 *     </ul>
6236 *   </div>
6237 *   <div id="section-1" class="container">
6238 *     ...
6239 *   </div>
6240 *   ...
6241 * </div>
6242 *
6243 * @requires jQuery >= 1.11.1, gsb_responsiveListener
6244 * @init
6245 *  $("#navContent").gsb_Serviceborder();
6246 *--GSBDocEnd
6247 */
6248(function($){if(!$.gsb){$.gsb={};}$.gsb.Serviceborder=function(el,options){var base=this,closeclick;base.$el=$(el);base.el=el;base.$el.data("gsb.Serviceborder",base);base.init=function(){base.options=$.extend({},$.gsb.Serviceborder.defaultOptions,options);base.$el.gsb_responsiveListener(base);};base._configuration=function(){closeclick=false;if(!base.$el.length){return;}if(base.$el.find(base.options.navnodes+" span.aural").length==0){base.$el.find(base.options.navnodes).append('<span class="aural"> '+base.options.show_more_text+"</span>");}base.$el.find(base.options.navnodes).each(function(){$(this).on("click",function(e){e.preventDefault();e.stopPropagation();base.showTab($(this));return false;});});base.tabActive=false;base.tabToShow=false;};base.showTab=function(obj,close){if(typeof obj!="undefined"&&obj){var regExpMatch=obj.parent("li:first").attr("class").match(/^.*\w+-(\w+)-(\d+)( .*)?$/);base.tabToShow=regExpMatch[2];}else{closeclick=true;base.tabToShow=false;}if(base.tabActive==base.tabToShow){var tabActiveId=base.options.container+base.tabActive;var $tabActive=base.$el.find(tabActiveId);$tabActive.stop(true,true).fadeOut({duration:base.options.fadeDuration,easing:"linear",queue:false}).slideUp({duration:base.options.slideDuration,easing:"linear"});base.tabActive=false;base.$el.find(" ul > li .aural").text(" "+base.options.show_more_text);base.$el.find(" ul > li").removeClass("active");}else{if(base.tabToShow!=base.tabActive&&false!==base.tabToShow){var tabToShowId=base.options.container+base.tabToShow;var $tabToShow=base.$el.find(tabToShowId);if(!$tabToShow.length){alert("Tab "+tabToShowId+" nicht vorhanden...");return;}if(!$tabToShow.find(".containerinner .close").length){var $closeButton;if(base.options.close_button_markup_mode==="image"){$closeButton=$('<p><button tabindex="0" class="close" title="'+base.options.close+'" ><img src="'+image_url_close+'" alt="'+base.options.close+'" /></button></p>');}else{$closeButton=$('<p><button tabindex="0" class="close">'+base.options.close+"</button></p>");}$closeButton.appendTo(tabToShowId+" > .containerinner:first").on("click",function(){base.showTab();return false;});}base.$el.find("> div .close").unbind("click").on("click",function(e){e.preventDefault();e.stopPropagation();var tabActiveId=base.options.container+base.tabActive;var $tabActive=base.$el.find(tabActiveId);$tabToShow.stop(true,true).fadeOut({duration:base.options.fadeDuration,easing:"linear",queue:false}).slideUp({duration:base.options.slideDuration,easing:"linear"});obj.focus();base.tabActive=false;base.$el.find(" ul > li span.aural").text(" "+base.options.show_more_text);base.$el.find("ul > li").removeClass("active");});if(false!==base.tabActive){var tabActiveId=base.options.container+base.tabActive;var $tabActive=base.$el.find(tabActiveId);$tabActive.slideUp();}else{$tabToShow.stop(true,true).fadeIn({duration:base.options.fadeDuration,easing:"linear",queue:false}).css("display","none").slideDown({duration:base.options.slideDuration,easing:"linear"});}$tabToShow.slideDown();base.tabActive=base.tabToShow;base.$el.find(" ul > li span.aural").text(" "+base.options.show_more_text);base.$el.find(" ul > li").removeClass("active");obj.parent(":first").addClass("active");base.$el.find(" ul > li.active .aural").text(" "+base.options.show_less_text);}else{if(false===base.tabToShow&&false!==base.tabActive){var tabActiveId=base.options.container+base.tabActive;var $tabActive=base.$el.find(tabActiveId);if(closeclick=true){$tabActive.slideUp("fast");closeclick=false;}else{$tabActive.hide();}base.tabActive=false;base.$el.find(" ul > li span.aural").text(" "+base.options.show_more_text);base.$el.find(" ul > li").removeClass("active");}}}};base._uninit=function(){var closeLink=base.$el.find("a.close");if(closeLink.length>0){if(closeLink.closest("p").length>0){closeLink.closest("p").off();}else{closeLink.off();}}if(base.$el.find("div .close").length>0){base.$el.find("div .close").off();}if(base.$el.find(base.options.navnodes).length>0){base.$el.find(base.options.navnodes).off();}base.$el.find(".container").hide();base.$el.find(" ul > li span.aural").text(" "+base.options.show_more_text);base.$el.find(">ul>li").removeClass("active");};base.init();};$.gsb.Serviceborder.defaultOptions={close:typeof(CLOSE)=="undefined"?"Schließen":CLOSE,close_button_markup_mode:"image",navnodes:" > ul > li > a",container:"#section-",show_more_text:typeof(SHOW_MORE)=="undefined"?"Mehr anzeigen":SHOW_MORE,show_less_text:typeof(SHOW_LESS)=="undefined"?"Weniger anzeigen":SHOW_LESS,slideDuration:400,fadeDuration:600,respondToEvents:true,onRefresh:function(){this._configuration();},responsive:[{breakpoint:600,onRefresh:function(){this._uninit();}}]};$.fn.gsb_Serviceborder=function(options){return this.each(function(){(new $.gsb.Serviceborder(this,options));});};})(jQuery);
6249   /* Ende gsb_serviceborder */
6250   /* Start gsb_print */
6251   /*!
6252 * --GSBDocStart
6253 * @module gsb_print
6254 * @version 1.0.0
6255 * @see {@link http://semver.org|Semantic Versioning}
6256 * @author sbaecker
6257 *
6258 * @desc GSB-Plugin zum autom. Leeren von Text-Input-Feldern
6259 * Das Addon fügt einen Link "Seite drucken" in eine vorhandene Liste ein
6260 *
6261 * @example
6262 * <ul id="navFunctions"> </ul>
6263 *
6264 * @init
6265 *  $('#navFunctions').gsb_printlink();
6266 *
6267 * @requires jQuery >= 1.11.1, gsb_responsiveListener
6268 *--GSBDocEnd
6269 */
6270;(function($){if(!$.gsb){$.gsb={};}$.gsb.printlink=function(el,options){var base=this;var printInited=false;base.$el=$(el);base.el=el;base.$el.data("gsb.printlink",base);base.init=function(){base.options=$.extend({},$.gsb.printlink.defaultOptions,options);base.$el.gsb_responsiveListener(base);};base._printlink=function(){if(!base.$el.length){return;}if($("#"+base.options.printlink_id).length==0){pattern=$('<li id="'+base.options.printlink_id+'" class="'+base.options.printlink_id+'"><a href="#" title="'+base.options.tooltip+'">'+base.options.page_text+"</a></li>");base.$el.prepend(pattern);}base.$el.parent().find("#"+base.options.printlink_id+" a").on("click",function(e){e.preventDefault();e.stopPropagation();window.print();});};base._uninit=function(){if(base.$el.find("#"+base.options.printlink_id)){base.$el.find("#"+base.options.printlink_id).off().remove();}};base.init();};$.gsb.printlink.defaultOptions={tooltip:typeof PRINT_TOOLTIP=="undefined"?"Drucken (öffnet Dialog)":PRINT_TOOLTIP,page_text:typeof PRINT_PAGE_TEXT=="undefined"?"drucken":PRINT_PAGE_TEXT,printlink_id:"navFunctionsPrint",respondToEvents:true,onRefresh:function onRefresh(){this._printlink();},responsive:[{breakpoint:10,onRefresh:function onRefresh(){this._uninit();}}]};$.fn.gsb_printlink=function(options){return this.each(function(){new $.gsb.printlink(this,options);});};})(jQuery);
6271   /* Ende gsb_print */
6272   /* Start gsb_slideshow */
6273   /*!
6274 * --GSBDocStart
6275 * @module gsb_slideshow
6276 * @version 1.0.0
6277 * @see {@link http://kenwheeler.github.io/slick/}
6278 * @author anuebel
6279 *
6280 * @desc GSB-Wrapper-Plugin fuer slick.js.
6281 * Slideshow auf Basis von Slick
6282 * 
6283 * @option
6284 * nextButtonImage: Das Hintergrundbild fuer den aktiven weiter-Link der Navigation(default: null)
6285 * nextButtonInactiveImage: Das Hintergrundbild fuer den inaktiven weiter-Link der Navigation(default: null)
6286 * nextTitle: Das title-Attribut fuer den aktiven weiter-Link der Navigation
6287 * (default: SLIDER_NEXT bzw. 'Nächste Seite')
6288 * nextTitleInactive: Das title-Attribut fuer den inaktiven weiter-Link der Navigation
6289 * (default: SLIDER_NEXT_INACTIVE bzw. 'Keine nächste Seite')
6290 * prevButtonImage: Das Hintergrundbild fuer den aktiven zurueck-Link der Navigation(default: null)
6291 * prevButtonInactiveImage: Das Hintergrundbild fuer den aktiven zurueck-Link der Navigation(default: null)
6292 * prevTitle: Das title-Attribut fuer den aktiven zurueck-Link der Navigation
6293 * (default: SLIDER_BACK bzw. 'Vorherige Seite')
6294 * prevTitleInactive: Das title-Attribut fuer den aktiven zurueck-Link der Navigation
6295 * (default: SLIDER_BACK_INACTIVE bzw. 'Keine vorherige Seite')
6296 * playButtonImagePlaying: Das Hintergrundbild fuer den Playbutton im abspielenden Zustand(default: null)
6297 * playButtonImagePaused: Das Hintergrundbild fuer den Playbutton im pausierten Zustand(default: null)
6298 * playButtonAltTextPlaying: Das alt-Attribut fuer den Playbutton im abspielenden Zustand
6299 * (default: SLIDER_PLAY bzw. 'Animation starten')
6300 * playButtonAltTextPaused: Das alt-Attribut fuer den Playbutton im pausierten Zustand
6301 * (default: SLIDER_PAUSE bzw. 'Animation stoppen')
6302 * slickOptions: native Optionen fuer das Slick Plugin(default: null, siehe Doku oben)
6303 * slickOptions.gsb.playButton: Soll ein Playbutton angelegt werden(default: true), an dieser Stelle
6304 * hinterlegt, um responsiven Reinitialisierungmechanismus von Slick zu nutzen
6305 * 
6306 * s. auch http://kenwheeler.github.io/slick/
6307 * 
6308 * @init
6309 *  // stage slider
6310 * var $stage = $('#stage').find('.stage-container');
6311 * $stage.gsb_Slideshow({
6312 *   containerElement : '.teaser',
6313 *   pagination : true,
6314 *   autoplay : true,
6315 *   autoSpeed : 9000,
6316 *   pauseOnHover : true,
6317 *   nextButtonImage : image_url_next,
6318 *   prevButtonImage : image_url_back,
6319 *   prevButtonInactiveImage : image_url_back_g,
6320 *   nextButtonInactiveImage : image_url_next_g,
6321 *   playButtonImagePaused : image_url_play,
6322 *   playButtonImagePlaying : image_url_paused,
6323 *   slickOptions: {
6324 *     arrows: false,
6325 *     fade: false,
6326 *     nextArrow: $stage.parent().find('.next'),
6327 *     prevArrow: $stage.parent().find('.prev'),
6328 *     responsive: [
6329 *       {
6330 *         breakpoint: 600,
6331 *         settings: {
6332 *           gsb: {
6333 *             playButton: false
6334 *           },
6335 *           autoplay : false,
6336 *           arrows: true
6337 *         }
6338 *       }
6339 *    ]
6340 *   }
6341 * });
6342
6343 * // carousel slider
6344 * var $carousel = $('.startseite').find('.teaser-switcher .karussell');
6345 * $carousel.gsb_Slideshow({
6346 *   containerElement : '.teaser',
6347 *   autoplay : false,
6348 *   pagination: true,
6349 *   nextButtonImage : image_url_next,
6350 *   prevButtonImage : image_url_back,
6351 *   prevButtonInactiveImage : image_url_back_g,
6352 *   nextButtonInactiveImage: image_url_next_g,
6353 *   slickOptions: {
6354 *     slidesToShow: 5,
6355 *     slidesToScroll: 5,
6356 *     fade: false,
6357 *     nextArrow: $carousel.parent().find('.next'),
6358 *     prevArrow: $carousel.parent().find('.prev'),
6359 *     responsive: [
6360 *       {
6361 *         breakpoint: 1023,
6362 *         settings: {
6363 *           slidesToShow: 3,
6364 *           slidesToScroll: 3
6365 *         }
6366 *       },
6367 *       {
6368 *         breakpoint: 610,
6369 *         settings: {
6370 *           slidesToShow: 2,
6371 *           slidesToScroll: 2
6372 *         }
6373 *       },
6374 *       {
6375 *         breakpoint: 440,
6376 *         settings: {
6377 *           slidesToShow: 1,
6378 *           slidesToScroll: 1
6379 *         }
6380 *       }
6381 *     ]
6382 *   }
6383 * });
6384
6385 * // gallery slider
6386 * $('.galleryBox').gsb_Slideshow({
6387 *   slideshowControls : true,
6388 *   generateButtonContainer : false,
6389 *   autoplay : false,
6390 *   pagination: false,
6391 *   nextButtonImage : image_url_next,
6392 *   prevButtonImage : image_url_back,
6393 *   prevButtonInactiveImage : image_url_back_g,
6394 *   nextButtonInactiveImage : image_url_next_g,
6395 *   slickOptions: {
6396 *     adaptiveHeight: true,
6397 *     fade: false
6398 *   }
6399 * });
6400 *--GSBDocEnd
6401 */
6402(function($){if(!$.gsb){$.gsb={};}$.gsb.Slideshow=function(el,options){var base=this;base.$el=$(el);base.el=el;base.$el.data("gsb.Slideshow",base);base.defaultSlickOptions={slide:".slide",fade:true,infinite:false,draggable:false,adaptiveHeight:false,onBeforeChange:function(slick){slick.$slides.find("video, object").show();},onAfterChange:function(slick){base.updateNavigation(slick);base.updateTabindex(slick);},onInit:function(slick){var slideshowPluginInstance=slick.$slider.data("gsb.Slideshow");var onSlickInit=slideshowPluginInstance.options.onSlickInit;if(typeof onSlickInit=="function"){onSlickInit.call(slick,slick);}base.updateNavigation(slick);base.initMultimedia();base.updateTabindex(slick);base.$el.trigger("init.slideshow.gsb");},gsb:{playButton:true}};base.initMultimedia=function initMultimedia(){if(typeof $.fn.gsb_Multimedia=="function"){base.$el.find("video, audio").gsb_Multimedia();}};base.updateTabindex=function updateTabindex(slick){var focusableItems="a, [tabindex], textarea, input, select, button, video, object",buggedItems="video, object";slick.$slides.not(".slick-active").find(focusableItems).attr("tabindex",-1).end().find(buggedItems).hide();slick.$slides.filter(".slick-active").find(focusableItems).attr("tabindex",0).end().find(buggedItems).show();};base.updateNavigationArrow=function($arrow,activeImage,inactiveImage,activeArrowButtonTitle,inactiveArrowButtonTitle){if($arrow){var $arrowButton=$arrow.is("button")?$arrow:$arrow.find("button"),$arrowImage=$arrow.find("img");if($arrow.hasClass("slick-disabled")){$arrowButton.attr("disabled","");$arrowButton.attr("title",inactiveArrowButtonTitle);$arrowImage.attr("src",inactiveImage);$arrowImage.attr("alt","");}else{$arrowButton.removeAttr("disabled");$arrowButton.attr("title",activeArrowButtonTitle);$arrowImage.attr("src",activeImage);$arrowImage.attr("alt",activeArrowButtonTitle);}}};base.updateNavigation=function(slick){base.updateNavigationArrow(slick.$prevArrow,base.options.prevButtonImage,base.options.prevButtonInactiveImage,base.options.prevTitle,base.options.prevTitleInactive);base.updateNavigationArrow(slick.$nextArrow,base.options.nextButtonImage,base.options.nextButtonInactiveImage,base.options.nextTitle,base.options.nextTitleInactive);};base.handleLegacyOptions=function(slickOptions,options){$.each($.gsb.Slideshow.slickOptionsForLegacyOptions,function(legacyOption,mappedSlickOption){if(options.hasOwnProperty(legacyOption)){var savedValue=options[legacyOption];delete options[legacyOption];slickOptions[mappedSlickOption]=savedValue;}});};base.handleNavigationArrows=function(slickOptions){var navigationArrowOptions={nextArrow:base.$el.find(".next"),prevArrow:base.$el.find(".prev")};return $.extend({},navigationArrowOptions,slickOptions);};base.handlePlayButton=function(slickOptions){(function(existingOnInit){slickOptions.onInit=function(slick){existingOnInit.call(slick,slick);var initializedSlickOptions=slick.options;function shouldCreatePlayButton(){var playButtonImagesAreConfigured=base.options.playButtonImagePlaying!==null&&base.options.playButtonImagePaused!==null,createPlayButton=initializedSlickOptions.gsb.playButton;return createPlayButton&&playButtonImagesAreConfigured;}function preventPlay(){slick.paused=true;slick.autoPlayClear();}var $existingPlayButton=base.$el.parent().find(".navigation button.playbutton"),playButtonExists=$existingPlayButton.length;if(shouldCreatePlayButton()&&!playButtonExists){var slideshowStartsPlaying=initializedSlickOptions.autoplay,initialClassForPlayButton=sli
6402deshowStartsPlaying&&"playbutton-playing"||"playbutton-paused",initialTitleAttrForPlayButton=slideshowStartsPlaying&&base.options.playButtonAltTextPlaying||base.options.playButtonAltTextPaused,initialSrcAttrForPlayButtonImage=slideshowStartsPlaying&&base.options.playButtonImagePlaying||base.options.playButtonImagePaused,initialAltAttrForPlayButtonImage=slideshowStartsPlaying&&base.options.playButtonAltTextPlaying||base.options.playButtonAltTextPaused,$playButton=$("<button"+' class="playbutton '+initialClassForPlayButton+'"'+' title="'+initialTitleAttrForPlayButton+'">'+"<img"+' src="'+initialSrcAttrForPlayButtonImage+'"'+' alt="'+initialAltAttrForPlayButtonImage+'">'+"</button>"),playButtonImage=$playButton.find("img");base.$el.parent().find(".navigation").append($playButton);$playButton.click(function(){if($playButton.is(".playbutton-playing")){$playButton.removeClass().addClass("playbutton-paused").attr("title",base.options.playButtonAltTextPaused);playButtonImage.attr("src",base.options.playButtonImagePaused).attr("alt",base.options.playButtonAltTextPaused);base.$el.slickPause();slick.$list.on("mouseleave.slick",preventPlay);}else{$playButton.removeClass().addClass("playbutton-playing").attr("title",base.options.playButtonAltTextPlaying);playButtonImage.attr("src",base.options.playButtonImagePlaying).attr("alt",base.options.playButtonAltTextPlaying);base.$el.slickPlay();slick.$list.off("mouseleave.slick",preventPlay);}});}else{if(!shouldCreatePlayButton()&&playButtonExists){$existingPlayButton.remove();}}};}(slickOptions.onInit));return slickOptions;};base.init=function(){base.options=$.extend({},$.gsb.Slideshow.defaultOptions,options);var allElementsUrl=base.$el.data("href"),initSlick=function(){var rawSlickOptions=base.options.slickOptions;delete rawSlickOptions.onInit;var slickOptions=$.extend({},base.defaultSlickOptions,rawSlickOptions);base.handleLegacyOptions(slickOptions,base.options);slickOptions=base.handleNavigationArrows(slickOptions);slickOptions=base.handlePlayButton(slickOptions);base.$el.slick(slickOptions);},onReceiveAllElements=function(data){base.$el.html(data);initSlick();};if(allElementsUrl){$.get(allElementsUrl,onReceiveAllElements);}else{initSlick();}};base.init();};$.gsb.Slideshow.defaultOptions={nextButtonImage:null,nextButtonInactiveImage:null,nextTitle:typeof(NEXT)=="undefined"?"Nächste Seite":NEXT,nextTitleInactive:typeof(NEXT_INACTIVE)=="undefined"?"Keine nächste Seite":NEXT_INACTIVE,prevButtonImage:null,prevButtonInactiveImage:null,prevTitle:typeof(BACK)=="undefined"?"Vorherige Seite":BACK,prevTitleInactive:typeof(BACK_INACTIVE)=="undefined"?"Keine vorherige Seite":BACK_INACTIVE,playButtonImagePaused:null,playButtonImagePlaying:null,playButtonAltTextPaused:typeof(PLAY)=="undefined"?"Animation starten":PLAY,playButtonAltTextPlaying:typeof(PAUSE)=="undefined"?"Animation stoppen":PAUSE,paginationTitle:typeof(PAGE)=="undefined"?"Seite":PAGE,slickOptions:null};$.gsb.Slideshow.slickOptionsForLegacyOptions={containerElement:"slide",elementsToSlide:"slidesToShow",autoplay:"autoplay",autoSpeed:"autoplaySpeed",pagination:"dots",pauseOnHover:"pauseOnHover"};$.fn.gsb_Slideshow=function(options){return this.each(function(){return new $.gsb.Slideshow(this,options);});};}(jQuery));
6403   /* Ende gsb_slideshow */
6404   /* Start gsb_toggle */
6405   (function($){if(!$.gsb){$.gsb={};}$.gsb.toggle=function(el,options){var base=this;base.$el=$(el);base.el=el;this.base=base;base.$el.data("gsb.toggle",base);base.init=function(){this.base.options=$.extend({},$.gsb.toggle.defaultOptions,options);var _=this.base;if(_.options.accordion&&_.options.richTextAccordion){_.addRichtextContainer();}else{if(base.$el.data("href")){$.get(base.$el.data("href"),function(data){base.$el.html(data);base.$el.gsb_responsiveListener(_);});}else{base.$el.gsb_responsiveListener(_);}}};base.init();};$.gsb.toggle.defaultOptions={tab:true,tabControls:"> .tabs-list > li a",elements:"> .tabs-container > div",accordion:true,richTextAccordion:false,accordionCloseOther:true,accordionPanelHeight:false,accordionElementToOpen:null,accordionElementsStopPropagation:"",autoplay:false,playButtonImagePaused:null,playButtonImagePlaying:null,playButtonAltTextPaused:typeof(PLAY)=="undefined"?"Animation starten":PLAY,playButtonAltTextPlaying:typeof(PAUSE)=="undefined"?"Animation stoppen":PAUSE,accordionHeadingTitleClosed:null,accordionHeadingTitleOpened:null,autoSpeed:"5000",playOnLoad:false,pauseOnHover:true,changeOnHover:false,allOpen:false,animateTab:false,respondToEvents:true,onRefresh:function(){this.initialize();this.refreshTab();},responsive:[{breakpoint:600,onRefresh:function(){this.initialize();this.autoplayStop();this.$el.off("mouseenter mouseleave");this.refreshAccordion();},autoplay:false}]};$.gsb.toggle.prototype.initialize=function(){var _=this.base;if(!_.$el.hasClass("gsb-toggle")){_.$el.addClass("gsb-toggle");_.addClasses();_.addClickfunction();}if(_.options.autoplay){_.autoplay();}};$.gsb.toggle.prototype.addClasses=function(){var _=this.base;if(_.options.tab===true){var activeTabIndex=$.inArray(_.$el.find(_.options.tabControls+".active-control").get(0),_.$el.find(_.options.tabControls));if(activeTabIndex==-1){activeTabIndex=0;}
6405_.$el.find(_.options.tabControls).each(function(index){if(!$(this).is("a")||$(this).find(">a").length==0){$(this).prop("tabindex",0);}$(this).addClass("switch-panel"+index);if(index===activeTabIndex){$(this).addClass("active-control");}else{$(this).addClass("inactive-control");}});_.$el.find(_.options.elements).each(function(index){$(this).addClass("switch-panel"+index);if(index===activeTabIndex){$(this).addClass("panel-opened");}else{$(this).addClass("panel-closed");}});}if(_.options.accordion===true){var hasOpendElements=false;if(_.$el.find("> .tabs-container > .active-control").length>0){hasOpendElements=true;}_.$el.find("> .tabs-container > .heading").each(function(){if(!$(this).is("button")||!$(this).is("a")){if(_.options.accordionPanelHeight){var height=0;$(this).next().find(">").each(function(){height+=$(this).outerHeight(true);});$(this).next().height(height);}$(this).prop("tabindex",0);if(_.options.allOpen&&!_.options.tab){$(this).next().show();$(this).addClass("active-control");}else{if(hasOpendElements){if(!$(this).hasClass("active-control")){$(this).addClass("inactive-control");$(this).next().hide();}else{$(this).next().show();}}else{$(this).addClass("inactive-control");$(this).next().hide();}}}_.changeAccordionHeadingTitle($(this));});}};$.gsb.toggle.prototype.addClickfunction=function(){var _=this.base;if(_.options.accordion===true){_.$el.on("click keydown","> .tabs-container > .heading",function(e){if(e.type==="click"||e.which==13){e.preventDefault();e.stopPropagation();_.clickedElem=$(this);_.changeStateAccordion();}}).find(_.options.accordionElementsStopPropagation).on("click keydown",function(e){e.stopPropagation();});}if(_.options.tab===true){if(_.options.changeOnHover&&!_.options.autoplay){_.$el.on("mouseenter focus touchend",_.options.tabControls,function(e){var panelClass;e.preventDefault();e.stopPropagation();panelClass=String($(this).attr("class").match(/switch-panel\d+/));if(!e.relatedTarget||$(e.relatedTarget).is("."+panelClass)){console.log("e.relatedTarget: ",e.relatedTarget);return;}_.clickedElem=$(this);_.changeStateTab();});_.$el.on("click",_.options.tabControls,function(e){e.preventDefault();e.stopPropagation();});}else{_.$el.on("click keydown",_.options.tabControls,function(e){if(e.type==="click"||e.which==13){e.preventDefault();e.stopPropagation();_.clickedElem=$(this);_.changeStateTab();}});_.$el.on("focusin","> .tabs-container > .heading:not(:eq(0))",function(e){var panelClass;if(e.relatedTarget&&!_.$el.find(_.options.tabControls).filter(e.relatedTarget).length){console.log(e.relatedTarget);panelClass=String($(this).next().attr("class").match(/switch-panel\d+/));_.$el.find(_.options.tabControls).filter("."+panelClass).focus();}}).on("focusin","> .tabs-container > .heading:eq(0)",function(e){var panelClass,tabControls=_.$el.find(_.options.tabControls),placeholder;if(e.relatedTarget&&!$(e.relatedTarget).is(tabControls)){console.log(e.relatedTarget);panelClass=String($(this).next().attr("class").match(/switch-panel\d+/));tabControls.filter("."+panelClass).focus();}else{if($(e.relatedTarget).is(tabControls.last())){$("<h6 class='' tabindex=0 />").css({visibility:"none",height:0,width:0,margin:0,padding:0,outline:0}).blur(function(e){$(this).remove();}).appendTo(_.$el.find("> .tabs-container")).focus();}}});}}};$.gsb.toggle.prototype.changeAccordionHeadingTitle=function(elem){var _=this.base;if(elem.hasClass("active-control")&&_.options.accordionHeadingTitleOpened){elem.attr("title",_.options.accordionHeadingTitleOpened);}else{if(!elem.hasClass("active-control")&&_.options.accordionHeadingTitleClosed){elem.attr("title",_.options.accordionHeadingTitleClosed);}}};$.gsb.toggle.prototype.changeStateAccordion=function(){var _=this.base;var contentElement;if(_.options.accordionElementToOpen){contentElement=$(_.options.accordionElementToOpen);}else{contentElement=_.clickedElem.next();}if(_.clickedElem.hasClass("inactive-control")){if(_.options.accordionCloseOther&&!_.options.accordionElementToOpen){_.animationAccordion(_.clickedElem.parent().find("> .active-control").next(),"close");_.$el.find(".tabs-container > .active-control").removeClass("active-control").addClass("inactive-control");}_.clickedElem.attr("aria-expanded","true");_.clickedElem.attr("aria-selected","true");_.clickedElem.removeClass("inactive-control").addClass("active-control");_.animationAccordion(contentElement,"open");contentElement.attr("aria-hidden","false");}
6405else{_.clickedElem.attr("aria-expanded","false");_.clickedElem.attr("aria-selected","false");_.clickedElem.removeClass("active-control").addClass("inactive-control");_.animationAccordion(contentElement,"close");contentElement.attr("aria-hidden","true");}_.changeAccordionHeadingTitle(_.clickedElem);};$.gsb.toggle.prototype.changeStateTab=function(){var _=this.base;var panelToOpen=_.$el.find("> .tabs-container > ."+_.getSwitchPanelClass(_.clickedElem));if(_.clickedElem.hasClass("inactive-control")){var panelToClose=_.$el.find(".panel-opened");_.$el.find("[aria-hidden=false]").attr("aria-hidden","true");_.$el.find("[aria-selected=true]").attr("aria-selected","false");var ariaControl=_.clickedElem.attr("aria-controls");_.$el.find("#"+ariaControl).attr("aria-hidden","false");_.clickedElem.attr("aria-selected","true");panelToClose.removeClass("panel-opened").addClass("panel-closed");_.$el.find("> .tabs-container >.active-control, > .tabs-list .active-control ").removeClass("active-control").addClass("inactive-control");_.clickedElem.removeClass("inactive-control");panelToOpen.removeClass("panel-closed").addClass("panel-opened");_.clickedElem.addClass("active-control");_.animationTab(panelToClose,panelToOpen);}panelToOpen.prev(".heading").trigger("focus");};$.gsb.toggle.prototype.animationAccordion=function(elem,type){var _=this.base;if(type==="open"){elem.slideDown(400,function(){if(_.options.accordionElementToOpen){_.addA11y(elem);}});}else{elem.slideUp();}};$.gsb.toggle.prototype.animationTab=function(panelToClose,panelToOpen){var _=this.base;if(_.options.animateTab){panelToClose.fadeOut("slow",function(){panelToOpen.fadeIn("slow");});}else{panelToClose.hide();panelToOpen.show();}};$.gsb.toggle.prototype.autoplay=function(){var _=this.base;if(_.$el.find("> button").length===0){var button=document.createElement("button");button.className="paused";var image=document.createElement("img");image.src=_.options.playButtonImagePlaying;image.alt=_.options.playButtonAltTextPlaying;playbutton=_.$el.append($(button).append(image));}_.playbutton=_.$el.find("button.paused");_.playbutton.on("click autoplayStart",function(e){e.preventDefault();e.stopPropagation();if(_.playbutton.hasClass("paused")){$(this).removeClass("paused").addClass("played");_.autoplayStart();_.changeStatePlayPause(_.options.playButtonImagePlaying,_.options.playButtonAltTextPlaying);_.isPaused=false;if(e.type!="autoplayStart"){_.isClicked=true;}}else{$(this).addClass("paused").removeClass("played");_.autoplayStop();_.changeStatePlayPause(_.options.playButtonImagePaused,_.options.playButtonAltTextPaused);_.isPaused=true;}});if(_.options.pauseOnHover){_.$el.on("mouseenter mouseleave",function(e){if(!_.isPaused){if(e.type=="mouseenter"){_.autoplayStop();}else{if(_.playbutton.hasClass("played")&&!_.isClicked){_.autoplayStart();}_.isClicked=false;}}});}if(_.options.playOnLoad){_.playbutton.trigger("autoplayStart");}};$.gsb.toggle.prototype.autoplayStart=function(){var _=this.base;_.rotation=setInterval(function(){var lastTab=_.getSwitchPanelClass(_.$el.find(".tabs-list > li").last());if(_.$el.find(".tabs-list .active-control").hasClass(lastTab[0])){_.$el.find(".tabs-list > li").first().click();}else{_.$el.find(".tabs-list .active-control").next().click();}},_.options.autoSpeed);};$.gsb.toggle.prototype.autoplayStop=function(){var _=this.base;clearInterval(_.rotation);};$.gsb.toggle.prototype.refreshTab=function(){console.log("refreshTab");var _=this.base;if(_.options.tab){_.$el.find(".tabs-container").removeAttr("multiselectable");_.$el.find(".tabs-container").removeAttr("role");_.$el.find(".heading").each(function(){$(this).removeAttr("aria-expanded");});if(_.options.changeOnHover&&!_.options.autoplay){_.$el.on("mouseenter focus",_.options.tabControls,function(e){_.clickedElem=$(this);_.changeStateTab();});}_.$el.find(".panel-closed").hide();_.$el.find(".panel-opened").show();}};$.gsb.toggle.prototype.refreshAccordion=function(){console.log("refreshAccordion");var _=this.base;if(_.options.accordion){_.$el.find(".tabs-container").attr("role","tablist");if(!_.options.accordionCloseOther){_.$el.find(".tabs-container").attr("multiselectable","true");}_.$el.find(".heading").each(function(){$(this).attr("aria-expanded","fal
6405se");$(this).hasClass("inactive-control")?$(this).next().hide():"";});}};$.gsb.toggle.prototype.changeStatePlayPause=function(imgsrc,imgalt){var _=this.base;var image=_.playbutton.find("img");image.prop("alt",imgalt).prop("src",imgsrc);};$.gsb.toggle.prototype.getSwitchPanelClass=function(elem){var panelClass=$.grep(elem.prop("class").split(" "),function(value){return value.indexOf("switch-panel")>-1;});return panelClass;};$.gsb.toggle.prototype.uninitAccordion=function(){var _=this.base;if(_.$el.hasClass("gsb-toggle")){_.$el.off();_.$el.removeClass("gsb-toggle");_.$el.find("> .tabs-container > .heading").removeClass("active-control inactive-control").removeAttr("tabindex").next().removeAttr("style");}};$.gsb.toggle.prototype.addA11y=function(elem,tabPanel){var _=this.base;elem=elem||_.$el;var focusElements=elem.find("input,textarea,select,a,button").not(":hidden");if(focusElements.length){focusElements[0].focus();focusElements.last().keydown(function(e){});}};$.gsb.toggle.prototype.addRichtextContainer=function(){var _=this.base;_.$el.find(".startaccordion").each(function(){$(this).nextUntil(".endaccordion").addBack().add($(this).find("~.endaccordion").first()).wrapAll('<div class="tabs-container"/>');var wrapper=$(this).parent();wrapper.find(".startaccordion, .accordionheadline").addClass("heading");wrapper.find(".heading").each(function(){$(this).nextUntil(".heading").wrapAll("<div/>");});wrapper.find(".heading").last().nextUntil(".accordionend").add(wrapper.find(".accordionend")).wrapAll("<div/>");wrapper.wrap('<div class="richtext-accordion"/>');});_.$el.removeData("gsb.toggle");_.$el.find(".richtext-accordion").gsb_toggle($.extend({},_.options,{richTextAccordion:false}));};$.fn.gsb_toggle=function(options){return this.each(function(){(new $.gsb.toggle(this,options));});};})(jQuery);
6406   /* Ende gsb_toggle */
6407   /* Start gsb_togglebar */
6408   /*!
6409 * --GSBDocStart
6410 * @module gsb_togglebar
6411 * @version 1.0.0
6412 * @see {@link http://kenwheeler.github.io/slick/}
6413 * @author sbaecker
6414 *
6415 * @desc GSB-Plugin zum Erstellung von Menue-Leiste fuer mobile Navigation
6416 *
6417 * @requires jQuery >= 1.11.1, gsb_responsiveListener
6418 *
6419 * @init
6420 * $('#wrapperDivisions').gsb_togglebar();
6421 *--GSBDocEnd
6422 */
6423;(function($){if(!$.gsb){$.gsb={};}$.gsb.togglebar=function(el,options){var base=this;base.$el=$(el);base.el=el;base.$el.data("gsb.togglebar",base);base.init=function(){base.options=$.extend({},$.gsb.togglebar.defaultOptions,options);base.$el.gsb_responsiveListener(base);};base.generate=function(){if($("#header #navServiceGS").length>0&&$("#header #navServiceLS").length>0){var gs_link=$("#header #navServiceGS");var gs_image="<img alt="+gs_link.text()+" src="+base.options.imageGS+" />";gs_link.find("a").attr("title",$("#header #navServiceGS a").text());gs_link.children().text("");gs_link.children().append(gs_image);var gs='<li class="navServiceGS">'+gs_link.html()+"</li>";var ls_link=$("#header #navServiceLS");var ls_image="<img alt="+ls_link.text()+" src="+base.options.imageLS+" />";ls_link.find("a").attr("title",$("#header #navServiceLS a").text());ls_link.children().text("");ls_link.children().append(ls_image);var ls='<li class="navServiceLS">'+ls_link.html()+"</li>";}else{var gs="";var ls="";}if($("#togglenav").length==0){base.$el.prepend('<div id="togglenav" class="togglenav">'+'<ul class="left">'+'<li id="navMobileMenu" class="navMobileMenu">'+'<a href="#">'+base.options.menuText+"</a>"+"</li>"+'<li id="navMobileSearch" class="navMobileSearch">'+'<a href="#">'+base.options.searchText+"</a>"+"</li>"+"</ul>"+'<ul class="right">'+gs+ls+"</ul></div>");}};base._uninit=function(){$("#togglenav").remove();};base.init();};$.gsb.togglebar.defaultOptions={menuText:typeof NAV_MOBILE_MENU=="undefined"?"Menü":NAV_MOBILE_MENU,searchText:typeof NAV_MOBILE_SEARCH=="undefined"?"Suchen":NAV_MOBILE_SEARCH,imageGS:image_url_gebaerdensprache,imageLS:image_url_leichtesprache,respondToEvents:true,onRefresh:function onRefresh(){this._uninit();},responsive:[{breakpoint:1024,onRefresh:function onRefresh(){this.generate();}}]};$.fn.gsb_togglebar=function(options){return this.each(function(){new $.gsb.togglebar(this,options);});};})(jQuery);
6424   /* Ende gsb_togglebar */
6425   /* Start gsb_navigation_mobile */
6426   (function($){if(!$.gsb){$.gsb={};}$.gsb.navigation_mobile=function(el,options){var base=this;base.$el=$(el);base.el=el;base.$el.data("gsb.navigation_mobile",base);base.init=function(){base.options=$.extend({},$.gsb.navigation_mobile.defaultOptions,options);$("body").gsb_responsiveListener(base);};$.gsb.navigation_mobile.prototype.initMenu=function(){if(typeof base.options.beforeInit==="function"){base.options.beforeInit.call($(this),base);}base.createMenuContainer();if(base.options.menuHtml!=null){$.ajax({url:base.options.menuHtml,dataType:"html",success:function(data){base.menu=$("#menu");base.menu.html(data);base.registerMMenu(base);var activeNode=base.menu.find("#mm-"+$("body").data("nn")+"> a:last");$("<strong>"+activeNode.text()+"</strong>").addClass(activeNode.prop("class")).insertAfter(activeNode);activeNode.remove();base.menu.find(".mm-navbar").prepend('<div class="mobile-head"/>');var mobileHead=base.menu.find(".mobile-head");mobileHead.prepend("<h1>"+NAV_MOBILE_MENU+"</h1>");mobileHead.find("h1").append($('<button class="close-button" id="mmenuH">').append('<img src="'+image_url_close_w+'" alt="'+CLOSE+'" />'));if(typeof base.options.afterInit==="function"){base.options.afterInit.call($(this),base);}}});}}
6426;$.gsb.navigation_mobile.prototype.createMenuContainer=function(){if(!$("#menu").length){$("body").prepend('<div id="menu"/>');}};$.gsb.navigation_mobile.prototype.uninit=function(){if(base.menu){if(base.api){base.api.close();}base.menu.remove();}};$.gsb.navigation_mobile.prototype.registerMMenu=function(base){if(base.options.navbar!=null){base.options.mmenuOptions.navbars=base.options.navbar;}if(base.options.configuration!=null){base.menu.mmenu(base.options.mmenuOptions,base.options.configuration);}else{base.menu.mmenu(base.options.mmenuOptions);}if(base.options.navbar!=null){$('<span class="aural">'+base.options.lessText+"</span>").insertBefore(base.menu.find(base.options.closeButtonSelector));}if(base.options.openSubMenu){base.menu.find("#mm-"+$("body").data("nn")).parentsUntil(".mm-menu > ul").filter("li").addClass("mm-opened");}base.controlPanel=base.menu.find(".mm-vertical > .mm-next");base.contentPanel=base.menu.find("li > .mm-panel.mm-vertical > ul");base.controlPanel.attr("title",base.options.moreText);base.controlPanel.attr("aria-label",base.options.moreText);base.aria=base.$el.gsb_ariaSupport(base);base.menu.find("ul > .mm-vertical.mm-opened .mm-next").each(function(){base.aria.updateAria(this,true,true);});base.menu.find(".mm-next").on("click",function(){if($(this).parent().hasClass("mm-opened")){base.aria.updateAria(this,false,true);$(this).attr("title",base.options.moreText);$(this).attr("aria-label",base.options.moreText);}else{base.aria.updateAria(this,true,true);$(this).attr("title",base.options.lessText);$(this).attr("aria-label",base.options.lessText);}});base.api=base.menu.data("mmenu");base.$el.on("click",base.options.navOpenButton,function(e){e.stopImmediatePropagation();e.preventDefault();if(base.menu.hasClass("mm-opened")){base.api.close();}else{base.api.open();$(window).off("keydown.mm-offCanvas");base.addA11y(base.menu);}});if(base.options.navSearchButton){base.$el.on("click",base.options.navSearchButton,function(e){e.stopImmediatePropagation();e.preventDefault();base.api.open();$(window).off("keydown.mm-offCanvas");base.menu.find("input:text").focus();});}if(base.options.closeButtonSelector){base.menu.on("click",base.options.closeButtonSelector,function(e){e.preventDefault();e.stopPropagation();base.api.close();base.$el.find(base.options.navOpenButton).focus();});}if(base.options.searchImage){base.menu.find(".mm-search").append('<input type="image" class="image" src="'+base.options.searchImage+'" alt="'+base.options.searchAltText+'" title="'+base.options.searchAltText+'" aria-label="'+base.options.searchAltText+'"/>');base.menu.find('.mm-search input[type="text"]').attr("title",base.options.searchfieldTitle);base.menu.find('.mm-search input[type="text"]').attr("aria-label",base.options.searchfieldTitle);base.menu.find(".mm-search").on("keydown","input:text",function(event){if(event.keyCode==13&&$(this).val()!=""){if(!base.menu.data("gsb.AutoSuggest")||base.menu.data("gsb.AutoSuggest").enterPos<0){$("#search").find("form input:text").val($(this).val());$("#menu").find("input:image").trigger("click");}}});base.menu.find(".mm-search").on("keydown click","input:image",function(event){var textInput=$(this).siblings("input:text");if((event.keyCode==13||event.type=="click")&&textInput.val()!=""){var search=$("#search");search.find("form input:text").val(textInput.val());search.find("form input:image").trigger("click");base.api.close();}});}if(base.options.autosuggestURL){base.api.bind("opened",function mobileautosuggest(){$(this).unbind("opened",mobileautosuggest);base.menu.gsb_AutoSuggest(base.options.autosuggestURL);});}};$.gsb.navigation_mobile.prototype.addA11y=function(elem){elem=elem||base.$el;var focusElements=elem.find("button,a,input,textarea,select");focusElements[0].focus();focusElements.last().keydown(function(e){if(e.keyCode===9){e.preventDefault();focusElements[0].focus();}else{if(e.keyCode===13){return true;}}});};base.init();};$.gsb.navigation_mobile.defaultOptions={templateNavBar:"modules/navigation_mobile/templateNavBar.html",menuHtml:"modules/navigation_mobile/navigation_mobile.html",lessText:typeof(SHOW_LESS)=="undefined"?"Ausblenden":SHOW_LESS,moreText:typeof(SHOW_MORE)=="undefined"?"Ausblenden":SHOW_MORE,navOpenButton:"#navMobileMenu a",navSearchButton:"#navMobileSearch a",navAuralText:typeof MOBILE_AURAL=="undefined"?"Mobiles Menü"
6426:MOBILE_AURAL,navAuralId:"#mobilemenuH",autosuggestURL:null,searchImage:image_url_loupe_b,searchfieldTitle:typeof SEARCH_TITLE=="undefined"?"Suche Eingabe  ":SEARCH_TITLE,searchAltText:typeof SEARCH_ALTTEXT=="undefined"?"Suchen":SEARCH_ALTTEXT,closeButtonSelector:"button.close-button",configuration:null,navbar:[{content:["searchfield"]}],openSubMenu:true,ariaType:"mobilemenu",beforeInit:null,afterInit:null,mmenuOptions:{slidingSubmenus:false,extensions:["iconbar"],searchfield:{add:true,search:false,placeholder:typeof(NAV_MOBILE_SEARCH)=="undefined"?"Suchen":NAV_MOBILE_SEARCH}},respondToEvents:true,onRefresh:function(){this.uninit();},responsive:[{breakpoint:1024,onRefresh:function(){this.uninit();this.initMenu();}}]};$.fn.gsb_navigation_mobile=function(options){return this.each(function(){(new $.gsb.navigation_mobile(this,options));});};})(jQuery);
6427   /* Ende gsb_navigation_mobile */
6428   /* Start gsb_responsivetables */
6429   /*!
6430* --GSBDocStart
6431 * @module gsb_responsivetables
6432 * @version 1.0.0
6433 * @see {@link http://semver.org|Semantic Versioning}
6434 * @author sbaecker
6435 *
6436 * @desc GSB-Plugin zum Wrappen von Tabellen fuer die mobile Darstellung
6437 * Fügt um selektierte Tabellen ein zusätzliches div hinzu mit dem dann über CSS der responsive Umgang definiert werden kann. Z.B. die Tabelle horizontal scrollbar machen oder sie umstrukturieren.
6438 * 
6439 * @init
6440 *  $('#content').gsb_responsiveTables();
6441 *--GSBDocEnd
6442 */
6443(function($){if(!$.gsb){$.gsb={};}$.gsb.responsiveTables=function(el,options){var base=this;base.$el=$(el);base.el=el;base.$el.data("gsb.responsiveTables",base);base.init=function(){base.options=$.extend({},$.gsb.responsiveTables.defaultOptions,options);if(base.$el.find("table").length>0){base.$el.find("table").each(function(){switch(base.options.way){case"scroll":$(this).wrap('<div class="responsiveTable"></div>');break;default:$(this).wrap('<div class="responsiveTable"></div>');break;}});}};base.init();};$.gsb.responsiveTables.defaultOptions={way:"scroll"};$.fn.gsb_responsiveTables=function(options){return this.each(function(){(new $.gsb.responsiveTables(this,options));});};})(jQuery);
6444   /* Ende gsb_responsivetables */
6445   /* Start gsb_tooltip */
6446   /*!
6447* --GSBDocStart
6448 * @module gsb_tooltip
6449 * @version 1.0.0
6450 * @see {@link http://foundation.zurb.com/docs/components/tooltips.html}
6451 * @author anuebel
6452 *
6453 * @desc GSB-Wrapper-Plugin fuer Foundation Tooltip-Plugin. Arbeitet als Polyfill, um von Foundation benoetigte
6454 * data-Attribute und Klassen hinzuzufuegen.
6455 * Das Addon arbeitet als Bindeglied zwischen HTML-Elementen und dem Foundation Tooltip Plugin
6456 * 
6457 * @option
6458 * tooltipPosition: Die Position des Tooltips(top,bottom(default),left,right)
6459 * tooltipCorners: Layoutmodus des Tooltip(''(default), 'radius', 'round')
6460 * tooltipFoundationOptions: native Optionen fuer das Foundation Plugin(undefined(default), siehe Doku oben)
6461 *
6462 * @requires modernizr(wegen Foundation)
6463 * @requires foundation
6464 * @requires foundation-tooltip
6465 *
6466 *  s. auch http://foundation.zurb.com/docs/components/tooltips.html
6467 *
6468 * @init
6469 * // tooltips for abbreviations
6470 * $('abbr').gsb_tooltip();
6471 * $('acronym').gsb_tooltip();
6472 *--GSBDocEnd
6473
6474 */
6475(function($){if(!$.gsb){$.gsb={};}$.gsb.tooltip=function(el,options){var base=this;base.$el=$(el);base.el=el;base.$el.data("gsb.tooltip",base);base.init=function(){base.options=$.extend({},$.gsb.tooltip.defaultOptions,options);base.$el.addClass("has-tip tip-"+base.options.tooltipPosition+" "+base.options.tooltipCorners).attr("data-tooltip","").attr("aria-haspopup","true");if(base.options.tooltipFoundationOptions){var serializedFoundationOptions=JSON.stringify(base.options.tooltipFoundationOptions);base.$el.attr("data-options",serializedFoundationOptions);}};base.init();};$.gsb.tooltip.defaultOptions={tooltipPosition:"bottom",tooltipCorners:"",tooltipFoundationOptions:undefined};$.fn.gsb_tooltip=function(options){return this.each(function(){(new $.gsb.tooltip(this,options));});};})(jQuery);
6476   /* Ende gsb_tooltip */
6477   /* Start gsb_twoclickshare */
6478   /*!
6479 * --GSBDocStart
6480 * @module gsb_twoclickshare
6481 * @version 1.0.0
6482 * @see {@link http://www.heise.de/extras/socialshareprivacy/}
6483 * @author rkrusenb
6484 *
6485 * @desc GSB-Wrapper-Plugin fuer Heise-2-Klickloesung
6486 * Schnittstellenbibliothek für 2-Klick-Share
6487 *
6488 * @init
6489 *  $("#navFunctionsWrapper").gsb_twoclickshare({
6490 *   toggleElement: '#navFunctionsRecommend a',
6491 *   socialSharePrivacyOptions: {
6492 *     'services': {
6493 *       'facebook': {
6494 *         'status':         'on',
6495 *         'txt_info':       '2 Klicks f&uuml;r mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k&ouml;nnen Ihre Empfehlung an Facebook senden. Schon beim Aktivieren werden Daten an Dritte &uuml;bertragen &ndash; siehe <em>i</em>.',
6496 *         'txt_fb_off':     'nicht mit Facebook verbunden',
6497 *         'txt_fb_on':      'mit Facebook verbunden',
6498 *         'perma_option':   'on',
6499 *         'display_name':   'Facebook',
6500 *         'language':       'de_DE',
6501 *         'dummy_caption':  'Facebook'
6502 *       },
6503 *       'twitter':  {
6504 *         'status':          'on',
6505 *         'txt_info':        '2 Klicks f&uuml;r mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k&ouml;nnen Ihre Empfehlung an Twitter senden. Schon beim Aktivieren werden Daten an Dritte &uuml;bertragen &ndash; siehe <em>i</em>.',
6506 *         'txt_twitter_off': 'nicht mit Twitter verbunden',
6507 *         'txt_twitter_on':  'mit Twitter verbunden',
6508 *         'perma_option':    'on',
6509 *         'display_name':    'Twitter',
6510 *         'language':        'en',
6511 *         'dummy_caption':   'Tweet'
6512 *       },
6513 *       'gplus':    {
6514 *         'status':         'on',
6515 *         'txt_info':       '2 Klicks f&uuml;r mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k&ouml;nnen Ihre Empfehlung an Google+ senden. Schon beim Aktivieren werden Daten an Dritte &uuml;bertragen &ndash; siehe <em>i</em>.',
6516 *         'txt_gplus_off':  'nicht mit Google+ verbunden',
6517 *         'txt_gplus_on':   'mit Google+ verbunden',
6518 *         'perma_option':   'on',
6519 *         'display_name':   'Google+',
6520 *         'referrer_track': '',
6521 *         'language':       'de'
6522 *       }
6523 *     },
6524 *     'info_link':      'http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html',
6525 *     'txt_help':       'Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter oder Google in die USA &uuml;bertragen und unter Umst&auml;nden auch dort gespeichert. N&auml;
6525heres erfahren Sie durch einen Klick auf das <em>i</em>.',
6526 *     'settings_perma': 'Dauerhaft aktivieren und Daten&uuml;ber&shy;tragung zustimmen:'
6527 *   }
6528 * });
6529 * s. auch http://www.heise.de/extras/socialshareprivacy/
6530 *--GSBDocEnd
6531 */
6532(function($){if(!$.gsb){$.gsb={};}$.gsb.twoclickshare=function(el,userOptions){var state={},options,wrapper,toggleElement,wrapperOuter;function init(){options=state.options=$.extend(true,{},$.gsb.twoclickshare.defaultOptions,userOptions);wrapper=$("<"+options.wrapperTag+" />").attr("id",options.wrapperId).attr("class",options.wrapperClass);wrapperInner=state.wrapper=$("<div/>").addClass(options.wrapperInnerClass);wrapper.append(wrapperInner);if(options.insert=="prepend"){$(el).prepend(wrapper);}else{if(options.insert=="append"){$(el).append(wrapper);}else{if(options.insert=="before"){$(el).before(wrapper);}else{if(options.insert=="after"){$(el).after(wrapper);}}}}wrapperInner.socialSharePrivacy(options.socialSharePrivacyOptions).prepend("<h3>"+options.labelHeader+"</h3>").find(".switch, .settings").attr("tabindex",0).keydown(function(ev){if(ev.which==13){$(this).trigger("click");}});if(options.toggleElement){toggleElement=$(options.toggleElement,el);wrapper.find("li:first").before($('<li class="email"><a>'+options.labelFormLink+"</a></li>").find("a").attr("href",toggleElement.attr("href")).end());wrapper.data("gsb.twoclickshare",{oldHeight:wrapper.height()}).css({top:0,display:"none"}).attr("aria-hidden","true");toggleElement.attr("aria-haspopup",true).attr("aria-owns",options.wrapperId).attr("title",options.toggleTitleClosed).click(function(ev){var oldHeight=wrapper.data("gsb.twoclickshare").oldHeight;ev.preventDefault();ev.stopPropagation();if(wrapper.is("[aria-hidden=true]")){wrapper.attr("aria-hidden","false").css({height:0,display:"block"}).animate({top:-oldHeight-2,height:oldHeight},"slow").promise().done(function(){$(this).css("height","").css({top:-$(this).height()-2});});wrapper.find(".close").focus();toggleElement.attr("title",options.toggleTitleOpened);}else{wrapper.attr("aria-hidden","true").data("gsb.twoclickshare",{oldHeight:wrapper.height()}).animate({top:0,height:0},"slow").promise().done(function(){$(this).css({display:"none"});});toggleElement.attr("title",options.toggleTitleClosed);}});}wrapperInner.prepend($('<button class="close" tabindex="0">'+options.labelCloseButton+"</button>").click(function(){toggleElement.trigger("click");toggleElement.focus();}));}init();};$.gsb.twoclickshare.defaultOptions={insert:"after",wrapperId:"share",wrapperTag:"div",wrapperClass:"share",toggleElement:"",toggleTitleClosed:typeof SHOW_MORE!="undefined"?SHOW_MORE:"Mehr anzeigen",toggleTitleOpened:typeof SHOW_LESS!="undefined"?SHOW_LESS:"Schließen",wrapperInnerClass:"wrapper-share",labelHeader:typeof TWOCLICKSHARE_TITLE!="undefined"?TWOCLICKSHARE_TITLE:"In sozialen Medien teilen",labelFormLink:typeof TWOCLICKSHARE_FORMLINKTEXT!="undefined"?TWOCLICKSHARE_FORMLINKTEXT:"E-Mail",labelCloseButton:typeof CLOSE!="undefined"?CLOSE:"Schließen",socialSharePrivacyOptions:{css_path:"",services:{facebook:{dummy_img:typeof image_url_share_facebook_inactive!="undefined"?image_url_share_facebook_inactive:""},twitter:{dummy_img:typeof image_url_share_twitter_inactive!="undefined"?image_url_share_twitter_inactive:""},gplus:{dummy_img:typeof image_url_share_gplus_inactive!="undefined"?image_url_share_gplus_inactive:""}}}};$.fn.gsb_twoclickshare=function(options){return $(this).map(function(){return $.gsb.twoclickshare(this,options);});};})(jQuery);
6533   /* Ende gsb_twoclickshare */
6534   /* Start gsb_multimedia */
6535   /*!
6536 * --GSBDocStart
6537 * @module gsb_Multimedia
6538 * @version 1.0.0
6539 * @see {@link http://semver.org|Semantic Versioning | http://mediaelementjs.com}
6540 * @author anuebel
6541 * 
6542 * @desc GSB-Wrapper-Plugin fuer mediaelement.js.
6543 * Multimedia für Audio und Video auf Basis von mediaelement.js
6544 *
6545 * @option
6546 * center: Soll das Multimedia-Element zentriert werden(false(default), true)(nur fuer Videos)
6547 * responsive: Objekt mit Angaben zu den Groessen in den verschiedenen Aufloesungen
6548 * mediaelementplayerOptions: native Optionen fuer das mediaelement.js Plugin(null(default), siehe Doku oben)
6549 *
6550 * @requires {@link external:jQuery}
6551 * @requires gsb_responsiveListener
6552 * @requires {@link external:mediaelementjs}
6553 *
6554 * @global jQuery, console
6555 * 
6556 * @init
6557 *  $('#content video, #content audio').gsb_Multimedia();
6558 * $('#supplement video, #supplement audio').gsb_Multimedia({
6559 *   settings:{
6560 *     mediaelementplayerOptions: {
6561 *       videoWidth: 280,
6562 *       videoHeight: 158
6563 *     }
6564 *   },
6565 *   responsive: [
6566 *     {
6567 *       breakpoint: 600,
6568 *       settings: {
6569 *         mediaelementplayerOptions: {
6570 *           videoWidth: 280,
6571 *           videoHeight: 158
6572 *         }
6573 *       }
6574 *     }
6575 *   ]
6576 * });
6577 *--GSBDocEnd
6578 */
6579(function($,window){if(!$.gsb){$.gsb={};}$.gsb.Multimedia=function(el,options){var base=this;base.$el=$(el);base.$elWrapper=base.$el.closest(".mejs-wrapper");base.el=el;base.$el.data("gsb.Multimedia",base);base.reloadHref=base.$el.data("reload-href");base.init(options);};$.gsb.Multimedia.prototype.centerVideoIfRequired=function(){var base=this,mediaelementplayerOptions=base.options.mediaelementplayerOptions,videoWidth=mediaelementplayerOptions&&mediaelementplayerOptions.videoWidth||base.$el.attr("width");if(base.options.center&&videoWidth){var centerContainer,parent=base.$el.parent();if(!parent.is(".mejs-centered")){centerContainer=$('<div class="mejs-centered" style="margin: 0 auto;"></div>');centerContainer.css("width",videoWidth+"px");base.$el.wrap(centerContainer);}else{centerContainer=parent;centerContainer.css("width",videoWidth+"px");}}};$.gsb.Multimedia.prototype.reinitializeVideoElement=function(){var base=this;$.get(base.reloadHref,function(data){var $newVideoElementContainer=$(data);base.$elWrapper.replaceWith($newVideoElementContainer);var newVideoElement=$newVideoElementContainer.find("video").get(0);base.onVideoElementReinitialized(newVideoElement);});};$.gsb.Multimedia.prototype.triggerRefresh=function(){var base=this;if(base.$el.is("video")&&base.reloadHref){base.reinitializeVideoElement();}};$.gsb.Multimedia.prototype.onVideoElementReinitialized=function(newVideoElement){var base=this;base.$el=$(newVideoElement);base.$elWrapper=base.$el.closest(".mejs-wrapper");base.el=newVideoElement;base.$el.data("gsb.Multimedia",base);base.initializeMediaElement();};$.gsb.Multimedia.prototype.initializeMediaElement=function(){var base=this,mediaelementplayerOptions=$.extend({},$.gsb.Multimedia.defaultMediaelementplayerOptions,base.options.settings.mediaelementplayerOptions,base.mediaelementplayerOptionsFromDataAttribute()),$consentWrapper,$consentButton;if(mediaelementplayerOptions.hasOwnProperty("videoWidth")){base.$el.attr("width",mediaelementplayerOptions.videoWidth);}if(mediaelementplayerOptions.hasOwnProperty("videoHeight")){base.$el.attr("height",mediaelementplayerOptions.videoHeight);}base.centerVideoIfRequired();base.$elWrapper.addClass("gsb-multimedia");if(base.options.ytRequiresConsent&&base.$el.find('source[type="video/youtube"]').length&&!base.ytConsented){base.$el.hide();base.$elWrapper.css({height:base.$el.height(),width:base.$el.width(),backgroundImage:"url("+base.$el.attr("poster")+")"}).addClass("consent-required");$consentWrapper=$("<div class='consent-wrapper'><div class='consent-container' /></div>");$consentButton=$("<button type='text' class='consent-button' />").text(base.options.ytConsentButtonText).click(function(){base.ytConsented=true;$consentWrapper.remove();base.$elWrapper.css({backgroundImage:"",height:"",width:""}).removeClass("consent-required");base.$el.attr("autoplay","autoplay");base.$el.show();base.initializeMediaElement();});$consentWrapper.find(".consent-container").html(base.options.ytConsentHtml)[base.options.ytConsentButtonInsertion]($consentButton);base.$elWrapper.append($consentWrapper);return;}base.$el.mediaelementplayer(mediaelementplayerOptions);base.$el.trigger("init.Multimedia.gsb");};$.gsb.Multimedia.prototype.mediaelementplayerOptionsFromDataAttribute=function(){var base=this,optionsFromDataAttributeAsString=base.$el.data("options");var opts={},ii,p,opts_arr=(optionsFromDataAttributeAsString||":").split(";");ii=opts_arr.length;function isNumber(o){return !isNaN(o-0)&&o!==null&&o!==""&&o!==false&&o!==true;}function trim(str){if(typeof str==="string"){return $.trim(str);}return str;}while(ii--){p=opts_arr[ii].split(":");p=[p[0],p.slice(1).join(":")];if(/true/i.test(p[1])){p[1]=true;}if(/false/i.test(p[1])){p[1]=false;}if(isNumber(p[1])){if(p[1].indexOf(".")===-1){p[1]=parseInt(p[1],10);}else{p[1]=parseFloat(p[1]);}}if(p.length===2&&p[0].length>0){opts[trim(p[0])]=trim(p[1]);}}return opts;};$.gsb.Multimedia.prototype.init=function(options){var base=this;base.options=$.extend({},$.gsb.Multimedia.defaultOptions,options);base.$el.gsb_responsiveListener(base.$el.data("gsb.Multimedia"));base.initializeMediaElement();};$.gsb.Multimedia.defaultOptions={onRefresh:function(){this.triggerRefresh();},responsive:[{breakpoint:600,onRefresh:function(){this.triggerRefresh();},settings:{mediaelementplayerOptions:{videoWidth:440,videoHeight:248}}},{breakpoint:440,onRefresh:function(){this.triggerRefresh();},settings:{mediaelementplayerOptions:{videoWidth:280,videoHeight:158}}}],center:false,respondToEvents:true,settings:{mediaelementplayerOptions:{}},ytRequiresConsent:false,ytConsentHtml:"<h3>Aktivierung erforderlich</h3><p>Wir möchten Sie darauf hinweisen, dass nach der Aktivierung Daten an YouTube übermittelt werden.</p>",ytConsentButtonText:"Video aktivieren",ytConsentButtonInsertion:"append"};$.gsb.Multimedia.defaultMediaelementplayerOptions={flashName:"/static/mediaElementPlayer/flashmediaelement.swf",showPosterWhenEnded:true};$.fn.gsb_Multimedia=function(options){return this.each(function(){return new $.gsb.Multimedia(this,options);});};}(jQuery,window));
6580   /* Ende gsb_multimedia */
6581   /* Start variables_FIELDS */
6582   jQuery.gsb_clearfields = function(){
6583// attach events to search form input
6584      jQuery('#f565216d565176').attachToField('f565216d565176','');
6585      jQuery('#f565206d565176').attachToField('f565206d565176','');
6586      jQuery('#f565184d565176').attachToField('f565184d565176','');
6587      jQuery('#f565192d565176').attachToField('f565192d565176','');
6588      jQuery('#f565212d565176').attachToField('f565212d565176','');
6589      jQuery('#f565128d565118').attachToField('f565128d565118','Ihre E-Mail-Adresse');
6590      jQuery('#f565116d565108').attachToField('f565116d565108','Ihre E-Mail-Adresse');
6591return;
6592};
6593   /* Ende variables_FIELDS */
6594   /* Start init */
6595   $(document).ready(function(){$("body").addClass("js-on").removeClass("js-off");$("#cookiebanner").gsb_banner({animation:$("#cookiebanner").data("animation"),position:$("#cookiebanner").data("position"),cookieName:"cookiebanner",cookieLifeTimeInDaysVisible:30,cookieLifeTimeInDaysClosed:30});$("#wrapperDivisions").gsb_togglebar();$("#wrapperDivisions").gsb_navigation_mobile({autosuggestURL:json_url_mobileSearch,menuHtml:json_url_mobileMenu});var $stage=$("#stage").find(".stage-container");$stage.gsb_Slideshow({containerElement:".teaser",pagination:true,autoplay:true,autoSpeed:9000,pauseOnHover:true,nextButtonImage:image_url_next,prevButtonImage:image_url_back,prevButtonInactiveImage:image_url_back_g,nextButtonInactiveImage:image_url_next_g,playButtonImagePaused:image_url_play,playButtonImagePlaying:image_url_paused,slickOptions:{arrows:false,fade:false,nextArrow:$stage.parent().find(".next"),prevArrow:$stage.parent().find(".prev"),responsive:[{breakpoint:600,settings:{gsb:{playButton:false},autoplay:false,arrows:true}}]}});var $carousel=$(".startseite").find(".teaser-switcher .karussell");$carousel.gsb_Slideshow({containerElement:".teaser",autoplay:false,pagination:true,nextButtonImage:image_url_next,prevButtonImage:image_url_back,prevButtonInactiveImage:image_url_back_g,nextButtonInactiveImage:image_url_next_g,slickOptions:{slidesToShow:5,slidesToScroll:5,fade:false,nextArrow:$carousel.parent().find(".next"),prevArrow:$carousel.parent().find(".prev"),responsive:[{breakpoint:1023,settings:{slidesToShow:3,slidesToScroll:3}},{breakpoint:610,settings:{slidesToShow:2,slidesToScroll:2}},{breakpoint:440,settings:{slidesToShow:1,slidesToScroll:1}}]}});
6595$(".galleryBox").gsb_Slideshow({slideshowControls:true,generateButtonContainer:false,autoplay:false,pagination:false,nextButtonImage:image_url_next,prevButtonImage:image_url_back,prevButtonInactiveImage:image_url_back_g,nextButtonInactiveImage:image_url_next_g,slickOptions:{adaptiveHeight:true,fade:false}});$("#supplement .live-calendar").gsb_calendar({beforeInit:function beforeInit(){$("#supplement .live-calendar").find(".has-tip").each(function(_,el){$("#"+$(el).attr("aria-describedby")).remove();});},afterInit:function afterInit(){$("#supplement .live-calendar").find("abbr, acronym").gsb_tooltip().foundation();}});$("#navPrimary").gsb_navigation();$("#content").gsb_responsiveTables();$("#navFunctions").gsb_printlink();$(".GlossarEntry[data-lightbox-href]").gsb_lightbox();$(".picture .loupe").not(".galleryBox *").gsb_lightbox();$(".galleryBox").gsb_lightbox({lightboxType:"multiple",element:".slide",imagePrev:image_url_back,imageNext:image_url_next,imagePrevInactive:image_url_back_g,imageNextInactive:image_url_next_g});$("#navFunctionsWrapper").gsb_twoclickshare({toggleElement:"#navFunctionsRecommend a",socialSharePrivacyOptions:{"services":{"facebook":{"status":"on","txt_info":"2 Klicks f&uuml;r mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k&ouml;nnen Ihre Empfehlung an Facebook senden. Schon beim Aktivieren werden Daten an Dritte &uuml;bertragen &ndash; siehe <em>i</em>.","txt_fb_off":"nicht mit Facebook verbunden","txt_fb_on":"mit Facebook verbunden","perma_option":"on","display_name":"Facebook","language":"de_DE","dummy_caption":"Facebook"},"twitter":{"status":"on","txt_info":"2 Klicks f&uuml;r mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k&ouml;nnen Ihre Empfehlung an Twitter senden. Schon beim Aktivieren werden Daten an Dritte &uuml;bertragen &ndash; siehe <em>i</em>.","txt_twitter_off":"nicht mit Twitter verbunden","txt_twitter_on":"mit Twitter verbunden","perma_option":"on","display_name":"Twitter","language":"en","dummy_caption":"Tweet"},"gplus":{"status":"on","txt_info":"2 Klicks f&uuml;r mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k&ouml;nnen Ihre Empfehlung an Google+ senden. Schon beim Aktivieren werden Daten an Dritte &uuml;bertragen &ndash; siehe <em>i</em>.","txt_gplus_off":"nicht mit Google+ verbunden","txt_gplus_on":"mit Google+ verbunden","perma_option":"on","display_name":"Google+","referrer_track":"","language":"de"}},"info_link":"http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html","txt_help":"Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter oder Google in die USA &uuml;bertragen und unter Umst&auml;nden auch dort gespeichert. N&auml;heres erfahren Sie durch einen Klick auf das <em>i</em>.","settings_perma":"Dauerhaft aktivieren und Daten&uuml;ber&shy;tragung zustimmen:"}});$.gsb_clearfields();$("#siteInfo").find(".smallAccordion").gsb_toggle({onRefresh:function onRefresh(){this.initialize();this.refreshAccordion();},tab:false,accordion:true});$("#content").find(".toggleEntry").gsb_toggle({tab:false,accordion:true,accordionCloseOther:false,onRefresh:function onRefresh(){this.initialize();},responsive:[]});$("#supplement").find(".toggleFacet").gsb_toggle({tab:false,accordion:true,accordionCloseOther:false,onRefresh:function onRefresh(){this.initialize();},responsive:[]});$(".selected .toggle").click();$("abbr").gsb_tooltip();$("acronym").gsb_tooltip();$("#content video, #content audio").gsb_Multimedia();$("#supplement video, #supplement audio").gsb_Multimedia({settings:{mediaelementplayerOptions:{videoWidth:280,videoHeight:158}},responsive:[{breakpoint:600,settings:{mediaelementplayerOptions:{videoWidth:280,videoHeight:158}}}]});$(document).foundation();});
6596   /* Ende init */
6597jQuery(document).ready(function (jQuery){
6598  // Autosuggest
6599  var searchforms = [];
6600  searchforms[1] = {
6601    id : 'searchService',
6602    action : 'SiteGlobals/Forms/Suche/Servicesuche_Autosuggest_Formular.html?nn=373444'
6603  };
6604  searchforms[2] = {
6605    id : 'searchExpert',
6606    action : 'SiteGlobals/Forms/Suche/Expertensuche_Autosuggest_Formular.html?nn=373444'
6607  };
6608  if(searchforms.length > 0){
6609    $(searchforms).each(function(index){
6610      var valueObj = searchforms[index],form;
6611      if(valueObj !== undefined){
6612        form = jQuery('form[name="'+ valueObj.id +'"]');
6613        if(form.length > 0){
6614          form.gsb_AutoSuggest(valueObj.action);
6615        }
6616      }
6617    });
6618  }
6619});

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.