
function initReserve(){
	var term = document.getElementById("fTerm");
	
	selectTerm();
	
	document.getElementById("add-course-controls").style.display="none";
	if ((term.value != "0|0") && (term.value != "")){
		document.getElementById("add-course-controls").style.display="block";
		load_depts();
		load_reserve();
		
	}else{
		document.getElementById("fDept").disabled=true;
	}
	document.getElementById("fTerm").onchange = getTerm;
	//addEvent(document.getElementById("fTerm"),"change",resetFlash);
	/*if(document.getElementById("course_addition").value==1){
		window.onbeforeunload = confirmExit;
	}*/
}

function selectTerm(){
	var term = document.getElementById("fTerm");
	var selectedTerm = document.getElementById("selectedTerm").value;
	for(i=0;i<term.options.length;i++){
		if(term.options[i].value.split("|",2)[1]==selectedTerm){
			term.selectedIndex = i;
			break;
		}
	}
}

function getTerm(){
	if ((get_term() != "0") && (get_term() != "")) {
		document.getElementById("add-course-controls").style.display="block";
		document.getElementById("reserve-course-list").style.display="block";
		load_reserve();
		load_depts();
		resetFlash();
	}else{
		document.getElementById("add-course-controls").style.display="none";
		document.getElementById("reserve-course-list").style.display="none";
		setFlash("Please select a term.","error");

	}
}

function resetFlash(){
	document.getElementById("flash").style.visibility="hidden";
}

function setFlash(message,type){
	var flash = document.getElementById("flash");
	flash.innerHTML = message;
	flash.className = type;
	flash.style.visibility="visible";


}

function add_courseClick(custom){
	//var custom_course = document.getElementById("custom_course");
	var course = document.getElementById("course");
	var section = document.getElementById("section");
	var dept = document.getElementById("department");
	//var campus_term = document.getElementById("campus_term_id");
	//var preference = document.getElementById("preference");
	//var material = document.getElementById("material");
	//var action = document.getElementById("action");
	//action.value = "add";
	//campus_term.value = document.getElementById("fTerm").value;
	//preference.value = document.getElementById("book_preference").value;
	//material.value = document.getElementById("course_materials").value;
	//custom_course.value = custom;

//	window.onbeforeunload = null;

	if (custom == "0") {
		//course.value = document.getElementById("fCourse").value;
		//section.value = document.getElementById("fSection").value;
		//dept.value = document.getElementById("fDept").value;
		//document.getElementById("course_addition").value="2";
		//document.getElementById("reserve-form").submit();
		
		$("#reserve_list_body").append("<tr><td colspan=\"6\">Loading...</td></tr>");
		$.post("buy_reserve_html.asp?mscssid="+ $("#shopper_id").val(),
		{	action: "add",
			custom_course: custom,
			course: $("#fCourse").val(),
			section: $("#fSection").val(),
			department: $("#fDept").val(),
			campus_term_id: $("#fTerm").val(),
			preference: $("#book_preference").val(),
			material: $("#course_materials").val(),
			validate: $("#validate").val(),
			course_addition: $("#course_addition").val()
		},
		function(data){
			//alert(data);
			load_reserve();
			if (data.length != 0) {
				var msg = data.split("&&");
				setFlash(msg[0],msg[1]);
			}
			//setFlash("1 course has been added to your course list for the selected term. Submit below when finished.","info");
		}, "html");

//}
	}
	else { 
		course.value = document.getElementById("fCourseadd-course").value;
		section.value = document.getElementById("fCourseadd-section").value;
		dept.value = document.getElementById("fCourseadd-dept").value;
		if(course.value=="" || section.value=="" || dept.value=="" || document.getElementById("fTerm").value=="0|0"){
			setFlash("You must complete the term, department, course and section before adding to your course list.","error");
			window.scroll(0,150);
			return false;
		}else{
			//document.getElementById("course_addition").value="2";
			//document.getElementById("reserve-form").submit();
			
			$("#reserve_list_body").append("<tr><td colspan=\"6\">Loading...</td></tr>");

		$.post("buy_reserve_html.asp?mscssid="+ $("#shopper_id").val(),
		{	action: "add",
			custom_course: custom,
			course: $("#fCourseadd-course").val(),
			section: $("#fCourseadd-section").val(),
			department: $("#fCourseadd-dept").val(),
			campus_term_id: $("#fTerm").val(),
			preference: $("#book_preference").val(),
			material: $("#course_materials").val(),
			validate: $("#validate").val(),
			course_addition: $("#course_addition").val()
		},
		function(data){
			//alert(data);
			load_reserve();
			if (data.length != 0) {
				var msg = data.split("&&");
				setFlash(msg[0],msg[1]);
			}
			//setFlash("1 course has been added to your course list for the selected term. Submit below when finished.","info");
		}, "html");
		}
	}
	
	

}

function submit_reservationClick() {
	//var preference = document.getElementById("preference");
	var action = document.getElementById("action");
	var campus_term = document.getElementById("campus_term_id");

	campus_term.value = document.getElementById("fTerm").value;
	//preference.value = document.getElementById("book_preference").value;
	action.value = "submit_res";
	
	if(document.getElementById("has-courses").value=="0"){
		setFlash("Please add a course to your textbook reservation before submitting.","error");
		window.scroll(0,150);
		document.getElementById("fTerm").focus();
	}else{
		window.onbeforeunload = null;
		document.getElementById("reserve-form").submit();
	}

}

function applyCouponClick() {


	$.post("buy_reserve_html.asp?mscssid="+$("#shopper_id").val(), 
		{	pageaction: "post_coupon",
			term: $("#campus_term_id").val().split("|",2)[1], 
			coupon_code: $("#txtCouponCode").val() 
		},
		function(data){
		  //alert(data);
			$("#coupon-control").html(data);
		}, "html");

}

function removeCouponClick() {


	$.post("buy_reserve_html.asp?mscssid="+$("#shopper_id").val(), 
		{	pageaction: "remove_coupon",
			term: $("#campus_term_id").val().split("|",2)[1]
		},
		function(data){
		  //alert(data);
			$("#coupon-control").html(data);
		}, "html");

}


function viewConfirmation() {
	//var preference = document.getElementById("preference");
	var action = document.getElementById("action");
	var campus_term = document.getElementById("campus_term_id");

	campus_term.value = document.getElementById("fTerm").value;
	//preference.value = document.getElementById("book_preference").value;
	action.value = "view_confirmation";

	if(document.getElementById("has-courses").value=="0"){
		setFlash("Please add a course to your textbook reservation before submitting.","error");
		window.scroll(0,150);
		document.getElementById("fTerm").focus();
	}else{
		document.getElementById("reserve-form").submit();
	}

}

function remove_course(id){
	if (confirm('Are you sure you want to delete this course?')) {
		//var campus_term = document.getElementById("campus_term_id");
		//var action = document.getElementById("action");
		//var reserve_id = document.getElementById("reserve_id");
	
		//action.value = "remove";
		//campus_term.value = document.getElementById("fTerm").value;
		//reserve_id.value = id;
	
		//document.form1.submit();
		
		$.post("buy_reserve_html.asp?mscssid="+ $("#shopper_id").val(),
		{	action: "remove",
			Validate: $("#validate").val(),
			reserve_id: id
		},
		function(data){
			//alert(data);
			load_reserve();
			if (data.length != 0) {
				var msg = data.split("&&");
				setFlash(msg[0],msg[1]);
			}
			//setFlash("1 course has been deleted from your course list for the selected term.","info");
		}, "html");
	
		//if (document.getElementById() {
		//	setFlash("<br /> You have no reserved courses for the selected term.","info");				
		//}
	
	}

}

function submit_request(url,command){
	
	var req = null; 
	
	if (window.XMLHttpRequest)     
	{
		req = new XMLHttpRequest();     // Modern browsers
	}
	else
	if (window.ActiveXObject)   
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");    // Internet Explorer
	}else{
		//alert("use iframe");
	}

	req.onreadystatechange = function()
	{
	 if(req.readyState == 4)
	 {
	    if(req.status == 200){    
			switch(command) {
				case 'load_reserve':
					process_reserve(req);
				break;
				case 'load_depts':  
					process_dept(req);
				break;
				case 'load_courses':  
					process_courses(req);
				break;
				case 'load_sections':  
					process_sections(req);
				break;
				case 'load_products':
					process_products(req);
				break;
			}
	     }
	    else
	        setFlash( "There was an error processing your request.","error");
	   }
	};
	
	document.getElementById("xmlrequest").innerHTML=url;
	//document.getElementById("xmlrequest").style.display="block";
	req.open("GET", url , true); 
	req.send(null); 
}

function load_reserve(){
	//load_courses();
	if ((get_term() != "0") && (get_term() != "")) {
		//document.getElementById("reserve-course-fieldset").innerHTML = "<p>Loading...</p>";
		var shopper_id = document.getElementById("shopper_id").value;
		var dept = document.getElementById("fDept").value;
		var time = new Date().getTime();
		
		/* GENERATE COMMAND */
		url="textbooks_xml.asp?control=reserve&term=" + get_term() + "&shopper=" + shopper_id + "&n=" + time;
		 
		/* MAKE AJAX REQUEST */
		document.getElementById("course_addition").value=0;
		submit_request(url,"load_reserve");
	}else{
		document.getElementById("add-course-controls").style.display="none";
	}
}


function process_reserve(req){

	var content = req.responseText;

	document.getElementById("reserve-course-list").innerHTML = content;
}

/*
function process_reserve(req){
	var doc = req.responseXML;   // assign the Xml file to a var
	var elements = doc.getElementsByTagName('reserve');   // read the first element with a dom's method

	clear_reserve_list();
	
	for(i = 0; i < elements.length; i++){
		var element = elements[i];
		
		add_row_to_reserve_list(element.getAttribute("id"), element.getAttribute("deptName"), element.getAttribute("courseName"), element.getAttribute("sectionName"),i);
	}
	
	
	var reserve_list = document.getElementById("reserve_list_body");

	if(reserve_list.rows.length==0){
		var row = reserve_list.insertRow(0);
		
		for(var i=0;i<3;i++){
			var cell = document.createElement('TD');
			cell.className = "reserve-message";
			cell.innerHTML = "--";
					
			reserve_list.rows[0].appendChild(cell);
		}

		var cell = document.createElement('TD');
		cell.innerHTML = "&nbsp;";
		
		reserve_list.rows[0].appendChild(cell);
		document.getElementById("course_addition").value=0;
	}else{
		document.getElementById("course_addition").value=1;
	}
	
}

function add_row_to_reserve_list(id, dept, course, section,rowcounter)
{
	var tbody = document.getElementById('reserve_course_list').getElementsByTagName('tbody')[0];
	var row = document.createElement('TR'); 
	
	if(rowcounter % 2 == 1){
		row.className = 'alt';
	}else{
		row.className = "";
	}

	var cell1 = document.createElement('TD'); 
	var cell2 = document.createElement('TD'); 
	var cell3 = document.createElement('TD'); 
	var cell4 = document.createElement('TD'); 

	cell1.innerHTML = dept; 
	cell2.innerHTML = course; 
	cell3.innerHTML = section; 
	cell4.innerHTML = '<a href="javascript: remove_course(' + id + ');">remove</a>'

	row.appendChild(cell1); 
	row.appendChild(cell2); 
	row.appendChild(cell3); 
	row.appendChild(cell4); 

	tbody.appendChild(row); 
}
*/
function clear_reserve_list(){
	var reserve_list = document.getElementById("reserve_course_list");

	/* SET SELECTORS TO EMPTY STATE */
	var lastRow = reserve_list.rows.length;
	
	while (lastRow > 1){
		reserve_list.deleteRow(lastRow - 1);
		lastRow = reserve_list.rows.length;
	}
}

function load_depts(){
	var course = document.getElementById("fCourse");
	var section = document.getElementById("fSection");
	var dept = document.getElementById("fDept");
	var add = document.getElementById("add_course");
	
	var term = document.getElementById("fTerm");
	
	var custom_add = document.getElementById("add_course_custom");
	var c_dept = document.getElementById("fCourseadd-dept");
	var c_course = document.getElementById("fCourseadd-course");
	var c_section = document.getElementById("fCourseadd-section");
	
	if(term.value=="0|0"){
		custom_add.disabled=true;
		c_dept.disabled=true;
		c_course.disabled=true;
		c_section.disabled=true;
	
	}else{
		custom_add.disabled=false;
		c_dept.disabled=false;
		c_course.disabled=false;
		c_section.disabled=false;
	}


	/* SET SELECTORS TO EMPTY STATE */
	
	add.disabled=true;
	course.disabled=true;
	section.disabled=true;
	dept.disabled=true;
	
	
	course.options.length=0;
	section.options.length=0;
	dept.options.length=0;
	
	dept.options[0]=new Option("Loading...");
	
	/* GENERATE COMMAND */
	
	campusterm_id = term.value;
	pos = campusterm_id.indexOf("|");
	campus_id = campusterm_id.substr(0,pos);
	term_id = campusterm_id.substr(pos+1,campusterm_id.length+1);
	url="textbooks_xml.asp?control=campus&campus="+campus_id+"&term="+term_id
	
	
	/* MAKE AJAX REQUEST */
	document.getElementById("campus_term_id").value = term.value;
	submit_request(url,"load_depts");
}

function get_term(){
	var term = document.getElementById("fTerm");
	campusterm_id = term.value;
	pos = campusterm_id.indexOf("|");
	campus_id = campusterm_id.substr(0,pos);
	term_id = campusterm_id.substr(pos+1,campusterm_id.length+1);
	
	return term_id;
}



function process_dept(req){
	var doc = req.responseXML;   // assign the Xml file to a var
	var elements = doc.getElementsByTagName('department');   // read the first element with a dom's method
	var departments=document.getElementById("fDept");
	var add = document.getElementById("add_course");
	add.disabled=true;
	//departments.
	departments.options.length=0;
	
	if(elements.length>0){
		departments.options[0]= new Option("-- Select a Department --","");	

		for(i=0;i<elements.length;i++){
			var element=elements[i];
			departments.options[i+1]= new Option(element.getAttribute("abrev")+"-"+element.getAttribute("name"),element.getAttribute("id"));	
		}
		
		departments.disabled=false;
			
		
	}else{
		departments.options[0]= new Option("-- Course info not available --","");	
		setFlash("Course info is not available for the selected term.  Please enter your courses manually below.","error");

	}

	
}


function load_courses(){
	var course = document.getElementById("fCourse");
	var section = document.getElementById("fSection");

	/* SET SELECTORS TO EMPTY STATE */
	
	course.disabled=true;
	section.disabled=true;
	
	course.options.length=0;
	section.options.length=0;
	
	course.options[0]=new Option("Loading...");
	
	var dept=document.getElementById("fDept").value;
	
	url="textbooks_xml.asp?control=department&dept="+dept+"&term="+get_term();
	
	submit_request(url,"load_courses");
}

function process_courses(req){
	var doc = req.responseXML;   // assign the Xml file to a var
	var elements = doc.getElementsByTagName('course');   // read the first element with a dom's method
	var courses=document.getElementById("fCourse");
	var add = document.getElementById("add_course");
	add.disabled=true;
	
	//departments.
	courses.options.length=0;
	courses.options[0]= new Option("-- Select a Course --","");	
	for(i=0;i<elements.length;i++){
		var element=elements[i];
		courses.options[i+1]= new Option(element.getAttribute("name"),element.getAttribute("id"));
	}
	
	courses.disabled=false;

}

function load_sections(){
	var section = document.getElementById("fSection");

	/* SET SELECTORS TO EMPTY STATE */
	
	section.disabled=true;
	
	section.options.length=0;
	
	section.options[0]=new Option("Loading...");
	
	var course=document.getElementById("fCourse").value;
	
	url="textbooks_xml.asp?control=course&course="+course+"&term="+get_term();
	
	submit_request(url,"load_sections");
}

function process_sections(req){
	var doc = req.responseXML;   // assign the Xml file to a var
	var elements = doc.getElementsByTagName('section');   // read the first element with a dom's method
	var sections=document.getElementById("fSection");
	//departments.
	sections.options.length=0;
	sections.options[0]= new Option("-- Select a Section --","");	
	for(i=0;i<elements.length;i++){
		var element=elements[i];
		sections.options[i+1]= new Option(element.getAttribute("name")+"-"+element.getAttribute("instructor"),element.getAttribute("id"));
	}
	
	sections.disabled=false;

}

function section_select(){
	document.getElementById("add_course").disabled=false;
}

/*function confirmExit(){
	
	if(document.getElementById("course_addition").value=="1"){
		return confirm("You added courses to your textbook reservation, but did not submit your reservation to the bookstore.  \nAre you sure you would like to leave without submitting your textbook reservation?");
	}else{
		return true;
	}
}*/


var UNLOAD_MSG = "You have not submitted your changes for this reservation.  \nWould like to leave this page without submitting your reservation?"

function doBeforeUnload() {
   if(window.event)
      window.event.returnValue = UNLOAD_MSG; // IE
   else
      return UNLOAD_MSG; // FX
}

if(window.body)
   window.body.onbeforeunload = doBeforeUnload; // IE
else
   window.onbeforeunload = doBeforeUnload; // FX

