//-----------------------------------------------------------------------------
// switchMenu.js :: used by /kbase
// 2004.11.23 - written by rk7138 for SBC Internet Services
// -- manages a folding list behavior, to include cookies to maintain state
//-----------------------------------------------------------------------------
// toggleList(e)
//-----------------------------------------------------------------------------
// -- assumes that folding list was created, typically via docMenu.js, topicMenu.js or keywordMenu.js
// -- e is the onclick event and must be passed the id value of the item being click, as in 000 below:
//
//        <div id='item_000' onclick='toggle(this);'>HEADER TITLE</div>
//
// -- however, in order to generate the proper presentation, id is used in three places;
//    once for header, once for list and once for the togglebutton image
// -- therefore, the construct needs to appear as such:
//
//        <div id='header_000' onclick='toggle(this);'>HEADER TITLE</div>
//        <div id='list_000'><img id='button_000' src='toggleButton.gif'/>
//            <div>listItem A</div>
//            <div>listItem B</div>
//            <div>listItem C</div>
//        </div>
//-----------------------------------------------------------------------------
// resetMenu()
//-----------------------------------------------------------------------------
// -- must be called after the folding list is written in order for cookies to be utilized
//    such that list state is maintained
// -- example if using docMenu.js
//
//		<script language='javascript'>
//      <!--
//          document.write(getDocMenuHTML(docObj));
//          resetMenu();
//      //-->
//      </script>
//-----------------------------------------------------------------------------
var docRoot = "/NDWS";
var imgRoot = docRoot + "/img/kb/";
var kbase_download = docRoot + "/secure/user/kb/document?id=";
var kbase_path = docRoot + "/secure/user/kb/results.jsp?id=";
var kbase_delete_doc = docRoot + "/admin/content_mgr/manage_document.jsp?id=";
var kbase_assign_keywords = kbase_delete_doc;
var kbase_assign_topics = kbase_delete_doc;
var kbase_manage_keywords = docRoot + "/admin/content_mgr/manage_keywords.jsp?id=";
var kbase_manage_topics = docRoot + "/admin/content_mgr/manage_topics.jsp?id=";

var foldingList = "foldinglist";
var foldButton = "button";

var openGIF = imgRoot + "open_link.gif";
var closedGIF = imgRoot + "fold_link.gif";
var openGIF_nested = imgRoot + "open_nestedlink.gif";
var closedGIF_nested = imgRoot + "fold_nestedlink.gif";

var linkSrc_mid = imgRoot + 'link_mid.gif';
var linkSrc_end  = imgRoot + 'link_end.gif';
var spacerGIF  = imgRoot + 'link_spacer.gif';
var nestingGIF = imgRoot + 'link_pipe.gif';
var nofoldGIF = imgRoot + 'nofold_link.gif';
var foldGIF = imgRoot + 'fold_link.gif';
var hasdocGIF = imgRoot + 'hasdoc.gif';
var nodocGIF = imgRoot + 'nodoc.gif';
var docspacerGIF = imgRoot + 'doc_spacer.gif';

var docPrefix = 'DOC';
var headerPrefix = 'header_';
var buttonPrefix = 'button_';
var listPrefix = 'foldinglist_';

var joinTag = ' ';
var toggleItems = '';

var cookieObj = document.cookie;
var cookiePath = window.location.pathname;

itemCount = 0;

function toggleList(e){
	var iscontained = 0;
	var mainId = e.id;
	var mainIndexOf = mainId.lastIndexOf('_');

	if (mainIndexOf == -1){ return; }
	
	var mainIndex = mainId.substr(mainIndexOf + 1, mainId.length - 1);
	var elId = foldingList + "_" + mainIndex;
	var elObj = document.getElementById(elId);
	
	var buttonId = foldButton + "_" + mainIndex;
	var buttonObj = document.getElementById(buttonId);
	
	if (elObj.style.display == 'none'){
		elObj.style.display = '';
		buttonObj.src = openGIF;
	}
	else { 	
		elObj.style.display = 'none';
		buttonObj.src = closedGIF;
	}
}

function resetMenu(){ 
	var resultStr = $getCookie(cookiePath);
	if (resultStr == ''){ return; }
	
	var resultSet = resultStr.split(joinTag);
	for (var i = 0; i < resultSet.length; i++){				
		var id = resultSet[i];

		var foldId = docPrefix + id;				
		var headerId = headerPrefix + foldId;
		var buttonId = buttonPrefix + foldId;
		var listId = listPrefix + foldId;
		
		var elObj = document.getElementById(listId);
		if (elObj){ elObj.style.display = ''; }
		
		var elObj = document.getElementById(buttonId);
		if (elObj){ elObj.src = openGIF; }
	}
}

function $setCookie(){
	var toggleItems = '';
	
	for (var i = 0; i < 1000; i++){
		var foldId = "DOC" + i;				
		var listId = listPrefix + foldId;
		var elObj = document.getElementById(listId);		
		if (elObj != undefined){ 
			var display = elObj.style.display;
			if (display != 'none'){ toggleItems += joinTag + i; }			
		}
	}
	document.cookie = window.location.pathname + "=" + toggleItems;
}

function $getCookie(givenCookieName) {
	var searchParm = givenCookieName + "=";
	var resultStr = "";

	if (cookieObj.length > 0) {
		var	offset = cookieObj.indexOf(searchParm);

		if (offset != -1) { 
			offset += searchParm.length;
						
			var endIndex = cookieObj.indexOf(";", offset);
			if (endIndex == -1) { endIndex = cookieObj.length; }
			
			resultStr = unescape(cookieObj.substring(offset, endIndex));
		}
	}
	return resultStr;
}

window.onunload = $setCookie;
