var colleges = [];
var all_colleges = [];
var all_allowed = [];

var allowed = new Object();
var constrain_by = new Object();

$(document).ready(function() {

    $("body").append('<select id="colleges-removed" style="display: none;"></select>');

    $("#college option").each(function() {
	var temp = $(this).val();
	if (temp != '') {
	    colleges.push(temp);
	    all_colleges.push(temp);
	}
    });

//     $.get("course-list-colleges.php?course_list_id=1", function(data) {
// 	alert(data);
//     });


    $("input.course-list").add("#semester").change(updateCollegeList);
    updateCollegeList(); // In case there are already some lists checked off
	
	
	var course_lists = [];
	var fs;
	var i = 0;
	//hack up the course lists to desired order
	$(".course-list-option").each(function() {
		fs = $(this).parent();
		
		course_lists[i] = $(this);
		i = i+1;
	});
	
	orderCourseLists(course_lists,fs);
	//alert(course_lists[0].attr("innerHTML"));
	
});

function orderCourseLists(cl,fs) {
/*	var sentence = "3 weeks or less in ";
	var list1 = [];
	var list2 = [];
	var i = 0;
	$.each(cl, function() {			
		if (($(this).text()).indexOf(sentence) > 0 ) {
			list1[i] = $(this);
			i = i+1;
		}
	});
	
	//alert("here");
	var j;
	for(i=0;i<list1.length;i=i+1) {
		for(j=0;j<list1.length;j=j+1) {
			var itext = list1[i].text();
			var jtext = list1[j].text();
			
			//var iMonth = monthNum();
			//alert((text.indexOf(sentence))+sentence.length)
			//alert(text.substring(((itext.indexOf(sentence))+sentence.length),itext.length));
			//alert(monthNum(itext.substring(itext.indexOf(sentence)+sentence.length,itext.length)) + " " + monthNum(jtext.substring(jtext.indexOf(sentence)+sentence.length,jtext.length)));
			if (monthNum(itext.substring(itext.indexOf(sentence)+sentence.length,itext.length)) < monthNum(jtext.substring(jtext.indexOf(sentence)+sentence.length,jtext.length))) {
				//alert("moving");
				var tmp = list1[j];
				list1[j] = list1[i];
				list1[i] = tmp;
			}	
		}
	}
	
	$.each(list1, function() {
		//fs.append("<div class=\"course-list-option\">" + $(this).attr("innerHTML") + "</div>");
	});
		
	//handle 3-week course lists
	
}

function monthNum(sMonth) {
	var months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	var i = 0;
	var num;
	
	$.each(months, function(i,val) {
							//alert(i);
		if (val.indexOf(sMonth) > -1) {
			num = i;
		}
	});
	
	return num;*/
}

function updateCollegeList() {
    var i = 0;

    var data = {};
    var found_checked = false;
    $("input.course-list").each(function() {
	if ($(this).attr("checked")) {
	    data["course_list_ids[" + i++ + "]"] = $(this).val();
	    found_checked = true;
	}
    });

    data.semester = $("#semester").val();
    data.year = $("#year").val();

    if (found_checked) {
	$.getJSON("course-list-colleges.php", data, function(json) {
	    all_allowed = json.colleges;
	    refreshColleges();
	});
    } else {
	all_allowed = all_colleges;
	refreshColleges();
    }
}

function refreshColleges() {
    var val = $("#college").val();

    $.each(all_colleges, function() {
	var college = this;
	if (college != '' && !arrayContains(all_allowed, college)) {
	    hideCollege(college);
	} else {
	    showCollege(college);
	}
    });
    $("#college").val(val);
}
function hideCollege(c) {
    $("#college option[value=" + c + "]").remove().appendTo("#colleges-removed");
}

function showCollege(c) {
    var placed = false;
    $("#college").children("option").each(function() {
	if (placed)
	    return;

	if ($(this).val() > c) {
	    $("#colleges-removed option[value=" + c + "]").remove().insertBefore(this);
	    placed = true;
	}
    });

    if (!placed)
	$("#colleges-removed option[value=" + c + "]").remove().appendTo($("#college"));
}

function arrayContains(arr, val) {
    for (var i = 0; i < arr.length; i++) 
	if (arr[i] == val)
	    return true;
    return false;
}
