﻿// ==================================================
// JavaScript Tools ASP2 - www.ad-soft.ch
// Copyright(c) 1982 - 2007
// Tools: Diverse Hilfsprogramme
// Version 2.0
// ==================================================

var ad_br = "";
var ad_ve = 0;
ad_CheckBrowser();

function defaultHandler() { return false; }
function silentHandler() { return true; }
function customHandler(desc, page, line, chr) {
    alert('JavaScript error occurred! \n'
					+ 'The error was handled by a handler [1].\n'
					+ '\nError description: \t' + desc
					+ '\nLine number:       \t' + line);
    /* +'\nPage address:      \t'+page*/
}
window.onerror = customHandler;

function ad_AddBookmark() {
    window.onerror = silentHandler;
    if (window.external != null && navigator.appVersion.indexOf("Mac") == -1) {
        window.external.AddFavorite("http://www.trainsim.ch", "Trainsim.CH");
    }
}

function ad_CheckBrowser() {
    var agentname = navigator.userAgent.toLowerCase();
    var ie = (agentname.indexOf("msie") != -1);      // INTERNET EXPLORER
    var ns = (agentname.indexOf("mozilla") != -1 && agentname.indexOf("compatible") == -1);  //Netscape
    var op = (agentname.indexOf("opera") != -1);  //Opera
    var ff = (agentname.indexOf("firefox") != -1);  //Firefox
    var version = navigator.appVersion.toLowerCase();
    var mozilla = version.substr(0, version.indexOf("."));
    var br = "??";
    var ve = 0;
    if (ie) {
        br = "ie";
    } else if (ns) {
        br = "ns";
    } else if (ff) {
        br = "ff";
    } else if (op) {
        br = "op";
    }
    if (ns || ff || op) {
        ve = mozilla;
    } else if (ie) {
        if (mozilla < 4) {
            ve = 3;
        } else if (mozilla >= 4 && version.indexOf("msie 4") != -1) {
            ve = 4;
        } else if (mozilla >= 4 && version.indexOf("msie 5") != -1) {
            ve = 5;
        } else if (mozilla >= 4 && version.indexOf("msie 6") != -1) {
            ve = 6;
        } else if (mozilla >= 4 && version.indexOf("msie 7") != -1) {
            ve = 7;
        } else if (mozilla >= 4 && version.indexOf("msie 8") != -1) {
            ve = 8;
        } else {
            ve = 0;
        }
    } else {
        ve = 0;
    }
    ad_br = br;
    ad_ve = ve;
}

function ad_Resize(iBorderWidth) {
    var iBorder = iBorderWidth;
    var iDw = 0;
    var iDh = 0;
    var iSw = screen.width;
    var iSh = screen.height;
    var mTable = document.getElementById("PopUpTable");
    if (ad_br == "ie" && ad_ve > 5) {
        if (ad_br == "ie" && ad_ve == 8) {
            iSw = screen.availWidth;
            iSh = screen.availHeight;
        }
        if (document.documentElement.clientHeight) {
            iDh = document.documentElement.clientHeight - iBorder;
            iDw = document.documentElement.clientWidth - iBorder;
        } else {
            iDh = document.body.clientHeight - iBorder;
            iDw = document.body.clientWidth - iBorder;
        }
    } else {
        iDw = window.innerWidth - iBorder;
        iDh = window.innerHeight - iBorder;
    }

    if (mTable != null && iDw != 0 && iDh != 0) {
        if (iDw > (iSw - 100)) iDw = iSw - 100;
        if (iDh > (iSh - 100)) iDh = iSh - 100;
        iDw = mTable.offsetWidth - iDw;
        iDh = mTable.offsetHeight - iDh;
        window.resizeBy(iDw, iDh);
        //alert("1-" + iSw + ":" + iSh);
        //window.moveTo((iSw - 800) / 2, (iSh - 600) / 2);
    } else {
        alert("2-"+iSw + ":" + iSh);
        window.resizeTo(800, 600);
        //window.moveTo((iSw - 800) / 2, ((iSh - 600) / 2) - 50);
    }
    self.focus();
}

function ad_Close(iValue) {
    self.setTimeout("self.close();", iValue);
    return (false);
}

function ad_Print() {
    window.print();
    return (false);
}

userAgent = window.navigator.userAgent;
browserVers = parseInt(userAgent.charAt(userAgent.indexOf("/") + 1), 10);
mustInitImg = true;
function initImgID() {
    var di = document.images;
    if (mustInitImg && di) {
        for (var i = 0; i < di.length; i++) {
            if (!di[i].id) di[i].id = di[i].name;
        }
        mustInitImg = false;
    }
}

function ad_FindElement(mName, mLayer) {
    var d = document;
    if (browserVers < 4)
        return d[mName];
    if ((browserVers >= 6) && (d.getElementById)) {
        initImgID;
        return (d.getElementById(mName));
    }
    var cd = mLayer ? mLayer.document : d;
    var elem = cd[mName];
    if (!elem) {
        for (var i = 0; i < cd.layers.length; i++) {
            elem = findElement(mName, cd.layers[i]);
            if (elem)
                return elem;
        }
    }
    return elem;
}

function ad_ChangeImages(mName, mImage) {
    var d = document;
    var img;
    img = null;
    if (d.images) {
        if (d.layers) {
            img = ad_FindElement(mName, 0);
        } else {
            img = d.images[mName];
        }
    }
    if (!img && d.getElementById) {
        img = d.getElementById(mName);
    }
    if (!img && d.getElementsByName) {
        var elms = d.getElementsByName(mName);
        if (elms) {
            for (j = 0; j < elms.length; j++) {
                if (elms[j].src) {
                    img = elms[j];
                    break;
                }
            }
        }
    }
    if (img) {
        img.src = mImage;
    }
}

function ad_GotoLink(mLink, mFrame) {
    if (mFrame.length) {
        var hasFrame = false;
        for (i = 0; i < parent.frames.length; i++) { if (parent.frames[i].name == mFrame) { hasFrame = true; break; } }
        if (hasFrame == true)
            parent.frames[mFrame].location = mLink;
        else
            window.open(mLink, mFrame, "");
    }
    else location = mLink;
}

function ad_CheckFrame() {
    if (location.search.length > 1) {
        var mPara = location.search.substring(1, location.search.length);
        var mS = /=/;
        var iPos = mPara.search(mS);
        var mFrameName = mPara.substring(0, iPos);
        var mParamText = mPara.substring(iPos + 1, mPara.length);
        if (self.frames[mFrameName])
            self.frames[mFrameName].location.replace(mParamText);
    }
}

function ad_CheckSite(mFrameSite, mFrameName, mMsg) {
    if (self == top || !parent.frames[mFrameName]) {
        var mSite = mFrameSite + "?" + mFrameName + "=" + location.href + location.search;
        if (location.href.search("localhost") >= 0 && mMsg != "") {
            var mFun = "onclick=\"ad_GotoLink('" + mSite + "', '_self'); return(false);\"";
            document.write("<input type=\"submit\" name=\"frmaecheck\" value=\"" + mMsg + "\" " + mFun + "><br />");
            return;
        }
        else
            location = mSite;
    }
}

function ad_ShowPopupPic(mName, mImage) {
    el = ad_FindElement(mName);
    ei = ad_FindElement(mImage);
    if (el != null) { el.style.display = "none"; }
    if (ei != null) { ei.style.display = ""; }
    ad_Resize(20);
}	

