// Creates two level horizontal menus
// Coder: Puspa Mahat
// Coded for the Department's Website. Should be used for that purpose only.
// For Support please mail at mahatpuspa@gmail.com


mnuindex = 0;
title= new Array();

mlink = new Array();

parents = new Array();

xcod = new Array();
ycod =new Array();
ycod[0] = 61;
yoffset = 87;
writetxt = new Array();
tmnucount = 0; 
timerActive = 0;

mnudelay = 100;
activeId = -1;
active = 0;
subactive = 0;
menuTimer  = new Object();
sublevelTimer = new Object();

rooturl = "http://cs.lamar.edu"; //This is the root url links will be relatice to this


function changeColor(id,st)
{	
	if(st==1)
	{
		//document.getElementById('top'+id).style.border="solid 1px #8888ff";
		document.getElementById('top'+id).style.color="#ffffff";
		document.getElementById('top'+id).style.background="#000000";	
	}
	else
	{
		document.getElementById('top'+id).style.color="#ffffff";
		//document.getElementById('top'+id).style.border="#FFFFFF";
		document.getElementById('top'+id).style.background="000000";
	}
}


function setSubActive(id,st)
{
	if(st==1)
	{
		endTimer();
		active=1;
		subactive = 1;
		if(active == 0)showSub(parents[id]);
	}
	else
	{
		active = 0;
		subactive = 0;
		sublevelTimer=window.setTimeout("submenuTimeOut("+id+")",mnudelay);
	}
}
function submenuTimeOut(id)
{
	if(subactive == 0)
	{
		document.getElementById("sub"+id).style.visibility = 'hidden';
		if(active == 0)
		{
			document.getElementById("sub"+parents[id]).style.visibility = 'hidden';
			changeColor(parents[id],0);
		}
	}
} 


function showSubSub(id)
{
	active = 1;
	if(subactive == 0){document.getElementById('sub'+id).style.visibility = 'visible';subactive =1;}
}

function menuhasChild(p)
{
	for(var i=0;i<parents.length;i++)
		if(parents[i] == p)
			return 1;
	return 0;
}



function showSub(id)
{
	try
	{
		if(activeId != id)
		{
			if(activeId != -1)hideActive();
			document.getElementById('sub'+id).style.visibility = 'visible';
			activeId = id;
			active = 1;
			changeColor(id,1);
		}
		active = 1;
	}
	catch(e)
	{
	}
}

function hideActive()
{
	try{
		document.getElementById('sub'+activeId).style.visibility = 'hidden';
		changeColor(activeId,0);
		activeId = -1;
	}catch(e){ }
}
function hideSub(id)
{
	active = 0;
	if(timerActive == 1)endTimer();
	setTimer(id);
}

function drawMenu()
{
	//prepare array
	var i;
	for(i=0;i<title.length;i++)writetxt[i]='';
	
	tstr = '<div style="width:'+(92*tmnucount+2*tmnucount+1)+'px;">';
	sstr = ''; 
	for(i=0;i<title.length;i++)
	{
		if(parents[i] == 0)
		{
			if(menuhasChild(i)==1)
			{
			
				writetxt[parents[i]] += '<a id="top'+i+'" class="tmnu" href="'+mlink[i]+'" onmouseover = "showSub('+i+');" onmouseout="hideSub('+i+');" >'+title[i]+'</a>';
			}
			else
			{
				writetxt[parents[i]] += '<a class="tmnu" href="'+mlink[i]+'" onmouseover="hideActive();">'+title[i]+'</a>';
			}
			xcod[i] = 92 * i + (i+1)*2;
		}
		else
		{
			xcod[i] = xcod[parents[i]];
						
			if(menuhasChild(i)==1)
			{
				writetxt[parents[i]] += '<tr><td onmouseover="showSubSub('+i+');" onmouseout="setSubActive('+i+',0);"><a class="itmX" href="'+mlink[i]+'">'+ title[i]+'</a></td></tr>';
			}
			else
			{
				writetxt[parents[i]] += '<tr><td><a class="itm" href="'+mlink[i]+'">'+ title[i]+'</a></td></tr>';
			}
		}
	}
	
	//Now write top level menu first
	tstr += writetxt[0]+'</div><div class="clr"></div>';
	document.write(tstr);
	
	//Second Phase write all the second level menus
	for(i=1;i<tmnucount;i++)
	{
		if(writetxt[i]!='')
		{
			sstr = '<table class="Submenu" id="sub'+i+'" style="left:'+xcod[i]+'px;';
			
			if(navigator.appName == "Netscape")sstr = sstr + 'top:'+yoffset+'px;'; //Browser Compability issue
			
			sstr = sstr + '" onmouseover="showSub('+i+');" onmouseout="hideSub('+i+');">';
			sstr = sstr + writetxt[i]+'</table>';
			document.write(sstr);
		}
	}
	
	//Third Phase write all the third level menus
	for(i=tmnucount;i<title.length;i++)
	{
		if(writetxt[i]!='')
		{
			sstr = '<table cellspacing ="0" cellpadding="0" class="Submenu" id="sub'+ i +'" style="left:'+(xcod[i]+150)+'px;';
			
			if(navigator.appName == "Netscape")sstr = sstr + 'top:'+yoffset+'px;'; //Browser Compability issue
			
			sstr = sstr + '" onmouseover="setSubActive('+i+',1);" onmouseout="setSubActive('+i+',0);">';
			
			sstr = sstr + writetxt[i]+'</table>';
			document.write(sstr);
		}
	}
}


function setTimer(id)
{
   try
   {
	   if(timerActive == 1)endTimer();
	   timerActive = 1;
	   menuTimer = window.setTimeout("menutimedOut("+id+")",mnudelay);
	}
	catch(e)
	{
		
	}
}

function menutimedOut(id)
{
	if(active == 0)
		{
			try
			{
				document.getElementById('sub'+id).style.visibility = 'hidden';
				changeColor(id,0);
				activeId = -1;
			}
			catch(e)
			{
			}
			timerActive = 0;
		}
}


function endTimer()
{
	try
	{
		window.clearTimeout(menuTimer);
		timerActive = 0;
	}
	catch(e)
	{
		
	}	
}


function addMenu(parentID,mnutitle,lnk)
{
	if(parentID!=null && parentID!='')parents[mnuindex] = parentID;
	else parents[mnuindex] = 0;
	title[mnuindex] = mnutitle;
	if(lnk=='http://buchberger.cs.lamar.edu/seminar')
	   mlink[mnuindex]=lnk;
	else if(lnk!='' && lnk != null)mlink[mnuindex] = rooturl + "/" + lnk;
	else mlink[mnuindex] = "javascript:void(0);";
	
	if(parentID == 0) tmnucount++;
	mnuindex++;
}


function createMenu()
{
	addMenu(0,'CS Home','index.php');//0
	addMenu(0,'Department','');//1
	addMenu(0,'Academics','');//2
	addMenu(0,'People','');//3
	addMenu(0,'Undergraduate','');//4
	addMenu(0,'Graduate','');//5
	addMenu(0,'Alumni','alumni/alumni.php');//6
	addMenu(0,'Certifications','');//7
	addMenu(0,'Hall of Honor','hallofhonour/hoh.htm');//8
	//edit:Pratishara Maharjan
	//date:16/01/2009
	//addMenu(0,'Tech Reports','tech_reports/index.htm');//8
	
	
	
	
	//addMenu(0,'Department','');//1
	    
		addMenu(1,'Know CS','');//6
		addMenu(1,'Research Seminar','http://buchberger.cs.lamar.edu/seminar');//9
		addMenu(1,'Acad Honesty Policy','departmenthonesty.htm');//7
		addMenu(1,'Assessment','assessments/assessment.htm');//8
		addMenu(1,'Activities','activity/index.htm');//9
		addMenu(1,'Publishers','publisher/publisher.htm');//10
		addMenu(1,'Intl Student Info.','intl_students/intl_students_info.php');//11
		addMenu(1,'Computing Facilities','csfacility/index.htm');//12
		addMenu(1,'Gallery','gallery/index.htm');//12
		addMenu(1,'Gifts & Donations','Donations/Donation07-08.htm');//18
		

		addMenu(10,'About CS','aboutcs.htm');//13
		addMenu(10,'Mission','mission/mis_bot.htm');//14
		//addMenu(9,'Vision','vision/vision.htm');//15

	//addMenu(0,'Academics','');//12
	addMenu(2,'Course Schedule','courseschedule/spring2009.htm');//16
			addMenu(25,'Graduate','courserotation/index.htm');//22
			addMenu(25,'Undergraduate','courserotation/undergraduate.htm');
			
		
		addMenu(2,'Course Rotation Schedule','');//21
		//addMenu(12,'Final Exam Sched','?page=courseschedule/finalF2005.htm');
		addMenu(2,'Textbooks','coursetextbooks/spring09.htm');//17
		addMenu(2,'Grants','grants/grants.htm');//18
		//addMenu(2,'Opnet Research','opnet/index.htm');//18
		addMenu(2,'Financial Aid','financialaid/index.htm');//19
		addMenu(2,'MSDNAA','msdnaa/msdnaa.htm');//20
		


	//addMenu(0,'People','');//19
		addMenu(3,'Faculty','');//21
			addMenu(30,'List','faculty/faculty.htm');//22
			addMenu(30,'Assessment','faculty/Assessment/assess/signin.php');
			addMenu(30,'Tenure Guidelines','/faculty/Draft-tenure-guidelines.doc');//23
			addMenu(30,'Promotion Guidelines','/faculty/Draft-promotion-guidelines.doc');//24
			
		addMenu(3,'Staff','staff/staff.htm');//25
		//addMenu(3,'Alumni','alumni/alumni.php');//26
		addMenu(3,'Employer','employer/login.php');//27
		addMenu(3,'Message Board','forum/login.html');//28
		addMenu(3,'Student Orgs','csstudorg.htm');//29
		addMenu(3,'Ind. Advisory Board','advisoryboard/index.htm');//30

	//addMenu(0,'Undergraduate','');//26
		addMenu(4,'Program of Study','');//31
		addMenu(4,'Course Description','UnderGrad/coursedesc.htm');
		addMenu(4,'Freshmen Curriculum','UnderGrad/curricula.htm');//32
		addMenu(4,'CS4Hire','cs4hire.htm');//33
		addMenu(4,'Mentoring Program','UnderGrad/mentoring.htm');//30
		addMenu(4,'Entrance Requirements','UnderGrad/entreqcscis.htm');//31
		addMenu(4,'Academic Policy','UnderGrad/ascsd.htm');//32
		addMenu(4,'Outcomes and Objectives','UnderGrad/objectives.htm');//33
		addMenu(4,'5 Year CIS/MBA Track','UnderGrad/cismba.htm');//34

			addMenu(37,'CS','UnderGrad/BsCs.htm');//35
			addMenu(37,'CIS','UnderGrad/BsCis.htm');//36
			addMenu(37,'CS & EE','UnderGrad/bsinee.htm');//37

	//addMenu(0,'Graduate','');//37
		addMenu(5,'Overview','Grad/overview.htm');//38
		addMenu(5,'Mission','Grad/mission.htm');//38
		addMenu(5,'Vision','vision/MSvision.htm');//38
		addMenu(5,'Objectives','Grad/objective.htm');//38
		addMenu(5,'Degree Reqs','Grad/csdegree.htm');//39
		addMenu(5,'Course Description','Grad/coursedesc.htm');
		addMenu(5,'Application Process','Grad/csapp.htm');//40
		addMenu(5,'Admissions','Grad/csadmgrad.htm');//41
		addMenu(5,'CS4Hire','cs4hire.htm');//48
		addMenu(5,'Faculty','faculty/faculty.htm');//42
		addMenu(5,'Courses','Grad/courses/index.htm');//43
		addMenu(5,'Thesis/Non-Thesis Option','Grad/thesis.htm');//44
		addMenu(5,'Internships','Grad/csintern.htm');//45
		addMenu(5,'Research','Grad/csresearch.htm');//46
		addMenu(5,'Graduation','Grad/csgraduation.htm');//47
		
		
		addMenu(7,'SCP','scp/scp.htm');//47
		//addMenu(0,'Tech Reports','hallofhonour/hoh.htm');//8
		
		//addMenu(7,'Hall of Honor','hallofhonour/hoh.htm');//48
		

	//addMenu(0,'CS4Hire','cs4hire.htm');//48
	
	drawMenu();
}
