/*
function DoBench(x){
	var startTime,endTime,gORl='local';
	if(x==1) {
		startTime=new Date().getTime();
		Bench1();
		endTime=new Date().getTime();
	}
	else{
		gORl='global';
		startTime=new Date().getTime();
		Bench2();
		endTime=new Date().getTime();
	}
	alert('Elapsed time using '+gORl+' variable: '+((endTime-startTime)/1000)+' seconds.');
}
*/

function showCourses(o,l) {
	var s='category_';
	unhighlightAll(s,l);
	highlightSelected(s,o,l);

	// unhighlight & reactivate courses
	var f='course_';
	var e='cours_';
	var t='showDesc(';
	var cc='course_courses';
	cc=document.getElementById(cc);
	tns=cc.getElementsByTagName('li');
	var xx=0;
	for(var i=0;i<tns.length;i++) {
		tn=tns.item(i).id;
		if(tn.match(/course_[\d]+/))
			xx++;
	}
	
	for(var i=0;i<xx;i++) {
		p=document.getElementById(f+i);
		//p.style.background="#dddddd";
		p.removeAttribute("class");
		n=document.getElementById(e+i);
		z=t+i+','+xx+'); return false;';
		n.setAttribute("href","#");
		n.setAttribute("onClick",z);
	}

	var x='categ_';
	reactivate(x,l,0);
	deactivate(x,o);

	var c='cat_';
	hideAll(c,l);

	p=document.getElementById('course_descriptions');
	p.style.display="none";

	d=document.getElementById('course_courses');
	if(d.style.display=="none")
		showEffect(d);
	
	var c='cat_'+o;
	showEffect(c);
	expandCourses(c);
}

function showDesc(o,l) {
	var s='course_';
	unhighlightAll(s,l);
	highlightSelected(s,o,l);

	var x='cours_';
  reactivate(x,l,1);
	deactivate(x,o);

	var c='description_';
	hideAll(c,l);

	d=document.getElementById('course_descriptions');
	if(d.style.display=="none")
		showEffect(d);	
	
	var c='description_'+o;
	showEffect(c);
	expandDesc(c);
}

function reactivate(x,l,t) {
	if(t)
		t='showDesc(';
	else
		t='showCourses(';
	for(var i=0;i<l;i++) {
		s=t+i+','+l+'); return false;';
		a=x+i;
		b=document.getElementById(a);
		b.setAttribute("href","#");
		b.setAttribute("onClick",s);
	}
}

function deactivate(x,o) {
	x=x+o;
	x=document.getElementById(x);
	x.removeAttribute("href");
	x.removeAttribute("onClick");
}

function unhighlightAll(s,l) {
	for(var i=0;i<l;i++) {
		c=s+i;
		c=document.getElementById(c);
		c.removeAttribute("class");
	}
}

function highlightSelected(s,o,l) {
	o=s+o;
	c=document.getElementById(o);
	c.setAttribute("class","selected");
}

function showEffect(o) {
	new Effect.Appear(o,{duration:.8,from:0,to:1.0});
}

function expandCourses(o) {
	if(document.getElementById) {
		p=document.getElementById('course_courses');
		c=document.getElementById(o);
		p.style.width="260px";
	}
}

function expandDesc(o) {
	if(document.getElementById) {
		p=document.getElementById('course_descriptions');
		c=document.getElementById(o);
		p.style.width="292px";
	}
}

function hideAll(c,l) {
  for(var i=0;i<l;i++) {
			d=c+i;
		if(document.getElementById)
			document.getElementById(d).style.display="none";
		else {
			if(document.layers)
				document.d.display="none";
			else
				document.all.d.style.display='none';
		}
	}
}

function show(o) {
	if(document.getElementById)
		document.getElementById(o).style.display="block";
	else {
		if(document.layers)
			document.o.display="block";
		else
			document.all.o.style.display="block";
	}
}

/*  ---  og not used ---  */
function toggle(toggler) {
	if(document.getElementById) {
		targetElement=toggler.parentNode.nextSibling;
		targetDiv=toggler.parentNode.parentNode;
	
		if(targetElement.className==undefined)
			targetElement=toggler.parentNode.nextSibling.nextSibling;

		if (targetElement.style.display=="block") {
			targetDiv.style.width="40px";
			targetElement.style.display="none";
		}
		else {
			targetDiv.style.width="250px";
			targetElement.style.display="block";
		}
	}
}
