var i,j;
var num_menus = 5;
var offset_x = 100;
var offset_y = 5;
var offset_x_sub = 60;
var offset_y_sub = 5;
var menuwidth = 150;
function showmenu(id,x,anchorname,menuwidth) {
	//alert("in function showmenu")
	var coordinates = new Object();
  	var winsize = new Object();
	//alert("offset_x: "+offset_x);
	winsize = windowsize();
	if (x == 1)
	{
		for ( i = 0; i <num_menus; i++)
		{
			j = i+1;
			menu_name = new String("DropDown_Menu"+j);
			//alert("id: "+menu_name);
			if (id != menu_name) hidemenu(menu_name);
		}
	}
	coordinates = getAnchorPosition(anchorname);
	//alert("coordinates.y: " + coordinates.y);
	//alert("coordinates.x: " + coordinates.x);
	xpos = coordinates.x+offset_x;
	ypos = coordinates.y+offset_y;
	document.getElementById(id).style.top=ypos+"px";
	document.getElementById(id).style.left=xpos+"px";
	document.getElementById(id).style.display='block';
	document.getElementById(id).style.height='auto';
	document.getElementById(id).style.width=menuwidth+'px';
	//alert("document.getElementById(id).style.width: "+document.getElementById(id).style.width+"menuwidth: "+menuwidth);
	// move drop-down menu if needed...
	if (parseInt(winsize.w) > 0)
	{
		var actualwidth = menuwidth;
		var x_left = coordinates.x+offset_x;
		var test = parseInt(x_left)+parseInt(actualwidth);
		//alert("menu width: "+actualwidth+" x_left: "+x_left+" window: "+winsize.w+" test: "+test);
		if (test > winsize.w)
		{
			x_left = parseInt(winsize.w) - parseInt(actualwidth) - 17;
			if (x_left < 0) x_left = 0;
			document.getElementById(id).style.left=x_left+"px";
		}
	}
	var elementheight = getElementHeight(id);
	var elementwidth  = getElementWidth(id);
	var y_bottom = ypos + elementheight;
	var windowh = parseInt(winsize.h);
	if (windowh > 0)
	{
		if(y_bottom > windowh) 
		{
			var new_y_pos = windowh - elementheight - 1;
			document.getElementById(id).style.top=new_y_pos+"px";
		}
	}
	//alert("menu height: " + elementheight);
}

function showsubmenu(pid,id,x,panchorname,anchorname,pmenuwidth,menuwidth) {
	//alert("in function showmenu")
	var coordinates = new Object();
  	var winsize = new Object();
	//alert("offset_x: "+offset_x);
	winsize = windowsize();
	coordinates = getAnchorPosition(panchorname);
	//alert("coordinates.y: " + coordinates.y);
	//alert("coordinates.x: " + coordinates.x);
	xpos = coordinates.x+offset_x;
	ypos = coordinates.y+offset_y;
	document.getElementById(pid).style.top=ypos+"px";
	document.getElementById(pid).style.left=xpos+"px";
	document.getElementById(pid).style.display='block';
	document.getElementById(pid).style.height='auto';
	document.getElementById(pid).style.width=pmenuwidth+'px';
	//alert("document.getElementById(id).style.width: "+document.getElementById(id).style.width+"menuwidth: "+menuwidth);
	// move drop-down menu if needed...
	if (parseInt(winsize.w) > 0)
	{
		var actualwidth = pmenuwidth;
		var x_left = xpos;
		var test = parseInt(x_left)+parseInt(actualwidth);
		//alert("menu width: "+actualwidth+" x_left: "+x_left+" window: "+winsize.w+" test: "+test);
		if (test > winsize.w)
		{
			x_left = parseInt(winsize.w) - parseInt(actualwidth) - 17;
			if (x_left < 0) x_left = 0;
			document.getElementById(pid).style.left=x_left+"px";
		}
	}
	var elementheightp = getElementHeight(pid);
	var elementwidthp  = getElementWidth(pid);
	var y_bottomp = ypos + elementheightp;
	var windowh = parseInt(winsize.h);
	if (windowh > 0)
	{
		if(y_bottomp > windowh) 
		{
			var new_y_posp = windowh - elementheightp - 1;
			document.getElementById(pid).style.top=new_y_posp+"px";
		}
	}
	//alert("menu height: " + elementheight);


	coordinates = getAnchorPosition(anchorname);
	//alert("coordinates.y: " + coordinates.y);
	//alert("coordinates.x: " + coordinates.x);
	xpos = coordinates.x+offset_x_sub;
	ypos = coordinates.y+offset_y_sub;
	document.getElementById(id).style.top=ypos+"px";
	document.getElementById(id).style.left=xpos+"px";
	document.getElementById(id).style.display='block';
	document.getElementById(id).style.height='auto';
	document.getElementById(id).style.width=menuwidth+'px';
	//alert("document.getElementById(id).style.width: "+document.getElementById(id).style.width+"menuwidth: "+menuwidth);
	// move drop-down menu if needed...
	if (parseInt(winsize.w) > 0)
	{
		var actualwidth = menuwidth;
		var x_left = xpos;
		var test = parseInt(x_left)+parseInt(actualwidth);
		//alert("menu width: "+actualwidth+" x_left: "+x_left+" window: "+winsize.w+" test: "+test);
		if (test > winsize.w)
		{
			x_left = parseInt(winsize.w) - parseInt(actualwidth) - 17;
			if (x_left < 0) x_left = 0;
			document.getElementById(id).style.left=x_left+"px";
		}
	}
	var elementheight = getElementHeight(id);
	var elementwidth  = getElementWidth(id);
	var y_bottom = ypos + elementheight;
	if (windowh > 0)
	{
		if(y_bottom > windowh) 
		{
			var new_y_pos = windowh - elementheight - 1;
			document.getElementById(id).style.top=new_y_pos+"px";
		}
	}
}

function hidemenu(id) {
	document.getElementById(id).style.display='none';
	document.getElementById(id).style.height='0px';
	document.getElementById(id).style.width='0px';
}

var turn = 0;
function setTurn(t) {
	turn = t;
}
	
function clearMenus() {
	if (turn) {
		for ( i = 0; i <num_menus; i++)
		{
			j = i+1;
			menu_name = new String("DropDown_Menu"+j);
			//alert("i,id: "+menu_name);
			hidemenu(menu_name);
		}
		turn = 0;
	}
}
	
function timeoutMenus(tm) {
	turn = 1;
	setTimeout("clearMenus()", tm);
}	

function sniffBrowsers() {
	var ns4 = document.layers;
	var op5 = (navigator.userAgent.indexOf("Opera 5")!=-1) 
		||(navigator.userAgent.indexOf("Opera/5")!=-1);
	var op6 = (navigator.userAgent.indexOf("Opera 6")!=-1) 
		||(navigator.userAgent.indexOf("Opera/6")!=-1);
	var agt=navigator.userAgent.toLowerCase();
	var mac = (agt.indexOf("mac")!=-1);
	var ie = (agt.indexOf("msie") != -1); 
	var mac_ie = mac && ie;
}

function windowsize() {
  var winsize = new Object();
  var myWidth = 0, myHeight = 0;
  var diff = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
	winsize.w = myWidth;
	winsize.h = myHeight;
  } 
  else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
	winsize.w = myWidth;
	winsize.h = myHeight;
  } 
  else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
	winsize.w = myWidth;
	winsize.h = myHeight;
  }
	else {
	winsize.w = 0;
	winsize.h = 0;
  }
  return winsize; 
}

function getElementWidth(Elem) {
	var ns4 = document.layers;
	var op5 = (navigator.userAgent.indexOf("Opera 5")!=-1) 
		||(navigator.userAgent.indexOf("Opera/5")!=-1);
	var op6 = (navigator.userAgent.indexOf("Opera 6")!=-1) 
		||(navigator.userAgent.indexOf("Opera/6")!=-1);
	var agt=navigator.userAgent.toLowerCase();
	var mac = (agt.indexOf("mac")!=-1);
	var ie = (agt.indexOf("msie") != -1); 
	var mac_ie = mac && ie;
	var elemwidth;
	if (ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.clip.width;
	} else {
		if(document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all){
			var elem = document.all[Elem];
		}
		if (op5) {
			elemwidth = elem.style.pixelWidth;
		} else {
			elemwidth = elem.offsetWidth;
		}
		return elemwidth;
	}
}

function getElementHeight(Elem) {
	var ns4 = document.layers;
	var op5 = (navigator.userAgent.indexOf("Opera 5")!=-1) 
		||(navigator.userAgent.indexOf("Opera/5")!=-1);
	var op6 = (navigator.userAgent.indexOf("Opera 6")!=-1) 
		||(navigator.userAgent.indexOf("Opera/6")!=-1);
	var agt=navigator.userAgent.toLowerCase();
	var mac = (agt.indexOf("mac")!=-1);
	var ie = (agt.indexOf("msie") != -1); 
	var mac_ie = mac && ie;
	var elemheight;
	if (ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.clip.height;
	} else {
		if(document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all){
			var elem = document.all[Elem];
		}
		if (op5) {
			elemheight = elem.style.pixelHeight;
		} else {
			elemheight = elem.offsetHeight;
		}
		return elemheight;
	}
}

// ===================================================================
// Author: Matt Kruse <matt@mattkruse.com>
// WWW: http://www.mattkruse.com/
//
// NOTICE: You may use this code for any purpose, commercial or
// private, without any further permission from the author. You may
// remove this notice from your final code if you wish, however it is
// appreciated by the author if at least my web site address is kept.
//
// You may *NOT* re-distribute this code in any way except through its
// use. That means, you can include it in your product, or your web
// site, or any other form where the code is actually being used. You
// may not put the plain javascript up on your site for download or
// include it in your javascript libraries for download. 
// If you wish to share this code with others, please just point them
// to the URL instead.
// Please DO NOT link directly to my .js files from your site. Copy
// the files to your server and use them there. Thank you.
// ===================================================================

/* 
AnchorPosition.js
Author: Matt Kruse
Last modified: 10/11/02

DESCRIPTION: These functions find the position of an <A> tag in a document,
so other elements can be positioned relative to it.

COMPATABILITY: Netscape 4.x,6.x,Mozilla, IE 5.x,6.x on Windows. Some small
positioning errors - usually with Window positioning - occur on the 
Macintosh platform.

FUNCTIONS:
getAnchorPosition(anchorname)
  Returns an Object() having .x and .y properties of the pixel coordinates
  of the upper-left corner of the anchor. Position is relative to the PAGE.

getAnchorWindowPosition(anchorname)
  Returns an Object() having .x and .y properties of the pixel coordinates
  of the upper-left corner of the anchor, relative to the WHOLE SCREEN.

NOTES:

1) For popping up separate browser windows, use getAnchorWindowPosition. 
   Otherwise, use getAnchorPosition

2) Your anchor tag MUST contain both NAME and ID attributes which are the 
   same. For example:
   <A NAME="test" ID="test"> </A>

3) There must be at least a space between <A> </A> for IE5.5 to see the 
   anchor tag correctly. Do not do <A></A> with no space.
*/ 

// getAnchorPosition(anchorname)
//   This function returns an object having .x and .y properties which are the coordinates
//   of the named anchor, relative to the page.

function getAnchorPosition(anchorname) {
	// This function will return an Object with x and y properties
	var useWindow=false;
	var coordinates=new Object();
	var x=0,y=0;
	// Browser capability sniffing
	var use_gebi=false, use_css=false, use_layers=false;
	if (document.getElementById) { use_gebi=true; }
	else if (document.all) { use_css=true; }
	else if (document.layers) { use_layers=true; }
	// Logic to find position
 	if (use_gebi && document.all) {
		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
		}
	else if (use_gebi) {
		var o=document.getElementById(anchorname);
		x=AnchorPosition_getPageOffsetLeft(o);
		y=AnchorPosition_getPageOffsetTop(o);
		}
 	else if (use_css) {
		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
		}
	else if (use_layers) {
		var found=0;
		for (var i=0; i<document.anchors.length; i++) {
			if (document.anchors[i].name==anchorname) { found=1; break; }
			}
		if (found==0) {
			coordinates.x=0; coordinates.y=0; return coordinates;
			}
		x=document.anchors[i].x;
		y=document.anchors[i].y;
		}
	else {
		coordinates.x=0; coordinates.y=0; return coordinates;
		}
	coordinates.x=x;
	coordinates.y=y;
	return coordinates;
	}

// getAnchorWindowPosition(anchorname)
//   This function returns an object having .x and .y properties which are the coordinates
//   of the named anchor, relative to the window
function getAnchorWindowPosition(anchorname) {
	var coordinates=getAnchorPosition(anchorname);
	var x=0;
	var y=0;
	if (document.getElementById) {
		if (isNaN(window.screenX)) {
			x=coordinates.x-document.body.scrollLeft+window.screenLeft;
			y=coordinates.y-document.body.scrollTop+window.screenTop;
			}
		else {
			x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
			y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
			}
		}
	else if (document.all) {
		x=coordinates.x-document.body.scrollLeft+window.screenLeft;
		y=coordinates.y-document.body.scrollTop+window.screenTop;
		}
	else if (document.layers) {
		x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
		y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
		}
	coordinates.x=x;
	coordinates.y=y;
	return coordinates;
	}

// Functions for IE to get position of an object
function AnchorPosition_getPageOffsetLeft (el) {
	var ol=el.offsetLeft;
	while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
	return ol;
	}
function AnchorPosition_getWindowOffsetLeft (el) {
	return AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft;
	}	
function AnchorPosition_getPageOffsetTop (el) {
	var ot=el.offsetTop;
	while((el=el.offsetParent) != null) { ot += el.offsetTop; }
	return ot;
	}
function AnchorPosition_getWindowOffsetTop (el) {
	return AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop;
	}