    var f = null;
    var gt = null;
    var tuitionType = null;
    var tuitionWeeks = null;
    var tuitionWeeksCost = null;
    var examfee = null;
    var accom = null;
    var taxiDir = null;
    var taxiFare = null;
    var total = null;

    function loaded(){
      f = document.forms[0].elements;
      gt = document.getElementById('total');
      update();
      updateTaxiOptions(true);
    }

    function update(){
      updateCourseType();
      tuitionType = getRadioVal(f.tuitionfee);
      tuitionWeeks = getWeeks(tuitionType);
      tuitionWeeksCost = getWeeksCost(tuitionType);
      examfee = getRadioVal(f.examfee);
      accom = getRadioVal(f.accom) * tuitionWeeks;
      taxiDir = getRadioVal(f.taxiWays);
      taxiFare = getRadioVal(f.taxiFare) * taxiDir;
      total = 0;
      if (tuitionWeeks != 0) {
        total = 50 + parseFloat(tuitionWeeksCost) + parseFloat(examfee) + parseFloat(accom) + parseFloat(taxiFare);
      }
      updateInfo();
      gt.innerHTML = gt.innerHTML = '&pound;' + total.toFixed(2);
    }

    function updateCourseType(){
      var chosenT = getRadioVal(f.tuitionfee);
      for (var i=0;i<f.tuitionfee.length;i++){
        if(chosenT == i+1){
          eval('f.tuitionDuration' + (i+1) + '.disabled=false');
        }
        else{
          eval('f.tuitionDuration' + (i+1) + '.disabled=true');
        }
      }
    }

    function getWeeks(i){
      var val = parseFloat(eval('f.tuitionDuration' + i +'[f.tuitionDuration' + i + '.selectedIndex].text'));
      return (val.toString() == 'NaN')? 0 : val;
    }
    function getWeeksCost(i){
      var val = eval('f.tuitionDuration' + i +'.value');
      return ((val == 'Select duration') || (val == ''))? 0 : val;
    }
    function getRadioVal(obj){
      if (obj.length > 0){
        for (var i=0;i<obj.length;i++){
          if (obj[i].checked){
            return obj[i].value;
          }
        }
      }
    }
    function getCheckBoxValue(obj){
      return (obj.checked) ? obj.value : 0;
    }
    function updateInfo(){
      document.getElementById('tuitionfeeInfo').innerHTML = '&pound;' + parseFloat(tuitionWeeksCost).toFixed(2);
      document.getElementById('examInfo').innerHTML = '&pound;' + parseFloat(examfee).toFixed(2);
      document.getElementById('accomInfo').innerHTML = '&pound;' + parseFloat(accom).toFixed(2);
      document.getElementById('taxiInfo').innerHTML = '&pound;' + parseFloat(taxiFare).toFixed(2);
    }
    function updateTaxiOptions(b){
      //alert(f['taxiFare'].length)
      for (var i=0;i<f['taxiFare'].length;i++){
        f['taxiFare'][i].disabled = b;
      }
    }
