/* SlideMenu.js */
/* Copyright (c) 2007, Web Design Solutions Ltd. */

/* THIS CODE MAY NOT BE REUSED OR REDISTRIBUTED, IN ANY FORM,
   WITHOUT THE EXPRESS PRIOR CONSENT OF WEB DESIGN SOLUTIONS LTD. */

// The class that is used to maintain object structure.
function SMNode(Caption, Children, Class, LinkURL) {
	this.Caption = Caption;
	this.Children = Children;
	this.Class = Class;
	this.LinkURL = LinkURL;
}

var __SlideMenu_Seed = new Array();

function CreateSlideMenu(Seed, slideMenuID) {

	if ( Seed != null ) {

		__SlideMenu_Seed[slideMenuID] = Seed;
		var NodeTrail = slideMenuID + '_dvNode_' + Seed.Caption.replace(' ', '');
		document.write('<div id="' + NodeTrail + '">');
		_CreateSlideMenu(__SlideMenu_Seed[slideMenuID], slideMenuID, 0, NodeTrail);
		document.write('</div>');

	}

}

function _GetNodeVisible(URL, NodeLink) {

	var isVisible = false;
	//var lcURL = URL.toLowerCase();

	var urlQS = URL.toQueryParams();
	var urlNL = NodeLink.toQueryParams();

	isVisible = false;

	var urlQS_scid = urlQS['scid'];
	var urlQS_wcid = urlQS['wcid'];
	var urlQS_wscid = urlQS['wscid'];

	var urlNL_scid = urlNL['scid'];
	var urlNL_wcid = urlNL['wcid'];
	var urlNL_wscid = urlNL['wscid'];

	//debugger;

	if ( urlQS_scid == urlNL_scid )
		if ( urlQS_wcid == urlNL_wcid ) 
			/* if ( ( urlQS_wscid == urlNL_wscid ) || ( urlQS_wscid == null ) ) */
				isVisible = true;

	/*

	if ( lcURL.indexOf('&') > -1 ) {
		lcURL = lcURL.substring(0, lcURL.lastIndexOf('&'));
	}
	
	var urlLength = lcURL.length;
	
	if ( NodeLink.length >= urlLength ) {
	
		var lcNodeLink = NodeLink.substring(0, lcURL.length).toLowerCase();
		
		if ( ( lcNodeLink == lcURL ) && ( lcURL.indexOf('=') > -1 ) )
			isVisible = true;
		else
			isVisible = false;
	
	}

	*/
	
	
	return isVisible;
	
}

function _CreateSlideMenu(Seed, slideMenuID, Level, NodeTrail) {

	var Nodes = Seed.Children;
	
	for (var i=0; i < Nodes.length; i++) {
			
		var OnClickCommand = '';
		
		var CurrentNodeTrail = NodeTrail + '_' + Nodes[i].Caption.replace(' ', '');
			
		var NoLink = false; var ClickLink = null;
		if ( Nodes[i].Children != null )
			if ( Nodes[i].Children.length > 1 )
				OnClickCommand = ' onClick="_SM_ExpandMenu(\'' + slideMenuID + '\', \'' + CurrentNodeTrail + '\');"';
			else { 
				ClickLink = Nodes[i].Children[0].LinkURL;
				NoLink = true;
			}
		else {
			ClickLink = Nodes[i].LinkURL;
			NoLink = true;
		}		

		if ( NoLink )
			OnClickCommand = ' onClick="_SM_FinalClick(\'' + slideMenuID + '\', \'' + CurrentNodeTrail + '\', \'' + ClickLink + '\'); if (!e) var e = window.event; e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation();"';
				
		var DisplayStyleText = '';
				
		// Intrinsic URL adaptation.
		var CurrentURL = location.href;
		
		var isItemVisible = true;
		
		if ( Level > 0 ) {
			isItemVisible = _GetNodeVisible(CurrentURL, ClickLink);
		}
		
		if ( isItemVisible )
			DisplayStyleText = 'block';
		else
			DisplayStyleText = 'none';
					
		document.write('<div id="' + CurrentNodeTrail + '"' + OnClickCommand + ' style="display: ' + DisplayStyleText + ';" class="' + Nodes[i].Class + '">' + Nodes[i].Caption);

		if ( Nodes[i].Children != null ) {
			_CreateSlideMenu(Nodes[i], slideMenuID, (Level + 1), CurrentNodeTrail) // Hide all child elements from sight.
		}
			
		document.write('</div>');
		
	}
	
}

function _SM_HideNode(NodeTrail) {

	var Node = document.getElementById(NodeTrail);
	var Children = Node.childNodes;
	
	for (var i=0; i<Children.length; i++) {
		var CurrentChild = Children[i];
		if ( CurrentChild.nodeName != '#text' ) {
			var CurrentID = CurrentChild.id;
			CurrentChild.style.display = 'none';
		}
	}
	
}

function _SM_ShowNode(NodeTrail) {

	var Node = document.getElementById(NodeTrail);
	var Children = Node.childNodes;
	
	for (var i=0; i<Children.length; i++) {
		var CurrentChild = Children[i];
		if (CurrentChild.nodeName != '#text' ) {
			var CurrentID = CurrentChild.id;
			CurrentChild.style.display = 'block';
		}
	}
	
}

function _SM_GetChildren(NodeTrail) {

	
	var DOMParent = document.getElementById(NodeTrail);
	var Nodes = DOMParent.childNodes;
	var Returns = new Array();
	
	var x=0;
	for (var i=0; i<Nodes.length; i++) {
		var CurrentChild = Nodes[i];
		if ( CurrentChild.nodeName != '#text' ) {
			Returns[x] = Nodes[i];
			x++;
		}
	}
	
	return Returns;
	
}

function _SM_ExpandMenu(ID, NodeTrail) {

	var ParentText = NodeTrail.lastIndexOf('_');
	ParentText = NodeTrail.substring(0, ParentText);
	
	Siblings = _SM_GetChildren(ParentText);
	
	_SM_ShowNode(NodeTrail);
	
	for (var i=0;i<Siblings.length;i++) {
		var CurrentSibling = Siblings[i];
		if ( CurrentSibling.id != NodeTrail )
			_SM_HideNode(CurrentSibling.id);
		
	}
	
}

function _SM_FinalClick(ID, NodeTrail, LinkURL) {

	document.location.href = LinkURL;	

}