/// var slash = "/"; var bslash = "\\"; var squote = "\'"; var dquote = "\""; // put jQuery into no conflict mode so it doesn't collide with other libraries jQuery.noConflict(); /*start MCH jQuery Extensions */ (function ($) { //for compatibility to jQuery versions before 1.9 //if there is no browser object, create it. /* Contains flags for the useragent, read from navigator.userAgent. */ if (!$.browser) { var matched; var browser = {}; $.uaMatch = function (ua) { ua = ua.toLowerCase(); var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || /(webkit)[ \/]([\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || /(msie) ([\w.]+)/.exec(ua) || ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || []; return { browser: match[1] || "", version: match[2] || "0" }; }; matched = $.uaMatch(navigator.userAgent); if (matched.browser) { browser[matched.browser] = true; browser.version = matched.version; } // Deprecated, use jQuery.browser.webkit instead // Maintained for back-compat only if (browser.webkit) { browser.safari = true; } $.browser = browser; }; /* jQuery.getCachedScript: Load a JavaScript file from the server using a GET HTTP request, then execute it. */ $.getCachedScript = function (url, callback) { // Allow user to set any option except for dataType, cache, and url var options = { dataType: "script", cache: true, url: url, success: callback }; return $.ajax(options); }; // jQuery.getLocalScript: Load a JavaScript file from the local server using a GET HTTP request, then execute it. $.getLocalScript = function (url, callback) { // Allow user to set any option except for dataType, cache, and url var options = { dataType: "script", cache: true, url: url, crossDomain: true, success: callback }; return $.ajax(options); }; // jQuery.removeSpecialCharWCFRequestValue: Removes special characters from a string $.removeSpecialCharWCFRequestValue = function (param) { if (param != null) { //remove the following characters * ? < > & # ' + % / : var regExp = new RegExp("([*?<>&#'+%/\:])+", 'g'); //remove backslash "\" //double spaces " " //double dots ".." return param.replace(regExp, " ").replace(/\\/g, " ").replace(/[ ]{2,}/g, " ").replace(/[.]{2,}/g, "."); } return param; }; // jQuery.getCurrentHref: Gets the href of the url without the search part. $.getCurrentHref = function () { return document.location.href.replace(document.location.search, "").replace(document.location.hash, ""); }; //checks the selector, element, or jQuery object and return true if the selector do not match. $.fn.extend({ isEmpty: function () { return this.length === 0 ? true : false; } }); // jQuery.wait: Blocks the code execution for the specified number of milliseconds. $.wait = function (msecs) { var start = new Date().getTime(); var cur = start while (cur - start < msecs) { cur = new Date().getTime(); } }; })(jQuery); /*end MCH jQuery Extensions */ /* --------------------------------------------------------------------------------------- Methods adopted from the file global2.js. */ //Google Analytics Information senden function SendGoogleAnalyticInfo(strAction, strValue) { try { if (typeof pageTracker != "undefined") { var strPath = window.location.pathname; if (typeof strPath != "undefined") { strPath = strPath + "?action=" + strAction; if (typeof strValue != "undefined" && strValue != "") { strPath = strPath + "&value=" + strValue.replace("&", "+").replace("&", "+"); } pageTracker._trackPageview(strPath); } } } catch (err) { //alert("Error: \n\n" + err.description); } } //Suche Fehlertext aus Html-Seiten eines WCF-Service function GetWCFErrorText(strMessage) { var iBegin; var iEnd; var strMsgLower; var strMsg; strMsgLower = strMessage.toLowerCase(); iBegin = strMsgLower.indexOf("

") if (iBegin > 0) { strMsg = strMessage.substr(iBegin + 17); strMsgLower = strMsgLower.substr(iBegin + 17); iEnd = strMsgLower.indexOf("

") if (iEnd > 0) { return strMsg.substr(0, iEnd); } } strMsgLower = strMessage.toLowerCase(); iBegin = strMsgLower.indexOf("

") if (iBegin > 0) { strMsg = strMessage.substr(iBegin + 3); strMsgLower = strMsgLower.substr(iBegin + 3); iEnd = strMsgLower.indexOf("

") if (iEnd > 0) { return strMsg.substr(0, iEnd); } } strMsgLower = strMessage.toLowerCase(); iBegin = strMsgLower.indexOf("

") if (iBegin > 0) { strMsg = strMessage.substr(iBegin + 4); strMsgLower = strMsgLower.substr(iBegin + 4); iEnd = strMsgLower.indexOf("

") if (iEnd > 0) { return strMsg.substr(0, iEnd); } } strMsgLower = strMessage.toLowerCase(); iBegin = strMsgLower.indexOf("

") if (iBegin > 0) { strMsg = strMessage.substr(iBegin + 4); strMsgLower = strMsgLower.substr(iBegin + 4); iEnd = strMsgLower.indexOf("

") if (iEnd > 0) { return strMsg.substr(0, iEnd); } } return strMessage; } //HtmlEncode function HTMLEncode(str) { var div = document.createElement("div"); var text = document.createTextNode(str); div.appendChild(text); return div.innerHTML; } // RemoveSpezialCharWCFRequestValue: also available as the jQuery extension method jQuery.removeSpecialCharWCFRequestValue function RemoveSpezialCharWCFRequestValue(strValue) { if (strValue != null) { //Lösche * ? < > & # ' + % / : var regExp = new RegExp("([*?<>&#'+%/\:])+", 'g'); //Lösche "\" und doppelte Space und doppelte "." return strValue.replace(regExp, " ").replace(/\\/g, " ").replace(/[ ]{2,}/g, " ").replace(/[.]{2,}/g, "."); } return strValue; } //Wait Function: also available as the jQuery extension method jQuery.wait function wait(msecs) { var start = new Date().getTime(); var cur = start while (cur - start < msecs) { cur = new Date().getTime(); } } //GetCurrentHref Function: also available as the jQuery extension method jQuery.getCurrentHref function GetCurrentHref() { var strHref = document.location.href; var iPos = strHref.indexOf("?"); if (iPos > 0) strHref = strHref.substr(0, iPos); return strHref; } //IsNumber Function: could be replaced by jQuery.isNumeric function IsNumber(input) { if (input == null) return false; return (input - 0) == input && input.length > 0; } //start Datepicker configuration function GetDatePickerConfig(strLanguageIsoCode, strLangIsoCode) { var d = new Date(); var strYearRange = d.getFullYear().toString() + ":" + (d.getFullYear() + 1).toString(); var dp = { showOn: "button", buttonImage: "/Sites/images/common/icons/calendar.gif", buttonImageOnly: true, changeMonth: true, changeYear: true, showOtherMonths: true, selectOtherMonths: true, showWeek: true, firstDay: 1, showAnim: 'slideDown', yearRange: strYearRange, dateFormat: "", weekHeader: "", dayNamesMin: "", monthNamesShort: "", nextText: "", prevText: "" }; if (strLanguageIsoCode) { switch (strLanguageIsoCode.toLowerCase()) { case "de-ch": dp.regional = "de"; dp.dateFormat = "d. MM yy"; dp.weekHeader = "Wo"; dp.dayNamesMin = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]; dp.monthNamesShort = ["Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]; dp.monthNames = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]; dp.nextText = "Weiter"; dp.prevText = "Zurück"; break; case "fr-ch": dp.regional = "fr-CH"; dp.dateFormat = "d MM yy"; dp.weekHeader = "Se"; dp.dayNamesMin = ["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"]; dp.monthNamesShort = ["Jan", "Fév", "Mar", "Avr", "Mai", "Jun", "Jul", "Aoû", "Sep", "Oct", "Nov", "Déc"]; dp.monthNames = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"]; dp.nextText = "Suivant"; dp.prevText = "Précédent"; break; case "it-ch": dp.regional = "it"; dp.dateFormat = "d MM yy"; dp.weekHeader = "Se"; dp.dayNamesMin = ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"]; dp.monthNamesShort = ["Gen", "Feb", "Maz", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"]; dp.monthNames = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"]; dp.nextText = "Avanti"; dp.prevText = "Indietro"; break; case "en-us": dp.regional = "en"; dp.dateFormat = "d MM yy"; dp.weekHeader = "Wk"; dp.dayNamesMin = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]; dp.monthNamesShort = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; dp.monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; dp.nextText = "Next"; dp.prevText = "Back"; break; case "pt-pt": dp.regional = "pt-BR"; dp.dateFormat = "d MM yy"; dp.weekHeader = "Se"; dp.dayNamesMin = ["Do", "Sg", "Te", "Qa", "Qi", "Sx", "Sa"]; dp.monthNamesShort = ["Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]; dp.monthNames = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"]; dp.nextText = "Próximo"; dp.prevText = "Anterior"; break; case "es-es": dp.regional = "es"; dp.dateFormat = "d MM yy"; dp.weekHeader = "Se"; dp.dayNamesMin = ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"]; dp.monthNamesShort = ["Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]; dp.monthNames = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"]; dp.nextText = "Siguiente"; dp.prevText = "Anterior"; break; default: dp.regional = "de"; dp.dateFormat = "d MM yy"; dp.weekHeader = "Wo"; dp.dayNamesMin = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]; dp.monthNamesShort = ["Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]; dp.monthNames = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]; dp.nextText = "Weiter"; dp.prevText = "Zurück"; break; } } return dp; } //end Datepicker configuration //Gets itemid and language from meta elements var g_ScId = jQuery("meta[name=scID]").attr("content"); var g_Lang = jQuery("meta[http-equiv=Content-Language]").attr("content"); var g_strSearchParam = "q"; var g_strSearchUrl = "/global/Search.aspx"; jQuery(document).ready(function () { if (g_ScId == null || g_ScId == "") { g_ScId = jQuery("meta[name=scID]").attr("content"); } if (g_Lang == null || g_Lang == "") { g_Lang = jQuery("meta[http-equiv=Content-Language]").attr("content"); } }); /* End adopted Methods. */ //#region Webtrekk Information senden /*start function CMCHWebtrekk() */ function CMCHWebtrekk() { } CMCHWebtrekk.prototype.LinkTrackInit = function () { try { if (typeof (wt) == "object" && typeof (wt.linkTrackInit) == "function") //webtrekk V3 { wt.linkTrackInit(); } } catch (err) {//alert("Error: \n\n" + err.description); } } CMCHWebtrekk.prototype.SendWebtrekkInfoFlyoutClickAnchor = function (strValue) { try { if (strValue != "") { var regExp = new RegExp('%2f', 'g'); MCHWebtrekk.SendWebtrekkInfo("Flyout", "ClickAnchor/" + strValue.replace(regExp, "/")); } } catch (err) { //alert("Error: \n\n" + err.description); } } //strValue sollte ohne "/" beginnen und mit einem "/" enden. //Die Werte werden mit "/" getrennt und NICHT encodet! //Webtrekk übernimmt das encoding CMCHWebtrekk.prototype.SendWebtrekkInfo = function (strModul, strValue) { try { if (typeof (strModul) == "undefined" || strModul == "") { strModul = "undefined"; } strModul = strModul + "/" var strVal = ""; if (typeof (strValue) != "undefined" && strValue != "") { strVal = jQuery.trim(strValue); if (strVal.length > 1) { var regExp = new RegExp('//', 'g'); strVal = strVal.replace(regExp, "/"); if (strVal.substr(0, 1) == "/") strVal = strVal.substr(1); if ((strVal.substr(strVal.length - 1, strVal.length)) != "/") strVal += "/"; } } strVal = (strVal == "") ? strModul + "ajaxcall/" : strModul + strVal; if (typeof (wt) == "object" && typeof (wt.sendinfo) == "function") //webtrekk V3 { //wt.sendinfo({ linkId: webtrekk.contentId + strVal, customClickParameter: { 1: strVal } }); } else if (typeof (wt_sendinfo) == "function") //webtrekk V2 { //wt_sendinfo(webtrekk.contentId + strVal, "click"); } } catch (err) { //alert("Error: \n\n" + err.description); } } //Ajax PageSearch tracken CMCHWebtrekk.prototype.SendWebtrekkPageSearch = function (param) { try { if (typeof (wt) == "object" && typeof (wt.sendinfo) == "function" && typeof (webtrekk) == "object") //webtrekk V3 { if (param != null) { //Bein ersten Seitenaufruf soll kein Request abgesetzt werden. Dieser wird schon von der Page gesendet! if (webtrekk.internalSearch == null || webtrekk.internalSearch == "") { webtrekk.internalSearch = param.searchphrase; var wt2 = new webtrekkV3(webtrekk); wt2.customParameter = { 1: param.source, 2: param.type, 3: param.page, 4: param.sort, 5: param.searchphrase }; wt2.sendinfo(); } } webtrekk.internalSearch = ""; //Für den nächsten Ajax-Request ermöglichen } } catch (err) { //alert("Error script.js: \n\n" + err.description); } } var MCHWebtrekk = new CMCHWebtrekk; /*end function CMCHWebtrekk() */ /* ********************************************************************************************************************************* because ngn needs, the mch class part has to be seperated into the script source "~\Sites\javascripts\Common\mch.cms.script.js". ********************************************************************************************************************************* */ /* start Windows Phone 8 / Metro Fix */ (function () { if (navigator.userAgent.match(/IEMobile\/10\.0/i)) { var a = document.createElement("style"); a.appendChild(document.createTextNode("@-ms-viewport{width: auto !important}")); document.head.appendChild(a); } })(); /* end Windows Phone 8 / Metro Fix */ //#region start: Steuerung ScrollUp, Kontakt-SlideIn (function ($) { $(document).ready(function () { try { // ScrollUp: Hide button while on initial viewport $(document).scroll(function () { var y = $(this).scrollTop(); // scroll position if (y > 300) { $('.scrollup').fadeIn(); } else { $('.scrollup').fadeOut(); } }); // ScrollUp: Generate clickable element in footer $("footer").append(""); $('.scrollup').hide(); $(".scrollup").click(function () { $('html, body').animate({ scrollTop: $("body").offset().top }, 600, "swing"); }) } catch (except) { }; //Kontakt-SlideIn $(".Kontakt-Slidein h3, .Kontakt-Slidein .close").click(function () { $(".Kontakt-Slidein").toggleClass("maximized"); }); }); })(jQuery); //#endregion end: Steuerung ScrollUp, Kontakt-SlideIn var MCH = function () { this.iDebugState = 0; this.widgets = []; }; (function ($, prototype) { prototype.addWidget = function (widget) { //Add the widget to the mch object. var className = widget.constructor.name; if (className === undefined) { //IE Hack: ie doesn't know the name property of the constructor var arr = widget.constructor.toString().match(/function\s*(\w+)/); if (arr && arr.length == 2) { className = arr[1]; } } if (className !== undefined) { mch[className] = widget; } //mch[widget.constructor.name] = widget; this.widgets.push(widget); // trigger init for late widgets if (this.inited && $.isFunction(widget.init)) widget.init() } prototype.trigger = function (event) { for (var i = 0, l = this.widgets.length; i < l; i++) { var widget = this.widgets[i]; if ($.isFunction(widget[event])) { widget[event].apply(widget, arguments) } } } prototype.init = function () { // init ie8 fixes if ($("html.lt-ie9").length > 0) { this.util.isIE8 = true; } // set current text direction if ($("body").attr("dir") == "rtl") { this.util.textDirection = "rtl"; this.util.defaultFloat = "right"; this.util.oppositeFloat = "left"; } // only init once if (this.inited) return; // init all widgets this.trigger('init'); // only init once this.inited = true; } prototype.settings = { searchUrl: "/global/Search.aspx", currentLanguage: $("meta[http-equiv=Content-Language]").attr("content"), itemId: $("meta[name=scID]").attr("content") } prototype.util = { isIE8: false, textDirection: "ltr", defaultFloat: "left", oppositeFloat: "right", log: function (oArgs) { if (mch.iDebugState > 0) { var msg = "MCH:: "; if (typeof (oArgs) == "object") { msg += oArgs.toString(); } else { msg += oArgs; } if (mch.iDebugState === 2) { if ($("#logger").length === 0) { $("body").append("