var openMenues = new Array();

document.onmousemove = checkMousePos

function swapImage(image, path){
	image.src = path;
}

function checkMousePos(e){
	
	var ypos = getMouseY(e)
	var xpos = getMouseX(e)
	
	if(openMenues.length > 0){			
		var run = 0;
		var openMenuesTMP = new Array();
			
		for(var i = 0; i < openMenues.length; i++){	
			if(!checkMouseOverElement(ypos, xpos, openMenues[i])){
				openMenues[i].style.display = 'none';
			} else {
				openMenuesTMP[run] = openMenues[i];
				run++;
			}
		}			
		openMenues = openMenuesTMP;			
	}
	
}

function checkMouseOverElement(ypos, xpos, obj){
	// Reload object
	obj = getObj(obj.id);

	var leftAndTop = findPos(obj);
	var left = leftAndTop[0] - 50;
	var top = leftAndTop[1] - 50;
	var bottom = leftAndTop[1] + obj.offsetHeight + 50;
	var right = leftAndTop[0] + obj.offsetWidth + 50;
	
	var over = true;	
	if(xpos < left || xpos > right || ypos < top || ypos > bottom){
		over = false;
	}
	return over;
	
}

function getMouseY(e){
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}
	return posy
}

function getMouseX(e){
	var posx = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
	}
	return posx
}

function openMenue(menueId, openerId){
	closeMenues();
	
	openMenues = new Array();
	
	var menue = getObj(menueId);
	var opener = getObj(openerId);
	
	if(menue != undefined){	
		displayMenue(menue, opener);		
		openMenues[0] = menue;		
	}
}

function displayMenue(menue, opener){	
	var leftAndTop = findPos(opener);
    var left = leftAndTop[0];
    var top = leftAndTop[1] + (opener.offsetHeight + 5);

    menue.style.left = left;
    menue.style.top = top;
    menue.style.display = 'block';
		
    var height = menue.offsetHeight;
    var width = menue.offsetWidth;
	
    if((left + width) > getWindowWidth()){
    	var newleft = left - (width -10);
    	if(newleft > 0 ){
    		menue.style.left = newleft;
    	}
    }
    if((top + height) > getWindowHeight()){
    	var newheight =  top - (height + 30);
    	if(newheight > 0){
    		menue.style.top = newheight;
    	}
    }
    	
}

function findPos(obj) {
	var leftAndTop = new Array(0,0);

	var curleft = curtop = 0;

	try{
		
		if (obj.offsetParent) {
			do {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			} while (obj = obj.offsetParent);
		}		
		leftAndTop = new Array(curleft,curtop);
		
	} catch(err){
	}
	
	return leftAndTop;
}

function closeMenues(){
	for(var i = 0; i < openMenues.length; i++){
		openMenues[i].style.display = 'none';
	}
}

function getObj(objId, formId) {
	var fullId = objId;
	if (formId != null && formId.length > 0) {
		fullId = formId + ':' + objId;
	}

	var elem = null;
	if (document.getElementById) {
		elem = document.getElementById(fullId);
	} else if (document.all) {
		elem = document.all[fullId];
	} else if (document.layers) {
		elem = document.layers[fullId];
	}
	return elem;
}

function getWindowWidth()
{
        var x = 0;
        if (self.innerHeight)
        {
                x = self.innerWidth;
        }
        else if (document.documentElement && document.documentElement.clientHeight)
        {
                x = document.documentElement.clientWidth;
        }
        else if (document.body)
        {
                x = document.body.clientWidth;
        }
        return x;
}
 
function getWindowHeight(){
        var y = 0;
        if (self.innerHeight)
        {
                y = self.innerHeight;
        }
        else if (document.documentElement && document.documentElement.clientHeight)
        {
                y = document.documentElement.clientHeight;
        }
        else if (document.body)
        {
                y = document.body.clientHeight;
        }
        return y;
}
