
//Pop-it menu- By Dynamic Drive
//For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
//Reauthored in places by Lewis Harvey - Ison Distribution.
//This credit MUST stay intact for use


 //Browser check

var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
var ns6=document.getElementById&&!document.all
var ns4=document.layers

//A function to display a menu on the window
function showmenu(e,item){

var current = linkset[item];

var which = '';
var i;
popOut('selectForm',1);

if (!document.all&&!document.getElementById&&!document.layers)
return

clearhidemenu()

menuobj=ie4? document.all.popmenu : ns6? document.getElementById("popmenu") : ns4? document.popmenu : ""
menuobj.thestyle=(ie4||ns6)? menuobj.style : menuobj

if (ie4||ns6){
	menuobj.innerHTML='<layer name=gui bgColor=#E6E6E6 width="220" onmouseover="clearhidemenu()" onmouseout="delayhidemenu()">';
	for(i=0;i<current.length;i++){
		if( (current[i][2] == 'c' && cat_history[current[i][3]]=='1') || (current[i][2] == 'g' && group_history[current[i][3]]=='1') ){
	  		which = '<div class="menuitems"><a href="'+current[i][0]+'" style="color:#00CC00">'+current[i][1]+'</a></div>';
		} else {
	  		which = '<div class="menuitems"><a href="'+current[i][0]+'">'+current[i][1]+'</a></div>';
		}
		menuobj.innerHTML+=which;
	menuobj.innerHTML+='</layer>';
}
}
else{
	
menuobj.document.write('<layer name=gui bgColor=#E6E6E6 width="220" onmouseover="clearhidemenu()" onmouseout="delayhidemenu()">')
	for(i=0;i<current.length;i++){
		if( (current[i][2] == 'c' && cat_history[current[i][3]]=='1') || (current[i][2] == 'g' && group_history[current[i][3]]=='1') ){
  			which = '<div class="menuitems"><a href="'+current[i][0]+'" style="color:#00CC00">'+current[i][1]+'</a></div><br>';
		} else {
	  		which = '<div class="menuitems"><a href="'+current[i][0]+'">'+current[i][1]+'</a></div><br>';
		}
		menuobj.document.write(which);
	}
menuobj.document.write('</layer>')
menuobj.document.close()
}

menuobj.contentwidth=(ie4||ns6)? menuobj.offsetWidth : menuobj.document.gui.document.width
menuobj.contentheight=(ie4||ns6)? menuobj.offsetHeight : menuobj.document.gui.document.height
eventX=ie4? event.clientX : ns6? e.clientX : e.x
eventY=ie4? event.clientY : ns6? e.clientY : e.y

//Find out how close the mouse is to the corner of the window
var rightedge=ie4? document.body.clientWidth-eventX : window.innerWidth-eventX
var bottomedge=ie4? document.body.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.thestyle.left=ie4? document.body.scrollLeft+eventX-menuobj.contentwidth : ns6? window.pageXOffset+eventX-menuobj.contentwidth : eventX-menuobj.contentwidth
else
//position the horizontal position of the menu to the right of the navigation bar
menuobj.thestyle.left=ie4? document.body.scrollLeft=menuobj.contentwidth-45 : ns6? window.pageXOffset+175 : eventX

//same concept with the vertical position
if (bottomedge<menuobj.contentheight){
//menuobj.thestyle.top=ie4? document.body.scrollTop+eventY-(menuobj.contentheight/2) : ns6? window.pageYOffset+eventY-menuobj.contentheight : eventY-(menuobj.contentheight/2)
var wheight=ie4? document.body.clientHeight : window.innerHeight

if( wheight < menuobj.contentheight )
menuobj.thestyle.top=ie4? document.body.scrollTop : ns6? window.pageYOffset: 0
else
menuobj.thestyle.top=ie4? document.body.scrollTop+event.clientY-(menuobj.contentheight-bottomedge) : ns6? window.pageYOffset+eventY-(menuobj.contentheight-bottomedge): eventY-(menuobj.contentheight-bottomedge)
if( (wheight-100) < menuobj.contentheight )
  popOut('selectForm',0)
}
else
menuobj.thestyle.top=ie4? document.body.scrollTop+event.clientY-10  : ns6? window.pageYOffset+eventY : eventY
menuobj.thestyle.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(e,state){
if (window.menuobj)
menuobj.thestyle.visibility=(ie4||ns6)? "hidden" : "hide"
popOut('selectForm',1);
}



function dynamichide(e){
if (ie4&&!menuobj.contains(e.toElement))
delayhidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
hidemenu()
}

function delayhidemenu(){
//if (ie4||ns6||ns4)
delayhide=setTimeout("hidemenu()",1250)
}

function clearhidemenu(){
if (window.delayhide)
clearTimeout(delayhide)
}

function highlightmenu(e,state){
if (document.all)
source_el=event.srcElement
else if (document.getElementById)
source_el=e.target
if (source_el.className=="menuitems" ){
source_el.id=(state=="on")? "mouseoverstyle" : ""
}
else{
while(source_el.id!="popmenu"){
source_el=document.getElementById? source_el.parentNode : source_el.parentElement
if (source_el.className=="menuitems"){
source_el.id=(state=="on")? "mouseoverstyle" : ""
}
}
}
}


//if (ie4||ns6)
//document.onclick=hidemenu

/********** FIX for menu over select problem ***************/
/* Need to create a div around the form, and call popOut('divID') to hide the form */
/* see http://www.felgall.com/jstip28.htm */
var DH = 0;
var an = 0;
var al = 0;
var ai = 0;

if (document.getElementById) {
	ai = 1;
	DH = 1;
	}
else {
	if (document.all) {
		al = 1;
		DH = 1;
	} else {
		browserVersion = parseInt(navigator.appVersion);
		if ((navigator.appName.indexOf('Netscape') != -1) && (browserVersion == 4)) {
			an = 1; DH = 1;
		}
	}
}

function fd(oi,ws) {
	if (ws == 1) {
		if (ai) {
			return (document.getElementById(oi).style);
			}
		else {
			if (al) {
				return (document.all[oi].style);
			}
			else {
				if (an) {
					return (document.layers[oi]);
				}
			};
		}
	}
	else {
		if (ai) {
			return (document.getElementById(oi));
		}
		else {
			if (al) {
				return (document.all[oi]);
			}
			else {
				if (an) {
					return (document.layers[oi]);
				}
			};
		}
	}
}

function popOut(oi,inout) {
	if (DH) {
		ds = fd(oi,1);
		st = ds.visibility;
		if (inout==0) ds.visibility = "hidden";
		else ds.visibility = "visible";
	}
}


