// this is the main jQuery function
$(document).ready(function() {
	$('button#load').live('click', function() {
		if($("#career").attr("value") == "" && $("#term").attr("value") == "")
		{
			alert("You must select a term and career level.");
		}
		else if($("#career").attr("value") != "" && $("#term").attr("value") == "")
		{
			alert("You must select a term.");
		}
		else if($("#career").attr("value") == "" && $("#term").attr("value") != "")
		{
			alert("You must select a career level.");
		}
		else
		{
			refreshSchedule();
		}
	}); //button#load
	
	$('button#reset').live('click', function() {
		$("#term").attr('selectedIndex', 0);
		$("#career").attr('selectedIndex', 0);
		$("#discipline").html("");
		$("#the_schedule").html("");
		$("#load").attr("disabled","disabled");
	}); //button#reset
	
	$('.courseDescr').livequery('click', function(e) {
		e.preventDefault();
		var classNbr = this.id.substring(6);
		Boxy.load("courseDescr.php?classNbr="+classNbr+"&term="+$("#term").attr("value"), {title: $("td#title-"+classNbr).html(), modal: true, closeable: true, unloadOnHide: true});
		//if($(this).attr('rel').match('facebox')) $(this).facebox(); 
	});
	
	$('tr.hover').livequery(function() {
		$(this).hover(
			function() {$(this).addClass('highlight');}, 
			function() {$(this).removeClass('highlight')
		  });
		},
		function() {
			$(this).unbind('mouseover').unbind('mouseout');
	});
	
	$("select.dist-updt").livequery('change', function() {
		if ($("#career").attr("value") != "" && $("#term").attr("value") != "")
		{
			$('#load_status').html("<span class='loading' style='color:red;'>Loading ... this may take a few moments</span>");
			$("#load").attr("disabled","disabled");
			//alert($("#career").attr("value")+":"+$("#term").attr("value"));
			var ajax_data = {term:$("#term").attr("value"), career:$("#career").attr("value")};
			$("#discipline").html('');
			//$("#discipline").hide();
			var sel_opts = "<option value=' '>All</options>";
			$.ajax({
			url			: "classDisc.php",
			type		: "GET",
			dataType	: "json",
			data		: ajax_data,
			success		: function( data ) 
				{
					if(data.is_error == true) 
					{
						alert( "Error: " + data.error_text );
					}
					else
					{
						if( data.length > 0 )
						{
							for( var i = 0; i < data.length; i++ )
							{
								sel_opts += "<option value='"+data[i].subject+"'>"+data[i].descr+"</option>";
							}
						}
						$("#discipline").html(sel_opts);
						//$("#discipline").show();
						$("#load").removeAttr("disabled");
						$('#load_status').html(' ');
					}
				} //success
			}); //.ajax
		} //if
	}); //select.dist-updt
}); //ready

function displayDescr(classNbr)
{
	
}

function refreshSchedule()
{
	$('#load_status').html("<span class='loading' style='color:red;'>Loading ... this may take a few moments</span>");
	$('#the_schedule').html('');
	var ajax_data = {term:$("#term").attr("value"), career:$("#career").attr("value"), discipline:$("#discipline").attr("value")}
	$.ajax({
		url			: "classLookup.php",
		type		: "POST",
		dataType	: "json",
		data		: ajax_data,
		success		: function( data ) {
			if(data) {
				if(data.is_error == true) {
					alert( "Error: " + data.error_text );
				}
				else
				{
					//alert( data.length );
					var schedule = "<table class='ui-widget ui-widget-content courseList' cellspacing=0 cellpadding=0 border=0>";
					schedule += "<thead><tr><th>Course ID</th><th>Class Number</th><th> </th><th>Title</th><th>Credits</th><th>Time</th><th>Days</th><th>Dates</th><th>Location</th><th>Instructor</th><th>Enrolled/Limit</th><th>Waitlist</th></tr></thead><tbody>";
					//schedule += "<thead><tr><th>Course ID</th><th>Class Number</th><th>Title</th><th>Credits</th><th>Time</th><th>Days</th><th>Dates</th><th>Location</th><th>Instructor</th><th>Enrolled/Limit</th><th>Waitlist</th></tr></thead><tbody>";
					for( var i = 0; i < data.length; i++ )
					{
						if( i == 0 )
						{
							schedule += "<tr><td colspan='20' class='subject'>"+data[i].subject+"</td></tr>";
						}
						else if( data[i].subject != data[i-1].subject )
						{
							schedule += "<tr><td colspan='20' class='subject'>"+data[i].subject+"</td></tr>";
						}
						
						// is class full
						if( parseInt(data[i].enrolled) >= parseInt(data[i].capacity) )
						{
							schedule += "<tr class='full hover'>";
						}
						else
						{
							schedule += "<tr class='open hover'>";
						}
						
						// hides first few columns if the same class number
						if( i == 0 )
						{
							schedule += "<td>"+data[i].courseID+"</td>";
							schedule += "<td id='classNbr-"+data[i].classNbr+"'>"+data[i].classNbr+"</td>";
							schedule += "<td><a class='courseDescr'  id='class-"+data[i].classNbr+"'><span class='ui-icon ui-icon-circle-zoomin'></span></a></td>";
							//schedule += "<td><a rel='facebox' class='courseDescr' title='"+data[i].descr+"' href='courseDescr.php?classNbr="+data[i].classNbr+"&term="+$("#term").attr("value")+"' id='class-"+data[i].classNbr+"'><span class='ui-icon ui-icon-circle-zoomin'></span></a></td>";
							if(isNull(data[i].crseTopic))
							{
								schedule += "<td id='title-"+data[i].classNbr+"'>"+data[i].descr+"</td>";
							}
							else
							{
								schedule += "<td id='title-"+data[i].classNbr+"'>"+data[i].descr+": "+data[i].crseTopic+"</td>";
							}
							
							// credits
							if (data[i].maxCredits == null)
							{
								schedule += "<td> </td>";
							}
							else if( data[i].minCredits < data[i].maxCredits )
							{
								schedule += "<td>"+data[i].minCredits+"-"+data[i].maxCredits+"</td>";
							}
							else
							{
								schedule += "<td>"+data[i].maxCredits+"</td>";
							}
						}
						else if( data[i].classNbr == data[i-1].classNbr )
						{
							schedule += "<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>"; //because lookup is disabled
							//schedule += "<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>";
						}
						else
						{
							schedule += "<td>"+data[i].courseID+"</td>";
							schedule += "<td id='classNbr-"+data[i].classNbr+"'>"+data[i].classNbr+"</td>";
							schedule += "<td><a class='courseDescr'  id='class-"+data[i].classNbr+"'><span class='ui-icon ui-icon-circle-zoomin'></span></a></td>";
							//schedule += "<td><a rel='facebox' class='courseDescr' title='"+data[i].descr+"' href='courseDescr.php?classNbr="+data[i].classNbr+"&term="+$("#term").attr("value")+"' id='class-"+data[i].classNbr+"'><span class='ui-icon ui-icon-circle-zoomin'></span></a></td>";
							if(isNull(data[i].crseTopic))
							{
								schedule += "<td id='title-"+data[i].classNbr+"'>"+data[i].descr+"</td>";
							}
							else
							{
								schedule += "<td id='title-"+data[i].classNbr+"'>"+data[i].descr+": "+data[i].crseTopic+"</td>";
							}
							
							// credits
							if (data[i].maxCredits == null)
							{
								schedule += "<td> </td>";
							}
							else if( data[i].minCredits < data[i].maxCredits )
							{
								schedule += "<td>"+data[i].minCredits+"-"+data[i].maxCredits+"</td>";
							}
							else
							{
								schedule += "<td>"+data[i].maxCredits+"</td>";
							}
						}
						
						// meeting time
						if( Right(data[i].mtgStart, 2) == Right(data[i].mtgEnd, 2) )
						{
							if( data[i].mtgStart == null ) 
							{
								schedule += "<td> </td>";
							}
							else
							{
								schedule += "<td>"+Left(data[i].mtgStart, String(data[i].mtgStart).length-3)+" - "+data[i].mtgEnd+"</td>";
							}
						}
						else
						{
							schedule += "<td>"+data[i].mtgStart+" - "+data[i].mtgEnd+"</td>";
						}
						
						// days
						if( data[i].days == null ) 
						{
							schedule += "<td> </td>";
						}
						else
						{
							schedule += "<td>"+data[i].days+"</td>";
						}
						
						// meeting dates
						if( data[i].mtgStartDt != data[i].mtgEndDt )
						{
							schedule += "<td>"+data[i].mtgStartDt+" - "+data[i].mtgEndDt+"</td>";
						}
						else
						{
							schedule += "<td>"+data[i].mtgEndDt+"</td>";
						}
						
						schedule += "<td>"+data[i].room+"</td>";
						schedule += "<td>"+data[i].instruct+"</td>";
						schedule += "<td>"+data[i].enrolled+"/"+data[i].capacity+"</td>";
						schedule += "<td>"+data[i].waitlist+"</td>";
						schedule += "</tr>";
					} // for loop
					schedule += "</tbody></table>";
					$('#the_schedule').html(schedule);
				} // if is_error
			} // if data
			$('#load_status').html(' ');
		} //success
	}); //ajax
} //refreshSchedule

function Left(str, n) {
	if (n <= 0)
		return "";
	else if (n > String(str).length)
		return str;
	else
		return String(str).substring(0,n);
}
function Right(str, n) {
	if (n <= 0)
		return "";
	else if (n > String(str).length)
		return str;
	else {
		var iLen = String(str).length;
		return String(str).substring(iLen - n, iLen);
	}
}
function isNull(what){return what==null}