// global variables
var campusCode;
var campusName;
var selectedYear;
var courseCode;
var courseName;
var stdYearCredit;

var noUnitsSelected = 0;
var selectedUnitsCP = 0.00; 
var selectedUnitsFee = 0.00;
var selectedUnitsEfstl = 0.00;

var selectedCourse;
var selectedCourseId;
var selectedCourseCP;

var pId;

var selectedTRObjList = new Array();
var loadedobjects = ""; // list of dynamically loaded objects. To avoid duplicate re-loading

// called by onLoad event of BODY tag
// calculates the default course current year based on the current month.
function onLoadEvent() {
}


// retreives the details of the Units attached to the course
function getCourseList() {
	var url = 'courseList.do?actionName=courseList&campusCode='+
		campusCode+'&selectedYear='+selectedYear;
	
	var exeMethodList = new Array();
	exeMethodList[0] = "setInnerHTML('container', true)";
	exeMethodList[1] = "loadObjs('includes/css/tableStyle.css')";
	
	getAJAXpage(exeMethodList, url, true);
}

function setCampus(obj) {
	var eo = document.getElementById("errorMessage");
	eo.innerHTML = "";
	
	campusCode = obj[obj.selectedIndex].value;
	campusName = obj[obj.selectedIndex].text;
	
	if(selectedYear != null) {
		getCourseList();	
		var labelObj = document.getElementById("selectLabel");
		labelObj.innerHTML = "Please double click on your choice of course.";
	}
}

function setYear(obj) {
	var eo = document.getElementById("errorMessage");
	eo.innerHTML = "";

	selectedYear = obj[obj.selectedIndex].text;
	
	if(campusCode != null) {
		getCourseList();	
		var labelObj = document.getElementById("selectLabel");
		labelObj.innerHTML = "Please double click on your choice of course.";
	}
}

// retreives the details of the Units attached to the course
function getUnitList(obj) {
	// initialize global variables
	var feeType = obj.value;
	noUnitsSelected = 0;
	selectedUnitsCP = 0.00;
	selectedUnitsFee = 0.00;
	selectedUnitsHecs = 0.00;
	selectedUnitsOs = 0.00;
	selectedCourseCP = "";
	selectedCourse = "";
	selectedCourseId = ""
	
	stdYearCredit = document.getElementById("stdYearCredit").innerHTML;
	
	var url = 'courseList.do?actionName=unitList&campusCode='+
		campusCode+'&selectedYear='+selectedYear + '&feeType='+feeType
		+ '&stdYearCredit=' + stdYearCredit;
	
	var exeMethodList = new Array();
	exeMethodList[0] = "setInnerHTML('container', true)";
	exeMethodList[1] = "loadObjs('includes/css/tableStyle.css')";
	
	getAJAXpage(exeMethodList, url, true);
	
	var checkBoxObj = document.getElementById("checkBoxLabel");
	checkBoxObj.innerHTML = "Select the check boxes against the units you wish to evaluate";
}

// get course list
function getCourseFeeDetails(obj) {
	var colObj = obj.getElementsByTagName('td');
	
	courseCode = colObj[0].innerHTML;
	courseName = colObj[1].innerHTML;
	stdYearCredit = colObj[2].innerHTML;		
	self.location = 'courseDetailList.do?campusCode='+campusCode+'&campusName='
			+campusName+'&selectedYear='+selectedYear+'&courseCode='+courseCode;			
}

// Logic to sum the various fees and the credits of the selected Units
function countSelectedUnits(obj) {
	var id = obj.id;
	
	var trId = document.getElementById('tr'+id);
	var cols = trId.getElementsByTagName('td');
	
	var tdCreditObj = document.getElementById('cp'+id);
	var tdEfstlObj = document.getElementById('efstl'+id);
	var tdFeeObj = document.getElementById('fee'+id);
	
	var creditValue = parseFloat(tdCreditObj.innerHTML);
	var efstlValue = parseFloat(tdEfstlObj.innerHTML);
	var feeValue = parseFloat(tdFeeObj.innerHTML);
	
	if(obj.checked == true)
	{
		noUnitsSelected++;
		selectedUnitsCP += creditValue;
		selectedUnitsEfstl += efstlValue;
		selectedUnitsFee += feeValue;
		selectedTRObjList.push(id);
		for(var i=0; i<cols.length; i++)
		{
			cols[i].style.backgroundColor = 'gray';
		}
	} 
	else
	{
		noUnitsSelected--;
		selectedUnitsCP -= creditValue;
		selectedUnitsEfstl -= efstlValue;
		selectedUnitsFee -= feeValue;
		selectedTRObjList.pop(id);
		for(var i=0; i<cols.length; i++)
		{
			cols[i].style.backgroundColor = '#EEEEEE';
		}		
	}
	
	var tdUnitsObj = document.getElementById('noUnitsSelected');
	tdUnitsObj.innerHTML = noUnitsSelected;
	
	var tdCreditObj = document.getElementById('cpSum');
	tdCreditObj.innerHTML = selectedUnitsCP;
	
	var tdEfstlObj = document.getElementById('efstlSum');
	tdEfstlObj.innerHTML = selectedUnitsEfstl.toFixed(3);
	if(tdEfstlObj.innerHTML.substring(0, 1) == "-")
		tdEfstlObj.innerHTML = tdEfstlObj.innerHTML
			.substring(1, tdEfstlObj.innerHTML.length);
	
	var tdFeeObj = document.getElementById('feeSum');
	tdFeeObj.innerHTML = '$'+selectedUnitsFee.toFixed(2);
	if(tdFeeObj.innerHTML.substring(0, 2) == "$-")
		tdFeeObj.innerHTML = tdFeeObj.innerHTML.replace("$-", "$");
	
	if(navigator.appName != "Netscape")
	{
		var tdIEUnitsObj = document.getElementById('noUnitsSelectedHead');
		tdIEUnitsObj.innerHTML = tdUnitsObj.innerHTML;
		
		var tdIECreditObj = document.getElementById('cpSumHead');
		tdIECreditObj.innerHTML = tdCreditObj.innerHTML;
		
		var tdIEEfstlObj = document.getElementById('efstlSumHead');
		tdIEEfstlObj.innerHTML = tdEfstlObj.innerHTML;
		
		var tdIEFeeObj = document.getElementById('feeSumHead');
		tdIEFeeObj.innerHTML = tdFeeObj.innerHTML;
	}
}
// build xml of the selected units and course detail.
//
function print() {
	if(noUnitsSelected == 0) {
		alert("Please select at least one unit\nto print in PDF format");
		return;
	}
	var mainEle = document.createElement("action")

	var courseEle = document.createElement("course");
	mainEle.appendChild(courseEle);
	courseEle.setAttribute('id', courseCode + ' ');
	courseEle.setAttribute('year', selectedYear);
	courseEle.setAttribute('credit', stdYearCredit + ' ');

	var courseNameEle = document.createElement("name");
	courseNameEle.innerHTML = courseName;
	courseEle.appendChild(courseNameEle);
	courseEle.appendChild(document.createElement("logo"));

	var campusEle = document.createElement("campus");
	campusEle.innerHTML = campusName;
	courseEle.appendChild(campusEle);

	//Units nodes
	var units = document.createElement("units");
	units.setAttribute("selectedunits", noUnitsSelected);
	units.setAttribute("totalcredits", selectedUnitsCP);
	units.setAttribute("totalfee", selectedUnitsFee);
	units.setAttribute("totalefstl", selectedUnitsEfstl);
	courseEle.appendChild(units);


	// loop over the selected units
	for(var i = 0; i < selectedTRObjList.length; i++) {
		unitId = selectedTRObjList[i];
		// create unit node
		var unit = document.createElement("unit");
		unit.setAttribute("id",  unitId + ' ');
		var unitName = document.createElement("name");
		var credit = document.createElement("credit");
		var fee = document.createElement("fee");
		var efstl = document.createElement("efstl");

		var obj = document.getElementById('desc'+unitId);
		unitName.innerHTML = obj.innerHTML;
		obj = document.getElementById('cp'+unitId);
		credit.innerHTML = obj.innerHTML;
		obj = document.getElementById('fee'+unitId);
		fee.innerHTML = obj.innerHTML;
		obj = document.getElementById('efstl'+unitId);
		efstl.innerHTML = obj.innerHTML;
		unit.appendChild(unitName);
		unit.appendChild(credit);
		unit.appendChild(efstl);
		unit.appendChild(fee);
		units.appendChild(unit);
	}

	var xml = mainEle.innerHTML
	//clean up
//	mainEle.removeChild(courseEle);
	var url = 'download.do?selectedCourseList='+xml;
//	var exeMethodList = new Array();
//	exeMethodList[0] = "download()";
	self.location.href = url;
}


// Dynamically add the LINK and SCRIPT nodes to the HEAD node.
function loadObjs() {
	if (!document.getElementById)
		return
		
	for (i=0; i<arguments.length; i++){
		var file=arguments[i]
		var fileref=""
		//Check to see if this object has not already been added to page before proceeding
		if (loadedobjects.indexOf(file)==-1){ 
			if (file.indexOf(".js")!=-1){ //If object is a js file
				fileref=document.createElement('script')
				fileref.setAttribute("type","text/javascript");
				fileref.setAttribute("src", file);
			}
 			//If object is a css file
 			else if (file.indexOf(".css")!=-1) {
// 				if(navigator.appName == "Netscape") {
					fileref=document.createElement("link")
					fileref.setAttribute("rel", "stylesheet");
					fileref.setAttribute("type", "text/css");
					fileref.setAttribute("href", file);
//				}
			}
		}
		if (fileref!=""){
			var head = document.getElementsByTagName("head");
			head.item(0).appendChild(fileref);
			loadedobjects+=file+" "; //Remember this object as being already added to page
		}
	}
}

//colors row
function colorClick(obj, color1, color2)
{
    currentCells = obj.getElementsByTagName('td');
	
	for(var n=0; n < currentCells.length; n++)
	{
    	currentCells[n].style.backgroundColor = color1;
	}
	
	if( (pId != null) && (pId != obj.id))
	{
		var row = document.getElementById(pId);
		var col = row.getElementsByTagName('td');

		for(var n=0; n < col.length; n++)
		{
	    	col[n].style.backgroundColor = color2;
		}
	}

	pId = obj.id;
}
