// JavaScript Document

// AJAX Request Object //////////////////////
function createRequestObject()
	{ 
	var req;
	if( window.XMLHttpRequest )
		{
		// Firefox, Safari, Opera...
		req = new XMLHttpRequest();
        }
	else if( window.ActiveXObject )
		{
		// Internet Explorer 5+
		req = new ActiveXObject("Microsoft.XMLHTTP");
		}
	else
		{
		// There is an error creating the object,
		// just as an old browser is being used.
		alert('There was a problem creating the XMLHttpRequest object');
        }
	return req;
	}
// Make the XMLHttpRequest object
http = createRequestObject();
///////////////////////////////////////////////



// JAVASCRIPT VISITOR DATA
function sendReferer(thisrefererid,time,referer,userid)
	{ 
	// GET THE SCREEN PIXEL WIDTH AND HEIGHT
	var screensize = screen.width + " x " + screen.height;
	
	// GET THE BROWSERS VIEWPORT PIXEL WIDTH AND HEIGHT
	var screenview = getviewport();
	
	// GET THE BROWSER USER AGENT
	var useragent = navigator.userAgent;
	
	// GET THE BROWSERS DEFAULT LANGUAGE
	if (navigator.appName == 'Netscape')
		{ var language = navigator.language; }
	else
		{ var language = navigator.browserLanguage;	}
		
	//alert( thisrefererid + " " + time + " " + referer + " " + userid );
	// BUILD VISITOR DATA STRING
	var refererString = 'thisrefererid=' + thisrefererid + '&referer=' + referer + '&screensize=' + screensize + '&screenview=' + screenview + '&userid=' + userid + '&useragent=' + useragent + '&language=' + language;
	
	// SEND VISITOR DATA TO DATABASE
	http.open('GET', 'referer.php?' + refererString);
	http.onreadystatechange = refererResponse; 
	http.send(null);     
    }
	
// AJAX handle Response //////////////////////////////////////
function refererResponse()
	{
	if(http.readyState == 4 && http.status == 200)
		{
		// Text returned FROM PHP script 
		var response = http.responseText; 
		//alert( " AJAX Success Status code : " + http.status );
		if( response )
			{
			// UPDATE ajaxTest content 
			//alert( response );
			}
        }    
    }
///////////////////////////////////////////////



// JAVASCRIPT VISITOR DATA
function sendVisitDuration(time,userid)
	{ 
	//alert( time + " " + userid );
	// BUILD VISITOR DATA STRING
	var visitDurationString = 'time=' + time + '&userid=' + userid;
	
	// UPDATE TIME EVERY SECOND
	visitDurationTimer = setTimeout('sendVisitDuration(time,userid)', 10000);

	// SEND VISITOR DATA TO DATABASE
	http.open('GET', 'visitduration.php?' + visitDurationString);
	http.onreadystatechange = visitDurationResponse; 
	http.send(null);     
    }
	
// AJAX handle Response //////////////////////////////////////

function visitDurationResponse()
	{
	if(http.readyState == 4 && http.status == 200)
		{
		// Text returned FROM PHP script 
		var response = http.responseText; 
		//alert( " AJAX Success Status code : " + http.status );
		if( response )
			{
			// UPDATE ajaxTest content 
			//alert( response );
			}
        }    
    }

	

// NAVIGATION MENU //////////////////////////////////////
	
/*************************************************************************
* Site Nav : show / hide
*************************************************************************/

function getElementbyClass(rootobj, classname)
	{
	var temparray=new Array()
	var inc=0
	var rootlength=rootobj.length
	for (i=0; i<rootlength; i++)
		{
		if (rootobj[i].className==classname)
		temparray[inc++]=rootobj[i]
		}
	return temparray
	}


function sweeptoggle(ec, operaFlag)
	{
	var inc=0
	while (ccollect[inc])
		{
		ccollect[inc].style.display=ec=="contract"? "none" : ""
		inc++
		}
	revivestatus()
	if (enablepersist=="on"&&window.opera&&!operaFlag)
	saveswitchstate();
	}

function expandcontent(curobj, cid)
	{
	if (ccollect.length>0)
		{
		var el=document.getElementById(cid);
		//alert(curobj.href);
		var ef=document.getElementById("img" + cid)
		el.style.display=el.style.display!="none"? "none" : ""
		ef.src=(el.style.display=="none")? expandsymbol : contractsymbol
		}
	if (enablepersist=="on"&&window.opera)
	saveswitchstate();

	if ( el.style.display == "none" ) // closing link
		{
		//alert("cancel link");
		return false;
		}
		else // opening link
		{
		if ( window.location.href == curobj.href )
			{
			return false;
			}
		else if ( ! curobj.href )
			{
			return false;
			}
		else
			{
			window.location.href = curobj.href;
			}
		window.status = "Done";
		}
	}

function revivecontent()
	{
	selectedItem=getselectedItem()
	selectedComponents=selectedItem.split("|")
	for (i=0; i<selectedComponents.length-1; i++)
		{
		document.getElementById(selectedComponents[i]).style.display=initialstate? "none" : ""
		}
	}

function revivestatus()
	{
	var inc=0
	while (statecollect[inc])
		{
		if (ccollect[inc].style.display=="none")
			{
			statecollect[inc].src=expandsymbol
			}
			else
			{
			statecollect[inc].src=contractsymbol
			}
		inc++
		}
	}

function get_cookie(Name)
	{
	var search = Name + "="
	var returnvalue = "";
	if (document.cookie.length > 0)
		{
		offset = document.cookie.indexOf(search)
		if (offset != -1)
			{
			offset += search.length
			end = document.cookie.indexOf(";", offset);
			if (end == -1) end = document.cookie.length;
			returnvalue=unescape(document.cookie.substring(offset, end))
			}
		}
	return returnvalue;
	}

function getselectedItem()
	{//window.location.pathname
	if (get_cookie("navigation") != "")
		{
			//window.location.pathname
		selectedItem=get_cookie("navigation")
		return selectedItem
		}
	else
		return ""
	}

function saveswitchstate()
	{
	var inc=0, selectedItem=""
	while (ccollect[inc])
		{
		if (!initialstate&&ccollect[inc].style.display!=="none"||initialstate&&ccollect[inc].style.display=="none")
		selectedItem+=ccollect[inc].id+"|"
		inc++
		}
	//alert(window.location.pathname + " " + selectedItem);
	if (get_cookie(window.location.pathname)!=selectedItem)
		{ //only update cookie if current states differ from cookie's
		var expireDate = new Date()
		expireDate.setDate(expireDate.getDate()+parseInt(memoryduration))
		//alert(window.location.pathname);
		document.cookie = "navigation="+selectedItem+";path=/;expires=" + expireDate.toGMTString()
		}
	}

function do_onload()
	{//window.location.pathname
	uniqueidn="navigation"+"firsttimeload"
	var alltags=document.all? document.all : document.getElementsByTagName("*")
	ccollect=getElementbyClass(alltags, "switchcontent")
	statecollect=getElementbyClass(alltags, "showstate")
	/*statecollectb=getElementbyClass(alltags, "showstateb")*/
	if(!initialstate)
		{ // if previous state cookie doesnt exist close all
		sweeptoggle('contract', 1)
		document.getElementById('added').disabled=true
		}
	//window.location.pathname
	if (enablepersist=="on" && get_cookie("navigation")!="" && ccollect.length>0)
	revivecontent()
	if (ccollect.length>0 && statecollect.length>0)
	revivestatus()
	//alert("yo");
	//alert(window.location);
	}

if (window.addEventListener)
window.addEventListener("load", do_onload, false)
else if (window.attachEvent)
window.attachEvent("onload", do_onload)
else if (document.getElementById)
window.onload=do_onload

if (enablepersist=="on" && document.getElementById)
	{
	window.onunload=saveswitchstate
	}
	



// Preload images and any other items
function preload()
	{
	var args = preload.arguments;
	document.imgArray = new Array(args.length);
	for(var i=0; i<args.length; i++)
		{
		document.imgArray[i] = new Image;
		document.imgArray[i].src = args[i];
		}
	}
	
function mouseoverimages()
	{
	preload('images/nav-active-bg.jpg','images/nav-active-left.jpg','images/nav-active-right.jpg','images/nav-hover-bg.jpg','images/nav-hover-left.jpg','images/nav-hover-right.jpg','images/nav-inactive-bg.jpg','images/nav-inactive-left.jpg','images/nav-inactive-right.jpg');
	}
	

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}
// use add loadEvent like below
//addLoadEvent(nameOfSomeFunctionToRunOnPageLoad);
addLoadEvent(function() {
  // more code to run on page load
  sendVisitDuration(time,userid);
  //mouseoverimages();
  if ( thisrefererid != '' )
  	{
	//alert(thisrefererid + " " + time + " " + referer + " " + userid);
  	sendReferer(thisrefererid,time,referer,userid);
	}
})

function addUnloadEvent(func) {
  var oldOnunload = window.onunload;
  if (typeof window.onunload != 'function') {
    window.onunload = func;
  } else {
    window.onunload = function() {
      if (oldOnunload) {
        oldOnunload();
      }
      func();
    }
  }
}
// use add loadEvent like below
//addLoadEvent(nameOfSomeFunctionToRunOnPageLoad);
addUnloadEvent(function() {
  // more code to run on page unload

})
/*
window.onresize= reloadpage;
function reloadpage(){ //or whatver else you have
//alignSubMenu();
setTimeout("window.location.reload()",1);
}
*/
