/*
	$Date: 2006/04/06 18:45:22 $
	$Revision: 1.1 $
	$Author: jbelew $
	$Id: mcu_selector.ognc.js,v 1.1 2006/04/06 18:45:22 jbelew Exp $

	$Log: mcu_selector.ognc.js,v $
	Revision 1.1  2006/04/06 18:45:22  jbelew
	Refactored directory structures ...
	
	Revision 1.2  2006/04/04 22:47:41  jbelew
	Converted implementation to use a table based layout, as specified by Renesas' CMS implementation.
	
	Revision 1.1  2006/04/03 17:19:42  jbelew
	Updated page to use a table based layout ...

	Revision 1.1  2006/03/22 22:48:00  jbelew
	Initial asset checkin ...

*/

var doBookmarks = false;

function initSelector(whichClass) {
	// var e = document.getElementsByName('selector_link');
	var e = getElementsByClass(whichClass,document,"td");
	for(var i = 0; i < e.length; i++) {
		e[i].className="active";
	}
}

function initContent() {
	// var e = document.getElementsByName('series');
	var e = getElementsByClass("content_active",document,"div");
	for(var i = 0; i < e.length; i++) {
		e[i].className="content_hidden";
	}
}

function initBits(whichClass) {
	// var e = document.getElementsByName('bits');
	var e = getElementsByClass(whichClass,document,"th");
	for(var i = 0; i < e.length; i++) {
		e[i].className="bit_off";
	}
}

function initFamily(whichClass) {
	var e = getElementsByClass(whichClass,document,"th");
	for(var i = 0; i < e.length; i++) {
		e[i].className="family_off";
	}
}

function displaySelectorHover (target, bitDepth, family) {
	initSelector("active_hover");
	initBits("bit_hover");
	// initFamily("family_hover");

	if(target) {
		if(document.getElementById(target).className != "selected") {
			if(document.getElementById(target)) {
				document.getElementById(target).className="active_hover";
			}
		}

		// Because more than one bit depth can be selected ...
		var bitArray = new Array();

		if (bitDepth != "none") {

			bitArray = bitDepth.split(/,/);

			for(var i = 0; i < bitArray.length; i++) {
				if(document.getElementById(bitArray[i]).className != "bit_on") {
					if(document.getElementById(bitArray[i])) {
						document.getElementById(bitArray[i]).className="bit_hover";
					}
				}
			}

		}

		/*
		if(document.getElementById(family).className != "family_on") {
			if(document.getElementById(family)) {
				document.getElementById(family).className="family_hover";
			}
		}
		*/

	}
}

function displaySelectorItem (target, bitDepth, family) {
	// Turn off all the active element states ...
	initSelector("selected");
	initContent();
	initBits("bit_on");
	initFamily("family_on");

	// Make the current item and it's related elements active ...
	if(document.getElementById(target)) {
		document.getElementById(target).className="selected";
	}
	if(document.getElementById('series_' + target)) {
		document.getElementById('series_' + target).className="content_active";
	}
	if(document.getElementById('description_' + target)) {
		document.getElementById('description_' + target).className="content_active";
	}

	// Because more than one bit depth can be selected ...
	var bitArray = new Array();

	if (bitDepth != "none") {

		bitArray = bitDepth.split(/,/);

		for(var i = 0; i < bitArray.length; i++) {
			if(document.getElementById(bitArray[i])) {
				document.getElementById(bitArray[i]).className="bit_on";
			}
		}

		if(document.getElementById(bitDepth)) {
			document.getElementById(bitDepth).className="bit_on";
		}

	}

	/*
	if(document.getElementById(family)) {
		document.getElementById(family).className="family_on";
	}
	*/

	// Add a query string to support returning to the page via bookmark ...
	if (!doBookmarks) {
		window.location = "#" + target + "&" + bitDepth + "&" + family;
	}
}

// See if the page was bookmarked, if so, return to the previous state ...
function initPage() {
	if(window.location.href.split("#")[1]) {

		var args = window.location.href.split("#")[1];
		var target = args.split("&")[0];
		var bitDepth = args.split("&")[1];
		var family = args.split("&")[2];

		if (target) {
			displaySelectorItem (target, bitDepth, family);
		}
	} else {
		// If nothing is defined, start with the first item on the page ...
		displaySelectorItem('superh', 'bit32', 'family');
	}
}
