// JavaScript Document
/*
	This script runs various web services that retrieve data from the NCTCWeb database 
	and return the data in XML format.  The XML data is parsed and returned to web pages
	as HTML.
	
	loadXML is the main routine that is called from a web page.  It accepts three parameters:
	1.  url = URL of the web service
	2.  id = HTML tag identifier that is used to determine what action is performed
	3.  args = Additional parameters or information passed to the web service or XML parsing routine.
*/
<!--

function loadXMLDoc(url, id) {
	var req;
	
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
		req.onreadystatechange= function() { 
			if (req.readyState==4) {
				if (req.status==200) {
					processReqChange(req, id)
				}
			}
		}
        req.open("GET", url, true);
        req.send(null);
		
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        isIE = true;
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
			req.onreadystatechange= function() { 
				if (req.readyState==4) {
					if (req.status==200) {
						processReqChange(req, id)
					}
				}
			}
            req.open("GET", url, true);
            req.send();
        }
    }
}

function processReqChange(req, id) {
	
	var response;
	
	response = req.responseXML.documentElement;
	
	if (id == 'listCourse') {
		writeGetCoursesHTML (req, response, id);
	} else if (id == 'siteHeader') {
		writeGetBannerImagesHTML (req, response, id);
	} else {
		writeHTML (req, response, id);
	}
			
}

function writeHTML (req, response, id) {
	
	debugger;
	var div = document.getElementById('siteHeader');
    txt = '*** AJAX Retrieval Error ***';
	div.innerHTML = txt;  // assign new HTML into #ROOT
	
}

function writeGetBannerImagesHTML (req, response, id) {
	
	var div = document.getElementById(id);
	var count = response.getElementsByTagName('ImageId').length;
	var i = 0;
	var idx = 0;
	var imageId = "";
	var imageCategory = "";
	var imageFileName = "";
	var imageCaption = "";
	var imageCredit = "";
	var imageLink = "";
	var txt = "";
	
	/*  If the web service did not return any data, do not execute the rest of 
		this function.
	*/
	if (count <= 0) {
		return;
	}
	
	idx = Math.ceil(Math.random(count)*count);
	if (idx <= 0) idx = 1;
	if (idx >= count) idx = count;
	
	for (var i = 0; i < idx; i++) { 
		imageId = response.getElementsByTagName('ImageId')[i].firstChild.data;
		imageCategory = response.getElementsByTagName('ImageCategory')[i].firstChild.data;
		imageFileName = response.getElementsByTagName('ImageFileName')[i].firstChild.data;
		imageCaption = response.getElementsByTagName('ImageCaption')[i].firstChild.data;
		imageCredit = response.getElementsByTagName('ImageCredit')[i].firstChild.data;
		imageLink = response.getElementsByTagName('ImageLink')[i].firstChild.data;	
	}
	txt = '<a href='+'"'+imageLink+'"'+'><img id="siteHeaderImage" src="'+imageFileName+'" alt="'+imageCaption+' (Click image for more information)" /></a>'+'<div id="siteHeaderPhotoCredit"><span id="siteHeaderPhotoCreditText">Photo Credit: '+imageCredit+'</span></div>';
	
	div.innerHTML = txt;  // assign new HTML into #ROOT
	
}

function writeGetCoursesHTML (req, response, id) {
		
	var div = document.getElementById(id);
	var txt = "";
	var code = "";
	var codelong = "";
	var title = "";
	var date = "";
	var cancel = "";
	var move = "";
	var location = "";
	
	//document.forms[0].output.value  = req.responseText
			
	txt = "<span class='listCourseTitle'><a href='/NCTCWeb/catalog/CourseSearch.aspx'>Upcoming Courses</a></span>"
			
	for (var i = 0; i < response.getElementsByTagName('Course_Code').length; i++) {
	
		if (txt.length > 0) { txt += "<hr /> "; }

		code = response.getElementsByTagName('Course_Code')[i].firstChild.data;
		codelong = response.getElementsByTagName('Course_Code_Long')[i].firstChild.data;
		title = response.getElementsByTagName('Course_Title')[i].firstChild.data;
		date = response.getElementsByTagName('Display_Date')[i].firstChild.data;
		cancel = response.getElementsByTagName('Class_Session_Name')[i].firstChild.data;
		move = response.getElementsByTagName('Class_Session_Name')[i].firstChild.data;
				
		if (move.toLowerCase().indexOf("move") < 0) {
			move = '';
		} else {
			move = '<span class="listhighlighttext"> (Moved) </span>';
		}
				
		if (cancel.toLowerCase().indexOf("cancel") < 0) {
			cancel = '';
		} else {
			cancel = '<span class="listhighlighttext"> (Canceled) </span>';
		}
							
		location = response.getElementsByTagName('Location_Name')[i].firstChild.data;
		if (location.toLowerCase().indexOf("nctc") < 0) {
			location = '<span class="listhighlighttext"> (' + location + ')</span>';
		} else {
			location = '';
		}
											
		code = '<a href="/nctcweb/catalog/CourseDetail.aspx?CourseCodeLong=' + codelong + '">' + code + '</a>'
	    txt += '<span class="listItemCourseCode">' + code + '&nbsp;-&nbsp;' + date + '</span>' + location + cancel + move + ' - ' + title;
	}
				
	div.innerHTML = txt;  // assign new HTML into #ROOT
	div.style.display = 'block'; // make element visible
	div.style.visibility = 'visible'; // make element visible
	
}

function loadXML(form, id, args) {
	
	if (id == 'listCourse') {
		loadXMLDoc('/NCTCWeb/WebServices/GetCourses.asmx/GetCourses', id);
	} else if (id == 'siteHeader') {
		loadXMLDoc('/NCTCWeb/WebServices/GetImages.asmx/GetImages?ImageCategory='+args, id);
	} else {
		loadXMLDoc('/NCTCWeb/WebServices/GetCourses.asmx/GetCourses', id);
	}
	

}
//-->


