// ===============
// Global vars
// ===============

var arr_ALLSubmenDocument 	= new Array();		// holds values of ALL submens of DOCUMENT									// id Based (f.ex:hasSubFold_30)
var arr_SubmenCookie 	= new Array();			// holds values of OPEN submens stored in COOKIE that ist the whole WEBPAGE;	// number Based (f.ex:30)
var cookiesEnabled 		= false; 				// do nothing if coockies are not enabled
var domain 				= "kunsttherapie.ch"; 	// domain for cookie




// ===============
// main funcions
// ===============

// onload initialise page
function setNavFolder() 
{
	var i1 = 0;
	var i2 = 0;
	var bol_contains = false;
	var str_TestValue = "";
	var SubMenId = "";
	
	
	cookiesEnabled = buildCookieArray();			// number Based (f.ex:30)
	if (cookiesEnabled)
	{
		buildSubmenArray();							// id Based (f.ex:hasSubFold_30)
		
		// alter all views, does not need coockie changes because the infomrmation comes from the coockie		
		for(i1=0;i1<arr_ALLSubmenDocument.length;i1++)
		{	
			bol_contains = false;
			for(i2=0;i2<arr_SubmenCookie.length;i2++)
			{
				str_TestValue = "hasSubFold_" + arr_SubmenCookie[i2];	
				if (arr_ALLSubmenDocument[i1] == str_TestValue)
				{
					bol_contains = true;
				}
			}
			if (!bol_contains)  
			{
				SubMenId = arr_ALLSubmenDocument[i1];
				if (checkCurrent(SubMenId))
				{
					SwitchViewstate(SubMenId);		// id Based (f.ex:hasSubFold_30)
				}
			}
		}
		
		return true;
	} else {
		return false;
	}
}



// on click make necessary changes to document and coockie
function alterSubmenView(MenuItem) // IN TWO DIRECTIONS; ONE ITEM; id Based (f.ex:hasSubFold_30)
{
	if (cookiesEnabled)
	{
		if (checkCurrent(MenuItem))
		{
			SwitchViewstate(MenuItem);
			SwitchCockieAray(MenuItem);
			var cockievalue = transArrayToCookieVal();
			setCookie("OpenSubMen", cockievalue, "10", "/", domain, "");
		}
		return false; // stop event handler
	} else {
		return false; // stop event handler
	}
}



// ===============
// helper funcions
// ===============

// check if active menu item is in tree
// in that case the tree should not be hidden
function checkCurrent(MenuItem)
{
	
	var str_tmp = "";
	var obj_changeBlock = "";
	var changeBlockId = "";
	var check = "";
	var innerText = "";
					
	str_tmp = MenuItem;
	str_tmp = str_tmp.replace("hasSubFold_","");
	changeBlockId = "submen_" + str_tmp;
	obj_changeBlock = document.getElementById(changeBlockId);
	innerText = obj_changeBlock.innerHTML;
	check = innerText.indexOf('id="ActiveHashMe"');
	if (check > -1)
	{
		return false;
	} else {
		return true;
	}
}

// build Array ALL of Submens in page
function buildSubmenArray() 									// id Based (f.ex:hasSubFold_30)
{
	var i =  0;
	var i2 = 0;
	var arr_hasSubFold = new Array();
	var obj_hasSubFold = "";
	
	// empty array
	for(i=0;i<arr_ALLSubmenDocument.length;i++)
	{
		arr_ALLSubmenDocument.shift();
	}

	arr_hasSubFold = document.getElementsByName("hasSubFold");
	for(i2=0;i2<arr_hasSubFold.length;i2++)
	{
		obj_hasSubFold = arr_hasSubFold[i2];
		arr_ALLSubmenDocument.push(obj_hasSubFold.id);			// id Based (f.ex:hasSubFold_30)
    }
    return true;
}


// read cockievalue
// transform cockie into Array
// write cookie if no coockie present
// return false if coockie not writeable
function buildCookieArray()
{
	var cockievalue = readCookie("OpenSubMen");
	if (!cockievalue)
	{
		// no Coockie present, try to write one
		setCookie ("OpenSubMen", "-", "10", "/", domain, "");
		cockievalue = readCookie("OpenSubMen");
		if (!cockievalue)
		{
			// cookies not writeable => Exit
			return false;
		}
	} 
	transCookieValToArray(cockievalue);			// number Based (f.ex:30)
	return true;
}

// Transfers Cookie Value to array
function transCookieValToArray(cockievalue)		// number Based (f.ex:30)
{
	var i = 0;
	// empty array
	for(i=0;i<arr_SubmenCookie.length;i++)
	{
		arr_SubmenCookie.shift();
	}

	cockievalue = cockievalue.replace(" ", "");
	if (cockievalue != "-")
	{
		arr_SubmenCookie = cockievalue.split("-");
	}
	
	for(i=0;i<arr_SubmenCookie.length;i++)
	{
		if (arr_SubmenCookie[i] == "")
		{
			arr_SubmenCookie.splice(i,1);
		}
	}
	return true;
}



// Transfers Array to cookie value
function transArrayToCookieVal()
{
	var cockievalue = '-';
	var i = 0;
	for(i=0;i<arr_SubmenCookie.length;i++)
	{
		cockievalue = cockievalue + arr_SubmenCookie[i] + '-';
	}
	return cockievalue;
}


function SwitchViewstate(MenuItem)
{		

	var str_tmp = "";
	var changeBlockId = "";
	var obj_changeBlock = "";
	var navImageId = "";
	var obj_navImage = "";
	var currState = "";

	str_tmp = MenuItem;
	str_tmp = str_tmp.replace("hasSubFold_","");
	changeBlockId = "submen_" + str_tmp;
	obj_changeBlock = document.getElementById(changeBlockId);
	
	navImageId = "navimage_" + str_tmp;
	obj_navImage = document.getElementById(navImageId);

	
	currState = obj_changeBlock.style.visibility;
	if ((currState == 'visible')||(currState == ''))
	{
		obj_changeBlock.style.visibility='hidden';
		obj_changeBlock.style.display = 'none';
		obj_navImage.src ='fileadmin/images/sys/navclosed.jpg';
	}else{
		obj_changeBlock.style.visibility ='visible';
		obj_changeBlock.style.display = 'block';
		obj_navImage.src ='fileadmin/images/sys/navopen.jpg';
	}
	return true;
}


function SwitchCockieAray(MenuItem)
{
	var i = 0;
	var str_TestValue = "";
	var bol_contains = false;
	var cockievalue = false;
	
	// read cookie value
	cockievalue = readCookie("OpenSubMen");
	if (!cockievalue)
	{
		// no Coockie present, try to write one
		setCookie ("OpenSubMen", "-", "10", "/", domain, "");
		cockievalue = readCookie("OpenSubMen");
		if (!cockievalue)
		{
			// cookies not writeable => Exit
			return false;
		}
	} 
	transCookieValToArray(cockievalue);
	
	
	MenuItem = MenuItem.replace("hasSubFold_", "");
	
	//str_TestValue = "-" + MenuItem + "-" ;
	str_TestValue = MenuItem;
	bol_contains = false;
	for(i=0;i<arr_SubmenCookie.length;i++)
	{
		if (arr_SubmenCookie[i] == str_TestValue)
		{
			bol_contains = true;
			arr_SubmenCookie.splice(i,1);
		}
	}
	if (bol_contains == false)  
	{
		arr_SubmenCookie.push(str_TestValue);			// number Based (f.ex:30)
	}
	
	cockievalue = transArrayToCookieVal();
	setCookie("OpenSubMen", cockievalue, "10", "/", domain, "");
	return true;
}



// ===============
// cockie funcions
// ===============

function setCookie (name, value, days, path, domain, secure)
{
	var cdays ="";
	if (days){
		var exdate=new Date();
		exdate.setDate(exdate.getDate()+days);
		cdays = exdate.toGMTString();
	} else {
		cdays = "";
	}
	var cookiedata = escape(name) + '=' + escape(value) + ((cdays)?(';expires=' + cdays):'') + ((path)?';path=' + path:'') + ((domain)?';domain=' + domain:'') + ((secure && (secure == true))?'; secure':''); // Set the cookie, adding any parameters that were specified.
	document.cookie = cookiedata;
	return true;
}

function readCookie(name) 
{
	
	name = escape(name);
	if(document.cookie == '') 
	{ // there's no cookie, so go no further
		return false;
	} else { // there is a cookie
		var firstChar, lastChar;
		var theBigCookie = document.cookie;
		firstChar = theBigCookie.indexOf(name); // find the start of 'name'
		var NN2Hack = firstChar + name.length;

		if((firstChar != -1) && (theBigCookie.charAt(NN2Hack) == '=')) 
		{ // if you found the cookie
			firstChar += name.length + 1; // skip 'name' and '='
			lastChar = theBigCookie.indexOf(';', firstChar); // Find the end of the value string (i.e. the next ';').
			if(lastChar == -1)
			{
				lastChar = theBigCookie.length;
			}
			return unescape(theBigCookie.substring(firstChar, lastChar));
		} else { // If there was no cookie of that name, return false.
			return false;
		}
	}
} 