function updateCharge() {
  if (typeof(document.forms[0]) != "undefined") {
    with (document.forms[0]) {
      var charge = 0;
      if (typeof(elements['/course/actualPrice/simpleValue']) != "undefined") {
        charge = parseInt(elements['/course/actualPrice/simpleValue'].value);
        if (elements['/examination/value'].checked)
          charge += parseInt(elements['/course/examinationPrice/simpleValue'].value);
      }
      else if (typeof(elements['/course/examinationPrice/simpleValue']) != "undefined") {
        var re = new RegExp("^\\/examinationsList\\/checkBox\\[\\d+\\]\\/value$");
        var price = parseInt(elements['/course/examinationPrice/simpleValue'].value);
        for (var i = 0; i < elements.length; i++) {
          var element = elements[i];
          if (element.type == "checkbox" && element.name.search(re) != -1 && element.checked)
            charge += price;
        }
      }
      else if (typeof(elements['/price/simpleValue']) != "undefined") {
        var re = new RegExp("^\\/employeeList\\/checkBox\\[\\d+\\]\\/value$");
        var price = parseInt(elements['/price/simpleValue'].value);
        for (var i = 0; i < elements.length; i++) {
          var element = elements[i];
          if (element.type == "checkbox" && element.name.search(re) != -1 && element.checked)
            charge += price;
        }
      }
      if ((typeof(elements['/charge/simpleValue']) != "undefined") && !isNaN(charge))
        elements['/charge/simpleValue'].value = charge;
    }
  }
}
