/* 
  Scripts to generate display options for a Faculty website 
  Works under the assumption arts_usyd_scripts.js has already been called.
*/
  var displayOptions;
if (document.all) {
  setTimeout(function() {
    if (!getURLVar("timetable")) {
      if (_("content_target")) _("content_target").innerHTML = "<ul><Li>View a timetable of available subjects from the Faculty by adjusting the display options in the <b>Right Panel</b></li></ul>";
    } else timetableGen("content_target", null, null, true);

    if (_("display_target")) { 
      displayOptions = getAjax("/artsdigital/PHP/fac_tt_display.php?view="+getURLVar('view')+"&timetable="+getURLVar("timetable")+"&semes="+getURLVar('semes')+"&deptID="+getURLVar('deptID'));
      _("display_target").innerHTML = displayOptions; 
    } 
    displayOpts();
  }, 1000);
} else {
  displayOptions = getAjax("/artsdigital/PHP/fac_tt_display.php?view="+getURLVar('view')+"&timetable="+getURLVar("timetable")+"&semes="+getURLVar('semes')+"&deptID="+getURLVar('deptID'));
  document.write(displayOptions);
  ttOpt1(getURLVar('timetable'));
  displayOpts();
}

function displayOpts() {
  if (_("displayOptions")) {
    for (x in _('displayOptions').elements) {
      if (_('displayOptions').elements[x]) { if (_('displayOptions').elements[x].tagName) { if (_('displayOptions').elements[x].tagName.match(/^select$/i)) {
        _('displayOptions').elements[x].style.border = "1px #f1bd2d solid"; _('displayOptions').elements[x].style.width = "150px";
      } } }
    }
  }
  return;
}
function ttOpt1(displayType) { // Function to set what UOS to display
  var tt = "";
  if (displayType=="select" || displayType.match(/\w{4}\d{4}/)) {
// Set up the UOS selction box
    tt = "<b>Select a Department : </b><br/>\r" + getAjax("/artsdigital/PHP/fac_tt_display.php?deptList=selectUOS");
    tt+= "<div id='uosSelect' style='height: 3em; padding: 3px;'></div>\r";
    tt+= "<br/><b>List of Units to view</b><br/>\r<i>click on Unit to remove</i>\r";
    tt+= "<div id='uosList' style='border: 3px inset #555; background-color: #DDD; height: 6em; width: 150px; overflow: auto; padding-left: .3em;'></div>\r";
    tt+= "<a onClick=\"_('uosList').innerHTML='';\">clear all</a>\r";
    tt+= "<div style='text-align: center; padding-top: 20px;'><a href='javascript:submit()' class='button'>View Timetable</a></div>\r";
  } else if (displayType) {
    if (_('id_deptID') && !_('uosList')) { if (_('id_deptID').value) submit(); return; }
    else tt = "<b>Select a Department: </b><br/>\r" + getAjax("/artsdigital/PHP/fac_tt_display.php?deptList=submit&deptID="+getURLVar('deptID')); 
  }

  if (tt) _('ttForm2').innerHTML = tt;
  if (displayType.match(/\w{4}\d{4}/)) {
    var subjs = displayType.split(",");
    for (subj in subjs) addUOS(subjs[subj]);
  }
  return;
}

function updateSemes(sessID) {
  if (_('id_uos')) {
    if (_('id_deptID')) selectUOS(_('id_deptID').value);
    _('uosList').innerHTML = "";
  } else if (_('id_deptID')) submit();
  return;
}

function updateView(view) {
  if (_('uosList') || (_('id_deptID') && !_('uosList'))) submit(); 
  return;
}

function selectUOS(deptID) {
  if (deptID) _('uosSelect').innerHTML = getAjax("/artsdigital/PHP/fac_tt_display.php?UOSlist="+deptID+"&semes="+_('id_semes').value);
  return;
}

function addUOS(uos) {
  if (uos) {
    var exist = RegExp(uos, "i");
    if (!_('uosList').innerHTML.match(exist)) {
      var uos = "<div onClick=\"this.parentNode.removeChild(this);\">"+uos+"</div>\r";
      _('uosList').innerHTML+=uos;
      var hgt = _('uosList').style.height.replace(/^(\d+).*$/, "$1");
      var children = _('uosList').childNodes;
      var num = 0;
      for (child in children) { if (children[child].tagName) num++; }
      if ((num*1.5) > hgt*1) _('uosList').style.height = (num*1.5)+"em";
    } else alert("You've already selected that Unit!");
  }
  return;
}

function submit() {
  var timetable;
  var view = _('id_view').value;
  var semes = _('id_semes').value;

  if (_('uosList')) {
    var subj = "";
    var subjs = _('uosList').childNodes;
    for (i in subjs) {
      if (subjs[i].innerHTML) subj+= subjs[i].innerHTML+","
    }
    timetable = "&timetable="+subj.replace(/,$/, "");
  } else if (_('id_timetable').value!="select") timetable = "&timetable="+_('id_timetable').value+"&deptID="+_('id_deptID').value;

  if (!timetable.length) alert("Insufficient input!"); 
  else { 
    var getvars = "view="+_('id_view').value+"&semes="+_('id_semes').value+timetable;
    if (document.location.href.match(/\?/)) document.location = document.location.href.replace(/\?.*$/, "")+"?"+getvars;
    else document.location = document.location.href+"?"+getvars;
  }
  
  return;
}
