/* http://common.cdn.onset.freedom.com/tools/load.php?js=listCollapse221&scode=ocregister */
/***************************************************************************************
Nested list collapsing script written by Mark Wilton-Jones - 21/11/2003
Version 2.2.1re - this script takes existing HTML nested UL or OL lists, and collapses them
Updated 30/09/2009 modified Heavily to work with OnSet sites archive listing
Updated 13/02/2004 to allow links in root of expanding branch
Updated 09/09/2004 to allow state to be saved
Updated 07/10/2004 to allow page address links to be highlighted
Updated 28/11/2004 to allow you to force expand/collapse links to use just the extraHTML
Please see http://www.howtocreate.co.uk/jslibs/ for details and a demo of this script
****************************************************************************************/
// Define Images to be used for Plus / Minus (pm), or Down / Left Arrows
// Use full url path (http://blahblahblah/your.img)
var oPlImg = 'http://common.onset.freedom.com/images/archive/pm_plus.gif';
var oMnImg = 'http://common.onset.freedom.com/images/archive/pm_minus.gif';
//*******************************************************************************

var oPl = '<img src="'+ oPlImg +'" class="PlusMinusBox">';
var openLists = [], oIcount = 0;

function compactMenu(oID,oAutoCol,oPlMn,oMinimalLink) {
	if( !document.getElementsByTagName || !document.childNodes || !document.createElement ) { return; }
	var baseElement = document.getElementById( oID ); if( !baseElement ) { return; }
	compactChildren( baseElement, 0, oID, oAutoCol, oPlMn, baseElement.tagName.toUpperCase(), oMinimalLink && oPlMn );
}
function compactChildren( oOb, oLev, oBsID, oCol, oPM, oT, oML ) {
	if( !oLev ) { oBsID = escape(oBsID); if( oCol ) { openLists[oBsID] = []; } }
	for( var x = 0, y = oOb.childNodes; x < y.length; x++ ) { if( y[x].tagName ) {
		//for each immediate LI child
		var theNextUL = y[x].getElementsByTagName( oT )[0];
		if( theNextUL ) {
			//collapse the first UL/OL child
			theNextUL.style.display = 'none';
			//create a link for expanding/collapsing
			var newLink = document.createElement('A');
			newLink.setAttribute( 'href', '#' );
			newLink.onclick = new Function( 'clickSmack(this,' + oLev + ',\'' + oBsID + '\',' + oCol + ',\'' + escape(oT) + '\');return false;' );
			//wrap everything upto the child U/OL in the link
			if( oML ) { var theHTML = ''; } else {
				var theT = y[x].innerHTML.toUpperCase().indexOf('<'+oT);
				var theA = y[x].innerHTML.toUpperCase().indexOf('<A');
				var theHTML = y[x].innerHTML.substr(0, ( theA + 1 && theA < theT ) ? theA : theT );
				while( !y[x].childNodes[0].tagName || ( y[x].childNodes[0].tagName.toUpperCase() != oT && y[x].childNodes[0].tagName.toUpperCase() != 'A' ) ) {
					y[x].removeChild( y[x].childNodes[0] ); }
			}
			y[x].insertBefore(newLink,y[x].childNodes[0]);
			y[x].childNodes[0].innerHTML = oPM + theHTML.replace(/^\s*|\s*$/g,'');
			theNextUL.MWJuniqueID = oIcount++;
			compactChildren( theNextUL, oLev + 1, oBsID, oCol, oPM, oT, oML );
} } } }
function clickSmack( oThisOb, oLevel, oBsID, oCol, oT ) {
	if( oThisOb.blur ) { oThisOb.blur(); }
	oThisOb = oThisOb.parentNode.getElementsByTagName( unescape(oT) )[0];
	if( oCol ) {
		for( var x = openLists[oBsID].length - 1; x >= oLevel; x-=1 ) { if( openLists[oBsID][x] ) {
			openLists[oBsID][x].style.display = 'none'; 
			//*******************************************************************************
			// Nisad Sivcevic - 20050107
			openLists[oBsID][x].previousSibling.innerHTML = openLists[oBsID][x].previousSibling.innerHTML.replace(oMnImg,oPlImg);
			//*******************************************************************************
			if( oLevel != x ) { openLists[oBsID][x] = null; }
		} }
		if( oThisOb == openLists[oBsID][oLevel] ) { openLists[oBsID][oLevel] = null; }
		else {	oThisOb.style.display = 'block'; 
				//*******************************************************************************
				// Nisad Sivcevic - 20050107
				oThisOb.previousSibling.innerHTML = oThisOb.previousSibling.innerHTML.replace(oPlImg,oMnImg); 
				//*******************************************************************************
				openLists[oBsID][oLevel] = oThisOb;}
	} else {

		pmAtag = oThisOb.previousSibling.previousSibling.previousSibling;
		if (pmAtag.innerHTML.match(oPlImg)) {
			pmAtag.innerHTML = pmAtag.innerHTML.replace(oPlImg,oMnImg);
		} else if (pmAtag.innerHTML.match(oMnImg)) {
			pmAtag.innerHTML = pmAtag.innerHTML.replace(oMnImg,oPlImg);
		}

		oThisOb.style.display = ( oThisOb.style.display == 'block' ) ? 'none' : 'block';
	}
}
function stateToFromStr(oID,oFStr) {
	if( !document.getElementsByTagName || !document.childNodes || !document.createElement ) { return ''; }
	var baseElement = document.getElementById( oID ); if( !baseElement ) { return ''; }
	if( !oFStr && typeof(oFStr) != 'undefined' ) { return ''; } if( oFStr ) { oFStr = oFStr.split(':'); }
	for( var oStr = '', l = baseElement.getElementsByTagName(baseElement.tagName), x = 0; l[x]; x++ ) {
		if( oFStr && MWJisInTheArray( l[x].MWJuniqueID, oFStr ) && l[x].style.display == 'none' ) { l[x].parentNode.getElementsByTagName('a')[0].onclick(); }
		else if( l[x].style.display != 'none' ) { oStr += (oStr?':':'') + l[x].MWJuniqueID; }
	}
	return oStr;
}
function MWJisInTheArray(oNeed,oHay) { for( var i = 0; i < oHay.length; i++ ) { if( oNeed == oHay[i] ) { return true; } } return false; }
function selfLink(oRootElement,oClass,oExpand) {
	if(!document.getElementsByTagName||!document.childNodes) {
		return;
	}
	oRootElement = document.getElementById(oRootElement);
	for( var x = 0, y = oRootElement.getElementsByTagName('a'); y[x]; x++ ) {
		if( y[x].getAttribute('href') && !y[x].href.match(/#$/) ) {

			//custom catID matching to highlight selected category
			if (getCatIDfromLIHref(y[x].href) == document.getElementById("archivecatid").value ) {
				y[x].className = (y[x].className?(y[x].className+' '):'') + oClass;
				if( oExpand ) {
					oExpand = false;
					for( var oEl = y[x].parentNode, ulStr = ''; oEl != oRootElement && oEl != document.body; oEl = oEl.parentNode ) {
						if( oEl.tagName && oEl.tagName == oRootElement.tagName ) {
							ulStr = oEl.MWJuniqueID + (ulStr?(':'+ulStr):'');
						}
					}
					stateToFromStr(oRootElement.id,ulStr);
				}
			}
		}
	}
}

function getCatIDfromLIHref(liurl) {
	var urlsplit = liurl.split("?");
	var urlVars = urlsplit[1].split("&");

	if (typeof(urlVars) != "undefined"){

		for (i = 0; i < urlVars.length; i++) {
			var urlVar = urlVars[i].split("=");

			if (urlVar[0] == "catID") {
				return urlVar[1];
			}
		}
	}
}



jq('document').ready(function(){
	compactMenu('archivecatlist',false, oPl);
	selfLink('archivecatlist','ArchiveCatSelected', true);
});
