//Define and set up the XML objects we may need
var object
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
var xmlObj=xmlDoc.documentElement; 
			
function deleteSession(obj,client_id){
	object = obj;
	
	var xml = '<basket user_id="'+ cookie_value +'"></basket>';
	if (xmlDoc.loadXML(xml))	{
		MyNewNode = xmlDoc.createElement('client');
		MyNewNode.setAttribute('id',client_id); 
		MyNewNode.setAttribute('action','delete');
		xmlDoc.documentElement.appendChild(MyNewNode);
		MyNewNode = null;
	};				
	//send xml to the server 
	aspIframe.document.info.xml.value = xmlDoc.xml;
	aspIframe.document.info.type.value = 'deleteSession';
	aspIframe.document.info.submit();
}
//now check return
			
function processDelete(responseObj){
	if (responseObj.nodeName == "ack")
	{
		var myElement = object.document.activeElement
		//now delete the display row
		var myHTMLRow = GetSource(object,'tr');
		var myHTMLTable = GetSource(myHTMLRow,'table');
		var myRowIndex = myHTMLRow.rowIndex;
			
		myHTMLTable.deleteRow(myRowIndex); 
		myHTMLTable.deleteRow(myRowIndex); 
	}
	else
	{
		alert('There has been a server error');
	}
}
			
function GetSource(obj,SourceTagName){
	var Match = 0;
	do
	{
		if (obj.tagName.toUpperCase() == SourceTagName.toUpperCase()){
			Match = 1;
		}else{
			obj = obj.parentElement;
		}	
	}while(Match!=1)
	return obj;
}
			

function readCookie(name){
	//get cookie
	var cookies = document.cookie;
	cookies = unescape(cookies);
	var start = cookies.indexOf(name + "=");
				
	if(start!=-1){
		start = cookies.indexOf("=", start) + 1;
		var end = cookies.indexOf(";", start);
		if (end == -1){
			end = cookies.length;
		}
		var value = unescape(cookies.substring(start,end));
		if (value == null){
			//alert("2 no cookie found");
		} else {
			cookie_value = value;
		}
	}else{cookie_value=''};
}
			
var cookie_value = '';
readCookie("user_id");
			
// end get cookie
			
//make sure the cookie is empty so it can be checked on save session
//writeCookie("lcd_client_id",'');
//writeCookie("mis_id",'');
			
function newSession()
{
				
	if (confirm("Are you sure you want to start a new session"))
	{
		sBasketName = window.prompt("Please choose a name for the session", "New Session")
		//first get user id cookie
		readCookie("user_id");
		var user_id = cookie_value;
					
		var xml = '<basket user_id="'+ user_id +'"></basket>';
		if (xmlDoc.loadXML(xml))	{
			MyNewNode = xmlDoc.createElement('client');
			MyNewNode.setAttribute('id','new'); 
			MyNewNode.setAttribute('action','update');
			MyNewNode.setAttribute('basket_name',sBasketName);
			xmlDoc.documentElement.appendChild(MyNewNode);
			MyNewNode = null;
		};			
		//send xml to the server 
		//N.B. callback returns to processNew - see LCDTalker.asp
		aspIframe.document.info.xml.value = xmlDoc.xml;
		aspIframe.document.info.type.value = 'newSession';
		aspIframe.document.info.submit();	
	}
}
			
function processNew(responseObj)
{
	//make sure the cookie is empty so that it can be checked on save
	writeCookie("lcd_client_id",'');
	writeCookie("mis_id",'');
	if (responseObj.nodeName == "ack")
	{
		var new_lcd_client_id = responseObj.selectSingleNode("//client").getAttribute('id');
		var new_lcd_client_name = responseObj.selectSingleNode("//client").getAttribute('name');
		var new_lcd_client_full_name = responseObj.selectSingleNode("//client").getAttribute('full_name');
					
		//now save the id in the cookie
		writeCookie("lcd_client_id", new_lcd_client_id);
		//alert(new_lcd_client_id);
		alert('Your new session has started.\n The session name is: ' + new_lcd_client_full_name + ' ' + new_lcd_client_name);
	}
	else
	{
		alert('There has been a server error');
	}
}
function saveSession()
{
	//first check to see that a session exists
	readCookie("lcd_client_id");
	var lcd_client_id = cookie_value;
	//alert(lcd_client_id);
	if (lcd_client_id=='')
	{
		alert ("You have no current session: please click on 'Start Save Session'");
		return;
	}
				
	//now go thru checkboxes, get the id of each selected one
	//and build up format of <course id="1002" action="update"/>
	var coursexml = '';
				
	var tempxml = '';
	var allCheckboxes = document.all.tags("INPUT");
	for (var i=0; i < allCheckboxes.length; i++)
	{
		tempxml = '';
		if (allCheckboxes[i].type == 'checkbox' && allCheckboxes[i].checked)
		{
			tempxml = '<course id="' + allCheckboxes[i].id + '" action="update"/>';
			coursexml += tempxml;
		}
	}
					
	//format xml for posting
	readCookie("user_id");
	var user_id = cookie_value;
				
	var xml='<basket user_id="' + user_id + '"><client id="' + lcd_client_id + '" action="update">' + coursexml + '</client></basket>';
	//alert(xml);
	//send xml to the server 
	//N.B. callback returns to processSave - see LCDTalker.asp
	aspIframe.document.info.xml.value = xml;
	aspIframe.document.info.type.value = 'saveSession';
	aspIframe.document.info.submit();
						
}
function processSave(responseObj)
{
	if (responseObj.nodeName == "ack")
	{
		var new_lcd_client_name = responseObj.selectSingleNode("//client").getAttribute('name');
					
		//unSelect checkboxs
		var allCheckboxes = document.all.tags("INPUT");
		for (var i=0; i < allCheckboxes.length; i++)
		{
			tempxml = '';
			if (allCheckboxes[i].type == 'checkbox' && allCheckboxes[i].checked)
			{
				allCheckboxes[i].checked = false;
			}
		}
		alert('Your courses have been added to session: ' + new_lcd_client_name);
	}
	else
	{
		alert('There has been a server error');
	}
}				

//Advisor Subjects functions