function disableField(theField, bolFlag){
  if (theField.type == 'text'){
    theField.readOnly = bolFlag;
  }
  else{
    theField.disabled = bolFlag;
  }
}

function FocusFirst(theForm){
  for(var i = 0; i < theForm.elements.length; i++){
    if (theForm.elements[i].disabled == false && (theForm.elements[i].type != "hidden")){
      theForm.elements[i].focus();
      return;
    }
  }
}

function ClearAll(){
  var form = window.document.forms[0];
  var fields = new Array();
  for(var i = 0; i < form.elements.length; i++){
    fields[i] = form.elements[i].name;
  }
  for (var i = 0; i < fields.length; i++){
    var obj = form.elements[fields[i]];
    if (obj){
      switch(obj.type){
        case "select-one":
          form.elements[fields[i]].selectedIndex = 0;
          break;
        case "select-multiple":
          form.elements[fields[i]].selectedIndex = 0;
          break;
        case "text":
        case "textarea":
          form.elements[fields[i]].value = "";
          break;
        case "password":
          form.elements[fields[i]].value = "";
          break;
        default:
      }
    }
  }
  FocusFirst(form);
}

function trimRight(str) {
  if (str != null){
    while (str.charAt(str.length - 1) == " ")
      str = str.substring(0, str.length - 1);
  }
  return str;
}


function trim(str){
  if (str != null){
    while (str.charAt(str.length - 1) == " ")
      str = str.substring(0, str.length - 1);
    while (str.charAt(0) == " ")
      str = str.substring(1, str.length);
  }
  return str;
}

function isEmpty(str){
  if (trim(str) == null || trim(str) == "") return true;
    return false;
}

function isDate1GreaterEqualDate2(date1, date2){
  var date1Array, date1Mon, date1Day, date1Yr, date2Array, date2Mon, date2Day, date2Yr;
  var convertedDate1, convertedDate2;

  date1Array = date1.split(".");
  date1Mon = date1Array[0];
  date1Day = date1Array[1];
  date1Yr  = date1Array[2];
  date2Array = date2.split(".");
  date2Mon = date2Array[0];
  date2Day = date2Array[1];
  date2Yr  = date2Array[2];

  convertedDate1 = new Date(date1Mon, date1Day, date1Yr);
  convertedDate2 = new Date(date2Mon, date2Day, date2Yr);

  if (convertedDate1 >= convertedDate2)
    return true;
  else
    return false;
}

function isDate1LessDate2(date1, date2){
  var date1Array, date1Mon, date1Day, date1Yr, date2Array, date2Mon, date2Day, date2Yr;
  var convertedDate1, convertedDate2;

  date1Array = date1.split(".");
  date1Mon = date1Array[0] - 1;
  date1Day = date1Array[1];
  date1Yr  = date1Array[2];
  date2Array = date2.split(".");
  date2Mon = date2Array[0] - 1;
  date2Day = date2Array[1];
  date2Yr  = date2Array[2];

  convertedDate1 = new Date(date1Yr, date1Mon, date1Day);
  convertedDate2 = new Date(date2Yr, date2Mon, date2Day);

  if (convertedDate1 < convertedDate2)
    return true;
  else
    return false;
}

function FormCheck(form, formFields, formFieldDescriptions){
  // Enter name of mandatory fields
  var fieldRequired = new Array();
  for (var i = 0; i < formFields.length; i++){
    fieldRequired[i] = formFields[i];
  }
  // Enter field description to appear in the dialog box
  var fieldDescription = new Array();
  for (var i = 0; i < formFieldDescriptions.length; i++){
    fieldDescription[i] = formFieldDescriptions[i];
  }
  // dialog message
  var alertMsg = "The following fields are required:\n\n";
  var l_Msg = alertMsg.length;

  for (var i = 0; i < fieldRequired.length; i++){
    var obj = form.elements[fieldRequired[i]];
    if (obj){
      switch(obj.type){
        case "select-one":
          obj.options[obj.selectedIndex].text = trim(obj.options[obj.selectedIndex].text);
	  if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
	    alertMsg += " - " + fieldDescription[i] + "\n";
          }
          break;
        case "select-multiple":
          if (obj.selectedIndex == -1){
	    alertMsg += " - " + fieldDescription[i] + "\n";
          }
          break;
        case "text":
        case "textarea":
          obj.value = trimRight(obj.value);
          if (obj.value == "" || obj.value == null){
	    alertMsg += " - " + fieldDescription[i] + "\n";
          }
          break;
        case "password":
          obj.value = trim(obj.value);
          if (obj.value == "" || obj.value == null){
	    alertMsg += " - " + fieldDescription[i] + "\n";
          }
          break;
        default:
      }
      if (obj.type == undefined){
        var blnchecked = false;
	for (var j = 0; j < obj.length; j++){
	  if (obj[j].checked){
	    blnchecked = true;
          }
        }
	if (!blnchecked){
          alertMsg += " - " + fieldDescription[i] + "\n";
        }
      }
    }
  }
  if (alertMsg.length == l_Msg){
    return true;
  }
  else{
    alert(alertMsg);
    return false;
  }
}
