fcmsJs_Version ="1702375838"; function fcmsLib_Init_Console(){var that=this;var buffer=[];function logMessage(meth,msg){var timestamp=new Date().getTime();if((meth==='ERROR'||meth==='CRITICAL'||meth==='PANIC')&&(typeof console!="undefined"&&typeof console.error!="undefined")){console.error(msg);} buffer.push({meth:meth,timestamp:timestamp,word:msg});} that.isEnabled=function(){return true;};that.enable=function(){};that.disable=function(){};that.log=function(msg){logMessage('LOG',msg);};that.info=function(msg){logMessage('INFO',msg);};that.debug=function(msg){logMessage('DEBUG',msg);};that.warn=function(msg){logMessage('WARN',msg);};that.warning=function(msg){logMessage('WARN',msg);};that.error=function(msg){logMessage('ERROR',msg);};that.critical=function(msg){logMessage('CRITICAL',msg);};that.panic=function(msg){logMessage('PANIC',msg);};that.getBuffer=function(){return buffer;};} if(typeof fcmsJs=='undefined'||!fcmsJs){fcmsJs={};} fcmsJs.console=new fcmsLib_Init_Console();window.onError=function(e){fcmsJs.console.error(e);};(function(){function each(iterator,context){for(var i=0,length=this.length>>>0;i2;if(obj==null)obj=[];if(nativeReduce&&obj.reduce===nativeReduce){if(context)iterator=_.bind(iterator,context);return initial?obj.reduce(iterator,memo):obj.reduce(iterator);} each(obj,function(value,index,list){if(!initial){memo=value;initial=true;}else{memo=iterator.call(context,memo,value,index,list);}});if(!initial)throw new TypeError(reduceError);return memo;};_.reduceRight=_.foldr=function(obj,iterator,memo,context){var initial=arguments.length>2;if(obj==null)obj=[];if(nativeReduceRight&&obj.reduceRight===nativeReduceRight){if(context)iterator=_.bind(iterator,context);return initial?obj.reduceRight(iterator,memo):obj.reduceRight(iterator);} var length=obj.length;if(length!==+length){var keys=_.keys(obj);length=keys.length;} each(obj,function(value,index,list){index=keys?keys[--length]:--length;if(!initial){memo=obj[index];initial=true;}else{memo=iterator.call(context,memo,obj[index],index,list);}});if(!initial)throw new TypeError(reduceError);return memo;};_.find=_.detect=function(obj,iterator,context){var result;any(obj,function(value,index,list){if(iterator.call(context,value,index,list)){result=value;return true;}});return result;};_.filter=_.select=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeFilter&&obj.filter===nativeFilter)return obj.filter(iterator,context);each(obj,function(value,index,list){if(iterator.call(context,value,index,list))results[results.length]=value;});return results;};_.reject=function(obj,iterator,context){return _.filter(obj,function(value,index,list){return!iterator.call(context,value,index,list);},context);};_.every=_.all=function(obj,iterator,context){iterator||(iterator=_.identity);var result=true;if(obj==null)return result;if(nativeEvery&&obj.every===nativeEvery)return obj.every(iterator,context);each(obj,function(value,index,list){if(!(result=result&&iterator.call(context,value,index,list)))return breaker;});return!!result;};var any=_.some=_.any=function(obj,iterator,context){iterator||(iterator=_.identity);var result=false;if(obj==null)return result;if(nativeSome&&obj.some===nativeSome)return obj.some(iterator,context);each(obj,function(value,index,list){if(result||(result=iterator.call(context,value,index,list)))return breaker;});return!!result;};_.contains=_.include=function(obj,target){if(obj==null)return false;if(nativeIndexOf&&obj.indexOf===nativeIndexOf)return obj.indexOf(target)!=-1;return any(obj,function(value){return value===target;});};_.invoke=function(obj,method){var args=slice.call(arguments,2);var isFunc=_.isFunction(method);return _.map(obj,function(value){return(isFunc?method:value[method]).apply(value,args);});};_.pluck=function(obj,key){return _.map(obj,function(value){return value[key];});};_.where=function(obj,attrs,first){if(_.isEmpty(attrs))return first?null:[];return _[first?'find':'filter'](obj,function(value){for(var key in attrs){if(attrs[key]!==value[key])return false;} return true;});};_.findWhere=function(obj,attrs){return _.where(obj,attrs,true);};_.max=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535){return Math.max.apply(Math,obj);} if(!iterator&&_.isEmpty(obj))return-Infinity;var result={computed:-Infinity,value:-Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computed>=result.computed&&(result={value:value,computed:computed});});return result.value;};_.min=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535){return Math.min.apply(Math,obj);} if(!iterator&&_.isEmpty(obj))return Infinity;var result={computed:Infinity,value:Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computedb||a===void 0)return 1;if(a>>1;iterator.call(context,array[mid])=0;});});};_.difference=function(array){var rest=concat.apply(ArrayProto,slice.call(arguments,1));return _.filter(array,function(value){return!_.contains(rest,value);});};_.zip=function(){var args=slice.call(arguments);var length=_.max(_.pluck(args,'length'));var results=new Array(length);for(var i=0;i=0;i--){args=[funcs[i].apply(this,args)];} return args[0];};};_.after=function(times,func){if(times<=0)return func();return function(){if(--times<1){return func.apply(this,arguments);}};};_.keys=nativeKeys||function(obj){if(obj!==Object(obj))throw new TypeError('Invalid object');var keys=[];for(var key in obj)if(_.has(obj,key))keys[keys.length]=key;return keys;};_.values=function(obj){var values=[];for(var key in obj)if(_.has(obj,key))values.push(obj[key]);return values;};_.pairs=function(obj){var pairs=[];for(var key in obj)if(_.has(obj,key))pairs.push([key,obj[key]]);return pairs;};_.invert=function(obj){var result={};for(var key in obj)if(_.has(obj,key))result[obj[key]]=key;return result;};_.functions=_.methods=function(obj){var names=[];for(var key in obj){if(_.isFunction(obj[key]))names.push(key);} return names.sort();};_.extend=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){obj[prop]=source[prop];}}});return obj;};_.pick=function(obj){var copy={};var keys=concat.apply(ArrayProto,slice.call(arguments,1));each(keys,function(key){if(key in obj)copy[key]=obj[key];});return copy;};_.omit=function(obj){var copy={};var keys=concat.apply(ArrayProto,slice.call(arguments,1));for(var key in obj){if(!_.contains(keys,key))copy[key]=obj[key];} return copy;};_.defaults=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){if(obj[prop]==null)obj[prop]=source[prop];}}});return obj;};_.clone=function(obj){if(!_.isObject(obj))return obj;return _.isArray(obj)?obj.slice():_.extend({},obj);};_.tap=function(obj,interceptor){interceptor(obj);return obj;};var eq=function(a,b,aStack,bStack){if(a===b)return a!==0||1/a==1/b;if(a==null||b==null)return a===b;if(a instanceof _)a=a._wrapped;if(b instanceof _)b=b._wrapped;var className=toString.call(a);if(className!=toString.call(b))return false;switch(className){case'[object String]':return a==String(b);case'[object Number]':return a!=+a?b!=+b:(a==0?1/a==1/b:a==+b);case'[object Date]':case'[object Boolean]':return+a==+b;case'[object RegExp]':return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase;} if(typeof a!='object'||typeof b!='object')return false;var length=aStack.length;while(length--){if(aStack[length]==a)return bStack[length]==b;} aStack.push(a);bStack.push(b);var size=0,result=true;if(className=='[object Array]'){size=a.length;result=size==b.length;if(result){while(size--){if(!(result=eq(a[size],b[size],aStack,bStack)))break;}}}else{var aCtor=a.constructor,bCtor=b.constructor;if(aCtor!==bCtor&&!(_.isFunction(aCtor)&&(aCtor instanceof aCtor)&&_.isFunction(bCtor)&&(bCtor instanceof bCtor))){return false;} for(var key in a){if(_.has(a,key)){size++;if(!(result=_.has(b,key)&&eq(a[key],b[key],aStack,bStack)))break;}} if(result){for(key in b){if(_.has(b,key)&&!(size--))break;} result=!size;}} aStack.pop();bStack.pop();return result;};_.isEqual=function(a,b){return eq(a,b,[],[]);};_.isEmpty=function(obj){if(obj==null)return true;if(_.isArray(obj)||_.isString(obj))return obj.length===0;for(var key in obj)if(_.has(obj,key))return false;return true;};_.isElement=function(obj){return!!(obj&&obj.nodeType===1);};_.isArray=nativeIsArray||function(obj){return toString.call(obj)=='[object Array]';};_.isObject=function(obj){return obj===Object(obj);};each(['Arguments','Function','String','Number','Date','RegExp'],function(name){_['is'+name]=function(obj){return toString.call(obj)=='[object '+name+']';};});if(!_.isArguments(arguments)){_.isArguments=function(obj){return!!(obj&&_.has(obj,'callee'));};} if(typeof(/./)!=='function'){_.isFunction=function(obj){return typeof obj==='function';};} _.isFinite=function(obj){return isFinite(obj)&&!isNaN(parseFloat(obj));};_.isNaN=function(obj){return _.isNumber(obj)&&obj!=+obj;};_.isBoolean=function(obj){return obj===true||obj===false||toString.call(obj)=='[object Boolean]';};_.isNull=function(obj){return obj===null;};_.isUndefined=function(obj){return obj===void 0;};_.has=function(obj,key){return hasOwnProperty.call(obj,key);};_.noConflict=function(){root._=previousUnderscore;return this;};_.identity=function(value){return value;};_.times=function(n,iterator,context){var accum=Array(n);for(var i=0;i':'>','"':'"',"'":''','/':'/'}};entityMap.unescape=_.invert(entityMap.escape);var entityRegexes={escape:new RegExp('['+_.keys(entityMap.escape).join('')+']','g'),unescape:new RegExp('('+_.keys(entityMap.unescape).join('|')+')','g')};_.each(['escape','unescape'],function(method){_[method]=function(string){if(string==null)return'';return(''+string).replace(entityRegexes[method],function(match){return entityMap[method][match];});};});_.result=function(object,property){if(object==null)return null;var value=object[property];return _.isFunction(value)?value.call(object):value;};_.mixin=function(obj){each(_.functions(obj),function(name){var func=_[name]=obj[name];_.prototype[name]=function(){var args=[this._wrapped];push.apply(args,arguments);return result.call(this,func.apply(_,args));};});};var idCounter=0;_.uniqueId=function(prefix){var id=++idCounter+'';return prefix?prefix+id:id;};_.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var noMatch=/(.)^/;var escapes={"'":"'",'\\':'\\','\r':'r','\n':'n','\t':'t','\u2028':'u2028','\u2029':'u2029'};var escaper=/\\|'|\r|\n|\t|\u2028|\u2029/g;_.template=function(text,data,settings){var render;settings=_.defaults({},settings,_.templateSettings);var matcher=new RegExp([(settings.escape||noMatch).source,(settings.interpolate||noMatch).source,(settings.evaluate||noMatch).source].join('|')+'|$','g');var index=0;var source="__p+='";text.replace(matcher,function(match,escape,interpolate,evaluate,offset){source+=text.slice(index,offset).replace(escaper,function(match){return'\\'+escapes[match];});if(escape){source+="'+\n((__t=("+escape+"))==null?'':_.escape(__t))+\n'";} if(interpolate){source+="'+\n((__t=("+interpolate+"))==null?'':__t)+\n'";} if(evaluate){source+="';\n"+evaluate+"\n__p+='";} index=offset+match.length;return match;});source+="';\n";if(!settings.variable)source='with(obj||{}){\n'+source+'}\n';source="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+ source+"return __p;\n";try{render=new Function(settings.variable||'obj','_',source);}catch(e){e.source=source;throw e;} if(data)return render(data,_);var template=function(data){return render.call(this,data,_);};template.source='function('+(settings.variable||'obj')+'){\n'+source+'}';return template;};_.chain=function(obj){return _(obj).chain();};var result=function(obj){return this._chain?_(obj).chain():obj;};_.mixin(_);each(['pop','push','reverse','shift','sort','splice','unshift'],function(name){var method=ArrayProto[name];_.prototype[name]=function(){var obj=this._wrapped;method.apply(obj,arguments);if((name=='shift'||name=='splice')&&obj.length===0)delete obj[0];return result.call(this,obj);};});each(['concat','join','slice'],function(name){var method=ArrayProto[name];_.prototype[name]=function(){return result.call(this,method.apply(this._wrapped,arguments));};});_.extend(_.prototype,{chain:function(){this._chain=true;return this;},value:function(){return this._wrapped;}});}).call(fcmsJs);function fcmsLib_Core_WebStorage(type){if(typeof type!='string'||type.length<=0) {throw new fcmsLib_Core_Exception('Kein Storage-Typ angegeben.');} this.type=type;this.storageAvailable();} fcmsLib_Core_WebStorage.prototype.storageAvailable=function storageAvailable(){try{if(window[this.type]){try{var key='___fCMS_AvailableText';window[this.type].setItem(key,'for iOS private browsing.');window[this.type].removeItem(key);}catch(e){this.setAvailable(false);return;} this.setAvailable(true);}else{this.setAvailable(false);}}catch(e){this.setAvailable(false);fcmsJs.console.error(e);}};fcmsLib_Core_WebStorage.prototype.setAvailable=function setAvailable(available){if(typeof available!='boolean'){return;} this.isAvailable=available;};fcmsLib_Core_WebStorage.prototype.set=function set(key,value){if(!this.isAvailable){return false;} window[this.type].setItem(key,value);return true;};fcmsLib_Core_WebStorage.prototype.get=function get(key){if(!this.isAvailable){return null;} return window[this.type].getItem(key);};fcmsLib_Core_WebStorage.prototype.remove=function remove(key){if(!this.isAvailable){return;} window[this.type].removeItem(key);};fcmsLib_Core_WebStorage.prototype.clear=function clear(){if(!this.isAvailable){return;} window[this.type].clear();};function fcmsLib_Core_Observer(name){var that=this;that.name=name;that.fcmsid=Math.random();that.fns=[];that._debug=false;that.enabled=true;that.subscribe=function(fn,force){var present=false;if(typeof fn!=='function'){throw'Trying to subscribe a none function. ('+typeof fn+')';} that.fns.forEach(function(el){if(el===fn){present=true;}});if(present===false||force===true){that.fns[that.fns.length]=fn;}else{fcmsJs.console.warning('Funktion ist schon subscribed!');}};that.setFilterArgs=function(func){that.filterArgs=func;};that.unsubscribe=function unsubscribe(fn,ignoreMissing){if(typeof fn=="undefined"){that.fns=[];return;} var subscriberCount=that.getSubscriberCount();that.fns=that.fns.filter(function(el){return el!==fn;});if(subscriberCount-1!==that.getSubscriberCount()){if(!(typeof ignoreMissing==='boolean'&&ignoreMissing)){fcmsJs.console.error('Subscriber '+fn+' von '+that.name+' NICHT unregistriert.');}}};that.subscribeOnce=function(fn){that.subscribe(function(){fn.apply(this,arguments);that.unsubscribe(arguments.callee);});};that.debug=function(name){that._debug=name;};that.notify=function(){var a=arguments,b=that.fns;if(that._debug){fcmsJs.console.info(that._debug+' notify!');} if(that.fns.length>100){fcmsJs.console.warn("Es sind "+that.fns.length+" Beobachter für "+that.name+" subscribed.");} if(that.enabled===false){return that.fns.length;} if(typeof that.filterArgs==='function'){a=that.filterArgs(a);} that.fns.forEach(function(el){try{el.apply(this,a);}catch(e){if(e.expected){throw e;} fcmsJs.console.critical(e);}}.bind(this));return that.fns.length;};that.disable=function(){that.enabled=false;};that.enable=function(){that.enabled=true;};that.getSubscriberCount=function getSubscriberCount(){return that.fns.length;};that.unsubscribeAll=function unsubscribeAll(){that.fns=[];};} function fcmsLib_Core_LocalStorage(prefix,ttl){fcmsLib_Core_Storage.call(this,prefix,new fcmsLib_Core_WebStorage('localStorage'),'fcms',ttl);} fcmsLib_Core_LocalStorage.prototype=Object.create(fcmsLib_Core_Storage.prototype);fcmsLib_Core_LocalStorage.prototype.set=function set(key,value){var expiry=null;if(typeof this.ttl==='number'&&this.ttl>0){expiry=new Date().getTime()+(this.ttl*1000);} var item={'value':value,'expiry':expiry};return this.storage.set(this.namespace+this.getPrefix()+key,JSON.stringify(item));};fcmsLib_Core_LocalStorage.prototype.get=function get(key){if(this.namespace){this.correctNamespace(key);} var storageKey=this.namespace+this.getPrefix()+key;var itemStr=this.storage.get(storageKey);try{var item=JSON.parse(itemStr);if(typeof item.expiry!=='undefined'&&typeof item.value!=='undefined'){if(typeof item.expiry==='number'&&new Date().getTime()>item.expiry) {this.storage.remove(storageKey) return null} return item.value;}}catch(e){} return itemStr;};function fcmsLib_Core_SessionStorage(prefix){fcmsLib_Core_Storage.call(this,prefix,new fcmsLib_Core_WebStorage('sessionStorage'));} fcmsLib_Core_SessionStorage.prototype=Object.create(fcmsLib_Core_Storage.prototype);function fcmsLib_Core_Storage(prefix,storage,namespace,ttl){if(typeof prefix!='string'||prefix.length<=0) {throw new fcmsLib_Core_Exception('Ungültiger Prefix für den Storage.');} this.namespace='';if(typeof namespace==='string'&&prefix!==namespace){this.namespace=namespace+'.';} this.setPrefix(prefix);this.storage=storage;this.ttl=null;if(typeof ttl==='number'&&ttl>0){this.ttl=ttl;}} fcmsLib_Core_Storage.prototype.setPrefix=function setPrefix(prefix){if(typeof prefix!="string"){return;} this.prefix=prefix+".";};fcmsLib_Core_Storage.prototype.getPrefix=function getPrefix(){if(typeof this.prefix!="string"){this.prefix="";} return this.prefix;};fcmsLib_Core_Storage.prototype.isAvailable=function isAvailable(){return this.storage.isAvailable;};fcmsLib_Core_Storage.prototype.set=function set(key,value){return this.storage.set(this.namespace+this.getPrefix()+key,value);};fcmsLib_Core_Storage.prototype.get=function get(key){if(this.namespace){this.correctNamespace(key);} return this.storage.get(this.namespace+this.getPrefix()+key);};fcmsLib_Core_Storage.prototype.remove=function remove(key){return this.storage.remove(this.namespace+this.getPrefix()+key);};fcmsLib_Core_Storage.prototype.clear=function clear(){return this.storage.clear();};fcmsLib_Core_Storage.prototype.correctNamespace=function correctNamespace(key){if(this.storage.get(this.getPrefix()+key)===null){return;} this.storage.set(this.namespace+this.getPrefix()+key,this.storage.get(this.getPrefix()+key));this.storage.remove(this.getPrefix()+key);};(function(exports){if(typeof exports.assert!="undefined"){return;} function check(rightify,toCheck){function bang(msg){if(exports.debug){throw new fcmsLib_Core_AssertException(msg);}} function main(check,msg){if(typeof msg=="undefined"){toCheck=check;return main;}else{toCheck=null;} main.checks+=1;if(rightify!==check){bang(msg);}} main.and=exports;function test(args,fn){var claim=toCheck;var msg="";if(args.length===2){toCheck=null;claim=args[0];msg=args[1];}else if(args.length===1){msg=args[0];}else{if(claim===null){throw new fcmsLib_Core_Exception("Die Methode braucht einen oder zwei Parameter!");}} if(!fn(claim)){bang(msg);}} main.not=function(){rightify=!rightify;return check(rightify,toCheck);};main.is=function is(c,msg){if(arguments.length===2){toCheck=null;} if(rightify===(toCheck==c)){}else{bang(msg);} return check(rightify,toCheck);};main.isNull=function isNull(){test(arguments,function(claim){return(rightify===(claim===null));});return check(rightify,toCheck);};main.isNumber=function isNumber(c,msg){test(arguments,function(claim){return(rightify===(typeof claim=="number"));});return check(rightify,toCheck);};main.isString=function isString(c,msg){test(arguments,function(claim){return(rightify===(typeof claim=="string"));});return check(rightify,toCheck);};main.isBoolean=function isBoolean(){test(arguments,function(claim){return(rightify===(typeof claim=="boolean"));});return check(rightify,toCheck);};main.isArray=function isArray(){test(arguments,function(claim){return(rightify===(typeof claim=="object"&&claim instanceof Array));});return check(rightify,toCheck);};main.end=function(){toCheck=null;return true;};main.isFunction=function isFunction(){test(arguments,function(claim){return(rightify===(typeof claim=="function"));});return check(rightify,toCheck);};main.isObject=function isObject(){test(arguments,function(claim){return(rightify===(typeof claim!="undefined")&&rightify===(claim!==null));});return check(rightify,toCheck);};main.isEmpty=function isEmpty(){test(arguments,function(claim){if(typeof claim==='string'){return(rightify===(claim===""));}else if(typeof claim==='object'){return(rightify===(fcmsLib_Core_Object.size()===0));}else{return false;}});return check(rightify,toCheck);};main.isUndefined=function isUndefined(){test(arguments,function(claim){return(rightify===(typeof claim=="undefined"));});return check(rightify,toCheck);};main.getClaim=function getClaim(){return main.toCheck;};return main;} exports.assert=check(true);exports.refute=check(false);exports.assert.checks=0;exports.refute.checks=0;})(fcmsJs||{});fcmsJs.assert.isHint=function(originalHint,argument){var hint=originalHint.toLowerCase();if(hint==="undefined"){return true;} if(argument===null){return true;} if(hint==="mixed"){return fcmsJs.assert.isMixedHint(argument);} if(typeof window[originalHint]=="function"){return fcmsJs.assert.isClassHint(originalHint,argument);} if(hint==="string"||hint==="boolean"||hint==="number"||hint==="symbol"||hint==="function"||hint==="object") {return fcmsJs.assert.isPrimitiveHint(hint,argument);} return false;} fcmsJs.assert.isMixedHint=function(argument){if(typeof argument!="undefined"){return true;} return false;} fcmsJs.assert.isClassHint=function(hint,argument){if(typeof window[hint]!="function"){return false;} hint=window[hint];if(argument instanceof hint||argument===null) {return true;} return false;} fcmsJs.assert.isPrimitiveHint=function(originalHint,argument){var hint=originalHint.toLowerCase();if(argument===null){return true;} if(typeof argument==hint){return true;}else{return false;}} if(!window.fcmsJs){window.fcmsJs={};} var fcmsJs=window.fcmsJs;if(typeof fcmsJs.config==='undefined'){fcmsJs.config={};} fcmsJs.version=0;fcmsJs.host='';fcmsJs.duplicateProtection={};fcmsJs.oldBrowser=false;fcmsJs.insecureBrowser=null;if(typeof fcmsJs_Version!=='undefined'){fcmsJs.version=fcmsJs_Version;fcmsJs_Version=undefined;} if(typeof fcmsJs.customerScriptVersion==='undefined'){fcmsJs.customerScriptVersion=0;} if(typeof fcmsJs_Host!=='undefined'){fcmsJs.host=fcmsJs_Host;fcmsJs_Host=undefined;} if(typeof fcmsJs.debug=="undefined"){fcmsJs.debug=false;} if(typeof fcmsJs.windowCallback==='undefined'){fcmsJs.windowCallbackOff=new fcmsLib_Core_Observer('windowCallback');fcmsJs.windowCallbackOff.setFilterArgs(function(a){var b=a,c=a[1];if(fcmsLib_Core_Array.isArray(c)){b[1]=[];fcmsLib_Core_Array.each(c,function(i){b[1].push(i);});}else if(typeof c==='object'){b[1]=[];fcmsLib_Core_Object.each(c,function(pair){b[1].push(pair.value);});}else{b[1]=c;} return b;});} fcmsJs.class_used={};fcmsJs.Class=function(name){if(typeof window[name]==='function'){fcmsJs.console.error('Die Klasse '+name+' existiert bereits.');} window[name]=function(){fcmsJs.class_used[name]=true;if(!this.hasOwnProperty('className')){this.className=name;this.klass=window[name];} this.propertys={};if(typeof window[name].__properties!="undefined"){for(var j=0,length=window[name].__properties.length;j1)){parts.pop();moduleName=parts.join('_');} if(fcmsJs.admin.modules.getOptionForModule(moduleName)===false){if(!fcmsLib_Utils_String.startsWith(originalModuleName,'Skeleton')&&!fcmsLib_Utils_String.startsWith(originalModuleName,'Neo')&&!fcmsLib_Utils_String.startsWith(originalModuleName,'Application')) {fcmsJs.console.warn('Kein Modulname für die Klasse '+className+' gefunden.');} return originalModuleName;} return moduleName;}).staticMethod('isModule',['string'],function isModule(moduleName){return fcmsJs.admin.modules.getOptionForModule(moduleName)===false?false:true;}).staticMethod('getParentModuleName',['string'],function getParentModuleName(moduleName){if(moduleName.indexOf('_')===-1){return null;} var parts=moduleName.split('_');parts.pop();if(parts.length===1){if(fcmsLib_Core_Module.isModule(parts[0])){return parts[0];} return null;} var parentModuleName=parts.join('_');var originalModuleName=parentModuleName;while(!fcmsLib_Core_Module.isModule(moduleName)&&(fcmsLib_Core_Array.size(parts)>1)){parts.pop();parentModuleName=parts.join('_');} if(fcmsJs.admin.modules.getOptionForModule(parentModuleName)===false){return null;} return parentModuleName;}).staticMethod('getBaseModuleName',['string'],function getBaseModuleName(moduleName){var parts=moduleName.split('_');var mainModule=parts.shift();if((typeof mainModule!=='undefined')&&(mainModule.length>0)){return mainModule;} return moduleName;});(function(){fcmsJs.Class('fcmsLib_Core_Object').inherits(fcmsLib_Core_Class).staticMethod('each',function(obj,func){return fcmsJs._.each(obj,function(a,b){return func({key:b,value:a});});}).staticMethod('any',function(obj,func){return fcmsJs._.any(obj,func);}).staticMethod('keys',function(obj){return fcmsJs._.keys(obj);}).staticMethod('toJson',function(a,prettyPrint){if(!prettyPrint){return JSON.stringify(a);} return JSON.stringify(a,null,4);}).staticMethod('empty',function(m){return fcmsJs._.isEmpty(m);}).staticMethod('first',function(arr){return fcmsJs._.first(fcmsJs._.toArray(arr));}).staticMethod('isObject',function(obj){return fcmsJs._.isObject(obj);}).staticMethod('values',function(obj){return fcmsJs._.values(obj);}).staticMethod('extend',function(obj,obj2){return fcmsJs._.extend(obj,obj2);}).staticMethod('extendDeep',function(obj,obj2){if(typeof obj!=='object'){throw new fcmsLib_Core_Exception('Kein Objekt übergeben.');} for(var i in obj2){if(obj2.hasOwnProperty(i)){if(typeof obj2[i]==='object'&&typeof obj[i]==='object'){obj[i]=fcmsLib_Core_Object.extendDeep(obj[i],obj2[i])}else{obj[i]=obj2[i];}}} return obj;}).staticMethod('extendDeepWithArray',function(obj,obj2){if(typeof obj!=='object'){throw new fcmsLib_Core_Exception('Kein Objekt übergeben.');} for(var i in obj2){if(obj2.hasOwnProperty(i)){if(typeof obj2[i]==='object'&&typeof obj[i]==='object'){if(fcmsLib_Core_Array.isArray(obj2[i])&&fcmsLib_Core_Array.isArray(obj[i])){obj[i]=fcmsLib_Core_Array.merge(obj[i],obj2[i]);}else{obj[i]=fcmsLib_Core_Object.extendDeep(obj[i],obj2[i]);}}else{obj[i]=obj2[i];}}} return obj;}).staticMethod('iExtend',function(obj,obj2){var cp=fcmsJs._.clone(obj2);fcmsJs._.each(obj,function(v,k){if(typeof k==='string'){if(typeof cp[k.toLowerCase()]!=='undefined'){cp[k]=cp[k.toLowerCase()];if(k!==k.toLowerCase()){delete cp[k.toLowerCase()];}}}});return fcmsLib_Core_Object.extend(obj,cp);}).staticMethod('map',function(obj,func){return fcmsJs._.map(obj,func);}).staticMethod('size',function(obj,func){return fcmsJs._.size(obj,func);}).staticMethod('find',function(obj,func){return fcmsJs._.find(obj,func);}).staticMethod('filter',function(obj,func){return fcmsJs._.filter(obj,func);}).staticMethod('sortBy',function(obj,func){return fcmsJs._.sortBy(obj,func);}).staticMethod('indexOf',function(obj,func){return fcmsJs._.indexOf(obj,func);}).staticMethod('clone',function(obj){return fcmsJs._.clone(obj);}).staticMethod('cloneDeep',function cloneDeep(obj){if(obj===undefined){return undefined} if(typeof obj!=='object'){throw new fcmsLib_Core_Exception('cloneDeep kann nur auf Objekte angewandet werden!');} return JSON.parse(JSON.stringify(obj));}).staticMethod('setMultiDimKey',function(obj,key,value){var keys=[],tmp=null;if(fcmsLib_Core_Array.isArray(key)){keys=key;}else if(typeof key==='string'){keys=key.split('.');}else{keys=[key];} tmp=obj;for(var i=0,ii=keys.length;i{this.resolveFunction=resolve;this.rejectFunction=reject});} fcmsLib_Init_Loader_PackageDefinition.prototype.getId=function getId(){return this.id;};fcmsLib_Init_Loader_PackageDefinition.prototype.getScript=function getScript(){return this.script;};fcmsLib_Init_Loader_PackageDefinition.prototype.resolve=function resolve(){this.resolveFunction();};fcmsLib_Init_Loader_PackageDefinition.prototype.reject=function reject(){this.rejectFunction();};fcmsLib_Init_Loader_PackageDefinition.prototype.getPromise=function getPromise(){return this.promise;};fcmsLib_Init_Loader_PackageDefinition.prototype.isLoaded=function isLoaded(){return this.isLoaded;};function fcmsLib_Init_Loader_PackageManager(version,baseUrl,staticHost){if(typeof version!="string"&&typeof version!="number"){throw new fcmsLib_Core_Exception("Die Version des Loaders muss entweder eine Zahl oder ein Name sein.");} if(typeof baseUrl!="string"){throw new fcmsLib_Core_Exception("Die baseUrl des Loaders muss ein String sein.");} if(typeof staticHost!="string"){throw new fcmsLib_Core_Exception("Der staticHost des Loaders muss ein String sein.");} this.store={};this.version=version;this.baseUrl=baseUrl;this.staticHost=staticHost;} fcmsLib_Init_Loader_PackageManager.prototype.get=function(id){if(typeof this.store[id.toLowerCase()]!="object"){var script=document.createElement("script");script.type='text/javascript';script.id="fcmsJsPackageLoader-"+id.toLowerCase() return new fcmsLib_Init_Loader_PackageDefinition(id,script);} return this.store[id.toLowerCase()];};fcmsLib_Init_Loader_PackageManager.prototype.load=function load(pkg){var id=pkg.getId();if(typeof this.store[id.toLowerCase()]=="object"&&this.store[id.toLowerCase()].getScript().src!=""&&this.store[id.toLowerCase()].getScript().src!=null) {return;} this.store[id.toLowerCase()]=pkg;if(typeof jQuery=="function"&&id==="extlib_jquery"){this.markAsLoaded(id);return;} if(pkg.isLoaded){return;} this.loadByScript(pkg);};fcmsLib_Init_Loader_PackageManager.prototype.loadByScript=function loadByScript(pkg){var head=document.getElementsByTagName('head')[0];var script=pkg.getScript();var id=pkg.getId();script.onerror=function onerror(){pkg.reject();};var uri="";if(this.staticHost){uri+=this.staticHost;} uri+="/_fWS/jsoninplainout/"+this.baseUrl+"/"+id+"/load/"+id+".js?version="+this.version;script.src=uri;head.appendChild(script);};fcmsLib_Init_Loader_PackageManager.prototype.getVersion=function getVersion(){return this.version;};fcmsLib_Init_Loader_PackageManager.prototype.getBaseUrl=function getBaseUrl(){return this.baseUrl;};fcmsLib_Init_Loader_PackageManager.prototype.getStaticHost=function getStaticHost(){return this.staticHost;};fcmsLib_Init_Loader_PackageManager.prototype.markAsLoaded=function markAsLoaded(id){var pkg=this.get(id);if(pkg.isLoaded===true){return;} if(typeof $p!="undefined"&&(id==="extlib_jquery"||id==="extlib_prototype"||id==="extlib_pure")){if(typeof jQuery!="undefined"&&typeof jQuery.prototype.compile=="undefined"){$p.libs["jquery"]();fcmsJs.console.debug("jQuery um PureJS-Funktionen erweitert.");} if(typeof Prototype!="undefined"&&typeof Element.compile=="undefined"){$p.libs["prototype"]();fcmsJs.console.debug("Prototype um PureJS-Funktionen erweitert.");}} try{pkg.resolve();pkg.isLoaded=true;}catch(e){fcmsJs.console.error(e);}};fcmsLib_Init_Loader_PackageManager.prototype.isLoaded=function isLoaded(id){var pkg=this.get(id);if(pkg.isLoaded){return true;} return false;};function fcmsLib_Init_Loader_Context(loader,scripts,packageManager){if(typeof scripts=="undefined"){throw new fcmsLib_Core_Exception("Keine Skripte zum Laden angegeben.");} this.loader=loader;this.packageManager=packageManager;this.scriptsToLoad=scripts;} fcmsLib_Init_Loader_Context.prototype.getPackageManager=function getPackageManager(id){if(id.indexOf("extlib_")===0){return fcmsJs.loader.packageManager;} return this.packageManager;};fcmsLib_Init_Loader_Context.prototype.load=function load(){var promises=[];var pkg=null;var pkgManager=null;var scripts=this.getScriptsToLoad();for(var i=0,length=scripts.length;i?@\\^_`|~ \t]+);\s*([^;]+);\s+([a-zA-Z]+);.*\)/);if(result===null){this.getLogger().error("fcmsWebApp-UserAgent "+userAgent+" konnte nicht geparst werden.");return"";} deviceInformation.setField('data.appType',"fcmswebapp");deviceInformation.setField('data.appVersion',result[1]);deviceInformation.setField('data.buildVersion',result[2]);deviceInformation.setField('data.os',result[3]);if(!isNaN(parseInt(result[4],10))){deviceInformation.setField('data.fullOsVersion',result[4]);deviceInformation.setField('data.osVersion',this._getMajorVersion(result[4]));} deviceInformation.setField('data.deviceModel',result[5]);deviceInformation.setField('data.type',result[6]);this.lazyLoaded.push('data.type');}).method('_detectIosApp',["fcmsLib_Init_Device_Model","string"],function _detectIosApp(deviceInformation,userAgent){var result=userAgent.match(/\s*fcmsiosapp\/([\d\.]+)[-]?([\d\.]*)\s*\(([a-zA-Z\s]+)\s+([\d\.]+);.*\).*/);if(result===null){this.getLogger().error("fcmsIosApp-UserAgent "+userAgent+" konnte nicht geparst werden.");return"";} deviceInformation.setField('data.appType',"fcmsiosapp");deviceInformation.setField('data.appVersion',result[1]);deviceInformation.setField('data.buildVersion',result[2]);if(result[3]==='iphone'){deviceInformation.setField('data.type','smartphone');this.lazyLoaded.push('data.type');}else if(result[3]==='ipad'){deviceInformation.setField('data.type','tablet');this.lazyLoaded.push('data.type');} deviceInformation.setField('data.os',"ios");deviceInformation.setField('data.fullOsVersion',result[4]);deviceInformation.setField('data.osVersion',this._getMajorVersion(result[4]));}).method('_detectAndroidVersion',["fcmsLib_Init_Device_Model","string"],function _detectAndroidVersion(deviceInformation,userAgent){var regexe=[/android ([\w._\+]+)/];regexe.forEach(function(regex){var result=userAgent.match(regex);if(result!==null){deviceInformation.setField('data.fullOsVersion',result[1]);deviceInformation.setField('data.osVersion',this._getMajorVersion(result[1]))}}.bind(this));}).method('_detectIosVersion',["fcmsLib_Init_Device_Model","string"],function _detectIosVersion(deviceInformation,userAgent){var regexe=[/ipad.*cpu[a-z ]+([\w._\+]+)/,/iphone.*cpu[a-z ]+([\w._\+]+)/,/ipod.*cpu[a-z ]+([\w._\+]+)/];regexe.forEach(function(regex){var result=userAgent.match(regex);if(result!==null){deviceInformation.setField('data.fullOsVersion',result[1].replace(/_/g,'.'));deviceInformation.setField('data.osVersion',this._getMajorVersion(result[1]))}}.bind(this));}).method('_detectTouch',['fcmsLib_Init_Device_Model'],function _detectTouch(deviceInformation){var hasTouch=false;if(window.navigator.maxTouchPoints>0){hasTouch=true;} deviceInformation.setField('data.touch',hasTouch);}).method('_getMajorVersion',["string"],function _getMajorVersion(version){return version.replace(/[_. ].*/,'');}).method('_checkToken',function _checkToken(token){if(token.indexOf(">=")===0||token.indexOf("=>")===0||token.indexOf("<=")===0||token.indexOf("=<")===0) {return this._checkVersionToken(token);} var deviceInformation=this.getDeviceModel().toString();return(deviceInformation.indexOf(token)!==-1)}).method('_parseVersionToken',function _parseVersionToken(token){var r={"type":"=","value":"","version":""};var parsedToken=token.match(/([<=>]+)([a-zA-Z]+)(\d+[.\d+]*)/);if(parsedToken===null){return null;} r.value=parsedToken[2];r.version=parsedToken[3];if(parsedToken[1]===">="||parsedToken[1]==="=>") {r.type=">=";}else if(parsedToken[1]==="<="||parsedToken[1]==="=<") {r.type="<=";} return r;}).method('_checkVersionToken',function _checkVersionToken(token){var r=this._parseVersionToken(token);if(r===null){return false;} var deviceInformation=this.getDeviceModel().toString();if(deviceInformation.indexOf(r.value)===-1){return false;} var version=0;if(r.value==="ios"||r.value==="android") {version=this.getDeviceModel().getField('data.osVersion');}else if(r.value==="fcmswebapp"||r.value==="fcmsiosapp") {version=this.getDeviceModel().getField('data.appVersion');} if(r.version.indexOf(".")!==-1){version=parseFloat(version);r.version=parseFloat(r.version);}else{version=parseInt(version,10);r.version=parseFloat(r.version);} if(version===0){return false;} if(r.type===">="){return version>=r.version;}else if(r.type==="<="){return version<=r.version;} return false;});})();;fcmsJs.Class('fcmsLib_Init_Device_Model').inherits('fcmsLib_Core_Class').construct(function construct(){this.data={'data':{'type':'','os':'','browser':'','osVersion':'','fullOsVersion':'','appType':'','appVersion':'','buildVersion':'','deviceModel':'','touch':false}};}).public('setField',['string'],function setField(fieldName,value){fcmsLib_Core_Object.setMultiDimKey(this.data,fieldName,value);}).public('getField',['string'],function getField(fieldName){return fcmsLib_Core_Object.getMultiDimKey(this.data,fieldName);}).method("toString",function toString(){var information=[];information.push(this.getField('data.type'));information.push(this.getField('data.os')+this.getField('data.osVersion'));information.push(this.getField('data.browser'));if(this.getField('data.appType')){information.push(this.getField('data.appType')+this.getField('data.appVersion'));} if(this.getField('data.appType')==="fcmsiosapp"||this.getField('data.appType')==="fcmswebapp") {information.push("fcmsapp");} if(this.getField('data.type')==="smartphone"||this.getField('data.type')==="tablet") {information.push("mobile");} if(this.getField('touch')){information.push('touch');} return information.join(" ");});fcmsJs.Class('fcmsLib_Init_Device_Orientation').inherits(fcmsLib_Core_Class).method('getOrientation',['function'],function getOrientation(callback){if(typeof callback=='function'){window.addEventListener('resize',function(e){var orientation=this._detectOrientation();callback(orientation);}.bind(this));callback(this._detectOrientation());} return this._detectOrientation();}).method('_detectOrientation',function _detectOrientation(){if(window.screen.height>window.screen.width){return'portrait';} return'landscape';});fcmsJs.Class('fcmsLib_Init_Navigator').inherits(fcmsLib_Core_Class).method('getUserAgent',function getUserAgent(){if(typeof fcmsLib_Init_Navigator._userAgent!="undefined"){return fcmsLib_Init_Navigator._userAgent;} if(window&&window.navigator&&window.navigator.userAgent) {return window.navigator.userAgent;} this.getLogger().warning("Kein window.navigator.userAgent-Property vorhanden.");return"";}).public(function isChrome(){return!!window.chrome&&!this.isOpera()&&!this.isEdge();}).public(function isFirefox(){return typeof InstallTrigger!=='undefined';}).public(function isEdge(){if(this.getUserAgent().match(/\sEdg\//)){return true;} return!this.isInternetExplorer()&&!!window.StyleMedia;}).public(function isInternetExplorer(){return /*@cc_on!@*/false||!!document.documentMode;}).public(function isOpera(){return(!!window.opr&&!!opr.addons)||!!window.opera||navigator.userAgent.indexOf(' OPR/')>=0||navigator.userAgent.indexOf(' Opera/')>=0;}).public(function isSafari(){return navigator.userAgent.includes('Safari')&&!navigator.userAgent.includes('Chrome');}).staticMethod('overwriteUserAgent',function overwriteUserAgent(userAgent){fcmsLib_Init_Navigator._userAgent=userAgent;}).staticMethod('removeOverwrites',function removeOverwrites(){delete fcmsLib_Init_Navigator._userAgent;});fcmsJs.Class('fcmsLib_Init_SiteModeCss').inherits(fcmsLib_Core_Class).method('setToHtml',function setToHtml(){var htmlRoot=document.getElementsByTagName('html')[0];var cookie=new fcmsLib_Init_Cookies();var siteMode=cookie.read('fcmsSiteMode');if(siteMode==='compact'){htmlRoot.classList.add('fcmscss-sitemode-compact');}});if(typeof fcmsJs.siteModeCss!=='undefined'&&fcmsJs.siteModeCss===true){new fcmsLib_Init_SiteModeCss().setToHtml();} if(typeof fcmsJs.deviceCss!=='undefined'&&fcmsJs.deviceCss===true){new fcmsLib_Init_Device_Css().setToHtml();} if(typeof fcmsJs==="object"){fcmsJs.loaded("fcmsLib_Init");}if(typeof fcmsJs==="object"){fcmsJs.fileLoaded("fcmsLib_Init");}