
function trim(str){
   return str.replace(/^\s*|\s*$/g,'');
}

function forms_showFieldError(strFormId, strFieldId){
  
  var objForm = document.forms[strFormId];
  var arrSpans = objForm.getElementsByTagName("SPAN");
  for(var i=0; i<arrSpans.length; i++){
    var spanId = arrSpans[i].id;
    if(spanId == "error_"+strFieldId){
      showE(arrSpans[i])
      return;
    }
  }
}

function forms_hideFieldsError(strFormId){
  var objForm = document.forms[strFormId];
  var arrSpans = objForm.getElementsByTagName("SPAN");
  for(var i=0; i<arrSpans.length; i++){
    var spanId = arrSpans[i].id;
    if(spanId.indexOf("error_") == 0){
      hideE(arrSpans[i])
    }
  }
}

function forms_isEmpty(str){
  return trim(str).length == 0;
}

function forms_isFieldEmpty(strFormId, strFieldId, strFieldType){
  var objField = document.forms[strFormId][strFieldId];
  if(objField){
    switch(strFieldType){
      case 'select':
        return false;
        break;
        
      case 'select-pleaseselect':
        return __C_bolDCombo?(objField.value == ""):(objField.selectedIndex == 0);
        break;
        
      case 'date':
      case 'email':
      case 'password':
      case 'text':
        var strValue = objField.value;
        if(strValue){
          return forms_isEmpty(strValue);
        }
        break;
      
      case 'radio':
        var b=false, i=0;
        while(objField[i]){
          b = b || objField[i].checked;
          i++;
        }
        return !b;
      
      default:
        alert("Warning: unhandled field type: " + strFieldType);  
      
    }
    return true;
  }
}

function forms_checkEmptyFields(strFormId, arrFields){
  
  var arrEmptyFields = new Array();
  
  for(var i=0; i<arrFields.length; i++){
    var strFieldId = arrFields[i].strFieldId;
    var strFieldType = arrFields[i].strFieldType;
    var bolEmptyField = forms_isFieldEmpty(strFormId, strFieldId, strFieldType);
    if(bolEmptyField){
      arrEmptyFields[arrEmptyFields.length] = strFieldId;
    }
  }
  return arrEmptyFields;
}

function forms_clearFormError(strFormId){
  forms_setFormError(strFormId, "&nbsp;");
}

function forms_setFormError(strFormId, strMessage){
  var tr = getE("tr_error_" + strFormId);
  var td = getE("td_error_" + strFormId);
  td.innerHTML = strMessage;
  tr.style.visibility = "visible";
}