var globals = {} ;


function CallEngine(code, data)
{
    window.navigate("app:" + code + "@" + data);
}

function SetupUserVariables(item, data)
{
    globals[item] = data;
}

function BuyLink(lang)
{
    if (globals["buylink_" + lang] != null) {
        window.open(globals["buylink_" + lang]);
    } else {
        window.open("http://www.softunity.com/" + ecdnum + "/");
    }
}


function RFinish() {
    CallEngine(20011, "NormalFinish");
}

function SetAcid(acid) {
    document.forms['actidform'].elements['actid'].value = acid;
}

function SaveSettings() {
    var acid = document.forms['actidform'].elements['actid'].value ;
    CallEngine(20004, acid);
}

function SaveRCode() {
    var acid = document.forms['respform'].elements['rcode'].value ;
    CallEngine(20012, acid);
}

// Sprachermittlung und Enginestart im Loader

function initLoader(code, data)
{
    //    CallEngine(0,"WinL");

    if (navigator.appName == 'Netscape')
        var language = navigator.language
    else
        var language = navigator.browserLanguage


    if (language.indexOf('de') > -1) lang = "d";
    else if (language.indexOf('fr') > -1) lang = "f";
    else if (language.indexOf('it') > -1) lang = "i";
    else lang = "e";

    window.location = "start_" + lang + ".htm";

}


function changenext() {
    SaveSettings();
    if (document.actidform.actid.value == "") {
        document.naviform.btnext.style.color = "#aaaaaa";
    } else {
        document.naviform.btnext.style.color = "#000000";
    }
}


function fnPaste() {
    var sNewString = "";
    event.returnValue = false;
    document.actidform.actid.value = window.clipboardData.getData("Text", sNewString);
    changenext();
}


function changenext2() {
    if (document.respform.rcode.value == "") {
        document.naviform.btnext.style.color = "#aaaaaa";
    } else {
        document.naviform.btnext.style.color = "#000000";
    }
    CallEngine(20012, document.respform.rcode.value);
}

function fnPaste2() {
    var sNewString = "";
    event.returnValue = false;
    document.respform.rcode.value = window.clipboardData.getData("Text", sNewString);
    changenext2();
}


// step3_d -> Radio-Button-Auswahl und Weiter Button
function gonext() {
    for (i = 0; i < (document.actmethod.length); i++) {
        if (document.actmethod.method[i].checked) {
            nextfile = document.actmethod.method[i].value
        }
    }
    eval("location='" + nextfile + "'");
}


// Dreamweaver Funktionen

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
    if (init == true) with (navigator) {
        if ((appName == "Netscape") && (parseInt(appVersion) == 4)) {
            document.MM_pgW = innerWidth;
            document.MM_pgH = innerHeight;
            onresize = MM_reloadPage;
        }
    }
    else if (innerWidth != document.MM_pgW || innerHeight != document.MM_pgH) location.reload();
}
MM_reloadPage(true);


function MM_jumpMenu(targ, selObj, restore) { //v3.0
    eval(targ + ".location='" + selObj.options[selObj.selectedIndex].value + "'");
    if (restore) selObj.selectedIndex = 0;
}

function MM_goToURL() { //v3.0
    var i, args = MM_goToURL.arguments;
    document.MM_returnValue = false;
    for (i = 0; i < (args.length - 1); i += 2) eval(args[i] + ".location='" + args[i + 1] + "'");
}

function MM_callJS(jsStr) { //v2.0
    return eval(jsStr)
}


function MM_findObj(n, d) { //v4.01
    var p,i,x;
    if (!d) d = document;
    if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
        d = parent.frames[n.substring(p + 1)].document;
        n = n.substring(0, p);
    }
    if (!(x = d[n]) && d.all) x = d.all[n];
    for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
    if (!x && d.getElementById) x = d.getElementById(n);
    return x;
}

function MM_showHideLayers() { //v6.0
    var i,p,v,obj,args = MM_showHideLayers.arguments;
    for (i = 0; i < (args.length - 2); i += 3) if ((obj = MM_findObj(args[i])) != null) {
        v = args[i + 2];
        if (obj.style) {
            obj = obj.style;
            v = (v == 'show')?'visible':(v == 'hide')?'hidden':v;
        }
        obj.visibility = v;
    }
}

function MM_dragLayer(objName, x, hL, hT, hW, hH, toFront, dropBack, cU, cD, cL, cR, targL, targT, tol, dropJS, et, dragJS) { //v4.01
    //Copyright 1998 Macromedia, Inc. All rights reserved.
    var i,j,aLayer,retVal,curDrag = null,curLeft,curTop,IE = document.all,NS4 = document.layers;
    var NS6 = (!IE && document.getElementById), NS = (NS4 || NS6);
    if (!IE && !NS) return false;
    retVal = true;
    if (IE && event) event.returnValue = true;
    if (MM_dragLayer.arguments.length > 1) {
        curDrag = MM_findObj(objName);
        if (!curDrag) return false;
        if (!document.allLayers) {
            document.allLayers = new Array();
            with (document) if (NS4) {
                for (i = 0; i < layers.length; i++) allLayers[i] = layers[i];
                for (i = 0; i < allLayers.length; i++) if (allLayers[i].document && allLayers[i].document.layers)
                    with (allLayers[i].document) for (j = 0; j < layers.length; j++) allLayers[allLayers.length] = layers[j];
            } else {
                if (NS6) {
                    var spns = getElementsByTagName("span");
                    var all = getElementsByTagName("div");
                    for (i = 0; i < spns.length; i++) if (spns[i].style && spns[i].style.position) allLayers[allLayers.length] = spns[i];
                }
                for (i = 0; i < all.length; i++) if (all[i].style && all[i].style.position) allLayers[allLayers.length] = all[i];
            }
        }
        curDrag.MM_dragOk = true;
        curDrag.MM_targL = targL;
        curDrag.MM_targT = targT;
        curDrag.MM_tol = Math.pow(tol, 2);
        curDrag.MM_hLeft = hL;
        curDrag.MM_hTop = hT;
        curDrag.MM_hWidth = hW;
        curDrag.MM_hHeight = hH;
        curDrag.MM_toFront = toFront;
        curDrag.MM_dropBack = dropBack;
        curDrag.MM_dropJS = dropJS;
        curDrag.MM_everyTime = et;
        curDrag.MM_dragJS = dragJS;
        curDrag.MM_oldZ = (NS4)?curDrag.zIndex:curDrag.style.zIndex;
        curLeft = (NS4)?curDrag.left:(NS6)?parseInt(curDrag.style.left):curDrag.style.pixelLeft;
        if (String(curLeft) == "NaN") curLeft = 0;
        curDrag.MM_startL = curLeft;
        curTop = (NS4)?curDrag.top:(NS6)?parseInt(curDrag.style.top):curDrag.style.pixelTop;
        if (String(curTop) == "NaN") curTop = 0;
        curDrag.MM_startT = curTop;
        curDrag.MM_bL = (cL < 0)?null:curLeft - cL;
        curDrag.MM_bT = (cU < 0)?null:curTop - cU;
        curDrag.MM_bR = (cR < 0)?null:curLeft + cR;
        curDrag.MM_bB = (cD < 0)?null:curTop + cD;
        curDrag.MM_LEFTRIGHT = 0;
        curDrag.MM_UPDOWN = 0;
        curDrag.MM_SNAPPED = false;
        //use in your JS!
        document.onmousedown = MM_dragLayer;
        document.onmouseup = MM_dragLayer;
        if (NS) document.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP);
    } else {
        var theEvent = ((NS)?objName.type:event.type);
        if (theEvent == 'mousedown') {
            var mouseX = (NS)?objName.pageX : event.clientX + document.body.scrollLeft;
            var mouseY = (NS)?objName.pageY : event.clientY + document.body.scrollTop;
            var maxDragZ = null;
            document.MM_maxZ = 0;
            for (i = 0; i < document.allLayers.length; i++) {
                aLayer = document.allLayers[i];
                var aLayerZ = (NS4)?aLayer.zIndex:parseInt(aLayer.style.zIndex);
                if (aLayerZ > document.MM_maxZ) document.MM_maxZ = aLayerZ;
                var isVisible = (((NS4)?aLayer.visibility:aLayer.style.visibility).indexOf('hid') == -1);
                if (aLayer.MM_dragOk != null && isVisible) with (aLayer) {
                    var parentL = 0;
                    var parentT = 0;
                    if (NS6) {
                        parentLayer = aLayer.parentNode;
                        while (parentLayer != null && parentLayer.style.position) {
                            parentL += parseInt(parentLayer.offsetLeft);
                            parentT += parseInt(parentLayer.offsetTop);
                            parentLayer = parentLayer.parentNode;
                        }
                    } else if (IE) {
                        parentLayer = aLayer.parentElement;
                        while (parentLayer != null && parentLayer.style.position) {
                            parentL += parentLayer.offsetLeft;
                            parentT += parentLayer.offsetTop;
                            parentLayer = parentLayer.parentElement;
                        }
                    }
                    var tmpX = mouseX - (((NS4)?pageX:((NS6)?parseInt(style.left):style.pixelLeft) + parentL) + MM_hLeft);
                    var tmpY = mouseY - (((NS4)?pageY:((NS6)?parseInt(style.top):style.pixelTop) + parentT) + MM_hTop);
                    if (String(tmpX) == "NaN") tmpX = 0;
                    if (String(tmpY) == "NaN") tmpY = 0;
                    var tmpW = MM_hWidth;
                    if (tmpW <= 0) tmpW += ((NS4)?clip.width :offsetWidth);
                    var tmpH = MM_hHeight;
                    if (tmpH <= 0) tmpH += ((NS4)?clip.height:offsetHeight);
                    if ((0 <= tmpX && tmpX < tmpW && 0 <= tmpY && tmpY < tmpH) && (maxDragZ == null
                            || maxDragZ <= aLayerZ)) {
                        curDrag = aLayer;
                        maxDragZ = aLayerZ;
                    }
                }
            }
            if (curDrag) {
                document.onmousemove = MM_dragLayer;
                if (NS4) document.captureEvents(Event.MOUSEMOVE);
                curLeft = (NS4)?curDrag.left:(NS6)?parseInt(curDrag.style.left):curDrag.style.pixelLeft;
                curTop = (NS4)?curDrag.top:(NS6)?parseInt(curDrag.style.top):curDrag.style.pixelTop;
                if (String(curLeft) == "NaN") curLeft = 0;
                if (String(curTop) == "NaN") curTop = 0;
                MM_oldX = mouseX - curLeft;
                MM_oldY = mouseY - curTop;
                document.MM_curDrag = curDrag;
                curDrag.MM_SNAPPED = false;
                if (curDrag.MM_toFront) {
                    eval('curDrag.' + ((NS4)?'':'style.') + 'zIndex=document.MM_maxZ+1');
                    if (!curDrag.MM_dropBack) document.MM_maxZ++;
                }
                retVal = false;
                if (!NS4 && !NS6) event.returnValue = false;
            }
        } else if (theEvent == 'mousemove') {
            if (document.MM_curDrag) with (document.MM_curDrag) {
                var mouseX = (NS)?objName.pageX : event.clientX + document.body.scrollLeft;
                var mouseY = (NS)?objName.pageY : event.clientY + document.body.scrollTop;
                newLeft = mouseX - MM_oldX;
                newTop = mouseY - MM_oldY;
                if (MM_bL != null) newLeft = Math.max(newLeft, MM_bL);
                if (MM_bR != null) newLeft = Math.min(newLeft, MM_bR);
                if (MM_bT != null) newTop = Math.max(newTop, MM_bT);
                if (MM_bB != null) newTop = Math.min(newTop, MM_bB);
                MM_LEFTRIGHT = newLeft - MM_startL;
                MM_UPDOWN = newTop - MM_startT;
                if (NS4) {
                    left = newLeft;
                    top = newTop;
                }
                else if (NS6) {
                    style.left = newLeft;
                    style.top = newTop;
                }
                else {
                    style.pixelLeft = newLeft;
                    style.pixelTop = newTop;
                }
                if (MM_dragJS) eval(MM_dragJS);
                retVal = false;
                if (!NS) event.returnValue = false;
            }
        } else if (theEvent == 'mouseup') {
            document.onmousemove = null;
            if (NS) document.releaseEvents(Event.MOUSEMOVE);
            if (NS) document.captureEvents(Event.MOUSEDOWN); //for mac NS
            if (document.MM_curDrag) with (document.MM_curDrag) {
                if (typeof MM_targL == 'number' && typeof MM_targT == 'number' &&
                    (Math.pow(MM_targL - ((NS4)?left:(NS6)?parseInt(style.left):style.pixelLeft), 2) +
                     Math.pow(MM_targT - ((NS4)?top:(NS6)?parseInt(style.top):style.pixelTop), 2)) <= MM_tol) {
                    if (NS4) {
                        left = MM_targL;
                        top = MM_targT;
                    }
                    else if (NS6) {
                        style.left = MM_targL;
                        style.top = MM_targT;
                    }
                    else {
                        style.pixelLeft = MM_targL;
                        style.pixelTop = MM_targT;
                    }
                    MM_SNAPPED = true;
                    MM_LEFTRIGHT = MM_startL - MM_targL;
                    MM_UPDOWN = MM_startT - MM_targT;
                }
                if (MM_everyTime || MM_SNAPPED) eval(MM_dropJS);
                if (MM_dropBack) {
                    if (NS4) zIndex = MM_oldZ; else style.zIndex = MM_oldZ;
                }
                retVal = false;
                if (!NS) event.returnValue = false;
            }
            document.MM_curDrag = null;
        }
        if (NS) document.routeEvent(objName);
    }
    return retVal;
}

function MM_changeProp(objName, x, theProp, theValue) { //v6.0
    var obj = MM_findObj(objName);
    if (obj && (theProp.indexOf("style.") == -1 || obj.style)) {
        if (theValue == true || theValue == false)
            eval("obj." + theProp + "=" + theValue);
        else eval("obj." + theProp + "='" + theValue + "'");
    }
}

function SetECDVersion(versiontext) {
    pcode.innerText = versiontext;
}

function SetHardwareCode(versiontext) {
    hcode.innerText = versiontext;
}

function SetActivationCode(versiontext) {
    acode.innerText = versiontext;
}

function SetValidDays(versiontext) {
    if ((versiontext != "") && (versiontext >= 0)) {
        daysleft.innerText = versiontext;
    } else {
        alert("HH");
    }
}

function SetAutoProxy() {
    actmethod.proxy[0].checked = 1;
}

function SetNoProxy() {
    actmethod.proxy[1].checked = 1;
}

function SetProxy2() {
    MM_changeProp('proxyserver', '', 'style.color', '#000000', 'INPUT/TEXT');
    MM_changeProp('proxyport', '', 'style.color', '#000000', 'INPUT/TEXT');
    actmethod.proxy[2].checked = 1;
}

function SetProxyDflt(server, port)
{
    actmethod.proxyserver.value = server;
    actmethod.proxyport.value = port;

}

function SaveProxyCfg() {
    if (actmethod.proxy[0].checked == 1)
        CallEngine(20021, "0");
    else if (actmethod.proxy[1].checked == 1)
        CallEngine(20021, "1");
    else if (actmethod.proxy[2].checked == 1) {
        CallEngine(20021, "2");
        CallEngine(20023, actmethod.proxyserver.value + ',' + actmethod.proxyport.value);
    }

}

function progressBar(zahl)
{
    var maxdurchlauf = 100;
    var maxbreite = 400;
    var mustbemin = 0;

    if (zahl <= maxdurchlauf)
    {
        if (zahl >= mustbemin)
        {
            document.getElementById("progress").style.width = maxbreite * zahl / maxdurchlauf + "px";
            document.getElementById("fortschritt").innerHTML = Math.round(zahl / maxdurchlauf * 100) + "%";
            mustbemin = eval(zahl + maxdurchlauf / 100);
        }
    }
    else
    {
        document.getElementById("progress").style.width = maxbreite + "px";
        document.getElementById("fortschritt").innerHTML = "100%";
    }
}

function copypcode() {
    // Kopiert PCode in Zwischenablage (Workaround)
    var popupWindow = window.open('', '', 'width=300,height=20,left=100,top=50');
    popupWindow.document.write("<html><body>" + pcode.innerText);
    popupWindow.document.write("<script>var bResult = window.clipboardData.setData('Text','" + pcode.innerText + "');<\/script>");
    popupWindow.document.write("</body></html>");
}


function clickLink(linkId)
{
    var fireOnThis = document.getElementById(linkId)
    if (fireOnThis != null) {
        if (document.createEvent)
        {
            var evObj = document.createEvent('MouseEvents')
            evObj.initEvent('click', true, false)
            fireOnThis.dispatchEvent(evObj)
        }
        else if (document.createEventObject)
        {
            fireOnThis.fireEvent('onclick')
        }
    }

}
