var mousePosX = 0;
var mousePosY = 0;

var posX_l = Number(0);
var posX_r = Number(0);
var posY_o = Number(0);
var posY_u = Number(0);

var popUpWindowToCheck = false;

var lastPopUpIndex=Number(-1);

var idSuffix = "";
var windowOverSize = false;

function setMousePositions(MouseEvent){
    if(getBrowser()=='ie'){  
        mousePosX = Number(window.event.clientX);
        mousePosY = Number(window.event.clientY);
    }
    else{
        mousePosX = Number(MouseEvent.pageX);
        mousePosY = Number(MouseEvent.pageY);    
    }
    
    if(1==0){
        document.getElementById("ID_MOUSE_POSX").firstChild.nodeValue="mousePosX: "+mousePosX;
        document.getElementById("ID_MOUSE_POSY").firstChild.nodeValue="mousePosY: "+mousePosY;
    }
    if(popUpWindowToCheck){
        //checkPopUpPosXY();
    }
}
if(document.captureEvents){
    document.captureEvents(Event.MOUSEMOVE);
}
document.onmousemove=setMousePositions;

function getBrowser(){
    if(navigator.userAgent.toLowerCase().indexOf("firefox")>=0){
        return 'firefox';
    }
    if(navigator.userAgent.toLowerCase().indexOf("msie")>=0){
        return 'ie';
    }    
    return 'firefox';
}

function showPopUpOversize(id_suffix){   
    windowOverSize = true;
    showPopUp(id_suffix);
}

function showPopUp(id_suffix){   
        idSuffix = id_suffix;
        if(lastPopUpIndex>=0){
            //falls noch eins geöffnet ist
            for (var i = 0; i <= 20; i++){
                try{
                    doc = document.getElementById("HELP_WINDOW_"+i);
                    doc.style.display = "none";    
                } catch (e) {}
            }
        }

        document.getElementById("HELP_WINDOW_"+idSuffix).style.display = "block";
        var popUpWindowHeight = document.getElementById("HELP_WINDOW_"+idSuffix).offsetHeight;
        document.getElementById("HELP_WINDOW_"+idSuffix).style.display = "none";


        var popUpWindowWidth  = document.getElementById("HELP_WINDOW_"+idSuffix).style.width;
        //var popUpWindowHeight = document.getElementById("HELP_WINDOW_"+idSuffix).style.height;

        var pxPosition = popUpWindowWidth.indexOf("px");
        if(pxPosition>=0){
            popUpWindowWidth = Number(popUpWindowWidth.substring(0, pxPosition));
        }
       // var pyPosition = popUpWindowHeight.indexOf("px");
        //if(pyPosition>=0){
         //   popUpWindowHeight = Number(popUpWindowHeight.substring(0, pxPosition));
        //}
        lastPopUpIndex = Number(0);

        var posX=Number(0);
        var posY=Number(0);
        var posOffsetX=Number(0);
        var posOffsetY=Number(0);

        if(getBrowser()=='ie'){        
            frameHoehe = document.documentElement.clientHeight;
            posOffsetX = document.body.scrollLeft;
            posOffsetY = document.body.scrollTop;  
            posX = mousePosX;
            posY = mousePosY;
        }
        else{
            frameHoehe = window.innerHeight;  
            posOffsetX = pageXOffset;
            posOffsetY = pageYOffset;
            posX = mousePosX-posOffsetX;            
            posY = mousePosY-posOffsetY;
        }
        if((posY+popUpWindowHeight)>frameHoehe){
            if(posY-popUpWindowHeight<0){
               //while((posY+popUpWindowHeight)>frameHoehe && posY>=0){
                //    posY--;
                //}
                posY=Number(0);     
                posOver = false;
            }
            else{
                posY = posY - popUpWindowHeight;
                posOver = true;
            }
        }
        else{
            posOver = false;
        }
        var normalWindowSize=true;
        if(windowOverSize==true){
            if(posX-popUpWindowWidth<0){
                posX_l=Number(0);
                posX_r=popUpWindowWidth;
                posX = Number(posX_l) + Number(posOffsetX);
                normalWindowSize=false;
            }
        }
        if(normalWindowSize==true){
            if(posX-popUpWindowWidth>=0){
                posX_l = posX-popUpWindowWidth;
                posX_r = posX;        
                posX = Number(posX) + Number(posOffsetX) - popUpWindowWidth;
            }else{
                posX_l = posX;
                posX_r = posX+popUpWindowWidth;
                posX = Number(posX) + Number(posOffsetX);
            }
        }
        

        posY_o = posY;
        posY_u = Number(posY)+Number(popUpWindowHeight);        


        posY = Number(posY) + Number(posOffsetY);


        //while((posY+popUpWindowHeight+10)>frameHoehe && posY>0){
        //    posY--;
        //}
        doc = document.getElementById("HELP_WINDOW_"+idSuffix);
        doc.style.left = posX+"px";
        doc.style.top = posY+"px";               
        doc.style.display = "block";



        popUpWindowToCheck=true;

}

function removePopUp(){
    checkPopUpPosXY();
}

function checkPopUpPosXY(){
    var posX=0;
    var posY=0;
    var posOffsetX=0;
    var posOffsetY=0;

    if(getBrowser()=='ie'){        
        frameHoehe = window.document.body.offsetHeight;          
        posOffsetX = document.body.scrollLeft;
        posOffsetY = document.body.scrollTop;  
        posX = window.event.clientX;
        posY = window.event.clientY;
    }
    else{
        frameHoehe = window.innerHeight;  
        posOffsetX = pageXOffset;
        posOffsetY = pageYOffset;
        posX = mousePosX-posOffsetX;            
        posY = mousePosY-posOffsetY;
    }

    if(1==0){
        document.getElementById("ID_CHECK_X").firstChild.nodeValue="CheckX: "+posX;
        document.getElementById("ID_CHECK_Y").firstChild.nodeValue="CheckY: "+posY;
        document.getElementById("ID_POSX_L").firstChild.nodeValue="posX_l: "+posX_l;
        document.getElementById("ID_POSX_R").firstChild.nodeValue="posX_r: "+posX_r;
        document.getElementById("ID_POSY_O").firstChild.nodeValue="posY_o: "+posY_o;
        document.getElementById("ID_POSY_U").firstChild.nodeValue="posY_u: "+posY_u;
    }
 

    var notVisible=false;
    if(posX<(posX_l-13) || posX>(posX_r)){
        notVisible=true;
    }
    if(posY<(posY_o-13) || posY>(posY_u)){
        notVisible=true;
    }

    notVisible=true;
    if(notVisible){
        popUpWindowToCheck=false;
        windowOverSize=false;
        doc = document.getElementById("HELP_WINDOW_"+idSuffix);
        doc.style.display = "none";   
        return false;
    }
    else{
        popUpWindowToCheck=true;
        return true;
    }
}
