 /**
  * Functions to do with forms, e.g. checking whether form fields are filled in or 
  * submiting forms with dynamically generated form fields.
  * /    
 
  
  /**
   * Populates hidden input fields of form.
   */             
  function submitForm(checkForm, currentObjectId, actionText, pos, formName) {

    if (!formName) formName = "globalForm";

    var objForm = document.getElementById(formName);
  
    var currentObject = findElement(objForm, "currentObjectId");  
    if (currentObject) {
      currentObject.setAttribute("value", currentObjectId);
    }
    
    var action = findElement(objForm, "action");
    if (action) {
      action.setAttribute("value", actionText);
    }
    
    var posObj = findElement(objForm, "pos");
    if (posObj) {
      posObj.setAttribute("value", pos);
    }
      
    if (!checkForm || checkFormFields(formName)) {
      objForm.submit();
    }
  }
  
  function findElement(form, elementName) {
    for (var i = 0; i < form.elements.length;i++){
      if (form.elements[i].name == elementName){
        return form.elements[i];
      }
    }
  }
  
  
  function checkFormFields(formName) {
  
    var optionalFields = [];
    if (!formName) formName = "globalForm";
    var objForm = document.getElementById(formName);
    var missingFields = [];        
    
    //loop for input fields
    for (var i = 0; i < objForm.elements.length; i++) {
      if (objForm.elements[i].type == "text" || objForm.elements[i].type == "password" || objForm.elements[i].type == "textarea" ) {
        if (!contains(optionalFields, objForm.elements[i].name)) {
          if (objForm.elements[i].value == "") {
            missingFields[missingFields.length] = objForm.elements[i];
          }
        }   
      }
    }      
    
    if (missingFields.length > 0) {
      var message = "Non tutti i campi obbligatori sono compilati";
      for (var i = 0; i < missingFields.length; i++) {
        missingFields[i].className = "highLight";
      }
      missingFields[0].focus();
      document.getElementById(formName + "Message").innerHTML = message;
      document.getElementById(formName + "Message").className = "message";
      return false;
    }        
    return true;
  }
  
  function contains(arr, item) {
  
    for (var i = 0; i < arr.length; i++) {
      
      reg = new RegExp("^" + arr[i]);
      if (item.match(reg)) {
        return true;
      }
    }
    return false;
  }
      
