function ajaxFunction(){
var xmlHttp;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    try
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    catch (e)
      {
      alert("Your browser does not support AJAX!");
      return false;
      }
    }
  }
  return xmlHttp;
}

function fetchCategories(selectedCategory,slistName){

	var request = ajaxFunction();
	
	request.onreadystatechange = function(){
		if(request.readyState == 4){
			if(request.status == 200 || request.status == 304){
			
			var slist = document.getElementById(slistName);
		    var slistText = request.responseText; 
			slist.innerHTML = slistText; 
			slist.style.display="inline";

			}
		}
	}
	
    request.open("GET", "http://www.uoregon.edu/~ethnic/syllabi_list.php?dir=syllabus-archives/"+encodeURIComponent(selectedCategory), true);	
    request.send(null);


}

function fetchSyllabi(selectedCategory){
	var request = ajaxFunction();
	
	request.onreadystatechange = function(){
		if(request.readyState == 4){
			if(request.status == 200 || request.status == 304){		
			var syllabi = document.getElementById("syllabi");
		  var syllabiText = request.responseText; 
			syllabi.innerHTML = syllabiText; 

			}
		}
	}
	
    request.open("GET", "http://www.uoregon.edu/~ethnic/syllabus.php?dir=syllabus-archives/"+encodeURIComponent(selectedCategory), true);	
    request.send(null);

}


function init(){

	var slist1 = document.getElementById("slist1");
	var slist2 = document.getElementById("slist2");
	var slist3 = document.getElementById("slist3");
	var selectedCategory1="";
	var selectedCategory2="";
	var selectedCategory3="";

	fetchCategories(selectedCategory1,"slist1");
	
	slist1.onchange = function(){
	selectedCategory1 = slist1.options[slist1.selectedIndex].value;
	    document.getElementById("slist2").selectedIndex = 0;
	    document.getElementById("slist2").style.display = "none";
	    document.getElementById("slist3").selectedIndex = 0;
	    document.getElementById("slist3").style.display = "none";
	if("" == selectedCategory1){
	    //user has selected top list item which has no value
	}
	else{
		
		if(selectedCategory1.substring(selectedCategory1.length-4,selectedCategory1.length-3) == "." || selectedCategory1.substring(selectedCategory1.length-6,selectedCategory1.length-5) == "."){
			fetchSyllabi(selectedCategory1);
		}
		else{
		    fetchCategories(selectedCategory1,"slist2");
		}    
	}
	};

	slist2.onchange = function(){
	selectedCategory2 = slist2.options[slist2.selectedIndex].value;
		document.getElementById("slist3").selectedIndex = 0;
	    document.getElementById("slist3").style.display = "none";
	if("" == selectedCategory2){
	    //user has selected top list item which has no value
	}
	else{
		if(selectedCategory2.substring(selectedCategory2.length-4,selectedCategory2.length-3) == "." || selectedCategory2.substring(selectedCategory2.length-6,selectedCategory2.length-5) == "."){
			fetchSyllabi(selectedCategory1+"/"+selectedCategory2);
		}
		else{
	    	fetchCategories(selectedCategory1+"/"+selectedCategory2,"slist3");
	    }
	}
	};
	slist3.onchange = function(){
	selectedCategory3 = slist3.options[slist3.selectedIndex].value;
	if("" == selectedCategory3){
	    //user has selected top list item which has no value
	}
	else{
			fetchSyllabi(selectedCategory1+"/"+selectedCategory2+"/"+selectedCategory3);
	}
	};
}
window.onload = init;