/************************ Collapsing DIV ************************/

var timeout = 600;
var inprocess = 0;
var starttime = 0;

function curveincrement(percent){
	return (1-Math.cos(percent*Math.PI)) / 2; //return cos curve based value from a percentage input
}

function startSlide(divObj, direction, divparm){
	var elapsed = new Date().getTime() - starttime; //get time animation has run
	var distancepercent = 0;
	if (elapsed < timeout){ //if time run is less than specified length
		distancepercent = (direction == "maximize")? curveincrement(elapsed/timeout) : 1-curveincrement(elapsed/timeout);
		divObj.style.height = distancepercent * divparm.height + "px";
		setTimeout(function(){startSlide(divObj, direction, divparm)}, 10);
	}
	else{ //if animation finished
		//divObj.style.height = (direction == "maximize")? divparm.height + "px" : 0;
		divObj.style.height = (direction == "maximize")? "auto" : 0;
		divparm.state = (direction=="maximize")? "maximized" : "minimized";
		divparm.inprocess = 0;
	}
}

function slideDiv(divID, direction, divparm){
	if(divparm.state == 'maximized' && direction == 'maximize')
		return;
	if(divparm.state == 'minimized' && direction == 'minimize')
		return;
	if(divparm.inprocess == 0){
		divparm.inprocess = 1;
		var divObj = document.getElementById(divID);
		var contentheight = divObj.offsetHeight;
		if(contentheight==null) //if content height not available yet (until window.onload)
			alert("Please wait until document has fully loaded then click again");
		else{
			if(direction == 'minimize')
				divparm.height = contentheight;
			starttime = new Date().getTime();
			setTimeout(function(){startSlide(divObj, direction, divparm)}, 10)
		}
	}
}

function divparam(divID){
	this.height = document.getElementById(divID).offsetHeight;
	this.state = 'maximized';
	this.inprocess = 0;
}

function hidedynamicarea(){
	document.getElementById('dynamic_area').style.display='none';
	document.getElementById('dynamic_text').innerHTML = '';
}

function showdynamicarea(textmsg){
	var newx;
	var newy;
	
	document.getElementById('dynamic_text').innerHTML = textmsg;	
	var ostyle = document.getElementById('dynamic_area').style;
	newx = _x + 30;
	ostyle.left=newx+'px';
	//ostyle.top=_y+'px';
	newy = _y - 0;
	ostyle.top=newy +'px';
	ostyle.display='block';
}

/************************ Mouse Tracking ************************/

var _x;
var _y;

var isIE = document.all?true:false;
if (!isIE) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = getMousePosition;
function getMousePosition(e) {
  if (!isIE) {
    _x = e.pageX;
    _y = e.pageY;
  }
  if (isIE) {
    //_x = event.clientX + document.body.scrollLeft;
    //_y = event.clientY + document.body.scrollTop;
    _x = event.x;
    _y = event.y;
  }
  //document.getElementById('highlight_control').innerHTML=_x + ',' + _y;
  return true;
}

/************************ Cross Browser Marquee ************************/

var tWidth='730px';                  // width (in pixels)
var tHeight='15px';                  // height (in pixels)
var tcolour='#FFFFFF';               // font colour:
var moStop=true;                     // pause on mouseover (true or false)
var fontfamily = 'Tahoma, Helvetica, Arial, Sans-serif'; // font for content
var tSpeed=1;                        // scroll speed (1 = slow, 5 = fast)

//var content='<b>News 1: News 1 Details</b> &nbsp; &nbsp; <b>News 2: News 2 Details</b> &nbsp; &nbsp; <b>News 3: News 3 Details</b> &nbsp; &nbsp;';

var cps=tSpeed;
var aw, mq;
var fsz = '11px';

var tickercode = '<div id=\"ticker\"><\/div>';
var tickerthread = null;

function startticker(){
	if(tickerthread != null)
		clearInterval(tickerthread);
	if (document.getElementById('ticker') != null) {
		var tick = "";
		tick +=	'<div style="position:relative;width:'
				+tWidth
				+';height:'
				+tHeight
				+';overflow:hidden;"';
		if (moStop) 
			tick += ' onmouseover="cps=0" onmouseout="cps=tSpeed"';

		tick	+='><div id="mq" style="position:absolute;left:0px;top:0px;font-family:'
				+fontfamily
				+';color:'
				+tcolour
				+';font-size:'
				+fsz
				+'px;white-space:nowrap;"><\/div><\/div>';
		document.getElementById('ticker').innerHTML = tick;
		mq = document.getElementById("mq");
		mq.style.left=(parseInt(tWidth)+10)+"px";
		mq.innerHTML='<span id="tx">'+content+'<\/span>';
		aw = document.getElementById("tx").offsetWidth;
		tickerthread=setInterval("scrollticker()",40);
	}
}

function scrollticker(){
	mq.style.left = (parseInt(mq.style.left)>(-10-aw)) ?parseInt(mq.style.left)-cps+"px" : parseInt(tWidth)+10+"px";
}

window.onload=startticker;

/************************ Fadein Fadeout ************************/

var fadeintime=40; // higher is slower
var fadeouttime=40; // higher is slower
var opacchange=20; // higher is faster (between 2-30 will probably work best)
var opacproc=0;

function fadein(idstyle){
	//alert(idstyle.opacity);
	fadeinto = setTimeout(function(){fadeineng(50,idstyle);},fadeintime);
} 

function fadeout(idstyle){ 
	//alert(idstyle.opacity);
	fadeoutto = setTimeout(function(){fadeouteng(100,idstyle);},fadeouttime);
} 

function fadeineng(opacity, idstyle){ 
	opacity+=opacchange;

	idstyle.opacity = (opacity / 101); 
	idstyle.MozOpacity = (opacity / 101); 
	idstyle.KhtmlOpacity = (opacity / 101); 
	idstyle.filter = "alpha(opacity=" + opacity + ")";
		
	clearTimeout(fadeinto);
	if(opacity < 100){
		fadeinto=setTimeout(function(){fadeineng(opacity,idstyle);},fadeintime);
	}
	else{
		//idstyle.visibility="visible";
	}
}

function fadeouteng(opacity, idstyle){ 
	opacity -= opacchange;

	idstyle.opacity = (opacity / 101); 
	idstyle.MozOpacity = (opacity / 101); 
	idstyle.KhtmlOpacity = (opacity / 101); 
	idstyle.filter = "alpha(opacity=" + opacity + ")";
	
	clearTimeout(fadeoutto);
	if(opacity > 50){
		fadeoutto = setTimeout(function(){fadeouteng(opacity,idstyle);},fadeouttime);
	}
	else{
		//idstyle.visibility="hidden";
	}
}

/************************ Menu ************************/

var menuids=new Array("verticalmenu");
var submenuoffset=-2;

function createcssmenu(){
	for (var i = 0; i < menuids.length; i++){
		var ultags = document.getElementById(menuids[i]).getElementsByTagName("ul");
		for (var t = 0; t < ultags.length; t++){
		    var spanref=document.createElement("span")
				spanref.className="arrowdiv"
				spanref.innerHTML="&nbsp;&nbsp;"
				ultags[t].parentNode.getElementsByTagName("a")[0].appendChild(spanref)		
		    ultags[t].parentNode.onmouseover=function(){
				this.getElementsByTagName("ul")[0].style.display='block';
		    }
		    ultags[t].parentNode.onmouseout=function(){
				this.getElementsByTagName("ul")[0].style.display='none';
		    }
		}
	}
}

if (window.addEventListener)
	window.addEventListener("load", createcssmenu, false)
else if (window.attachEvent)
	window.attachEvent("onload", createcssmenu)
	

/************************ Theme Changer ************************/

function changetheme(selector){
	var themeval;
	themeval = selector.options[selector.selectedIndex].value;

	if(themeval){
		var i, a;
		for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
			if( (a.getAttribute("rel").indexOf("style") != -1)	&& (a.getAttribute("title")) ){ 
			//If its a link to a stylesheet and has a title
				a.disabled = true;
				if(a.getAttribute("title") == themeval)
					a.disabled = false;
			}
		}
	}
}

