function createRequestObject() {
  var ro;
  var browser = navigator.appName;
  if(browser == "Microsoft Internet Explorer") {
    ro = new ActiveXObject("Microsoft.XMLHTTP");
  } else {
    ro = new XMLHttpRequest();
  }
  return ro;
}

var http = createRequestObject();

function courseListOnChange() {
  var courseList = document.getElementById("courseList");
  var selectedCourse = courseList.options[courseList.selectedIndex].value;
  
  var requestUrl = "includes/book-resource.php?course=" + encodeURIComponent(selectedCourse);    
  http.onreadystatechange = courseChangeHandler;
  http.open("GET", requestUrl, true);
  http.send(null);
}

function dateStartOnChange() {
  var dateStart = document.getElementById("startDate");
  var date_value = dateStart.options[dateStart.selectedIndex].value;
  var lengthTime = document.getElementById("lengthTime");
  if( date_value != "null" ) {
    lengthTime.disabled = false;
  } else {
    lengthTime.disabled = true;
    lengthTime.selectedIndex = 0;
    var students = document.getElementById("studentNumber");
    students.disabled = true;
    students.selectedIndex = 0;
    var submitButton = document.getElementById("submitButton");
    submitButton.disabled = true;
  }
}

function lengthTimeOnChange() {
  var lengthTime = document.getElementById("lengthTime");
  var length_value = lengthTime.options[lengthTime.selectedIndex].value;
  var studentNumber = document.getElementById("studentNumber");
  if( length_value != "null" ) {
    studentNumber.disabled = false;
  } else {
    studentNumber.disabled = true;
    studentNumber.selectedIndex = 0;
    var submitButton = document.getElementById("submitButton");
    submitButton.disabled = true;
  }
}

function courseChangeHandler() {
  if(http.readyState == 4 ) {
    var courseList = document.getElementById("courseList");
    var startDate = document.getElementById("startDate");
    var lengthTime = document.getElementById("lengthTime");
    var students = document.getElementById("studentNumber");
    var submitButton = document.getElementById("submitButton");
    course_value = courseList.options[courseList.selectedIndex].value;
    if( course_value != "null" ) {
      changeStartDates(http.responseXML.documentElement);
      changeLengthTime(http.responseXML.documentElement);
      startDate.disabled = false;
    } else {
      startDate.disabled = true;
      lengthTime.disabled = true;
      students.disabled = true;
      submitButton.disabled = true;
      startDate.selectedIndex = 0;
      lengthTime.selectedIndex = 0;
      students.selectedIndex = 0;
    }
  }
}	

function changeStartDates(datesNode) {
  var startDate = document.getElementById("startDate");
  for( var i = startDate.options.length-1; i > -1; i-- ) {
    startDate.options[i] = null;
  }
  
  var datesNodes = datesNode.getElementsByTagName("date");
  var idValue;
  var textValue;
  var optionItem;
  for( var i = 0; i < datesNodes.length; i++ ) {
    textValue = GetInnerText(datesNodes[i]);
    idValue = datesNodes[i].getAttribute("id");
    optionItem = new Option( textValue, idValue, false, false );
    startDate.options[startDate.length] = optionItem;
  }
}

function changeLengthTime(lengthNode) {
  var lengthTime = document.getElementById("lengthTime");
  for( var i = lengthTime.options.length-1; i > -1; i-- ) {
    lengthTime.options[i] = null;
  }
  
  var lengthNodes = lengthNode.getElementsByTagName("length");
  var idValue;
  var textValue;
  var optionItem;
  for( var i = 0; i < lengthNodes.length; i++ ) {
    textValue = GetInnerText(lengthNodes[i]);
    idValue = lengthNodes[i].getAttribute("id");
    optionItem = new Option( textValue, idValue, false, false );
    lengthTime.options[lengthTime.length] = optionItem;
  }
}

function studentNumberOnChange() {
  var studentNumber = document.getElementById("studentNumber");
  var student_value = studentNumber.options[studentNumber.selectedIndex].value;
  var submitButton = document.getElementById("submitButton");
  if( student_value != "null" ) {
    submitButton.disabled = false;
  } else {
    submitButton.disabled = true;
  }
}


function GetInnerText( node ) {
  return ( node.textContent || node.innerText || node.text );
}

function ValidateForm_Conditions(form) {
  var readTerms = document.getElementById("readTerms");
  if( readTerms.checked == false ) {
    alert("You must agree to the terms and conditions to continue");
    return false;
  } else {
    return true;
  }
}

