// JavaScript Document
// This file powers the coursefinder on the homepage
// It uses AJAX requests to populate the second dropdown menu based on the content of XML files
// For UG and PGT it uses the same XML files as the prospectus course sections
// Amended 4 December 2008 to use PHP XML proxy to get XML files direct from webserv1 to avoid duplication
// Amended 23 July 2009 to include evening language courses and English language courses - also to change the Choose a subject... text at the top of the second dropdown based on course type selected
// English language and Evening language courses are stored in separate XML files, uploaded via Rhythmyx in /assets/xml/

  var xmlHTTP, coursesURL = '', selector, courseElement = 'course', baseURL, courseSelectorText = 'Choose a subject...';
  
  function addCourseOption(courseName, courseURL){
    var newOption = document.createElement('option');
	var newOptionText = document.createTextNode(courseName);
	newOption.setAttribute('value', courseURL);
	newOption.setAttribute('title', courseName);
	newOption.appendChild(newOptionText);
	selector.appendChild(newOption);
	}  
  
  function getCourses(courseType){

    selector = document.getElementById('drop');	
    
	while(selector.hasChildNodes()){
	  selector.removeChild(selector.firstChild);
	  }
	  
	//addCourseOption('Choose a subject...', '');
  
    switch(courseType){
	  case 'ug':
		coursesURL = 'http://www2.surrey.ac.uk/undergraduate/courses/subjects.xml';
		baseURL = 'http://www2.surrey.ac.uk';
		courseElement = 'subject';
		courseSelectorText = 'Choose a subject...';
		break;
	  case 'pgt':	  	
		//coursesURL = 'http://www.surrey.ac.uk/postgraduate/taught/xml/courselist.xml';
		coursesURL = 'http://www2.surrey.ac.uk/postgraduate/taught/subjects.xml';
        	//baseURL = 'http://www.surrey.ac.uk/postgraduate/taught/';
        	baseURL = '';
		//courseElement = 'course';
		courseElement = 'degree';
		courseSelectorText = 'Choose a programme...';
		break;
	  case 'pgr':
		//coursesURL = 'http://www2.surrey.ac.uk/resources/xml/postgraduate/research/programmes.xml';
		//coursesURL = 'http://www.surrey.ac.uk/postgraduate/research/xml/programmes.xml';
		coursesURL = 'http://www.surrey.ac.uk/postgraduate/research/subjects.xml';
		//courseElement = 'programme';
		courseElement = 'degree';
        //baseURL = 'http://www.surrey.ac.uk/postgraduate/research/';
		baseURL = '';
		//courseSelectorText = 'Choose a subject...';
		courseSelectorText = 'Choose a research area...';
		break;
	  case 'cpd':
		coursesURL = 'http://www.surrey.ac.uk/dev/cpd/courses.xml';
		courseElement = 'course';
		baseURL = '';
		courseSelectorText = 'Choose a course...';
		break;
	  case 'eng':
	    coursesURL = 'http://www2.surrey.ac.uk/assets/xml/englishlanguage.xml';
		courseElement = 'course';
		baseURL = '';
		courseSelectorText = 'Choose a course...';
		break;
	  case 'elc':
	    coursesURL = 'http://www2.surrey.ac.uk/assets/xml/eveninglanguage.xml';
		courseElement = 'course';
		baseURL = '';
		courseSelectorText = 'Choose a language...';		
		break;
      }
  
    addCourseOption('2. ' + courseSelectorText, '');
  
  
    if(window.ActiveXObject){
      xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
      }
    else{
      xmlHTTP = new XMLHttpRequest();
	  }
	  
	var d = new Date();
	var t = d.getTime();
	coursesURL = '/resources/php/xmlproxy.php?url=' + coursesURL;
	coursesURL += '?t=' + t;	  
    xmlHTTP.open('GET', coursesURL);
    xmlHTTP.send(null);
	xmlHTTP.onreadystatechange = showResponse;
	if(xmlHTTP.readyState == 4){showResponse();}
	}
	
  function showResponse(){    
    if(xmlHTTP.readyState == 4){
      var xmlContent = xmlHTTP.responseXML;
	  var courses = xmlContent.getElementsByTagName(courseElement);
	  for(var i=0; i<courses.length; i++){
		addCourseOption(courses[i].attributes.getNamedItem('name').childNodes[0].nodeValue, baseURL + courses[i].attributes.getNamedItem('url').childNodes[0].nodeValue);
	    }
	  }
	document.getElementById('drop').disabled = false;
	document.getElementById('go').disabled = false;
	}
	
	
  function findCourse(){
	var courseFinder = document.getElementById('coursefinder_form');
	var courseURL = courseFinder.drop.options[courseFinder.drop.selectedIndex].value;	
	if(courseURL != ''){
	  document.location.href = courseURL;
	  }
	return false;
	}
