/***********************************************
* Pop-it menu- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

var defaultMenuWidth="150px" //set default menu width.
var bContextMenuEnabled = true;

////No need to edit beyond here
var oContextMenuElement = null;
var strContextMenuEventTyp = "";

if (ie5||ns6)
document.write('<div id="popitmenu" onMouseover="clearhidemenu();" onMouseout="dynamichide(event)"></div>')






function iecompattest(){
return (document.compatMode && document.compatMode.indexOf("CSS")!=-1)? document.documentElement : document.body
}


function showmenu(e, ThisWhich, optWidth, vParams, optPosMode, offsetX, offsetY){
if (!document.all &&!document.getElementById) return;
if (!bContextMenuEnabled) return;
strContextMenuEventTyp = ie5 ? event.type : e.type;
var temp = ie5 ? GetEventSource(event) : GetEventSource(e);
if ((strContextMenuEventTyp == "click") && (oContextMenuElement == temp )) {hidemenu(); return;}
var which = ThisWhich;
var temp;
if ((typeof vParams!="undefined") && (vParams != '') && (vParams.length)) {
	for (i=0; i<=vParams.length-1;i+=2) {
		while (true) {
			temp = which.replace(vParams[i], vParams[i+1]);
			if (temp == which) break;
			which = temp;
		};
	};
};
clearhidemenu()
menuobj=ie5? document.all.popitmenu : document.getElementById("popitmenu")
menuobj.innerHTML=which
if ((typeof optWidth=="undefined")  || (optWidth == '')) optWidth = defaultMenuWidth;

if (optWidth.indexOf('px', 0) < 0) optWidth = optWidth + 'px';
menuobj.style.width=optWidth;
menuobj.contentwidth=menuobj.offsetWidth
menuobj.contentheight=menuobj.offsetHeight

oContextMenuElement = ie5 ? GetEventSource(event) : GetEventSource(e);
if ((typeof optPosMode=="undefined")  || (optPosMode == '') || (optPosMode == 'mouse')) {
	eventX=ie5? event.clientX : e.clientX
	eventY=ie5? event.clientY : e.clientY
} else {
	if (!oContextMenuElement) return;
	var pos = GetElementPosition(oContextMenuElement);
	eventX=pos.x + offsetX;
	eventY=pos.y + offsetY;
};


//Find out how close the mouse is to the corner of the window
var rightedge=ie5? iecompattest().clientWidth-eventX : window.innerWidth-eventX
var bottomedge=ie5? iecompattest().clientHeight-eventY : window.innerHeight-eventY
//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<menuobj.contentwidth)
//move the horizontal position of the menu to the left by it's width
menuobj.style.left=ie5? iecompattest().scrollLeft+eventX-menuobj.contentwidth+"px" : window.pageXOffset+eventX-menuobj.contentwidth+"px"
else
//position the horizontal position of the menu where the mouse was clicked
menuobj.style.left=ie5? iecompattest().scrollLeft+eventX+"px" : window.pageXOffset+eventX+"px"
//same concept with the vertical position
if (bottomedge<menuobj.contentheight)
menuobj.style.top=ie5? iecompattest().scrollTop+eventY-menuobj.contentheight+"px" : window.pageYOffset+eventY-menuobj.contentheight+"px"
else
menuobj.style.top=ie5? iecompattest().scrollTop+eventY+"px" : window.pageYOffset+eventY+"px"
menuobj.style.visibility="visible"
return false
}

function contains_ns6(a, b) {
//Determines if 1 element in contained in another- by Brainjar.com
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}

function hidemenu(){
if (window.menuobj) menuobj.style.visibility="hidden"
strContextMenuEventTyp = "";
oContextMenuElement=null;
}

function dynamichide(e){
if (ie5&&!menuobj.contains(e.toElement))
hidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
hidemenu()
}

function delayhidemenu(){
delayhide=setTimeout("hidemenu()",500)
}

function clearhidemenu(){
if (window.delayhide)
clearTimeout(delayhide)
}

function EnableContextMenu(bEnabled) {
	bContextMenuEnabled = bEnabled;
};

function ContextMenuHandleDocumentOnClick() {
	if (!window.menuobj) return;
	
	var oSource = ie5? GetEventSource(event) : GetEventSource(e);
	if (!oSource || !oContextMenuElement || (oContextMenuElement != oSource)) {
		hidemenu();
		return;
	};
	if (strContextMenuEventTyp != "click") menuobj.style.visibility = (menuobj.style.visibility == "hidden") ? "visible" : "hidden";
};



