function Util(){}

Util.showPopup = function(theURL,winName,features) {
  window.open(theURL,winName,features);
}

Util.toggleDisplayBlock = function(elementId) {
  var el = document.getElementById(elementId);
  if(el.style.display=='none'){
    el.style.display= 'block';
  }else{
    el.style.display= 'none';
  }
}

Util.toggleDisplayElements = function(selectedEl, anArray){
  for(var i=0;i<anArray.length;++i){
    var el = document.getElementById(anArray[i]);
    if(anArray[i]==selectedEl){
      el.style.display= 'block';
    }else{
      el.style.display= 'none';
    }
  }
}

/*
* form must have hidden field named 'frmValidateFields' with field names that
* require validation.
* 
* form must have hidden field named 'frmValidationErrors' with error messages
* that correspond with frmValidateFields.
*
*
*/
Util.getElementsByName = function(anObject, name){
  var allElements = anObject.elements;
  var selectedElements = new Array();
  
  for(var i=0; i<allElements.length; ++i){
    if(allElements[i].name==name){
      selectedElements.push(allElements[i]);
    }
  }
  
  return selectedElements;
}

Util.SubmitForm = function(anForm){

  var validateFields = Util.getElementsByName(anForm, 'frmValidateFields');
  var validationErrors = Util.getElementsByName(anForm, 'frmValidationErrors');
  
  for(var i=0;i<validateFields.length;++i){
    if(!validateFields[i] || !validateFields[i].value || !validateFields[i].value.length) continue;

    var anField = anForm.elements[validateFields[i].value];

    if (anField.value == ""){
  	 alert(validationErrors[i].value);
  	 anField.focus();
  	 return;
    }
  }

 	anForm.submit();
}

Util.SubmitForm2 = function(anForm){ // at least one field

  var validateFields = Util.getElementsByName(anForm, 'frmValidateFields');
  var validationErrors = Util.getElementsByName(anForm, 'frmValidationErrors');
  
  var valid = false;
  
  var anField = null;
  var firstInvalid = null;
  var firstInvalidIndex = -1;
  var valid = false;
  for(var i=0;i<validateFields.length;++i){
    if(!validateFields[i] || !validateFields[i].value || !validateFields[i].value.length) continue;

    anField = anForm.elements[validateFields[i].value];

    if (anField.value == ""){
      if(!firstInvalid) firstInvalid = anField;
      if(firstInvalidIndex<0) firstInvalidIndex = i;
    }else{
      valid = true;
    }
  }

  if(!valid && firstInvalid){
    alert(validationErrors[firstInvalidIndex].value);
    firstInvalid.focus();
    return;
  }
  anForm.submit();
}

