var dragx, dragy;
var dragtx, dragty;
var isDrag          = false;
var WindowsIsOpen   = false;
var MausPosX = 0;
var MausPosY = 0;
var lastopen = "";
var XMin, YMin, posW, posH;
var firefox = document.getElementById&&!document.all;

function ZeigeWindow(Seite) {
    var SiteTitel  = "";
    var SiteInhalt = "";
    var Ww1 = 320;
    var Hw1 = 240;
    var wce = "ja";
    if (xmlHttp) {
        xmlHttp.open('GET', Seite, true);
        xmlHttp.onreadystatechange = function () {
            if (xmlHttp.readyState == 4) {
                if (xmlHttp.status == 200) {
                    var dce = xmlHttp.responseXML.getElementsByTagName("WinCenter").item(0);
                    var dwX = xmlHttp.responseXML.getElementsByTagName("WinWidth").item(0);
                    var dwY = xmlHttp.responseXML.getElementsByTagName("WinHeight").item(0);
                    var da  = xmlHttp.responseXML.getElementsByTagName("WinTitel").item(0);
                    var db  = xmlHttp.responseXML.getElementsByTagName("WinInhalt").item(0);
                    var df  = xmlHttp.responseXML.getElementsByTagName("WinFooter").item(0);
                    var d1  = xmlHttp.responseXML.getElementsByTagName("WinFormStart").item(0);
                    var d2  = xmlHttp.responseXML.getElementsByTagName("WinFormEnd").item(0);
                    if (xmlHttp.responseXml) {
                        wce = dce.firstChild.nodeValue;
                        Ww1 = dwX.firstChild.nodeValue;
                        Hw1 = dwY.firstChild.nodeValue;
                        SiteTitel  = da.firstChild.nodeValue;
                        SiteInhalt = db.firstChild.nodeValue;
                        SiteFooter = df.firstChild.nodeValue;
                        SiteFormStart = d1.firstChild.nodeValue;
                        SiteFormEnd   = d2.firstChild.nodeValue;
                    } else if (xmlHttp.responseText) {
                        wce = dce.textContent;
                        Ww1 = dwX.textContent;
                        Hw1 = dwY.textContent;
                        SiteTitel = da.textContent;
                        SiteInhalt = db.textContent;
                        SiteFooter = df.textContent;
                        SiteFormStart = d1.textContent;
                        SiteFormEnd = d2.textContent;
                    }
                    AddWidget(Ww1, Hw1, SiteTitel, SiteInhalt, SiteFooter, wce, SiteFormStart, SiteFormEnd);
                } else {
                    alert('Es ist ein Problem aufgetreten.');
                }
            }
        };
        xmlHttp.send(null);
    }
}
function AddWidget(Ww, Hw, SiteTitel, SiteInhalt, SiteFooter, WinCenter, SiteFormStart, SiteFormEnd) {
    var Hw2 = Hw;
    if (WindowsIsOpen == true) {
        closeWidget('wid001');
        WindowsIsOpen = false;
    }
	if(WinCenter == "nein" && document.getElementById&&document.styleSheets) {
        var NewPosLeft = MausPosX;
        var NewPosTop  = MausPosY + 10;
        var BWidth  = document.body.clientWidth; // Breite des Browserfenster
        if ((NewPosLeft + parseInt(Ww)) >= BWidth) {
            NewPosLeft = NewPosLeft - Ww;
        }
    } else {	
        if (firefox){
            var meWidth    = window.innerWidth;
            var meHeight   = window.innerHeight;
        } else {
            var meWidth    = document.body.offsetWidth;
            var meHeight   = document.body.offsetHeight;
        }
        if (Hw2 == "") {
            Hw2 = 150;
        }
        var NewPosLeft = (meWidth - parseInt(Ww)) / 2; 
        var NewPosTop  = (meHeight - parseInt(Hw2)) / 2;
        if (document.documentElement.scrollLeft) NewPosLeft += document.documentElement.scrollLeft;
        if (document.documentElement.scrollTop)  NewPosTop  += document.documentElement.scrollTop;
    }
    var SHeight = "";
    if (Hw != "") {
        SHeight = " style='height: " + Hw + "px;'";
    }
	var wstr="<div id='wid001' class='MMBBWin' style='position: absolute; z-index: 10; top: " + NewPosTop + "px; left: " + NewPosLeft + "px; width: " + Ww + "px;'>"+
             SiteFormStart + "<div id='MMBBWinDrag' class='MMBBWinTitel'><a href=javascript:closeWidget('wid001') style='float: right; text-decoration: none;'><b>X</b></a>" + SiteTitel + "</div>"+
        	 "<div id='id1inh' class='MMBBWinInhalt'" + SHeight + ">" + SiteInhalt + "</div>"+
             "<div class='MMBBWinFooter'>" + SiteFooter + "</div>" +
             SiteFormEnd + 
        	 "</div>";
    WindowsIsOpen = true;
    var de = document.documentElement;
    
    if (window.innerHeight && window.scrollMaxY || window.innerWidth && window.scrollMaxX) {  
        yScr = window.innerHeight + window.scrollMaxY;
        xScr = window.innerWidth + window.scrollMaxX;
        var wff = (de&&de.clientWidth) || document.body.clientWidth || window.innerWidth || self.innerWidth;
        var hff = (de&&de.clientHeight) || document.body.clientHeight || window.innerHeight || self.innerHeight;
        xScr -= (window.innerWidth - wff);
        yScr -= (window.innerHeight - hff);
    } else if (document.body.scrollHeight > document.body.offsetHeight || document.body.scrollWidth > document.body.offsetWidth){
        yScr = document.body.scrollHeight;
        xScr = document.body.scrollWidth;
    } else {
        yScr = document.body.offsetHeight;
        xScr = document.body.offsetWidth;
    }
    var ref = document.getElementById("MMBBWin");
	ref.innerHTML += "<div id='wid002' style='background-color: #000000; filter:alpha(opacity=30); -moz-opacity: 0.30; opacity: 0.30; position: absolute; z-index: 9; top: 0px; left: 0px; width: " + xScr + "px; height: " + yScr + "px;'>";
	ref.innerHTML += wstr;
	ref.innerHTML += "</div>";
}

function closeWidget(id) {	
	var wind = document.getElementById("MMBBWin");
	var node2  = document.getElementById('wid002');
	wind.removeChild(node2);
	var node  = document.getElementById(id);
	wind.removeChild(node);
    WindowsIsOpen = false;
}

document.onmousemove = mouseMove;
document.onmousedown = selectMouse;
document.onmouseup = function(){
	isDrag=false;
//	if (lastopen) {
//        document.getElementById("p_" + lastopen).style.visibility = "hidden";
//    }
}
function selectMouse(e) {	
	if (firefox){
		var p = e.target;	
		if (p.attributes['id'] && p.attributes['id'].value == "MMBBWinDrag"){
			isDrag = true;
			dragx = e.pageX;
			dragy = e.pageY;
			dragtx = parseInt(document.getElementById('wid001').style.left);
			dragty = parseInt(document.getElementById('wid001').style.top);
		}
	} else {		//IE
		var p = event.srcElement;
		if (p.attributes['id'] && p.attributes['id'].value == "MMBBWinDrag"){
			isDrag = true;
            dragx = event.clientX;
            dragy = event.clientY;
            if (document.documentElement.scrollLeft) dragx += document.documentElement.scrollLeft;
            if (document.documentElement.scrollTop) dragy += document.documentElement.scrollTop;
			dragtx = parseInt(document.getElementById('wid001').style.left);
			dragty = parseInt(document.getElementById('wid001').style.top);
		}
	}
}
	

function mouseMove(e) {
    if (firefox){
        MausPosX = e.pageX;
        MausPosY = e.pageY;
    } else{		//IE
        MausPosX = event.clientX;
        MausPosY = event.clientY;
        if (document.documentElement.scrollLeft) MausPosX += document.documentElement.scrollLeft;
        if (document.documentElement.scrollTop) MausPosY += document.documentElement.scrollTop;
    }
    if (isDrag) {
	   var box = document.getElementById("wid001");
	   box.style.left = MausPosX + (dragtx - dragx) + "px";
	   box.style.top  = MausPosY + (dragty - dragy) + "px";    
    }
    if (lastopen) {
        var DivStatus = document.getElementById("p_" + lastopen).style.visibility;
        if (DivStatus != "hidden") {
            var mRight    = XMin + posW;
            var mBottom   = YMin + posH;
            var nYMin     = YMin - document.getElementById("m_" + lastopen).offsetHeight;
            if ((MausPosX >= XMin && MausPosX <= mRight) && (MausPosY >= nYMin && MausPosY <= mBottom)) {
                // nix
            } else {
                document.getElementById("p_" + lastopen).style.visibility = "hidden";
                lastopen = "";
            }
        }
    }
}





function dropdown(wdiv){

    var PopUpid = document.getElementById("p_" + wdiv);
    var Menu_id = document.getElementById("m_" + wdiv);
    var Mainid  = document.getElementById("main");

    // ################################################
    // Schliesse altes Fenster wenn eins offen ist
    if (lastopen) {
        if(lastopen != wdiv) {
            document.getElementById("p_" + lastopen).style.visibility = "hidden";
        }
    }
    var statdiv = PopUpid.style.visibility;
    //var pLeft   = getPosLeft(PopUpid);          // X Position des PopFenster
    //var pTop    = getPosTop(PopUpid);           // Y Position des PopFenster
    var pWidth  = PopUpid.offsetWidth;          // Breite des PopFenster
    var pHeight = PopUpid.offsetHeight;         // Hoehe des PopFenster
    var mLeft   = getPosLeft(Menu_id);          // X Position des Menu
    var mTop    = getPosTop(Menu_id);           // Y Position des Menu
    var mWidth  = Menu_id.offsetWidth;          // Breite des Menu
    var mHeight = Menu_id.offsetHeight;         // Höhe des Mneu
    
    var BWidth  = Mainid.offsetWidth; //document.body.clientWidth;  // Breite des Browserfenster
    // ################################################
    // Menü position neuberechnen
    var neuXTop   = mTop  + mHeight;
    var merkRight = mLeft + pWidth;
    
    if (merkRight >= BWidth) {
        mLeft = (mLeft + mWidth) - pWidth;
    }
    // ################################################
    // Menu neu positionieren
    PopUpid.style.top  = neuXTop + "px";
    PopUpid.style.left = mLeft   + "px";
    XMin = mLeft;
    YMin = neuXTop;
    posW = pWidth;
    posH = pHeight;
    // ################################################
    // Öffne neues Menu bei Klick
    if(ie) {
        if (statdiv == "visible") {
            PopUpid.style.visibility="hidden";
        } else {
            PopUpid.style.visibility="visible";
        }
    }
    if(ns) {
        if (statdiv == "show") {
            PopUpid.style.visibility="hidden";
        } else {
            document.layers[wdiv].visibility="show";
        }
    }
    if(moz) {
        if (statdiv == "visible") {
            PopUpid.style.visibility="hidden";
        } else {
            PopUpid.style.visibility="visible";
        }
    }
    //if (lastopen) {
    //    if(lastopen != wdiv) {
            //document.getElementById("p_" + lastopen).style.left = 0;
            //document.getElementById("p_" + lastopen).style.top  = 0;
    //    }
    //}

    lastopen = wdiv;
}
