	function showBranch() {
		var string ="";
		var test= new Array ();
		if (showBranch.arguments.length==1)
		{
			if (showBranch.arguments[0]=='x')
			{
				clearCookie();
			}
		}
		for (var i=0; i<showBranch.arguments.length; i++)
		{
			test[i]=0;
		}
		
		
		for (var i=0; i<1; i++) {
			test[i]=0;
			d = document.getElementById(showBranch.arguments[i]);
			if (d) { 
				/* test to see if first element is already opened*/
				if (d.style.display=='block')
				{
					test[i]=1;
				}
			}
		}
		
		for (var i = 0; i<=200; i++) {
			d = document.getElementById('menu'+i);
			if (d) {
				d.style.display='none';
				}
		}
	
		
		for (var i=0; i<showBranch.arguments.length; i++) {
			d = document.getElementById(showBranch.arguments[i]);
			if (d) { 
				clearCookie();
				if (test[i]==0)
				{
					d.style.display='block';
					string += showBranch.arguments[i] + ".";
				}
			}
		}
		if (string!="")
		{
			setCookie('cssBranch',string);
		}
		/*if (showBranch.arguments.length==0 || (showBranch.arguments.length==1 && String (showBranch.arguments[0]).indexOf('menu')==-1))
		{
			var aOpen = this.getCookie('cssBranch').split('.');
			for (var n=0; n<aOpen.length; n++)
			{
				d = document.getElementById(aOpen[n]);
				if (d) {
					d.style.display='block';
					}
			}
		}*/

	}
	
	// [Cookie] Checks if a node id is in a cookie
function isOpen(id) {
	var aOpen = this.getCookie('co' + this.obj).split('.');
	for (var n=0; n<aOpen.length; n++)
		if (aOpen[n] == id) return true;
	return false;
};
	
	
	
	/************  Cookie functions ********************************************/

// [Cookie] Clears a cookie
function clearCookie() {
	var now = new Date();
	var yesterday = new Date(now.getTime() - 1000 * 60 * 60 * 24);
	this.setCookie('cssBranch', 'cookieValue', yesterday);

};

// [Cookie] Sets value in a cookie
function setCookie(cookieName, cookieValue, expires, path, domain, secure) {
	document.cookie =
		escape(cookieName) + '=' + escape(cookieValue)
		+ (expires ? '; expires=' + expires.toGMTString() : '')
		+ (path ? '; path=' + path : '')
		+ (domain ? '; domain=' + domain : '')
		+ (secure ? '; secure' : '');
};


// [Cookie] Gets a value from a cookie
function getCookie (cookieName) {
	var cookieValue = '';
	var posName = document.cookie.indexOf(escape(cookieName) + '=');
	if (posName != -1) {
		var posValue = posName + (escape(cookieName) + '=').length;
		var endPos = document.cookie.indexOf(';', posValue);
		if (endPos != -1) cookieValue = unescape(document.cookie.substring(posValue, endPos));
		else cookieValue = unescape(document.cookie.substring(posValue));
	}
	return (cookieValue);
};

// [Cookie] Returns ids of open nodes as a string
function updateCookie() {
	var str = '';
	for (var n=0; n<this.aNodes.length; n++) {
		if (this.aNodes[n]._io && this.aNodes[n].pid != this.root.id) {
			if (str) str += '.';
			str += this.aNodes[n].id;
		}
	}
	this.setCookie('co' + this.obj, str);
};


/*----------------------------------------------------------------------------------------------
ATTACHMENT.JS-----------------------------------------------------------------------------------*/
//*** This code is copyright 2003 by Gavin Kistner, gavin@refinery.com
//*** It is covered under the license viewable at http://phrogz.net/JS/_ReuseLicense.txt
//*** Reuse or modification is free provided you abide by the terms of that license.
//*** (Including the first two lines above in your source code satisfies the conditions.)


//***Cross browser attach event function. For 'evt' pass a string value with the leading "on" omitted
//***e.g. AttachEvent(window,'load',MyFunctionNameWithoutParenthesis,false);

function AttachEvent(obj,evt,fnc,useCapture){
	if (!useCapture) useCapture=false;
	if (obj.addEventListener){
		obj.addEventListener(evt,fnc,useCapture);
		return true;
	} else if (obj.attachEvent) return obj.attachEvent("on"+evt,fnc);
	else{
		MyAttachEvent(obj,evt,fnc);
		obj['on'+evt]=function(){ MyFireEvent(obj,evt) };
	}
} 

//The following are for browsers like NS4 or IE5Mac which don't support either
//attachEvent or addEventListener
function MyAttachEvent(obj,evt,fnc){
	if (!obj.myEvents) obj.myEvents={};
	if (!obj.myEvents[evt]) obj.myEvents[evt]=[];
	var evts = obj.myEvents[evt];
	evts[evts.length]=fnc;
}
function MyFireEvent(obj,evt){
	if (!obj || !obj.myEvents || !obj.myEvents[evt]) return;
	var evts = obj.myEvents[evt];
	for (var i=0,len=evts.length;i<len;i++) evts[i]();
}

function relTags() 
{
	if (document.getElementsByTagName) 
	{
		var anchors = document.getElementsByTagName( "a" );
		for (var loop = 0; loop < anchors.length; loop++) 
		{
			var anchor = anchors[loop];
			if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") 
			{
				anchor.target = "_blank";
			}
			if (anchor.id.indexOf("star")!=-1)
			{
				AttachEvent(anchor,'click',update_rating,false);
			}
		}
	}
}	


/*-------------------------------------------------------------------------------------------
EVENTS.JS------------------------------------------------------------------------------------*/

function onLoad(e)
{
  var cookie = getCookie("style");
  /*var ads = document.getElementById("left_section");
  var gad = document.getElementById("google-ad");
  //gad.style.left = findPosX(ads)+"px";
  //gad.style.top = (findPosY(ads)+271)+"px";
  if(navigator.userAgent.indexOf("Firefox") != -1)
  {
//	  gad.style.position = "absolute";
//	  gad.style.marginLeft = "10px";
  }
  if(navigator.userAgent.indexOf("Opera") != -1)
  {
	  gad.style.position = "static";
	  gad.style.marginLeft = "10px";
  }
  gad.style.display = "block";*/
  
  //showBranch();
  var form_newsletter = document.getElementById('form_newsletter');
  if (form_newsletter)
  {
  	AttachEvent(form_newsletter,'submit',check_one_mail,false);
  }
  
  relTags();
  var adLink = document.getElementById( "adLink" );
  if (adLink)
  {
	  AttachEvent(adLink,'click',onClickAd,false);
  }
 
}

function onClickAd(e)
{
	var href = (e.target)?e.target:e.srcElement;
	var req = new XMLHttpRequest(); 
	if (req) { 
		
		req.open('POST',"/addClick.php",false);
		req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		req.send("href=" + href.getAttribute("href"));
		
		
		if (req.readyState == 4 && req.status == 200)
		{
			
		}
	}
}

AttachEvent(window,'load',onLoad,false);




function check_mail(email1, email2)
{
	var re3 = /^\s*([a-zA-Z0-9\._]{1,100})@([a-zA-Z0-9\.-_]){1,100}\.([a-zA-Z]{2,4})\s*$/gi;
 	var error = 0;
	
    if (email1.value.length == 0 || !email1.value.match(re3)) 
	{
		error = 1;
		
	}

    if (email2.value.length == 0 || !email2.value.match(re3)) 
	{
		error = 1;
		
	}
	
	if (error == 1)
	{
		document.getElementById('dvalid').style.display='none'; 
		document.getElementById('dnotvalid').style.display='block';
		return false;
	}
	else
	{
		document.getElementById('dnotvalid').style.display='none'; 
		return true;
	}
}


function check_one_mail(e)
{
	var email = document.getElementById('news_email');
	var re3 = /^\s*([a-zA-Z0-9\._\-]{1,100})@([a-zA-Z0-9\.\-_]){1,100}\.([a-zA-Z]{2,4})\s*$/gi;
	 
	if (email.value.length==0 || !email.value.match(re3)) 
	{
		blockEvent(e);
		alert("Please enter a valid email address");
		return false;
	}
	else
	{
		//send data to server
		blockEvent(e);
		var newsBlock = document.getElementById('newsletter');
		var req = new XMLHttpRequest(); 
		if (req) { 
			/*req.onreadystatechange = function() { 
				errorDiv.style.display = "block";
				errorDiv.innerHTML = "The result is: " + req.responseText + "<br />state: " + req.readyState + "<br />status: " + req.status;
				if (req.readyState == 4 && req.status == 200) 
					{ 
						//errorDiv.innerHTML = strResult;
						errorDiv.innerHTML = "The result is: " + req.responseText;
						//errorDiv.appendChild(document.createTextNode(req.responseText)); 
						errorDiv.style.display = "block";
					} 
				}; */
			req.open('POST',"/addClick.php",false);
			req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			req.send("email=" + email.value + "&submit=Send");
			
			if (req.responseText != '')
			{
				newsBlock.innerHTML = "<p style=\"margin-top:0\">" + req.responseText+ "</p>";
			}
			if (req.readyState == 4 && req.status == 200)
			{
				//email.value = "";
				//name.value = "";
				//comments.value = "";
			}
		}
		
	}
	
	return true;
}	


function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}


function blockEvent(e)
{
	var newE = getEvent(e);
	if (newE != null)
	{
		newE.returnValue = false;
		newE.cancelBubble = true;
		if (window.event == null)
		{
			newE.preventDefault();
			newE.stopPropagation();
		}
	}
}


// function getEvent - returns event based on browser

function getEvent(e)
{
	var newE;
	if (e != null) //Netscape 4 or W3C DOM event model
		if (e.eventPhase != null) 
		{	
			//W3C DOM event model
		    emod = "W3C";
			newE = e;
		}
		else 
		{
			//NN4+ event model
		    emod = "NN4";
			newE = e;
		}
	else if (window.event != null) 
	{
		//MSIE 4+ event model
	    emod = "IE4+";
		newE = window.event;
	}
	else 
	{
		emod = "unknown"; // no event object found
		newE = null;
	}

    //alert("Page loaded! Your event model is: "+emod);
	return newE;
}