function selectGradeLevel () {
	var dropdown = $("lesson_plan_grade_level_dropdown");
	writeCookie("lesson_plan_grade_level_dropdown", dropdown.value);
	
	//SKIP THE SEARCH STUFF SINCE WE'RE ON THE LANDING PAGE
	if (isLandingPage()) return;
	
	updateDropDowns();
	
	//SUBMIT FOR EACH TAB
	var i = 1;

	while (i <= 3) {
		getSearchResults(i);
		i++;
	}
}

function getSearchResults (uid_type_class) {	
	var content = $("lesson_plan_search_results_" + uid_type_class);
	
	//SETUP REQUEST
	var myRequest = new Request.HTML(defaultRequestOptions);
	
	//ASSIGN FAILURE HANDLER TO CUSTOM FUNCTION
	myRequest.onFailure = onFailure;
	
	myRequest.onSuccess = function (responseTree, responseElements, responseHTML, responseJavaScript) {
		this.msg = "";
		var response = responseTree[0];
		var error = response.getElement("error");
		
		if (error) {
			//SPECIFIC ERROR RESPONSE FROM SERVER
			this.msg = error.get("html");
		} else {
			//INVALID XML
			this.msg = "unknown server error";
		}
		
		if (this.msg != "") {
			//DISPLAY ERROR
			this.onFailure();
			return;
		}
		
		//SUCCESS, DISPLAY THE RESULTS
		var search_results = response.getElement("search_results").get("html");
		search_results = unescape(search_results.replace(/\+/g, " "));

		content.set("html", search_results);
		// var foo = new StarRating();
	}
	
	//GET SEARCH RESULTS
	var uid_grade_level = $("lesson_plan_grade_level_dropdown").value;
	var uid_topic = $("lesson_plan_topic_dropdown_" + uid_type_class).value;
	var uid_exhibit = $("lesson_plan_exhibit_dropdown_" + uid_type_class).value;
	
	//WRITE TOPIC AND EXHIBIT COOKIES
	writeCookie("lesson_plan_topic_dropdown_" + uid_type_class, uid_topic);
	writeCookie("lesson_plan_exhibit_dropdown_" + uid_type_class, uid_exhibit);
	
	myRequest.send("get_search_results=1&uid_topic=" + uid_topic + "&uid_exhibit=" + uid_exhibit + "&uid_type_class=" + uid_type_class + "&uid_grade_level=" + uid_grade_level);      
}

function viewAll (uid_type_class) {
	//RESET TOPICS AND EXHIBITS TO ALL FOR THIS TAB AND RESUBMIT
	$("lesson_plan_topic_dropdown_" + uid_type_class).value = 0;
	$("lesson_plan_exhibit_dropdown_" + uid_type_class).value = 0;
	
	getSearchResults(uid_type_class);
}

function preselectDropDown (str) {
	var element = $(str);
	var cookie = readCookie(str);
	
	var containsCookie = false;
	
	element.getElements("option").each(
		function (option) {
			if (option.get("value") == cookie) {
				containsCookie = true;
			}
		}
	);
	
	if (!containsCookie) return;
	element.value = cookie;
}

function populateDropDowns (response) {
	var i = 1;

	while (i <= 3) {
		var container = $("lesson_plan_dropdown_container_" + i);
		
		var topics = response.getElement("topics_" + i).get("html");
		topics = unescape(topics.replace(/\+/g, " "));
		
		var exhibits = response.getElement("exhibits_" + i).get("html");
		exhibits = unescape(exhibits.replace(/\+/g, " "));
		
		var str = "<b>by Topic</b> " + topics;
		str += " <b>by Exhibit</b> " + exhibits;
		
		container.set("html", str);
		
		//COOKIE PRESELECT
		preselectDropDown("lesson_plan_topic_dropdown_" + i);
		preselectDropDown("lesson_plan_exhibit_dropdown_" + i);
		
		i++;
	}  
}

function updateDropDowns () {
	//SETUP REQUEST
	var myRequest = new Request.HTML(defaultRequestOptions);
	
	//ASSIGN FAILURE HANDLER TO CUSTOM FUNCTION
	myRequest.onFailure = onFailure;
	
	myRequest.onSuccess = function (responseTree, responseElements, responseHTML, responseJavaScript) {
		this.msg = "";
		var response = responseTree[0];
		var error = response.getElement("error");
		
		if (error) {
			//SPECIFIC ERROR RESPONSE FROM SERVER
			this.msg = error.get("html");
		} else {
			//INVALID XML
			this.msg = "unknown server error";
		}
		
		if (this.msg != "") {
			//DISPLAY ERROR
			this.onFailure();
			return;
		}
		
		//SUCCESS
		populateDropDowns(response);
	}
	
	//SEND REQUEST
	var uid_grade_level = $("lesson_plan_grade_level_dropdown").value;
	myRequest.send("get_drop_down_data=1&uid_grade_level=" + uid_grade_level);
}

function lesson_plan_activate_tab (lesson_plan_tab_number) {
	writeCookie("lesson_plan_tab_number", lesson_plan_tab_number);
	activate_tab(lesson_plan_tab_number);
}

function onFailure () {
	var errorCode = (isset(this.msg)) ? this.msg : this.status;
	alert("The server encountered an error processing your request (" + errorCode + ").");
}

function readCookie (name) {
	var myCookie = Cookie.read(name);
	if (myCookie) return myCookie;
   	return "0";
}

function writeCookie (name, value) {
	var dur = 365;
	var options = {
		duration: dur,
		path: "/"
	};
	
	Cookie.write(name, value, options);
}

function isset (myVar) {
	if (typeof(myVar) == "undefined" || myVar === null) return false;
	return true;
}  

function isLandingPage () {
	//LANDING PAGE DOESN'T HAVE THE CONTAINER
	var container = $("lesson_plan_data_container");
	if (!container) return true;
	return false;
}

function isBrowser (browser) {
	var agt = navigator.userAgent.toLowerCase();
	return (agt.indexOf(browser) != -1);
}

function initLessonPlan () {
	//SET GRADE LEVEL DROPDOWN TO COOKIE VALUE
	var dropdown = $("lesson_plan_grade_level_dropdown");
	dropdown.value = readCookie("lesson_plan_grade_level_dropdown");
	
	var style = (isBrowser("firefox")) ? "inline" : "block";
	dropdown.setStyle("display", style);
	
	//LOAD IN THE INITIAL SEARCH RESULTS
	selectGradeLevel();
	
	if (!isLandingPage()) {
		//ACTIVATE THE APPROPRIATE TAB
		var tab = readCookie("lesson_plan_tab_number").toInt();
		if (tab == 0) tab = 1;
		lesson_plan_activate_tab(tab);
	}
}

var defaultRequestOptions = {
	url: 'ajax.php',
	async: false
};

