function isArray(oSource){    try {        var bIsArray = true;        if (!oSource || !oSource.hasOwnProperty || !(oSource instanceof Array)) {            bIsArray = false;        }        return bIsArray;    }     catch (e) {        TOM.ee(TOM.ei("isArray", this), e);        return false;    }}if (!TOM) {    var TOM = {        VERSION: "0.2",        NEWLINE: "\n",        DEBUG: false,        alert: function(sMessage){            alert(sMessage);        },        createFunctionInfoObj: function(sFunctionName, vThisElement, sReturnType, sSourceFile){            TOM.ei(sFunctionName, vThisElement, sReturnType, sSourceFile);        },        ei: function(sFunctionName, vThisElement, sReturnType, sSourceFile){            var sCaller;            try {                sCaller = vThisElement.caller;            }             catch (e) {                sCaller = "undefined";            }            sReturnType = (typeof sReturnType === "undefined") ? "undefined" : sReturnType;            sSourceFile = (typeof sSourceFile === "undefined") ? "undefined" : sSourceFile;            var oFunctionInfo = {};            oFunctionInfo.FunctionName = sFunctionName;            oFunctionInfo.ThisElement = vThisElement;            oFunctionInfo.Caller = sCaller;            oFunctionInfo.ReturnType = sReturnType;            oFunctionInfo.SourceFile = sSourceFile;            return oFunctionInfo;        },        createErrorInfoObj: function(cErrorLevel, cErrorType, cErrorCode, sMessage, sErrorID){            var sCaller;            var oErrorInfo = {};            oErrorInfo.ErrorLevel = cErrorLevel;            oErrorInfo.ErrorType = cErrorType;            oErrorInfo.ErrorCode = cErrorCode;            oErrorInfo.Message = sMessage;            oErrorInfo.ErrorID = sErrorID;            return oErrorInfo;        },        ERROR: {            NEWLINE: "\n",            LEVEL: {                INFO: "[1] Information",                WARNING: "[2] Warnung",                ERROR: "[3] Fehler"            },            TYPE: {                USERERROR: "UserError",                CONTENTERROR: "ContentError",                TYPEERROR: "TypeError",                UNEXPECTEDERROR: "UnexpectedError"            },            MESSAGE: {                STRINGNOTFOUND: "Zeichenkette wurde nicht gefunden",                STRINGISEMPTY: "Die Zeichenkette ist leer",                STRINGEXPECTED: "Zeichenketten erwartet",                NUMBEREXPECTED: "Zahl erwarted",                POSITIVENUMBEREXPECTED: "Zahl >= 0 erwarted",                NEGATIVENUMBEREXPECTED: "Zahl < 0 erwarted",                BOOLEANEXPECTED: "Wahr (true) oder Falsch (false) erwarted",                OBJECTEXPECTED: "Object erwarted"            },            ERROROBJECT: function(sErrorMsg){                this.msg = sErrorMsg;                return this.msg;            }        },        handleError: function(oFunctionInfo, oError){            TOM.ee(oFunctionInfo, oError);        },        ee: function(oFunctionInfo, oError){            var sErrorMsg = "";            var e;            for (e in oFunctionInfo) {                if (oFunctionInfo.hasOwnProperty(e)) {                    sErrorMsg += e + "=" + oFunctionInfo[e] + TOM.ERROR.NEWLINE;                }            }            for (e in oError) {                if (oError.hasOwnProperty(e)) {                    sErrorMsg += e + "=" + oError[e] + TOM.ERROR.NEWLINE;                }            }            if (TOM.DEBUG) {                TOM.alert("An Error occured! Detailed error description:" + TOM.ERROR.NEWLINE + sErrorMsg);            }        },        log: function(vElement, iMaxlevel){            this.init = function(vNewElement, iNewMaxlevel){                oSource.NEWLINE = "\n";                oSource.INDENT = "\t";                oSource.text = "TOM Log:" + oSource.NEWLINE;                oSource.vElement = vNewElement;                oSource.maxLevel = (typeof iNewMaxlevel == "number") ? iNewMaxlevel : -1;            };            this.add = function(sLogMessage, iLevel){                var sLevelIndent = "";                if (typeof iLevel == "number") {                    for (var c = 1; c <= iLevel; c++) {                        sLevelIndent += oSource.INDENT;                    }                }                else {                    iLevel = 0;                }                if (oSource.maxLevel === -1 || iLevel <= oSource.maxLevel) {                    oSource.text += sLevelIndent + sLogMessage + oSource.NEWLINE;                }            };            this.clear = function(){                oSource.init();            };            this.show = function(){                var vContainer;                this.printToNode = function(vContainer){                    if (vContainer && vContainer.value) {                        vContainer.value = oSource.text;                    }                    else                         if (vContainer && vContainer.innerHTML) {                            vContainer.innerHTML = oSource.text;                        }                };                if (oSource.vElement) {                    switch (typeof oSource.vElement) {                        case "string":                            vContainer = document.getElementById(oSource.vElement);                            if (!vContainer) {                                vContainer = document.getElementsByName(oSource.vElement);                                if (vContainer && vContainer[0]) {                                    vContainer = vContainer[0];                                }                            }                            this.printToNode(vContainer);                            break;                        case "object":                            vContainer = vElement;                            this.printToNode(vContainer);                            break;                        case "function":                            vContainer = vElement;                            vContainer(oSource.text);                            break;                        default:                            alert(oSource.text);                            break;                    }                }                else {                    alert(oSource.text);                }                return oSource.text;            };            try {                var oSource = this;                oSource.init(vElement, iMaxlevel);            }             catch (e) {                TOM.ee(TOM.ei("TOM.log", this), e);                return "An error occured in TOM.log";            }        }    };}TOM.ajax = function(fHandleRequest, fHandleError, fHandleReadyState){    var oSource = this;    this.createXMLHttpReqObj = function(){        var oXmlHttpReq = null;        try {            oXmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");            return oXmlHttpReq;        }         catch (e) {            try {                if (typeof ActiveXObject !== "undefined") {                    oXmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");                    return oXmlHttpReq;                }                else {                    if (typeof XMLHttpRequest !== "undefined") {                        oXmlHttpReq = new XMLHttpRequest();                        return oXmlHttpReq;                    }                    else {                        return false;                    }                }            }             catch (e2) {                try {                    oXmlHttpReq = new XMLHttpRequest();                    return oXmlHttpReq;                }                 catch (e3) {                    oXmlHttpReq = false;                    return oXmlHttpReq;                }            }        }    };    this.request = function(sURL, sMethod, vData){        try {            oSource.httpReq = oSource.createXMLHttpReqObj();            oSource.url = sURL;            oSource.active = true;            if (!oSource.httpReq || sURL === "" || typeof sURL !== "string") {                return false;            }            if (typeof sMethod === "undefined") {                sMethod = "GET";            }            else {                sMethod = sMethod.toUpperCase();            }            if (typeof vData === "undefined") {                vData = null;            }            if (sMethod === "POST") {                oSource.httpReq.open(sMethod, sURL, true);                if (typeof vData === "string") {                    oSource.httpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");                    oSource.httpReq.setRequestHeader("Method", "POST " + sURL + " HTTP/1.1");                }                else {                    oSource.httpReq.setRequestHeader("Content-Type", "text/xml");                }            }            else {                oSource.httpReq.open(sMethod, sURL, true);            }            oSource.httpReq.onreadystatechange = function(){                try {                    if (oSource.httpReq.readyState === 4 && oSource.active === true) {                        if (oSource.httpReq.status === 200) {                            oSource.text = oSource.httpReq.responseText;                            oSource.xml = oSource.httpReq.responseXML;                            if (oSource.returnMiddle === true) {                                oSource.middleText = oSource.text.middle(oSource.startMarker, oSource.endMarker, true);                                oSource.handleRequest(oSource.middleText);                            }                            else {                                oSource.handleRequest(oSource.httpReq);                            }                            oSource.active = false;                        }                        else {                            oSource.active = false;                            oSource.handleError(oSource.url, oSource.httpReq.status);                            return false;                        }                    }                    else {                        oSource.active = true;                        oSource.handleReadyState(oSource.httpReq.readyState);                    }                }                 catch (oError) {                    var failsilent = oError;                }            };            oSource.httpReq.send(vData);            return true;        }         catch (e) {            TOM.ee(TOM.ei("TOM.ajax.request", this), e);            return false;        }    };    this.get = function(sURL){        try {            oSource.abort();            var ret = oSource.request(sURL, "GET");            return ret;        }         catch (e) {            TOM.ee(TOM.ei("TOM.ajax.get", this), e);            return false;        }    };    this.middle = function(sURL, sStartMarker, sEndMarker){        try {            oSource.abort();            oSource.returnMiddle = true;            oSource.startMarker = sStartMarker;            oSource.endMarker = sEndMarker;            var ret = oSource.request(sURL, "GET");            return ret;        }         catch (e) {            TOM.ee(TOM.ei("TOM.ajax.middle", this), e);            return false;        }    };    this.post = function(sURL, vData){        try {            oSource.abort();            var ret = oSource.request(sURL, "POST", vData);            return ret;        }         catch (e) {            TOM.ee(TOM.ei("TOM.ajax.post", this), e);            return false;        }    };    this.abort = function(){        if (oSource.active === true) {            oSource.active = false;            if (oSource.httpReq.abort) {                oSource.httpReq.abort();            }            oSource.httpReq = null;        }    };    this.timer = function(failedURL){        oSource.timeout = window.setTimeout(function(){            oSource.abort();            oSource.handleError(failedURL, 503);        }, oSource.period);    };    try {        if (typeof fHandleRequest !== "undefined") {            oSource.handleRequest = fHandleRequest;        }        else {            oSource.handleRequest = function(){            };        }        if (typeof fHandleError !== "undefined") {            oSource.handleError = fHandleError;        }        else {            oSource.handleError = function(){            };        }        if (typeof fHandleReadyState !== "undefined") {            oSource.handleReadyState = fHandleReadyState;        }        else {            oSource.handleReadyState = function(){            };        }        oSource.period = 30000;        oSource.text = "";        oSource.middleText = "";        oSource.xml = "";        oSource.url = "";        oSource.timeout = null;        oSource.active = false;        oSource.returnMiddle = false;        oSource.startMarker = "";        oSource.endMarker = "";    }     catch (e) {        TOM.ee(TOM.ei("TOM.ajax", this), e);        return false;    }};String.prototype.contains = function(aSearchList, bCaseSensitive){    try {        var sSource = this;        var bMatch = false;        bCaseSensitive = (bCaseSensitive !== false) ? true : bCaseSensitive;        if (bCaseSensitive === false) {            sSource = sSource.toLowerCase();        }        if (isArray(aSearchList) === true) {            for (var i = 0; i < aSearchList.length; i++) {                if (typeof aSearchList[i] === "string") {                    if (bCaseSensitive === false) {                        aSearchList[i] = aSearchList[i].toLowerCase();                    }                    if (sSource.indexOf(aSearchList[i]) > -1) {                        bMatch = true;                    }                }            }        }        else             if (typeof aSearchList === "string") {                if (sSource.indexOf(aSearchList) >= 0) {                    bMatch = true;                }            }        return bMatch;    }     catch (e) {        TOM.ee(TOM.ei("String.prototype.contains", this), e);        return false;    }};String.prototype.left = function(sStartMarker, bCaseSensitive, bSearchBackwards){    try {        var sSource = this;        var sWorkingSource = sSource;        var sReturn = "";        var iStartPos = -1;        bSearchBackwards = (typeof bSearchBackwards === "undefined" || typeof bSearchBackwards !== "boolean") ? false : bSearchBackwards;        bCaseSensitive = (typeof bCaseSensitive === "undefined" || typeof bCaseSensitive !== "boolean") ? true : bCaseSensitive;        if (typeof sStartMarker === "string") {            if (sStartMarker === "") {                throw TOM.createErrorInfoObj(TOM.ERROR.LEVEL.ERROR, TOM.ERROR.TYPE.CONTENTERROR, TOM.ERROR.MESSAGE.STRINGISEMPTY, "", "SPL_sStartMarkerEmpty");            }            if (bCaseSensitive === false) {                sWorkingSource = sWorkingSource.toLowerCase();                sStartMarker = sStartMarker.toLowerCase();            }            iStartPos = (bSearchBackwards) ? sWorkingSource.lastIndexOf(sStartMarker) : sWorkingSource.indexOf(sStartMarker);        }        else             if (typeof sStartMarker === "number") {                sStartMarker = (sStartMarker !== Math.ceil(sStartMarker)) ? Math.round(sStartMarker) : sStartMarker;                iStartPos = (sStartMarker < 0) ? sWorkingSource.length : ((bSearchBackwards) ? (sWorkingSource.length - sStartMarker) : sStartMarker);                if (iStartPos < 0) {                    throw TOM.createErrorInfoObj(TOM.ERROR.LEVEL.ERROR, TOM.ERROR.TYPE.CONTENTERROR, TOM.ERROR.MESSAGE.POSITIVENUMBEREXPECTED, "", "SPL_sStartMarkerIsNegativ");                }            }            else {                throw TOM.createErrorInfoObj(TOM.ERROR.LEVEL.ERROR, TOM.ERROR.TYPE.CONTENTERROR, TOM.ERROR.MESSAGE.NUMBEREXPECTED + TOM.ERROR.NEWLINE + TOM.ERROR.MESSAGE.STRINGEXPECTED, "", "SPL_sStartMarkerTypeError");            }        sReturn = sSource.substr(0, iStartPos);        return sReturn;    }     catch (e) {        TOM.ee(TOM.ei("String.prototype.left", this), e);        return "";    }};String.prototype.leftBack = function(sStartMarker, bCaseSensitive){    try {        bCaseSensitive = (typeof bCaseSensitive === "undefined" || typeof bCaseSensitive !== "boolean") ? true : bCaseSensitive;        var sResult = this.left(sStartMarker, bCaseSensitive, true);        return sResult;    }     catch (e) {        TOM.ee(TOM.ei("String.prototype.leftBack", this), e);        return "";    }};String.prototype.right = function(sStartMarker, bCaseSensitive, bSearchBackwards){    try {        var sSource = this;        var sWorkingSource = sSource;        var sReturn = "";        var iStartPos = -1;        bSearchBackwards = (typeof bSearchBackwards === "undefined" || typeof bSearchBackwards !== "boolean") ? false : bSearchBackwards;        bCaseSensitive = (typeof bCaseSensitive === "undefined" || typeof bCaseSensitive !== "boolean") ? true : bCaseSensitive;        if (typeof sStartMarker === "string") {            if (sStartMarker === "") {                throw {                    context: "Intercepted Error",                    name: "Parameter Error",                    type: "The first parameter must not be empty, please use a string with at least one character or a positiv integer instead!"                };            }            if (!bCaseSensitive) {                sWorkingSource = sWorkingSource.toLowerCase();                sStartMarker = sStartMarker.toLowerCase();            }            iStartPos = (bSearchBackwards) ? sWorkingSource.lastIndexOf(sStartMarker) : sWorkingSource.indexOf(sStartMarker);            sReturn = (iStartPos < 0) ? "" : sSource.substr(iStartPos + sStartMarker.length);        }        else             if (typeof sStartMarker === "number") {                sStartMarker = (sStartMarker !== Math.ceil(sStartMarker)) ? Math.round(sStartMarker) : sStartMarker;                sStartMarker = (sStartMarker > sWorkingSource.length) ? sWorkingSource.length : sStartMarker;                iStartPos = (sStartMarker < 0) ? ((bSearchBackwards) ? "" : sWorkingSource.length) : ((bSearchBackwards) ? (sStartMarker) : (sWorkingSource.length - sStartMarker));                if (iStartPos < 0) {                    throw ("The value '" + iStartPos + "' is not allowed for the first parameter, please use only positiv integer values");                }                sReturn = sSource.substr(iStartPos);            }            else {                throw {                    context: "Intercepted Error",                    name: "Parameter Error",                    type: "Wrong type for first parameter (" + (typeof sStartMarker) + "), please use string or number"                };            }        return sReturn;    }     catch (e) {        TOM.ee(TOM.ei("String.prototype.right", this), e);        return "";    }};String.prototype.rightBack = function(sStartMarker, bCaseSensitive){    try {        bCaseSensitive = (typeof bCaseSensitive === "undefined" || typeof bCaseSensitive !== "boolean") ? true : bCaseSensitive;        var sResult = this.right(sStartMarker, bCaseSensitive, true);        return sResult;    }     catch (e) {        TOM.ee(TOM.ei("String.prototype.rightBack", this), e);        return "";    }};String.prototype.middle = function(sStartMarker, sEndMarker, bCaseSensitive, bAllowPlaceholder, bEndMarkerRequired, bSearchBackwards){    try {        var sSource = this;        var sWorkingSource = sSource;        var sWorkingRestSource = "";        var sReturn = "";        var iStartPos = -1;        var iEndPos = -1;        var aReplacementList = ['*'];        var iTempPos, i, aStarChunks;        bCaseSensitive = (typeof bCaseSensitive === "undefined" || typeof bCaseSensitive !== "boolean") ? true : bCaseSensitive;        bAllowPlaceholder = (typeof bAllowPlaceholder === "undefined" || typeof bAllowPlaceholder !== "boolean") ? false : bAllowPlaceholder;        bEndMarkerRequired = (typeof bEndMarkerRequired === "undefined" || typeof bEndMarkerRequired !== "boolean") ? false : bEndMarkerRequired;        bSearchBackwards = (typeof bSearchBackwards === "undefined" || typeof bSearchBackwards !== "boolean") ? false : bSearchBackwards;        if (!bCaseSensitive) {            sWorkingSource = sWorkingSource.toLowerCase();        }        if (typeof sStartMarker === "string") {            if (sStartMarker === "") {                throw TOM.createErrorInfoObj(TOM.ERROR.LEVEL.ERROR, TOM.ERROR.TYPE.CONTENTERROR, TOM.ERROR.MESSAGE.STRINGISEMPTY, "Leere Zeichenkette nicht zul&auml;ssig f&uuml;r ersten Parameter!", "FN00000236");            }            if (!bCaseSensitive) {                sStartMarker = sStartMarker.toLowerCase();            }            if (!bAllowPlaceholder || sStartMarker.contains(aReplacementList) === false) {                iStartPos = (bSearchBackwards) ? sWorkingSource.lastIndexOf(sStartMarker) : sWorkingSource.indexOf(sStartMarker);                if (iStartPos === -1) {                    sReturn = "";                }                else                     if (!bSearchBackwards) {                        iStartPos = iStartPos + sStartMarker.length;                    }            }            else {                iTempPos = 0;                sWorkingRestSource = sWorkingSource;                iStartPos = 0;                aStarChunks = sStartMarker.split("*");                for (i = 0; i < aStarChunks.length; i++) {                    iTempPos = (i === 0 && bSearchBackwards) ? sWorkingRestSource.lastIndexOf(aStarChunks[i]) : sWorkingRestSource.indexOf(aStarChunks[i]);                    if (iTempPos > -1) {                        iStartPos += iTempPos + aStarChunks[i].length;                        sWorkingRestSource = sWorkingRestSource.substr(iTempPos + aStarChunks[i].length);                    }                    else {                        i = aStarChunks.length + 1;                        iStartPos = -1;                        sReturn = "";                    }                }            }        }        else             if (typeof sStartMarker === "number") {                if (sStartMarker < 0) {                    throw {                        context: "Intercepted Error",                        name: "Parameter Error",                        type: "The value '" + iStartPos + "' is not allowed for the first parameter, please use only positiv integer values"                    };                }                sStartMarker = (sStartMarker !== Math.ceil(sStartMarker)) ? Math.round(sStartMarker) : sStartMarker;                iStartPos = (bSearchBackwards) ? (sWorkingSource.length + 1 - sStartMarker) : sStartMarker;                if (iStartPos > sSource.length) {                    iStartPos = sSource.length;                }                if (iStartPos < 0) {                    iStartPos = 0;                }            }            else {                throw {                    context: "Intercepted Error",                    name: "Parameter Error",                    type: "Wrong type for first parameter (" + (typeof sStartMarker) + "), please use string or number"                };            }        if (iStartPos !== -1) {            if (typeof sEndMarker === "undefined") {                sReturn = bSearchBackwards ? sSource.substr(0, iStartPos) : sSource.substr(iStartPos);            }            else {                if (typeof sEndMarker === "string") {                    if (sEndMarker === "") {                        throw {                            context: "Intercepted Error",                            name: "Parameter Error",                            type: "The second parameter must not be empty, please use a string with at least one character or a positiv or negativ integer instead!"                        };                    }                    if (bCaseSensitive === false) {                        sEndMarker = sEndMarker.toLowerCase();                    }                    sWorkingRestSource = bSearchBackwards ? sWorkingSource.substr(0, iStartPos) : sWorkingSource.substr(iStartPos);                    if (bAllowPlaceholder === false || sEndMarker.contains(aReplacementList) === false) {                        iEndPos = bSearchBackwards ? sWorkingRestSource.lastIndexOf(sEndMarker) : sWorkingRestSource.indexOf(sEndMarker);                        if (iEndPos !== -1 && bSearchBackwards) {                            iEndPos += sEndMarker.length;                        }                        iEndPos = (iEndPos === -1) ? (bSearchBackwards ? 0 : (-1)) : (bSearchBackwards ? iEndPos : (iStartPos + iEndPos));                    }                    else {                        iTempPos = 0;                        iEndPos = -1;                        aStarChunks = sEndMarker.split("*");                        for (i = 0; i < aStarChunks.length; i++) {                            iTempPos = (i === 0 && bSearchBackwards) ? sWorkingRestSource.lastIndexOf(aStarChunks[i]) : sWorkingRestSource.indexOf(aStarChunks[i]);                            if (iTempPos > -1) {                                if (i === 0) {                                    iEndPos = iStartPos + iTempPos;                                }                                sWorkingRestSource = sWorkingRestSource.substr(iTempPos + aStarChunks[i].length);                            }                            else {                                i = aStarChunks.length + 1;                                iEndPos = -1;                            }                        }                    }                }                else                     if (typeof sEndMarker === "number") {                        sEndMarker = (sEndMarker !== Math.ceil(sEndMarker)) ? Math.round(sEndMarker) : sEndMarker;                        if (sEndMarker === 0) {                            throw {                                context: "Intercepted Error",                                name: "Parameter Error",                                type: "The value '" + iEndPos + "' is not allowed for the second parameter, please use only positiv or negativ integer values or a string"                            };                        }                        if (sEndMarker < 0) {                            iTempPos = iStartPos;                            if (typeof sStartMarker === "string" && !bSearchBackwards) {                                iTempPos = iTempPos - sStartMarker.length;                            }                            iStartPos = iTempPos + sEndMarker;                            if (iStartPos < 0) {                                iStartPos = 0;                            }                            iEndPos = iTempPos;                        }                        else {                            if (bSearchBackwards) {                                if (typeof sStartMarker === "string") {                                    iStartPos = iStartPos + sStartMarker.length;                                    iEndPos = iStartPos + sEndMarker;                                }                                else {                                    iEndPos = iStartPos + sEndMarker;                                }                            }                            else {                                iEndPos = iStartPos + sEndMarker;                            }                        }                    }                    else {                        throw {                            context: "Intercepted Error",                            name: "Parameter Error",                            type: "Wrong type for second parameter (" + (typeof sEndMarker) + "), please use string or number"                        };                    }                if (bSearchBackwards && iStartPos > iEndPos) {                    iTempPos = iEndPos;                    iEndPos = iStartPos;                    iStartPos = iTempPos;                }                sReturn = (iEndPos === -1) ? (bEndMarkerRequired ? "" : sSource.substr(iStartPos)) : sSource.substring(iStartPos, iEndPos);            }        }        return sReturn;    }     catch (e) {        TOM.ee(TOM.ei("String.prototype.middle", this), e);        return "";    }};String.prototype.middleBack = function(sStartMarker, sEndMarker, bCaseSensitive, bAllowPlaceholder, bEndMarkerRequired){    try {        bCaseSensitive = (typeof bCaseSensitive === "undefined" || typeof bCaseSensitive !== "boolean") ? true : bCaseSensitive;        bAllowPlaceholder = (typeof bAllowPlaceholder === "undefined" || typeof bAllowPlaceholder !== "boolean") ? false : bAllowPlaceholder;        bEndMarkerRequired = (typeof bEndMarkerRequired === "undefined" || typeof bEndMarkerRequired !== "boolean") ? false : bEndMarkerRequired;        var bSearchBackwards = (typeof bSearchBackwards === "undefined" || typeof bSearchBackwards !== "boolean") ? false : bSearchBackwards;        var sReturn = this.middle(sStartMarker, sEndMarker, bCaseSensitive, bAllowPlaceholder, bEndMarkerRequired, true);        return sReturn;    }     catch (e) {        TOM.ee(TOM.ei("String.prototype.middleBack", this), e);        return "";    }};String.prototype.trim = function(){    try {        var sSource = this;        while (sSource.substring(0, 1) === ' ') {            sSource = sSource.substring(1, sSource.length);        }        while (sSource.substring(sSource.length - 1, sSource.length) === ' ') {            sSource = sSource.substring(0, sSource.length - 1);        }        return sSource.replace(/\s+/g, " ");    }     catch (e) {        TOM.ee(TOM.ei("String.prototype.trim", this), e);        return "";    }};String.prototype.begins = function(sMarker, bCaseSensitive){    try {        var sSource;        if (typeof bCaseSensitive === "undefined") {            bCaseSensitive = true;        }        if (typeof sMarker !== "string") {            return false;        }        if (bCaseSensitive) {            sSource = this;        }        else {            sSource = this.toLowerCase();            sMarker = sMarker.toLowerCase();        }        var nLength = sMarker.length;        if (sMarker === sSource.substr(0, nLength)) {            return true;        }        else {            return false;        }    }     catch (e) {        TOM.ee(TOM.ei("String.prototype.begins", this), e);        return false;    }};String.prototype.ends = function(sMarker, bCaseSensitive){    try {        var sContainer;        var sSource;        if (typeof bCaseSensitive === "undefined") {            bCaseSensitive = true;        }        if (typeof sMarker !== "string") {            return false;        }        if (bCaseSensitive === true) {            sSource = this;        }        else {            sSource = this.toLowerCase();            sMarker = sMarker.toLowerCase();        }        var nLength = sMarker.length;        if (sMarker === sSource.substring(sSource.length - nLength, sSource.length)) {            return true;        }        else {            return false;        }    }     catch (e) {        TOM.ee(TOM.ei("String.prototype.ends", this), e);        return false;    }};String.prototype.explode = function(sSeparators, bIncludeEmpties, bNewlineAsSeparator){    try {        var sSource = this;        var aSeparators = [];        var defaultSeparators = [" ", ",", ";"];        var aArray = [];        var count = 0;        var nEmptyCount = 1;        if (!sSource || sSource === "" || sSource.length === 0) {            return aArray;        }        if (bIncludeEmpties !== true) {            bIncludeEmpties = false;        }        if (bNewlineAsSeparator !== false) {            bNewlineAsSeparator = true;        }        if (typeof sSeparators !== "string" || sSeparators === "" || sSeparators === null) {            aSeparators = defaultSeparators;        }        else {            for (var ii = 0; ii < sSeparators.length; ii++) {                aSeparators[ii] = sSeparators.substring(ii, (ii + 1));            }        }        if (bNewlineAsSeparator === true) {            sSource = sSource.replace(/\n/g, aSeparators[0]);        }        count = 0;        for (var i = 0; i < sSource.length; i++) {            for (var j = 0; j < aSeparators.length; j++) {                if (aSeparators[j] === sSource.charAt(i)) {                    if (sSource.substring(0, i) !== "" || bIncludeEmpties === true) {                        for (var p = 0; p < aSeparators.length; p++) {                            if (sSource.substring(i + 1, i + 2) === aSeparators[p]) {                                nEmptyCount = 2;                            }                        }                        aArray[count] = sSource.substring(0, i);                        count++;                        if (nEmptyCount === 2 && bIncludeEmpties === true) {                            aArray[count] = "";                            count++;                        }                    }                    sSource = sSource.substring(i + nEmptyCount, sSource.length);                    i = -1;                    nEmptyCount = 1;                }            }        }        aArray[count] = sSource;        return aArray;    }     catch (e) {        TOM.ee(TOM.ei("String.prototype.explode", this), e);        return "";    }};String.prototype.escapeRegExp = function(){    var sSource = this;    var aEscape = ["\\", "^", "$", "*", "+", ".", "(", ")", "[", "]", "/", "|", "&", "?", "!", ":"];    var sEscape;    for (var i = 0; i < aEscape.length; i++) {        sEscape = new RegExp("\\" + aEscape[i], 'g');        sSource = sSource.replace(sEscape, "\\" + aEscape[i]);    }    return sSource;};String.prototype.replaceSubstring = function(vFromList, vToList, bCaseSensitive){    try {        var sReplaceOptions = (bCaseSensitive === false) ? 'ig' : 'g';        var aFromList = [];        var aToList = [];        var sSource = this;        var sFromEntry, vFromEntry, sToEntry;        if (typeof vFromList === "string" || typeof vFromList === "number") {            aFromList[0] = vFromList + "";        }        else             if (isArray(vFromList)) {                aFromList = vFromList;            }        if (typeof vToList === "string" || typeof vToList === "number") {            aToList[0] = vToList + "";        }        else             if (isArray(vToList)) {                aToList = vToList;            }        if (!(sSource === "" || aFromList.length === 0 || aFromList.length === 0)) {            for (var e1 = 0; e1 < aFromList.length; e1++) {                sFromEntry = aFromList[e1] + "";                vFromEntry = new RegExp(sFromEntry.escapeRegExp(), sReplaceOptions);                sToEntry = ((e1 >= (aToList.length - 1)) ? aToList[(aToList.length - 1)] : aToList[e1]) + "";                sSource = sSource.replace(vFromEntry, sToEntry);            }        }        else {            sSource = null;        }        return sSource;    }     catch (e) {        TOM.ee(TOM.ei("String.prototype.replaceSubstring", this), e);        return "";    }};String.prototype.occurrence = function(sSearchText, bCaseSensitive){    try {        var sSource = this;        var iHits = 0;        if ((typeof sSearchText !== "string" && typeof sSearchText !== "number") || sSearchText === "") {            iHits = -1;        }        else {            if (typeof sSearchText === "number") {                sSearchText = sSearchText + "";            }            var iHitPos;            var bReachedEnd = false;            bCaseSensitive = (bCaseSensitive !== false) ? true : bCaseSensitive;            if (bCaseSensitive === false) {                sSource = sSource.toLowerCase();                sSearchText = sSearchText.toLowerCase();            }            var ex = 0;            while (!bReachedEnd && ex < 1000000) {                ex++;                iHitPos = sSource.indexOf(sSearchText);                if (iHitPos >= 0) {                    sSource = sSource.substr(iHitPos + sSearchText.length);                    iHits++;                }                else {                    bReachedEnd = true;                }            }        }        return iHits;    }     catch (e) {        TOM.ee(TOM.ei("String.prototype.occurrence", this), e);        return -1;    }};String.prototype.convert = function(sSourceType, sReturnType, vCustom1, vCustom2){    try {        var sSource = this;        var sCurrentChar;        var sReturn = "";        sSource = sSource.toLowerCase();        sSourceType = (typeof sSourceType !== "string" || sSourceType === "") ? "string" : sSourceType.toLowerCase();        sReturnType = (typeof sReturnType !== "string" || sReturnType === "") ? "integer" : sReturnType.toLowerCase();        var aAllowedTransformations = ['string', 'integer'];        aAllowedTransformations.string = aAllowedTransformations;        aAllowedTransformations.integer = aAllowedTransformations;        var bTransformationSupported = (aAllowedTransformations[sSourceType].indexOf(sReturnType) > -1);        if (bTransformationSupported) {            var aAllowedIntegerChars = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];            var sDecimalDelimiter = (typeof sDecimalDelimiter !== "string") ? "," : sDecimalDelimiter;            var sCurrencyDelimiter = ".";            var aAllowedChars = [];            var aAllowedFirstChars = [];            switch (sReturnType) {                case "integer":                    aAllowedChars = aAllowedIntegerChars;                    aAllowedFirstChars = ["-", "+"];                    break;                case "fraction":                    break;                case "binary":                    break;                case "hexadecimal":                    break;                case "currency":                    break;            }            for (var n = 0; n < sSource.length; n++) {                sCurrentChar = sSource.charAt(n);                if (((sReturn.length === 0) && (aAllowedFirstChars.indexOf(sCurrentChar) > -1)) || (aAllowedChars.indexOf(sCurrentChar) > -1)) {                    sReturn += sCurrentChar;                }            }            switch (sSourceType.toLowerCase()) {                case "integer":                    break;                case "fraction":                    break;                case "binary":                    break;                case "hexadecimal":                    break;                case "currency":                    break;            }        }        return sReturn;    }     catch (e) {        TOM.ee(TOM.ei("String.prototype.convert", this), e);        return this;    }};Array.prototype.toLowerCase = function(){    try {        var aSource = this;        for (var n = 0; n < aSource.length; n++) {            if (typeof aSource[n] === "string") {                aSource[n] = aSource[n].toLowerCase();            }            else                 if (isArray(aSource[n])) {                    aSource[n] = aSource[n].toLowerCase();                }        }        return aSource;    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.toLowerCase", this), e);        return null;    }};Array.prototype.toUpperCase = function(){    try {        var aSource = this;        for (var n = 0; n < aSource.length; n++) {            if (typeof aSource[n] === "string") {                aSource[n] = aSource[n].toUpperCase();            }            else                 if (isArray(aSource[n])) {                    aSource[n] = aSource[n].toUpperCase();                }        }        return aSource;    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.toUpperCase", this), e);        return null;    }};Array.prototype.contains = function(aSearchList, bCaseSensitive){    try {        var aSource = this;        var bMatch = false;        bCaseSensitive = (bCaseSensitive !== false) ? true : bCaseSensitive;        if (bCaseSensitive === false) {            aSource = aSource.toLowerCase();        }        for (var n = 0; n < aSource.length; n++) {            if (typeof aSource[n] === "string" || isArray(aSource[n])) {                if (aSource[n].contains(aSearchList, bCaseSensitive)) {                    bMatch = true;                }            }        }        return bMatch;    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.contains", this), e);        return false;    }};Array.prototype.left = function(sStartMarker, bCaseSensitive, bSearchBackwards){    try {        var aSource = this;        var aReturn = [];        var entry;        bSearchBackwards = (typeof bSearchBackwards === "undefined" || typeof bSearchBackwards !== "boolean") ? false : bSearchBackwards;        bCaseSensitive = (typeof bCaseSensitive === "undefined" || typeof bCaseSensitive !== "boolean") ? true : bCaseSensitive;        for (entry in aSource) {            if (aSource.hasOwnProperty(entry)) {                if (typeof aSource[entry] === "string" || isArray(aSource[entry])) {                    aReturn[entry] = aSource[entry].left(sStartMarker, bCaseSensitive, bSearchBackwards);                }                else {                    aReturn[entry] = aSource[entry];                }            }        }        return aReturn;    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.left", this), e);        return null;    }};Array.prototype.leftBack = function(sStartMarker, bCaseSensitive){    try {        var aSource = this;        var aReturn = [];        var entry;        bCaseSensitive = (typeof bCaseSensitive === "undefined" || typeof bCaseSensitive !== "boolean") ? true : bCaseSensitive;        for (entry in aSource) {            if (aSource.hasOwnProperty(entry)) {                if (typeof aSource[entry] === "string" || isArray(aSource[entry])) {                    aReturn[entry] = aSource[entry].leftBack(sStartMarker, bCaseSensitive);                }                else {                    aReturn[entry] = aSource[entry];                }            }        }        return aReturn;    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.leftBack", this), e);        return null;    }};Array.prototype.right = function(sStartMarker, bCaseSensitive, bSearchBackwards){    try {        var aSource = this;        var aReturn = [];        var entry;        bSearchBackwards = (typeof bSearchBackwards === "undefined" || typeof bSearchBackwards !== "boolean") ? false : bSearchBackwards;        bCaseSensitive = (typeof bCaseSensitive === "undefined" || typeof bCaseSensitive !== "boolean") ? true : bCaseSensitive;        for (entry in aSource) {            if (aSource.hasOwnProperty(entry)) {                if (typeof aSource[entry] === "string" || isArray(aSource[entry])) {                    aReturn[entry] = aSource[entry].right(sStartMarker, bCaseSensitive, bSearchBackwards);                }                else {                    aReturn[entry] = aSource[entry];                }            }        }        return aReturn;    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.right", this), e);        return null;    }};Array.prototype.rightBack = function(sStartMarker, bCaseSensitive){    try {        var aSource = this;        var aReturn = [];        var entry;        bCaseSensitive = (typeof bCaseSensitive === "undefined" || typeof bCaseSensitive !== "boolean") ? true : bCaseSensitive;        for (entry in aSource) {            if (aSource.hasOwnProperty(entry)) {                if (typeof aSource[entry] === "string" || isArray(aSource[entry])) {                    aReturn[entry] = aSource[entry].rightBack(sStartMarker, bCaseSensitive);                }                else {                    aReturn[entry] = aSource[entry];                }            }        }        return aReturn;    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.rightBack", this), e);        return null;    }};Array.prototype.middle = function(sStartMarker, sEndMarker, bCaseSensitive, bAllowPlaceholder, bEndMarkerRequired, bSearchBackwards){    try {        var aSource = this;        var aReturn = [];        var entry;        bCaseSensitive = (typeof bCaseSensitive === "undefined" || typeof bCaseSensitive !== "boolean") ? true : bCaseSensitive;        bAllowPlaceholder = (typeof bAllowPlaceholder === "undefined" || typeof bAllowPlaceholder !== "boolean") ? false : bAllowPlaceholder;        bEndMarkerRequired = (typeof bEndMarkerRequired === "undefined" || typeof bEndMarkerRequired !== "boolean") ? false : bEndMarkerRequired;        bSearchBackwards = (typeof bSearchBackwards === "undefined" || typeof bSearchBackwards !== "boolean") ? false : bSearchBackwards;        for (entry in aSource) {            if (aSource.hasOwnProperty(entry)) {                if (typeof aSource[entry] === "string" || isArray(aSource[entry])) {                    aReturn[entry] = aSource[entry].middle(sStartMarker, sEndMarker, bCaseSensitive, bAllowPlaceholder, bEndMarkerRequired, bSearchBackwards);                }                else {                    aReturn[entry] = aSource[entry];                }            }        }        return aReturn;    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.middle", this), e);        return null;    }};Array.prototype.middleBack = function(sStartMarker, sEndMarker, bCaseSensitive, bAllowPlaceholder, bEndMarkerRequired){    try {        var aSource = this;        var aReturn = [];        var entry;        bCaseSensitive = (typeof bCaseSensitive === "undefined" || typeof bCaseSensitive !== "boolean") ? true : bCaseSensitive;        bAllowPlaceholder = (typeof bAllowPlaceholder === "undefined" || typeof bAllowPlaceholder !== "boolean") ? false : bAllowPlaceholder;        bEndMarkerRequired = (typeof bEndMarkerRequired === "undefined" || typeof bEndMarkerRequired !== "boolean") ? false : bEndMarkerRequired;        for (entry in aSource) {            if (aSource.hasOwnProperty(entry)) {                if (typeof aSource[entry] === "string" || isArray(aSource[entry])) {                    aReturn[entry] = aSource[entry].middleBack(sStartMarker, sEndMarker, bCaseSensitive, bAllowPlaceholder, bEndMarkerRequired);                }                else {                    aReturn[entry] = aSource[entry];                }            }        }        return aReturn;    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.middleBack", this), e);        return null;    }};Array.prototype.implode = function(sSeparator){    try {        sSeparator = sSeparator || " ";        var aSource = this;        if (typeof sSeparator === "string") {            var result = "";            for (var i = 0; i < aSource.length; i++) {                result += aSource[i] + sSeparator;            }            result = result.substring(0, result.lastIndexOf(sSeparator));            return result;        }        else {            return null;        }    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.implode", this), e);        return "";    }};Array.prototype.trim = function(){    try {        var aSource = this;        var aReturn = [];        var count = 0;        for (var i = 0; i < aSource.length; i++) {            if (typeof aSource[i] === "string" || isArray(aSource[i])) {                if (aSource[i].trim() !== "") {                    aReturn[count] = aSource[i].trim();                    count++;                }            }            else {                aReturn[count] = aSource[i];                count++;            }        }        return aReturn;    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.trim", this), e);        return "";    }};Array.prototype.begins = function(sMarker, bCaseSensitive){    try {        var aSource = this;        if (typeof bCaseSensitive === "undefined") {            bCaseSensitive = true;        }        if (typeof sMarker !== "string") {            throw createErrorInfoObj(TOM.ERROR.LEVEL.ERROR, TOM.ERROR.TYPE.USERERROR, TOM.ERROR.MESSAGE.STRINGEXPECTED, "Eine Zeichenkette wurde erwartet", "FN00000234");        }        if (bCaseSensitive === false) {            sMarker = sMarker.toLowerCase();        }        var nLength = sMarker.length;        var sTmp;        for (var i = 0; i < aSource.length; i++) {            if (bCaseSensitive === false) {                sTmp = aSource[i].toLowerCase();            }            else {                sTmp = aSource[i];            }            if (sMarker === sTmp.substring(0, nLength)) {                return true;            }        }        return false;    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.begins", this), e);        return false;    }};Array.prototype.ends = function(sMarker, bCaseSensitive){    try {        var aSource = this;        var bReturn = false;        if (typeof bCaseSensitive === "undefined") {            bCaseSensitive = true;        }        if (typeof sMarker === "string") {            if (bCaseSensitive === false) {                sMarker = sMarker.toLowerCase();            }            var nLength = sMarker.length;            var sTmp;            for (var i = 0; i < aSource.length; i++) {                if (bCaseSensitive === false) {                    sTmp = aSource[i].toLowerCase();                }                else {                    sTmp = aSource[i];                }                if (sMarker === sTmp.substring(sTmp.length - nLength, sTmp.length)) {                    bReturn = true;                }            }        }        return bReturn;    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.ends", this), e);        return false;    }};Array.prototype.replace = function(aFromList, aToList){    try {        var aSource = null;        var i, j;        if (aFromList instanceof Array && aToList instanceof Array) {            aSource = this;            for (i = 0; i < aSource.length; i++) {                for (j = 0; j < aFromList.length; j++) {                    if (aSource[i] === aFromList[j]) {                        aSource[i] = aToList[j];                    }                }            }            return aSource;        }        else             if (typeof aFromList === "string" && typeof aToList === "string") {                aSource = this;                for (i = 0; i < aSource.length; i++) {                    for (j = 0; j < aFromList.length; j++) {                        if (aSource[i] === aFromList) {                            aSource[i] = aToList;                        }                    }                }                return aSource;            }            else {                return aSource;            }    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.replace", this), e);        return null;    }};Array.prototype.replaceSubstring = function(fromList, toList, bCaseSensitive){    try {        var aSource = this;        var vReturnEntry;        if ((typeof fromList === "string" || typeof fromList === "number") && (typeof toList === "string" || typeof toList === "number") && fromList !== "") {            for (var i = 0; i < aSource.length; i++) {                vReturnEntry = aSource[i].replaceSubstring(fromList, toList, ((bCaseSensitive !== false) ? true : false));                if (vReturnEntry !== null) {                    aSource[i] = vReturnEntry;                }            }            return aSource;        }        else {            return null;        }    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.replaceSubstring", this), e);        return null;    }};Array.prototype.remove = function(element){    try {        if (typeof element === "number") {            var aSource = this;            var partOneOfNewArray = aSource.slice(0, element);            var partTwoOfNewArray = aSource.slice(element);            partTwoOfNewArray.shift();            aSource = partOneOfNewArray.concat(partTwoOfNewArray);            return aSource;        }        else {            return this;        }    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.remove", this), e);        return null;    }};Array.prototype.indexOf = function(element){    try {        for (var i = 0; i < this.length; i++) {            if (this[i] === element) {                return i;            }        }        return -1;    }     catch (e) {        TOM.ee(TOM.ei("Array.prototype.indexOf", this), e);        return -1;    }};TOM.storage = function(sStorageId, sScope, iDays){    var oSource = this;    this.decode = function(vReturnObj){        if (typeof vReturnObj !== "undefined") {            var aTempEncoded = oSource.encodedChars;            var aTempDecoded = oSource.decodedChars;            var vRet = (vReturnObj === "") ? "" : vReturnObj.replaceSubstring(aTempEncoded.reverse(), aTempDecoded.reverse());            return vRet;        }        else {            return null;        }    };    this.encode = function(vReturnObj, opt){        if (typeof vReturnObj !== "undefined") {            var vRet = (vReturnObj === "") ? "" : vReturnObj.replaceSubstring(oSource.decodedChars, oSource.encodedChars);            return vRet;        }        else {            return null;        }    };    this.setCookie = function(sValue){        var sCookieValue = sValue;        var sCookieExpirationAttribute = oSource.expires ? "; expires=" + oSource.expires : "";        var sCookiePathAttribute = oSource.path !== "" ? "; path=" + oSource.path : "";        var sCookieDomainAttribute = oSource.domain !== "" ? "; domain=" + oSource.domain : "";        var sCookieSecureAttribute = oSource.secure ? "; secure" : "";        var sCookie = oSource.encode(oSource.sStorageId, "1") + oSource.sElementIdentifier + sCookieValue + sCookieExpirationAttribute + sCookiePathAttribute + sCookieDomainAttribute + sCookieSecureAttribute;        document.cookie = sCookie;    };    this.serializeEntries = function(aEntries){        var sReturn = "";        if (isArray(aEntries)) {            var aTemp = [];            for (var e in aEntries) {                if (aEntries.hasOwnProperty(e)) {                    if (typeof aEntries[e] === "string") {                        aTemp[aTemp.length] = oSource.encode(e, "8a") + oSource.sEntryIdentifier + oSource.encode(aEntries[e], "8b");                    }                }            }            sReturn = aTemp.join(oSource.sEntrySeparator);        }        return sReturn;    };    this.expires = function(years, month, days, hours, minutes, seconds){    };    this.expirationDate = function(){    };    this.set = function(sValue, sEntryId){        var aReturn = [];        var vCookie = oSource.get();        var aCookie;        switch (oSource.method) {            case "cookie":                var sCookieValue;                if (typeof sEntryId === "string") {                    if (isArray(vCookie)) {                        aCookie = vCookie;                    }                    else {                        aCookie = [];                    }                    aCookie[sEntryId] = sValue;                    sCookieValue = oSource.serializeEntries(aCookie);                }                else {                    sCookieValue = oSource.encode(sValue, "6");                }                oSource.setCookie(sCookieValue);                break;            case "cookie":                break;            case "cookie":                break;        }        return aReturn;    };    this.get = function(sEntryId){        var vReturn, e;        switch (oSource.method) {            case "cookie":                var sCookie = document.cookie;                if (sCookie !== "") {                    var aCookies = sCookie.split(oSource.sElementSeparator);                    var sCurrentCookie = "";                    var sEncodedCookieId = oSource.encode(oSource.sStorageId, "2");                    for (var n = 0; n < aCookies.length; n++) {                        if (aCookies[n].indexOf(sEncodedCookieId + oSource.sElementIdentifier) === 0) {                            sCurrentCookie = aCookies[n].right(sEncodedCookieId + oSource.sElementIdentifier);                        }                    }                    if (sCurrentCookie !== "") {                        var aEntries = sCurrentCookie.split(oSource.sEntrySeparator);                        if (typeof sEntryId === "string" && sEntryId !== "") {                            var sEncodedEntryId = oSource.encode(sEntryId, "3");                            for (e = 0; e < aEntries.length; e++) {                                if (aEntries[e].indexOf(sEncodedEntryId + oSource.sEntryIdentifier) === 0) {                                    vReturn = aEntries[e].right(sEncodedEntryId + oSource.sEntryIdentifier);                                    vReturn = oSource.decode(vReturn);                                }                            }                        }                        else                             if (aEntries.contains(oSource.sEntryIdentifier) === false && typeof aEntries[0] !== "undefined") {                                vReturn = oSource.decode(aEntries[0]);                            }                            else {                                var sCurrentEntryId, sCurrentEntryValue;                                vReturn = [];                                for (e = 0; e < aEntries.length; e++) {                                    sCurrentEntryId = oSource.decode(aEntries[e].left(oSource.sEntryIdentifier));                                    sCurrentEntryValue = oSource.decode(aEntries[e].right(oSource.sEntryIdentifier));                                    vReturn[sCurrentEntryId] = sCurrentEntryValue;                                }                            }                    }                }                else {                    vReturn = null;                }                break;            case "firefoxstorage":                break;            case "flash":                break;            case "activex":                break;        }        if (vReturn === null) {            vReturn = "";        }        return vReturn;    };    this.getall = function(){        var aReturn = [];        var e;        var aEntries = oSource.get();        var sCurrentEntryId, sCurrentEntryValue;        for (e in aEntries) {            if (aEntries.hasOwnProperty(e)) {                if (typeof aEntries[e] === "string") {                    aReturn[aReturn.length] = "\"" + e.replaceSubstring('"', '\\"') + "\":\"" + aEntries[e].replaceSubstring('"', '\\"') + "\"";                }            }        }        return "{" + aReturn.join(",") + "}";    };    this.remove = function(sEntryId){    };    this.period = function(years, month, days, hours, minutes, seconds){        var aArguments = [];        for (var cnt = 0; cnt < arguments.length; cnt++) {            aArguments[cnt] = arguments[cnt];        }        if (aArguments.length === 1) {        }        else             if (aArguments.length > 1) {            }            else {            }    };    try {        oSource.sStorageId = sStorageId;        oSource.method = "cookie";        if (oSource.method == "cookie") {            oSource.sElementIdentifier = "=";            oSource.sElementSeparator = "; ";        }        else {            oSource.sElementIdentifier = "=";            oSource.sElementSeparator = "; ";        }        oSource.sEntryIdentifier = "|";        oSource.sEntrySeparator = ",";        oSource.cmsscope = "domain";        var date = new Date();        var days = iDays ? iDays : 365;        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));        oSource.path = sScope;        oSource.domain = "";        oSource.secure = (location.protocol === "https") ? true : false;        oSource.expires = date.toGMTString();        var sEscapeChar = "%";        oSource.decodedChars = [sEscapeChar, oSource.sElementSeparator, oSource.sEntrySeparator, oSource.sElementIdentifier, oSource.sEntryIdentifier];        oSource.encodedChars = [sEscapeChar + "00", sEscapeChar + "01", sEscapeChar + "02", sEscapeChar + "03", sEscapeChar + "04"];    }     catch (e) {        TOM.ee(TOM.ei("TOM.storage", this), e);        return null;    }};TOM.i = {};TOM.i.browser = {};TOM.i.os = {};if (navigator.appName === "Netscape") {    TOM.i.browser.name = "netscape navigator";}else     if (navigator.appName === "Microsoft Internet Explorer") {        TOM.i.browser.name = "internet explorer";    }TOM.i.browser.version = parseInt(navigator.appVersion, 10);TOM.i.browser.nn = (TOM.i.browser.name === "netscape navigator");if (TOM.i.browser.nn && (navigator.userAgent.indexOf('Netscape6') > 0)) {    TOM.i.browser.version = 6;}if (TOM.i.browser.nn && (navigator.userAgent.indexOf('Netscape7') > 0)) {    TOM.i.browser.version = 7;}TOM.i.browser.ie = (TOM.i.browser.name === "internet explorer");if (navigator.appVersion.indexOf('MSIE 4') > 0) {    TOM.i.browser.version = 4;}if (navigator.appVersion.indexOf('MSIE 5') > 0) {    TOM.i.browser.version = 5;}if (navigator.appVersion.indexOf('MSIE 6') > 0) {    TOM.i.browser.version = 6;}if (navigator.appVersion.indexOf('MSIE 7') > 0) {    TOM.i.browser.version = 7;}if (navigator.appVersion.indexOf('MSIE 8') > 0) {    TOM.i.browser.version = 8;}TOM.i.browser.mozilla = ((navigator.appName === "Netscape") && (navigator.appVersion.substring(0, 1) >= "5"));TOM.i.browser.opera = ((navigator.appName === "Opera") || (navigator.userAgent.indexOf("Opera") > 0));TOM.i.browser.konqueror = /Konqueror/i.test(navigator.userAgent);TOM.i.browser.safari = /Safari/i.test(navigator.userAgent);TOM.i.browser.khtml = /KHTML/i.test(navigator.userAgent);if (TOM.i.browser.opera && (parseInt(navigator.appVersion.substring(0, 1), 10) >= 6 || navigator.userAgent.indexOf("Opera 6") > 0)) {    TOM.i.browser.version = 6;}if (TOM.i.browser.opera && parseInt(navigator.appVersion.substring(0, 1), 10) >= 6) {    TOM.i.browser.version = parseInt(navigator.appVersion.substring(0, 1), 10);}if (TOM.i.browser.opera) {    TOM.i.browser.ns = false;    TOM.i.browser.ie = false;    TOM.i.browser.mozilla = false;    TOM.i.browser.konqueror = false;    TOM.i.browser.safari = false;    TOM.i.browser.khtml = false;}TOM.i.os.windows = (navigator.appVersion.toLowerCase().indexOf("windows") == -1) ? false : true;TOM.i.os.linux = (navigator.appVersion.toLowerCase().indexOf("linux") == -1) ? false : true;TOM.i.os.mac = (navigator.appVersion.toLowerCase().indexOf("macintosh") == -1) ? false : true;TOM.i.browser.info = "browser appName:" + navigator.appName + "\n" + "browser appVersion:" + navigator.appVersion + "\n" + "TOM.i.browser.name:" + TOM.i.browser.name + "\n" + "TOM.i.browser.version:" + TOM.i.browser.version + "\n" + "TOM.i.browser.ie?:" + TOM.i.browser.ie + "\n" + "TOM.i.browser.nn?:" + TOM.i.browser.nn + "\n" + "TOM.i.browser.mozilla?:" + TOM.i.browser.mozilla + "\n" + "TOM.i.browser.opera?:" + TOM.i.browser.opera + "\n" + "TOM.i.browser.konqueror?:" + TOM.i.browser.konqueror + "\n" + "TOM.i.browser.safari?:" + TOM.i.browser.safari + "\n" + "TOM.i.browser.khtml?:" + TOM.i.browser.khtml + "\n";objHasOwnProperty = function(oElement, e){    var bReturn = false;    if (!oElement.hasOwnProperty || oElement.hasOwnProperty(e)) {        bReturn = true;    }    return bReturn;};TOM.i.window = function(){    var e;    var res = "Window:";    var maximumWidth = 0;    var maximumHeight = 0;    this.targetObj = window;    var info = this.targetObj.document.documentElement ? this.targetObj.document.documentElement : this.targetObj.document.body;    this.windowInnerWidth = info.clientWidth;    this.windowInnerHeight = info.clientHeight;    this.screenWidth = info.scrollWidth > info.clientWidth ? info.scrollWidth : info.clientWidth;    this.screenHeight = info.scrollHeight > info.clientHeight ? info.scrollHeight : info.clientHeight;    var oElement = document;    for (e in oElement) {        if (!oElement.hasOwnProperty || oElement.hasOwnProperty(e)) {            if (e.indexOf("idth") > -1 || e.indexOf("eight") > -1 || e.indexOf("op") > -1 || e.indexOf("eft") > -1) {                res += e + " = " + oElement[e] + "\n";                if ((e.indexOf("idth") > -1 || e.indexOf("eft") > -1) && oElement[e] > maximumWidth) {                    maximumWidth = oElement[e];                }                if ((e.indexOf("eight") > -1 || e.indexOf("op") > -1) && oElement[e] > maximumHeight) {                    maximumHeight = oElement[e];                }            }        }    }    res += "\nDocument:\n";    oElement = document;    for (e in oElement) {        if (oElement.hasOwnProperty && oElement.hasOwnProperty(e)) {            if (e.indexOf("idth") > -1 || e.indexOf("eight") > -1 || e.indexOf("op") > -1 || e.indexOf("eft") > -1) {                res += e + " = " + oElement[e] + "\n";                if ((e.indexOf("idth") > -1 || e.indexOf("eft") > -1) && oElement[e] > maximumWidth) {                    maximumWidth = oElement[e];                }                if ((e.indexOf("eight") > -1 || e.indexOf("op") > -1) && oElement[e] > maximumHeight) {                    maximumHeight = oElement[e];                }            }        }    }    res += "\nScreen:\n";    oElement = screen;    for (e in oElement) {        if (oElement.hasOwnProperty && oElement.hasOwnProperty(e)) {            if (e.indexOf("idth") > -1 || e.indexOf("eight") > -1 || e.indexOf("op") > -1 || e.indexOf("eft") > -1) {                res += e + " = " + oElement[e] + "\n";                if ((e.indexOf("idth") > -1 || e.indexOf("eft") > -1) && oElement[e] > maximumWidth) {                    maximumWidth = oElement[e];                }                if ((e.indexOf("eight") > -1 || e.indexOf("op") > -1) && oElement[e] > maximumHeight) {                    maximumHeight = oElement[e];                }            }        }    }    res += "\ndocument.body:\n";    oElement = document.body;    for (e in oElement) {        if (oElement.hasOwnProperty && oElement.hasOwnProperty(e)) {            if (e.indexOf("idth") > -1 || e.indexOf("eight") > -1 || e.indexOf("op") > -1 || e.indexOf("eft") > -1) {                res += e + " = " + oElement[e] + "\n";                if ((e.indexOf("idth") > -1 || e.indexOf("eft") > -1) && oElement[e] > maximumWidth) {                    maximumWidth = oElement[e];                }                if ((e.indexOf("eight") > -1 || e.indexOf("op") > -1) && oElement[e] > maximumHeight) {                    maximumHeight = oElement[e];                }            }        }    }    res += "\ndocument.documentElement:\n";    oElement = document.documentElement;    for (e in oElement) {        if (oElement.hasOwnProperty && oElement.hasOwnProperty(e)) {            if (e.indexOf("idth") > -1 || e.indexOf("eight") > -1 || e.indexOf("op") > -1 || e.indexOf("eft") > -1) {                res += e + " = " + oElement[e] + "\n";                if ((e.indexOf("idth") > -1 || e.indexOf("eft") > -1) && oElement[e] > maximumWidth) {                    maximumWidth = oElement[e];                }                if ((e.indexOf("eight") > -1 || e.indexOf("op") > -1) && oElement[e] > maximumHeight) {                    maximumHeight = oElement[e];                }            }        }    }    this.maximumWidth = maximumWidth;    this.maximumHeight = maximumHeight;    res = "";    res += "windowInnerWidth:" + this.windowInnerWidth + "\nwindowInnerHeight:" + this.windowInnerHeight;    res += "\nmaximumWidth:" + this.maximumWidth + "\nmaximumHeight:" + this.maximumHeight;    this.info = res;};TOM.xml = {    loadXMLFile: function(sFilename){        var xmlDoc = null;        if (document.implementation && document.implementation.createDocument) {            xmlDoc = document.implementation.createDocument("", "", null);        }        else             if (window.ActiveXObject) {                xmlDoc = new ActiveXObject("Microsoft.XMLDOM");            }            else {                return xmlDoc;            }        if (sFilename && xmlDoc) {            xmlDoc.load(sFilename);        }        return xmlDoc;    },    parseXML: function(sXMLData){        var oXMLDoc = null;        if (typeof sXMLData === "string") {            if (!sXMLData) {                return null;            }            if (window.ActiveXObject) {                oXMLDoc = new ActiveXObject("Microsoft.XMLDOM");                oXMLDoc.async = false;                if (oXMLDoc) {                    oXMLDoc.loadXML(sXMLData);                }            }            else                 if (document.implementation.createDocument) {                    var vParser = new DOMParser();                    if (vParser) {                        oXMLDoc = vParser.parseFromString(sXMLData, "text/xml");                    }                }        }        return oXMLDoc;    }};if (TOM.i.browser.ie && TOM.i.os.windows) {    document.writeln('<script language="VBscript">');    document.writeln('\'do a one-time test for a version of VBScript that can handle this code');    document.writeln('detectableWithVB = False');    document.writeln('If ScriptEngineMajorVersion >= 2 then');    document.writeln('  detectableWithVB = True');    document.writeln('End If');    document.writeln('\'this next function will detect most plugins');    document.writeln('Function detectActiveXControl(activeXControlName)');    document.writeln('  on error resume next');    document.writeln('  detectActiveXControl = False');    document.writeln('  If detectableWithVB Then');    document.writeln('     detectActiveXControl = IsObject(CreateObject(activeXControlName))');    document.writeln('  End If');    document.writeln('End Function');    document.writeln('\'and the following function handles QuickTime');    document.writeln('Function detectQuickTimeActiveXControl()');    document.writeln('  on error resume next');    document.writeln('  detectQuickTimeActiveXControl = False');    document.writeln('  If detectableWithVB Then');    document.writeln('    detectQuickTimeActiveXControl = False');    document.writeln('    hasQuickTimeChecker = false');    document.writeln('    Set hasQuickTimeChecker = CreateObject("QuickTimeCheckObject.QuickTimeCheck.1")');    document.writeln('    If IsObject(hasQuickTimeChecker) Then');    document.writeln('      If hasQuickTimeChecker.IsQuickTimeAvailable(0) Then ');    document.writeln('        detectQuickTimeActiveXControl = True');    document.writeln('      End If');    document.writeln('    End If');    document.writeln('  End If');    document.writeln('End Function');    document.writeln('</scr' + 'ipt>');}TOM.media = {    "info": "contains all media functions"};TOM.media.checkPlugin = function(sPlugin){    if (typeof sPlugin == "undefined") {        return false;    }    var CURRENTFLASHVERSION = "ShockwaveFlash.ShockwaveFlash.4";    var CURRENTWMVVERSION = "MediaPlayer.MediaPlayer.1";    var CURRENTJAVAVERSION = "JavaPlugin";    var bMatch = false;    if (navigator.plugins && navigator.plugins.length > 0) {        for (i = 0; i < navigator.plugins.length; i++) {            if (navigator.plugins[i].name.indexOf(sPlugin) >= 0) {                bMatch = true;            }        }    }    else {        if (!bMatch && detectableWithVB) {            if (sPlugin === "QuickTime") {                bMatch = detectQuickTimeActiveXControl();            }            else {                switch (sPlugin) {                    case "Flash":                        sVBPlugin = CURRENTFLASHVERSION;                        break;                    case "Windows Media Player":                        sVBPlugin = CURRENTWMVVERSION;                        break;                    case "Java":                        sVBPlugin = CURRENTJAVAVERSION;                        break;                    default:                        sVBPlugin = sPlugin;                        break;                }                bMatch = detectActiveXControl(sVBPlugin);            }        }    }    return bMatch;};TOM.media.quicktime = function(sId, sSource, sWidth, sHeight){    this.id = (typeof sId == "undefined") ? "" : sId;    this.source = (typeof sSource == "undefined") ? "" : sSource;    this.width = (typeof sWidth == "undefined") ? "" : sWidth;    this.height = (typeof sHeight == "undefined") ? "" : sHeight;    this.autoplay = "false";    this.controller = "true";    this.altImage = "";    this.altText = "";    var oSource = this;    this.setSource = function(sSource){        oSource.source = (typeof sSource == "undefined") ? oSource.source : sSource;    };    this.setAlternativeImage = function(sImage){        oSource.altImage = (typeof sImage == "undefined") ? "" : sImage;    };    this.setAlternativeText = function(sText){        oSource.altText = (typeof sText == "undefined") ? "" : sText;    };    this.setAutoplay = function(bAutoplay){        oSource.autoplay = (((typeof bAutoplay !== "boolean") ? false : bAutoplay) === true) ? "true" : "false";    };    this.setController = function(bController){        oSource.controller = (((typeof bController !== "boolean") ? true : bController) === true) ? "true" : "false";    };    this.render = function(sTarget){        if (typeof sTarget != "undefined") {            var sHtml = "";            if (TOM.media.checkPlugin("QuickTime")) {                sHtml = "<object " + "id=\"" + oSource.id + "\" " + "width=\"" + oSource.width + "\" " + "height=\"" + oSource.height + "\" " + "classid=\"clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B\" " + "codebase=\"http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0\"> " + "<param name=\"SRC\" " + "value=\"" + oSource.source + "\">" + "<param name=\"autoplay\" value=\"" + oSource.autoplay + "\">" + "<param name=\"controller\" value =\"" + oSource.controller + "\">" + "<param name=\"type\" value=\"video/quicktime\">" + "<param name=\"pluginspage\" " + "value=\"http://www.apple.com/quicktime/download/index.html\">" + "<embed " + "name=\"" + oSource.id + "\" " + "width=\"" + oSource.width + "\" " + "height=\"" + oSource.height + "\" " + "src=\"" + oSource.source + "\" " + "type=\"video/quicktime\" " + "autoplay=\"" + oSource.autoplay + "\" " + "controller=\"" + oSource.controller + "\" " + "enablejavascript=\"true\" " + "pluginspage=\"http://www.apple.com/quicktime/download/index.html\">" + "</embed>" + "</OBJECT>";            }            else {                if (oSource.altText !== "") {                    if (oSource.altImage !== "") {                        sHtml = "<div class=\"alternative" + oSource.id + "\" style=\"width:" + oSource.width + "px;height:" + oSource.height + "px;background-image:url(" + oSource.altImage + ");background-repeat:no-repeat;\">" + oSource.altText + "</div>";                    }                    else {                        sHtml = "<div class=\"alternative" + oSource.id + "\"  style=\"width:" + oSource.width + "px;height:" + oSource.height + "px;\">" + oSource.altText + "</div>";                    }                }                else                     if (oSource.altImage !== "") {                        sHtml = "<div class=\"alternative" + oSource.id + "\"  style=\"width:" + oSource.width + "px;height:" + oSource.height + "px;\"><img src=\"" + oSource.altImage + "\" alt=\"\"></div>";                    }                    else {                        sHtml = "";                    }            }            document.getElementById(sTarget).innerHTML = sHtml;        }    };};TOM.media.flash = function(sId, sSource, sWidth, sHeight, sFlashVars){    this.id = (typeof sId == "undefined") ? "" : sId;    this.source = (typeof sSource == "undefined") ? "" : sSource;    this.width = (typeof sWidth == "undefined") ? "" : sWidth;    this.height = (typeof sHeight == "undefined") ? "" : sHeight;    this.flashVars = (typeof sFlashVars == "undefined") ? "" : sFlashVars;    this.quality = "high";    this.scale = "exactfit";    this.controller = "false";    this.bgColor = "#000000";    this.altImage = "";    this.altText = "";    var oSource = this;    this.setSource = function(sSource){        oSource.source = (typeof sSource == "undefined") ? oSource.source : sSource;    };    this.setAlternativeImage = function(sImage){        oSource.altImage = (typeof sImage == "undefined") ? "" : sImage;    };    this.setAlternativeText = function(sText){        oSource.altText = (typeof sText == "undefined") ? "" : sText;    };    this.setQuality = function(sQuality){        oSource.quality = (typeof sQuality == "undefined") ? "high" : sQuality;    };    this.setScale = function(sScale){        oSource.scale = (typeof sScale == "undefined") ? "exactfit" : sScale;    };    this.setController = function(bController){        oSource.controller = (((typeof bController !== "boolean") ? true : bController) === true) ? "true" : "false";    };    this.setBgColor = function(sColor){        oSource.bgColor = (typeof sColor == "undefined") ? "#000000" : sColor;    };    this.render = function(sTarget){        if (typeof sTarget != "undefined") {            var sHtml = "";            if (TOM.media.checkPlugin("Flash")) {                sHtml = "<object classid=\"CLSID:D27CDB6E-AE6D-11cf-96B8-444553540000\" " + "id=\"" + oSource.id + "\" " + "width=\"" + oSource.width + "\" height=\"" + oSource.height + "\" " + "codebase=\"http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0\">" + "<param name=\"flashvars\" value=\"" + oSource.flashVars + "\">" + "<param name=\"allowscriptaccess\" value=\"always\">" + "<param name=\"allowfullscreen\" value=\"true\">" + "<param name=\"movie\" value=\"" + oSource.source + "\">" + "<param name=\"quality\" value=\"" + oSource.quality + "\">" + "<param name=\"scale\" value=\"" + oSource.scale + "\">" + "<param name=\"menu\" value=\"true\">" + "<param name=\"wmode\" value=\"transparent\">" + "<param name=\"bgcolor\" value=\"" + oSource.bgColor + "\">" + "<embed name =\"" + oSource.id + "\" src=\"" + oSource.source + "\" quality=\"" + oSource.quality + "\" scale=\"" + oSource.scale + "\" menu=\"true\" " + "bgcolor=\"" + oSource.bgColor + "\" width=\"" + oSource.width + "\" height=\"" + oSource.height + "\" swLiveConnect=\"false\" " + "type=\"application/x-shockwave-flash\" " + "wmode=\"transparent\" " + "flashvars=\"" + oSource.flashVars + "\" " + "allowscriptaccess=\"always\" " + "allowfullscreen=\"true\" " + "pluginspage=\"http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash\">" + "</embed></object>";            }            else {                if (oSource.altText !== "") {                    if (oSource.altImage !== "") {                        sHtml = "<div class=\"alternative" + oSource.id + "\" style=\"width:" + oSource.width + "px;height:" + oSource.height + "px;background-image:url(" + oSource.altImage + ");background-repeat:no-repeat;\">" + oSource.altText + "</div>";                    }                    else {                        sHtml = "<div class=\"alternative" + oSource.id + "\"  style=\"width:" + oSource.width + "px;height:" + oSource.height + "px;\">" + oSource.altText + "</div>";                    }                }                else                     if (oSource.altImage !== "") {                        sHtml = "<div class=\"alternative" + oSource.id + "\"  style=\"width:" + oSource.width + "px;height:" + oSource.height + "px;\"><img src=\"" + oSource.altImage + "\" alt=\"\"></div>";                    }                    else {                        sHtml = "";                    }            }            document.getElementById(sTarget).innerHTML = sHtml;        }    };};TOM.media.wmv = function(sId, sSource, sWidth, sHeight){    this.id = (typeof sId == "undefined") ? "" : sId;    this.source = (typeof sSource == "undefined") ? "" : sSource;    this.width = (typeof sWidth == "undefined") ? "" : sWidth;    this.height = (typeof sHeight == "undefined") ? "" : sHeight;    this.autoplay = "false";    this.controller = "true";    this.animationAtStart = "false";    this.transparentAtStart = "false";    this.showStatusBar = "false";    this.altImage = "";    this.altText = "";    var oSource = this;    this.setSource = function(sSource){        oSource.source = (typeof sSource == "undefined") ? oSource.source : sSource;    };    this.setAlternativeImage = function(sImage){        oSource.altImage = (typeof sImage == "undefined") ? "" : sImage;    };    this.setAlternativeText = function(sText){        oSource.altText = (typeof sText == "undefined") ? "" : sText;    };    this.setAutoplay = function(bAutoplay){        oSource.autoplay = (((typeof bAutoplay !== "boolean") ? true : bAutoplay) === true) ? "true" : "false";    };    this.setController = function(bController){        oSource.controller = (((typeof bController !== "boolean") ? true : bController) === true) ? "true" : "false";    };    this.setAnimationAtStart = function(bAnimationAtStart){        oSource.animationAtStart = (((typeof bAnimationAtStart !== "boolean") ? true : bAnimationAtStart) === true) ? "true" : "false";    };    this.setTransparentAtStart = function(bTransparentAtStart){        oSource.transparentAtStart = (((typeof bTransparentAtStart !== "boolean") ? true : bTransparentAtStart) === true) ? "true" : "false";    };    this.setStatusBar = function(bShowStatusBar){        oSource.showStatusBar = (((typeof bShowStatusBar !== "boolean") ? true : bShowStatusBar) === true) ? "true" : "false";    };    this.render = function(sTarget){        if (typeof sTarget != "undefined") {            var sHtml = "";            if (TOM.media.checkPlugin("Windows Media Player")) {                var sAutoplay = (oSource.autoplay == "true") ? "1" : "0";                var sController = (oSource.controller == "true") ? "1" : "0";                var sStatusBar = (oSource.showStatusBar == "true") ? "1" : "0";                var sTransparentAtStart = (oSource.transparentAtStart == "true") ? "1" : "0";                var sAnimationAtStart = (oSource.animationAtStart == "true") ? "1" : "0";                sHtml = "<object id=\"" + oSource.id + "\" width=\"" + oSource.width + "\" height=\"" + oSource.height + "\" " + "classid=\"CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95\" " + "codebase=\"http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701\" " + "standby=\"Loading Microsoft Windows Media Player components...\" type=\"application/x-oleobject\">" + "<param name=\"fileName\" value=\"" + oSource.source + "\">" + "<param name=\"animationatStart\" value=\"" + oSource.animationAtStart + "\">" + "<param name=\"transparentatStart\" value=\"" + oSource.transparentAtStart + "\">" + "<param name=\"autoStart\" value=\"" + oSource.autoplay + "\">" + "<param name=\"showControls\" value=\"" + oSource.controller + "\">" + "<param name=\"uimode\" value=\"mini\">" + "<param name=\"ShowStatusBar\" value=\"" + oSource.showStatusBar + "\">" + "<param name=\"loop\" value=\"1\">" + "<embed type=\"application/x-mplayer2\" name =\"" + oSource.id + "\" " + "pluginspage=\"http://microsoft.com/windows/mediaplayer/en/download/\" " + "src=\"" + oSource.source + "\" " + "width=\"" + oSource.width + "\" " + "height=\"" + oSource.height + "\" " + "transparentAtStart=\"" + sTransparentAtStart + "\" " + "autostart=\"" + sAutoplay + "\" " + "animationAtStart=\"" + sAnimationAtStart + "\" " + "displaysize=\"4\" autosize=\"0\" bgcolor=\"black\" " + "showcontrols=\"" + sController + "\" " + "uimode=\"mini\" " + "showtracker=\"1\" " + "ShowStatusBar=\"" + sStatusBar + "\" " + "showdisplay=\"0\" videoborder3d=\"0\" designtimesp=\"5311\" " + "loop=\"1\"> </embed></object>";            }            else {                if (oSource.altText !== "") {                    if (oSource.altImage !== "") {                        sHtml = "<div class=\"alternative" + oSource.id + "\" style=\"width:" + oSource.width + "px;height:" + oSource.height + "px;background-image:url(" + oSource.altImage + ");background-repeat:no-repeat;\">" + oSource.altText + "</div>";                    }                    else {                        sHtml = "<div class=\"alternative" + oSource.id + "\"  style=\"width:" + oSource.width + "px;height:" + oSource.height + "px;\">" + oSource.altText + "</div>";                    }                }                else                     if (oSource.altImage !== "") {                        sHtml = "<div class=\"alternative" + oSource.id + "\"  style=\"width:" + oSource.width + "px;height:" + oSource.height + "px;\"><img src=\"" + oSource.altImage + "\" alt=\"\"></div>";                    }                    else {                        sHtml = "";                    }            }            document.getElementById(sTarget).innerHTML = sHtml;        }    };};TOM.media.applet = function(sId, sSource, sWidth, sHeight, oArguments){    this.id = (typeof sId == "undefined") ? "" : sId;    this.source = (typeof sSource == "undefined") ? "" : sSource;    this.width = (typeof sWidth == "undefined") ? "" : sWidth;    this.height = (typeof sHeight == "undefined") ? "" : sHeight;    this.arguments = (typeof oArguments == "object") ? oArguments : "";    this.altImage = "";    this.altText = "";    var oSource = this;    this.setSource = function(sSource){        oSource.source = (typeof sSource == "undefined") ? oSource.source : sSource;    };    this.setAlternativeImage = function(sImage){        oSource.altImage = (typeof sImage == "undefined") ? "" : sImage;    };    this.setAlternativeText = function(sText){        oSource.altText = (typeof sText == "undefined") ? "" : sText;    };    this.render = function(sTarget){        if (typeof sTarget != "undefined") {            var sHtml = "";            if (TOM.media.checkPlugin("Java") || navigator.javaEnabled()) {                var arguments = "";                for (var element in oSource.arguments) {                    arguments += "<param name=\"" + element + "\" value=\"" + oSource.arguments[element] + "\">";                }                sHtml = "<applet name=\"" + oSource.id + "\" code=\"" + oSource.source + "\" " + "width=\"" + oSource.width + "\" height=\"" + oSource.height + "\" alt=\"\">" + arguments + "</applet>";            }            else {                if (oSource.altText !== "") {                    if (oSource.altImage !== "") {                        sHtml = "<div class=\"alternative" + oSource.id + "\" style=\"width:" + oSource.width + "px;height:" + oSource.height + "px;background-image:url(" + oSource.altImage + ");background-repeat:no-repeat;\">" + oSource.altText + "</div>";                    }                    else {                        sHtml = "<div class=\"alternative" + oSource.id + "\"  style=\"width:" + oSource.width + "px;height:" + oSource.height + "px;\">" + oSource.altText + "</div>";                    }                }                else                     if (oSource.altImage !== "") {                        sHtml = "<div class=\"alternative" + oSource.id + "\" style=\"width:" + oSource.width + "px;height:" + oSource.height + "px;\"><img src=\"" + oSource.altImage + "\" alt=\"\"></div>";                    }                    else {                        sHtml = "";                    }            }            document.getElementById(sTarget).innerHTML = sHtml;        }    };};TOM.media.plugins = {    bGlobalProof: false,    flash: false,    java: false,    mediaplayer: false,    quicktime: false,    realplayer: false,    acrobat: false,    svg: false};TOM.media.plugins.detect = function(sPluginName){    return true;};TOM.media.plugins.detect("");TOM.media.MMM_MoviePlayer = function(sId, sFile, iWidth, iHeight, bAutoplay, sTarget, sPlayer){    this.simpleEmbed = function(){        this.render = function(sTarget){            if (typeof sTarget != "undefined") {                var sHtml = "<embed name=\"" + sId + "\" " + "src=\"" + oSource.filename + "\" " + " menu=\"true\" " + ((oSource.width > 0) ? " width=\"" + oSource.width + "\" " : "") + ((oSource.height > 0) ? " height=\"" + ((+oSource.height)) + "\" " : "") + " wmode=\"transparent\">" + "</embed>";                document.getElementById(sTarget).innerHTML = sHtml;            }        };    };    this.close = function(sOriginalHTML, sTarget){        var oTarget = document.getElementById(sTarget);        var closeButton = document.createElement("img");        var closeTextObj = document.createElement("div");        var closeText = document.createTextNode(" video schliessen");        closeButton.src = dbpath + "/video/video_close.gif";        closeTextObj.appendChild(closeButton);        closeTextObj.appendChild(closeText);        closeTextObj.onclick = function(){            oTarget.innerHTML = sOriginalHTML;        };        oTarget.insertBefore(closeTextObj, oTarget.firstChild);    };    var oSource = this;    var player;    oSource.filename = sFile;    oSource.width = iWidth;    oSource.height = iHeight;    oSource.targetId = sTarget;    oSource.restore = document.getElementById(sTarget).innerHTML;    bAutoplay = (bAutoplay === false) ? false : true;    var defaultplayer;    var installPlayer = [];    var test = "" + oSource.filename;    var sFileFormat = oSource.filename.rightBack(".").toLowerCase();    switch (sFileFormat) {        case "wmv":            defaultplayer = (TOM.media.plugins.m) ? "mediaplayer" : "unavailable:mediaplayer";            break;        case "mpeg":            defaultplayer = (TOM.media.plugins.m) ? "mediaplayer" : ((TOM.media.plugins.q) ? "quicktime" : "unavailable:mediaplayer,quicktime");            break;        case "mp4":            defaultplayer = (TOM.media.plugins.q) ? "quicktime" : ((TOM.media.plugins.f) ? "flash" : "unavailable:quicktime,flash");            break;        case "mpg":            defaultplayer = (TOM.media.plugins.m) ? "mediaplayer" : ((TOM.media.plugins.q) ? "quicktime" : "unavailable:mediaplayer,quicktime");            break;        case "avi":            defaultplayer = (TOM.media.plugins.q) ? "quicktime" : "unavailable:quicktime";            break;        case "mov":            defaultplayer = (TOM.media.plugins.q) ? "quicktime" : ((TOM.media.plugins.f) ? "flash" : "unavailable:quicktime,flash");            break;        case "flv":            defaultplayer = (TOM.media.plugins.f) ? "flash" : "unavailable:flash";            break;        default:            defaultplayer = "";            break;    }    if (defaultplayer.indexOf("unavailable:") === 0) {        installPlayer = defaultplayer.right("unavailable:").split(",");        defaultplayer = "";    }    sPlayer = (typeof sPlayer === "undefined") ? defaultplayer.toLowerCase() : sPlayer.toLowerCase();    var newHeight;    if (sPlayer === "flash") {        if (!TOM.media.plugins.f)             installPlayer = ["flash"];        var aFP = [];        aFP[aFP.length] = (true) ? "&file=" + oSource.filename : "";        aFP[aFP.length] = (bAutoplay) ? "&autostart=true" : "";        aFP[aFP.length] = (true) ? "&controlbar=over" : "";        if (typeof dbpath != "undefined") {            player = new TOM.media.flash(sId, dbpath + "/video/player.swf", oSource.width, oSource.height, aFP.join(""));        }        else {            player = new TOM.media.flash(sId, "player.swf", oSource.width, oSource.height, aFP.join(""));        }    }    else         if (sPlayer === "mediaplayer") {            if (!TOM.media.plugins.m)                 installPlayer = ["mediaplayer"];            addHeight = 45;            newHeight = (+oSource.height) + (+addHeight);            player = new TOM.media.wmv(sId, oSource.filename, oSource.width, newHeight);            player.setController(true);            player.setAutoplay(bAutoplay);        }        else             if (sPlayer === "quicktime") {                if (!TOM.media.plugins.q)                     installPlayer = ["quicktime"];                addHeight = 16;                newHeight = (+oSource.height) + (+addHeight);                player = new TOM.media.quicktime(sId, oSource.filename, oSource.width, newHeight);                player.setController(true);                player.setAutoplay(bAutoplay);            }            else {                player = new oSource.simpleEmbed();            }    if (installPlayer.length > 0) {        alert("you need to install one of the following plugins to play the video:\n" + installPlayer.join("\n"));    }    player.render(oSource.targetId);    oSource.close(oSource.restore, oSource.targetId);};TOM.checkUrlStatus = function(sUrl, fExecute){    var fHandleRequest = function(){        fExecute(oRequest.httpReq.status, oRequest.httpReq.statusText, sUrl);    };    var oRequest = new TOM.ajax(fHandleRequest, fHandleRequest);    var dNow = new Date();    oRequest.request(sUrl, "HEAD");};TOM.media.MMM_MoviePlayer2Urls = function(sId, sFile1, sFile2, iWidth, iHeight, sTarget, sPlayer){    (function(sId, sFile1, sFile2, iWidth, iHeight, sTarget, sPlayer){        TOM.checkUrlStatus(sFile1, function(sStatus, sStatusText, sUrl){            TOM.media.MMM_MoviePlayer(sId, ((sStatus == "200") ? sFile1 : sFile2), iWidth, iHeight, true, sTarget, sPlayer);        });    })(sId, sFile1, sFile2, iWidth, iHeight, sTarget, sPlayer);};