function toggle(range, id, zoneid) {
	 try {
	    var arrowImage = "arrowimage"+id;
		if (document.getElementById) {
			var e = document.getElementById(range);
			if (e == null){
				alert("Element with id of" + range + "not found");
				return;
			}
			if(!e.style.display) {
				e.style.display="none";
			}
			if (e.style.display != "none") {
				e.style.display = "none";
				document.getElementById(arrowImage).src = "/images/common/nvalue" +zoneid + "/nvalue"+zoneid+"_closedarrow.gif";
			} 
			else {
				e.style.display = "block";
				document.getElementById(arrowImage).src = "/images/common/nvalue" +zoneid + "/nvalue"+zoneid+"_openarrow.gif";
			}
		}
		else {
			//NEED TO THROW AN EXCEPTION OR FIND ANOTHER WAY TO ID THE ELEMENT HERE.
		}
	} 
	catch (exception) {} 
}

if (!lw) {
	var lw 	= {};   // Wide scope as used in other files.
}
if (!lw.widgets) 	lw.widgets 	= {};
if (!lw.widgets.nav) 	lw.widgets.nav 	= {};

lw.widgets.nav.DropdownMenu = {
  isMousedOver: false,
  toggleDisplayTimer: null,
  toggleCloseTimer: null,
  toggleDisplay: function(elementClassName, index) {
  	if(!this.isMousedOver) {
  		this.toggleDisplayTimer = setTimeout('lw.widgets.nav.DropdownMenu.toggleDisplayDelayed(\'' + elementClassName + '\'' + ',' + '\'' +index+'\');', 700);
	}
  	this.isMousedOver = true;
  },
  toggleDisplayDelayed: function (elementClassName, index) {
     	if(this.isMousedOver) {

	  	//Remove rollover images from other tabs.
	 	
	  	var totalMenuLinks = document.getElementById('CatBarTable').getElementsByTagName('a').length;
		for (var i = 1; i<=totalMenuLinks; i++) {
			removeTheClassName(document.getElementById('category-link-td-' + i), 'topnav-rollover-state');
		}
	
	 	//Rollover image
	  	if(!hasTheClassName(document.getElementById('category-link-td-' + index), "topnav-rollover-state")) {
	  		document.getElementById('category-link-td-' + index).className = "topnav-rollover-state " + document.getElementById('category-link-td-' + index).className
		}
		
		var totalMenuLinks = document.getElementById('CatBarTable').getElementsByTagName('a').length;
	
		var table = document.getElementById(elementClassName + '-' + index);
	
		/* Take off the class that intially hides this table */	
		if(hasTheClassName(table, elementClassName + "-no-display")) {
			removeTheClassName(table, elementClassName + "-no-display");
		}
		
		/* Set all other tables to hidden */
		for (var i = 1; i<=totalMenuLinks; i++) {
			if(i != index) {
				if (document.getElementById(elementClassName + "-" +i)) {
					document.getElementById(elementClassName + "-" +i).style.display='none';
				}
			}
		}
		
		/* Display this table */
		if(table) {
			table.style.display = 'block';
	
			/* Position the table in the correct place - Should be done everytime in case the browser window is resized */
			var tablecell            = document.getElementById("category-link-td-" + index);
			var tablecell_X          = findPosX(tablecell);
			var tablecell_Y          = findPosY(tablecell);
			var tablecell_H          = tablecell.clientHeight;
			
			var container            = document.getElementById('main_container');
			var container_X          = findPosX(container);
			var container_W          = container.clientWidth;
			
			var table_W              = table.clientWidth;
			
			var containerEdge_R      = container_X + container_W;
			var tableEdge_R          = tablecell_X + table_W;
			
			var tempTable_Y          = tablecell_H + tablecell_Y;
			var tempTable_X          = tablecell_X;
			if(tableEdge_R > containerEdge_R) {
				tempTable_X = tempTable_X - (tableEdge_R-containerEdge_R);
			}
			
			// Position the table
			table.style.left = tempTable_X + "px";
			table.style.top  = tempTable_Y + "px";
		
		        // -----------------------------------------------------------------------
			// Now deal with hiding of select dropdowns for IE6
		
			var tableEdge_B          = tempTable_Y + table.clientHeight;
			var tableEdge_L          = tempTable_X;
			    tableEdge_R          = tempTable_X + table.clientWidth;
	
			var numOfSelects = document.getElementsByTagName('select').length;
			
			// Loop through dropdowns.
			for(i=0; i<numOfSelects; i++) {
				currentElement = document.getElementsByTagName('select')[i];
					
				var selectHeight = 0;
				selectHeight = currentElement.firstChild.clientHeight;
				if (selectHeight == 0) {
					selectHeight = 	currentElement.clientHeight;
				}
				
				var elementEdge_L = findPosX(currentElement);
				var elementEdge_R = findPosX(currentElement) + currentElement.clientWidth;
				var elementEdge_T = findPosY(currentElement);
					
				// always check: Bottom of table gt top of element
				// then
				// 	if rhs of table gt lhs of element and lhs of table !gt rhs element
				// 	  or
				//      lhs of table gt rhs of element and rhs of table !lt lhs element
				
				
				// Hide the dropdowns if the menu obscures them, otherwise display them		
				var display = true;
				if(tableEdge_B > elementEdge_T) {
					if(tableEdge_R > elementEdge_L){
						if (tableEdge_L <= elementEdge_R) {
							display = false;	
							currentElement.style.visibility='hidden';	
						}
					}
					else if(tableEdge_L > elementEdge_R) {
						if(tableEdge_R >= elementEdge_L) {
							display = false;
							currentElement.style.visibility='hidden';
						}
					}
				}
				if(display && !hasTheClassName(currentElement, "excludeFromMenuToggleDisplay") ) {
					currentElement.style.visibility='visible';
				}
				// or if select box is the select zone select box in the header
				if(currentElement.name=='selectzone' ) {
					currentElement.style.visibility='visible';
				}
			}
		}
     	}
  },
  closeAll: function (elementClassName) {
	this.isMousedOver = false;
	if(this.toggleDisplayTimer != null) {
		clearTimeout(this.toggleDisplayTimer);
	}
  	this.toggleCloseTimer = setTimeout('lw.widgets.nav.DropdownMenu.closeAllDelayed(\''+elementClassName+'\');', 200);
  },
  closeAllDelayed: function (elementClassName) {
  	if(!this.isMousedOver) {
  	  	if(this.toggleDisplayTimer != null) {	
	  		clearTimeout(this.toggleDisplayTimer);
		}
	  	var numOfSelects = document.getElementsByTagName('select').length;
			
		for(i=0; i<numOfSelects; i++) {
			var currentElement = document.getElementsByTagName('select')[i];
			if (!hasTheClassName(currentElement, "excludeFromMenuToggleDisplay")) {
				currentElement.style.visibility='visible';
			}
			// or if select box is the select zone select box in the header
			if(currentElement.name=='selectzone' ) {
				currentElement.style.visibility='visible';
			}
		}
	  	if(document.getElementById('CatBarTable')) {
		  	var totalMenuLinks = document.getElementById('CatBarTable').getElementsByTagName('a').length;
		  	
			for (var i = 1; i<=totalMenuLinks; i++) {
				
				removeTheClassName(document.getElementById('category-link-td-' + i), 'topnav-rollover-state');
				
				if (document.getElementById(elementClassName+ "-" +i)) {
					document.getElementById(elementClassName + "-" +i).style.display='none';
				}
			}
		}
  	} 
  }
}

  /* Scripts from web - altered due to namespace conflicts */

  function hasTheClassName(ele,cls) {
	return ele && ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
  }

  function removeTheClassName(ele,cls) {
	if (ele && hasTheClassName(ele,cls)) {
		var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		ele.className=ele.className.replace(reg,' ');
	}
  }
  function findPosX(obj) {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }
  function findPosY(obj) {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }