// Login: Challenge-Response-Authentifikation ausfuehren
function cmslogin(f) {
    if ( f.elements['username'].value.length && f.elements['password'].value.length ) {
        f.elements['response'].value = MD5(f.elements['password'].value);
        f.elements['password'].value = "";
        f.submit();
    }
}

function cmslogoff(f) {
    f.submit();
}

function setwin() {
    var dw = document.body.offsetWidth;
    while (isNaN(dw))
    {
        dw = dw.substr(0,dw.length-1);
    }
    difw = dw - document.body.clientWidth;
    win_x = document.body.scrollWidth+difw;

    var dh = document.body.offsetHeight;
    while (isNaN(dh))
    {
        dh = dh.substr(0,dh.length-1);
    }
    difh = dh - document.body.clientHeight;
    win_y = document.body.scrollHeight+difh;
    scr_x = screen.width;
    scr_y = screen.height;
    if ( scr_x < win_x ) win_x = scr_x-8;
    if ( scr_y < win_y ) win_y = scr_y-32;
    window.resizeTo(win_x+6,win_y+48);
}

function set_var(field, val) {
    frm = document.forms;
    if (frm.length) {
        for ( z=0; z<frm.length; z++ ) {
            if (frm[z].elements.length) {
                if ( frm[z].elements[field] ) {
                    frm[z].elements[field].value = val;
                }
            }
        }
    }
}

function redirect(url) {
    document.location.href=url;
}

function menu_hide_forms()
{
    for (var a=0; a<document.forms.length; a++)
    {
        for (var b=0; b<document.forms[a].elements.length; b++)
        {
            document.forms[a].elements[b].style.visibility="hidden";
        }
    }
}

function menu_show_forms()
{
    for (var a=0; a<document.forms.length; a++)
    {
        for (var b=0; b<document.forms[a].elements.length; b++)
        {
            document.forms[a].elements[b].style.visibility="visible";
        }
    }
}

function cmsmenus() {
    this.elements = [];
}

cmsmenus.prototype.add = function(src_id, tgt_id, droppos, offset, nested) {
    var srcel = document.getElementById(src_id);
    var tgtel = document.getElementById(tgt_id);
    if ( srcel && tgtel ) {
        this.elements[this.elements.length] = src_id;
        this.elements[this.elements.length] = tgt_id;
        srcel.tgtitem = new Object();
        srcel.tgtitem.id = tgt_id;
        srcel.offset  = offset;
        srcel.droppos = droppos;
        srcel.nested = nested ? true : false;
        srcel.onmouseover = function() {
            dynmenu.showsrc(this.id);
        }
        srcel.onmouseout = function() {
            document.getElementById(this.tgtitem.id).vis = false;
            window.setTimeout("dynmenu.hidesrc('"+this.id+"')", 50);
        }
    }
}

cmsmenus.prototype.showsrc = function(el) {
    var src = document.getElementById(el);
    var tgt = document.getElementById(src.tgtitem.id);
    var pos = dynmenu.getelpos(src);
    tgt.style.left = pos[0]+"px";
    tgt.style.top  = pos[1]+"px";
    tgt.style.display = 'block';
    tgt.vis = true;
    tgt.onmouseover = function() {
        this.vis = true;
    }
    tgt.onmouseout = function() {
        this.vis = false;
        window.setTimeout("dynmenu.hidetgt('"+this.id+"')", 50);
    }
}

cmsmenus.prototype.hidesrc = function(el) {
    var src = document.getElementById(el);
    var tgt = document.getElementById(src.tgtitem.id);
    if (tgt.vis) return;
    tgt.style.display = 'none';
    window.clearTimeout();
}

cmsmenus.prototype.hidetgt = function(el) {
    var tgt = document.getElementById(el);
    if (tgt.vis) return;
    tgt.style.display = 'none';
    window.clearTimeout();
}

cmsmenus.prototype.getelpos = function(el) {
    if ( el.nested ) {
        return([el.clientWidth,el.offsetTop]);
    }
    var xpos = ypos = 0;
    var x = y = 0;
    var o_el = el;
    if ( !el.offset ) el.offset = [0,0];

    if ( document.getElementById ) {
        if ( !el ) {
            x = 0;
            y = 0;
        }
        xpos = el.offsetLeft;
        ypos = el.offsetTop;
        while( (el = el.offsetParent) != null ) {
            if (el.style && el.style.display=="none") {
                el.style.display="block";
            }
            xpos += el.offsetLeft;
            ypos += el.offsetTop;
        }
    } else {
        x = 0;
        y = 0;
    }

    switch(o_el.droppos) {
        case "tl":
        break;
        case "tr":
        xpos = xpos+o_el.offsetWidth;
        break;
        case "bl":
        ypos = ypos+o_el.offsetHeight;
        break;
        case "br":
        xpos = xpos+o_el.offsetWidth;
        ypos = ypos+o_el.offsetHeight;
        break;
        default:
        break;
    }
    x = xpos+o_el.offset[0];
    y = ypos+o_el.offset[1];
    return([x,y]);
}

var dynmenu = new cmsmenus();

window.onunload = function() {
    for ( z=0; z<dynmenu.elements.length; z++) {
        el = document.getElementById(dynmenu.elements[z]);
        el.vis = null;
        el.tgtitem = null;
        el.nested = null;
        el.offset  = null;
        el.droppos = null;
        el.onmouseover = null;
        el.onmouseout = null;
    }
    dynmenu = null;
}