// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 27/02/2008 - Improved popup position
// 15/07/2011 - I254 - xsl-common : toggleBox issue in Firefox 4 and Safari
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	var cmScroll	= {x:0,y:0},
	 	cmMouse		= {x:0,y:0},
		cmWindow	= {w:0,h:0};

function cmAddEvent(o,e,f){if(o.addEventListener){o.addEventListener(e,f,false);}else if(o.attachEvent){o.attachEvent('on'+e,f);}}

function cmCaptureEvent(event)
{
		event=event||window.event;

	var cmDocType	= (document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body;
		cmScroll.x	= document.all ? cmDocType.scrollLeft : pageXOffset;
		cmScroll.y	= document.all ? cmDocType.scrollTop : pageYOffset;
		cmMouse.x 	= event.clientX+cmScroll.x;
		cmMouse.y 	= event.clientY+cmScroll.y;
		cmWindow.w 	= cmDocType.clientWidth+cmScroll.x;
		cmWindow.h 	= cmDocType.clientHeight+cmScroll.y;
}

cmAddEvent(document,"click",cmCaptureEvent);

function toggleBox( obj, lyr, iState, iPosition)
{
	// TARGET EXIST ?

		var sr = document.getElementById(lyr); if(!sr){ return; }

	// CREATE THE POPUP ?

		var tb = document.getElementById("cmPopup");

		if(!tb)
		{
			tb					= document.createElement('div');
			tb.id				= "cmPopup";
			tb.style.position 	= "absolute";

			tb.onmouseout 	= function(){ tb.timer = setTimeout(function(){tb.style.display="none";},150) };
			tb.onmouseover 	= function(){ clearTimeout(tb.timer); };

			document.body.appendChild(tb);
		}

	// FILL THE POPUP FROM TARGET

		tb.innerHTML = ( sr.innerHTML.indexOf("ToggleBox") != -1 ) ? sr.innerHTML : "<table class='ToggleBox' width='160'><tr><td align='center'>"+sr.innerHTML+"</td></tr></table>";

	// SHOW AND POSITION THE POPUP

		setTimeout(function(){

			tb.style.display  	= iState ? "block" : "none";

			var tx=0,ty=0,tw=160,th=100;

			if((cmMouse.x+tw)>cmWindow.w){tx=(cmWindow.w-tw)-10;}
			if((cmMouse.y+th)>cmWindow.h){ty=(cmWindow.h-th);}

			tx = (tx) ? tx : cmMouse.x;
			ty = (ty) ? ty : cmMouse.y;

			tb.style.left	= (tx-5) + "px";
			tb.style.top	= (ty-5) + "px";

		},10);
}

// OLD EUROPA TEMPLATE

function ResetShortcuts(){if(document.LangForm != null){for(var i = 0; i < document.LangForm.Language.length; i++){if(document.LangForm.Language.options[i].defaultSelected == true){document.LangForm.Language.options[i].selected=true}}}}
function JumpMenu(item){document.location=item;}

// OLD FUNCTION ( Keep for backward compatibility? )

function findPosX(obj){var curleft=0;if(obj.offsetParent){while(obj.offsetParent){if(obj.style.position != 'relative'){curleft += obj.offsetLeft;}obj=obj.offsetParent;}}else if(obj.x){curleft += obj.x;}return curleft;}
function findPosY(obj){var curtop=0;if(obj.offsetParent){while(obj.offsetParent){if(obj.style.position != 'relative'){curtop += obj.offsetTop;}obj=obj.offsetParent;}}else if(obj.y){curtop += obj.y;} return curtop;}
function getObj(name){if(document.getElementById){this.obj=document.getElementById(name);this.style = document.getElementById(name).style;}else if (document.all){this.obj = document.all[name];this.style = document.all[name].style;}else if (document.layers){if (document.layers[name]){this.obj = document.layers[name];this.style = document.layers[name];}else{this.obj = document.layers.testP.layers[name];this.style = document.layers.testP.layers[name];}}}

