// assign onclick events to links
// clear all link styles
// apply active style to selected link
// hide all elements
// display selected element
var links_ar;
var links_cssName;
var elements_displayType;
var activeElement;
var initial_linkId;
/**
* initSwitchView
*
* @param    links           3 column array (link id, content id, url hash value).
* @param    cssName         Css classname to apply to active link.
* @param    initialLinkId   Id of link to activate if nothing selected.
* @param    displayType     Css display type to apply to visible content,
*           (optional)      eg. 'block', 'inline', etc. Default is 'block'.
*                   
*/
function initSwitchView(links, cssName, initialLinkId, displayType){
	links_ar = links;
	links_cssName = cssName;
	elements_displayType = (!displayType) ? 'block' : displayType;
	for(var i=0; i<links_ar.length; i++){
		var currentLink = document.getElementById(links_ar[i][0]);
		var currentElement = document.getElementById(links_ar[i][1]);
		var currentElementA = currentElement.getElementsByTagName('a');
		var hashStr = document.getElementById(links_ar[i][0]).hash;
		var elId = 'a_' + hashStr.substr(1);
		var el;
		for(var x=0; x<currentElementA.length; x++)
		{
		    var aEl = currentElementA[x];
		    if(aEl.getAttribute('name') == hashStr.substr(1))
		    {
		        el = aEl;
		        break;
		    }
		}
		if(el == null)el = document.getElementById(elId);
		//el = (el != null)? el : (currentElement.parentNode.firstChild.getAttribute('name') == hashStr.substr(1)) ? currentElement.parentNode.firstChild : null;
//		if(el){
//			el.removeAttribute('name');
//		}
		
		//var contentAnchor = currentElement.firstChild;
		if(el != null)currentElement.removeChild(el);
		currentLink.onclick = setLinkStyles;		
	}
	initial_linkId = (initialLinkId != '') ? initialLinkId : '';
	setInitialView();
}
function setInitialView(){
	for(var i=0; i<links_ar.length; i++){
		if(location.hash.substr(1) == links_ar[i][2]){
			initial_linkId = links_ar[i][0];
			break;
		}
	}
	var initLink = document.getElementById(initial_linkId);
	setLinkStyles(initLink);
}
function setLinkStyles(el_link){
	var activeLink = ((!el_link) || (el_link.nodeName != 'A')) ? this : el_link;
	for(var i=0; i<links_ar.length; i++){
		var currentLink = document.getElementById(links_ar[i][0]);						
		currentLink.className = (currentLink != activeLink) ? '' : links_cssName;
		switchView(activeLink);						
	}
}
function switchView(activeLink){
	for(var i=0; i<links_ar.length; i++){
		var currentLink = document.getElementById(links_ar[i][0]);
		var currentElement = document.getElementById(links_ar[i][1]);
		currentElement.style.display = (currentLink != activeLink) ? 'none' : elements_displayType;
	}
}