/************************************************************************************************************
Static folder tree
Copyright (C) October 2005  DTHMLGoodies.com, Alf Magne Kalleland

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

Dhtmlgoodies.com., hereby disclaims all copyright interest in this script
written by Alf Magne Kalleland.

Alf Magne Kalleland, 2006
Owner of DHTMLgoodies.com
	
************************************************************************************************************/	
		
var idOfFolderTrees = ['faqtree'];

var imageFolder = '/templates/solveidea/images/';	// Path to images
var plusImage = 'cat-faq-closed.gif';
var minusImage = 'cat-faq-open.gif';
var initExpandedNodes = '';	// Cookie - initially expanded nodes;

var treeUlCounter = 0;
var nodeId = 1;

/*
These cookie functions are downloaded from 
http://www.mach5.com/support/analyzer/manual/html/General/CookiesJavaScript.htm
*/
function Get_Cookie(name) { 
   var start = document.cookie.indexOf(name+"="); 
   var len = start+name.length+1; 
   if ((!start) && (name != document.cookie.substring(0,name.length))) return null; 
   if (start == -1) return null; 
   var end = document.cookie.indexOf(";",len); 
   if (end == -1) end = document.cookie.length; 
   return unescape(document.cookie.substring(len,end)); 
} 
// This function has been slightly modified
function Set_Cookie(name,value,expires,path,domain,secure) { 
	expires = expires * 60*60*24*1000;
	var today = new Date();
	var expires_date = new Date( today.getTime() + (expires) );
	var cookieString = name + "=" +escape(value) + 
	   ( (expires) ? ";expires=" + expires_date.toGMTString() : "") + 
	   ( (path) ? ";path=" + path : "") + 
	   ( (domain) ? ";domain=" + domain : "") + 
	   ( (secure) ? ";secure" : ""); 
	document.cookie = cookieString; 
} 


function expandAll(treeId)
{
	var menuItems = document.getElementById(treeId).getElementsByTagName('LI');
	for(var no=0;no<menuItems.length;no++){
		var subItems = menuItems[no].getElementsByTagName('UL');
		if(subItems.length>0 && subItems[0].style.display!='block'){
			showHideNode(false,menuItems[no].id.replace(/[^0-9]/g,''));
		}			
	}
}

function collapseAll(treeId)
{
	var menuItems = document.getElementById(treeId).getElementsByTagName('LI');
	for(var no=0;no<menuItems.length;no++){
		var subItems = menuItems[no].getElementsByTagName('UL');
		if(subItems.length>0 && subItems[0].style.display=='block'){
			showHideNode(false,menuItems[no].id.replace(/[^0-9]/g,''));
		}			
	}		
}

function parseSubItems(ulId,parentId)
{
	
	if(initExpandedNodes){
		var nodes = initExpandedNodes.split(',');
	}
	var branchObj = document.getElementById(ulId);
	var menuItems = branchObj.getElementsByTagName('LI');	// Get an array of all menu items
	for(var no=0;no<menuItems.length;no++){
		var imgs = menuItems[no].getElementsByTagName('IMG');
		if(imgs.length>0)continue;
		nodeId++;
		var subItems = menuItems[no].getElementsByTagName('UL');
		var img = document.createElement('IMG');
		img.src = imageFolder + plusImage;
		img.onclick = showHideNode;
		if(subItems.length==0)img.style.visibility='hidden';else{
			subItems[0].id = 'tree_ul_' + treeUlCounter;
			treeUlCounter++;
		}
		var aTag = menuItems[no].getElementsByTagName('A')[0];
		aTag.onclick = showHideNode;
						
		menuItems[no].insertBefore(img,aTag);
		menuItems[no].id = 'bb_treeNode' + nodeId;			
		
		var tmpParentId = menuItems[no].getAttribute('parentId');
		if(!tmpParentId)tmpParentId = menuItems[no].tmpParentId;
		if(tmpParentId && nodes[tmpParentId])showHideNode(false,nodes[no]);	
	}		
}
	
		
function showHideNode(e,inputId)
{
	if(inputId){
		if(!document.getElementById('bb_treeNode'+inputId))return;
		thisNode = document.getElementById('bb_treeNode'+inputId).getElementsByTagName('IMG')[0]; 
	}else {
		thisNode = this;
		if(this.tagName=='A')thisNode = this.parentNode.getElementsByTagName('IMG')[0];	
		
	}
	if(thisNode.style.visibility=='hidden')return;
	var parentNode = thisNode.parentNode;
	inputId = parentNode.id.replace(/[^0-9]/g,'');
	if(thisNode.src.indexOf(plusImage)>=0){
		thisNode.src = thisNode.src.replace(plusImage,minusImage);
		var ul = parentNode.getElementsByTagName('UL')[0];
		ul.style.display='block';
		if(!initExpandedNodes)initExpandedNodes = ',';
		if(initExpandedNodes.indexOf(',' + inputId + ',')<0) initExpandedNodes = initExpandedNodes + inputId + ',';
		
		
		
	}else{
		thisNode.src = thisNode.src.replace(minusImage,plusImage);
		parentNode.getElementsByTagName('UL')[0].style.display='none';
		initExpandedNodes = initExpandedNodes.replace(',' + inputId,'');
	}	
	Set_Cookie('bb_expandedNodes',initExpandedNodes,500);
	
	return false;
}

function initTree()
{
	
	for(var treeCounter=0;treeCounter<idOfFolderTrees.length;treeCounter++){
		var bb_tree = document.getElementById(idOfFolderTrees[treeCounter]);
		var menuItems = bb_tree.getElementsByTagName('LI');	// Get an array of all menu items
		for(var no=0;no<menuItems.length;no++){					
			nodeId++;
			var subItems = menuItems[no].getElementsByTagName('UL');
			var img = document.createElement('IMG');
			img.src = imageFolder + plusImage;
			img.onclick = showHideNode;
			if(subItems.length==0)img.style.visibility='hidden';else{
				subItems[0].id = 'tree_ul_' + treeUlCounter;
				treeUlCounter++;
			}
			var aTag = menuItems[no].getElementsByTagName('A')[0];
			aTag.onclick = showHideNode;
			menuItems[no].insertBefore(img,aTag);
			if(!menuItems[no].id)menuItems[no].id = 'bb_treeNode' + nodeId;
		}	
	
	}
	expandAll('faqtree');
	/*initExpandedNodes = Get_Cookie('bb_expandedNodes');
	if(initExpandedNodes){
		var nodes = initExpandedNodes.split(',');
		for(var no=0;no<nodes.length;no++){
			if(nodes[no])showHideNode(false,nodes[no]);	
		}			
	}*/	
}

window.onload = initTree;	