var blnSend = true;
var blnChangeRequired = true;
var arrErrors = new Array();
var arrRequired = new Array();



// ==== FUNCTIONS FOR DEALING WITH FOCUS AND BLUR OF ELEMENTS ====
function clearDefault(objInput)
{
 if (objInput.defaultValue==objInput.value) objInput.value = ""
}

function checkContentChange(objInput)
{
 if (objInput.value=="") {objInput.value = objInput.defaultValue;}
}

// ==== FUNCTIONS FOR CHECKING FIELDS ====
function fn_isChecked(objInput)
{
 if (!objInput.checked){return false;}
 return true;
}

var strRadioValue;
function fn_radioChecked(arrInputGroup)
{
 strRadioValue = "";
 for(var i = 0; i < arrInputGroup.length; i++)
 {
  if (arrInputGroup[i].checked){strRadioValue = arrInputGroup[i].value; return true;}
 }
 return false;
}

function fn_isEmpty(objInput)
{
// if ((blnChangeRequired && (objInput.value==objInput.defaultValue)) || (objInput.value == "")){return false;}
 if (!objInput.value == ""){return false;}
 return true;
}

function fn_addToErrors(objInput)
{
 arrErrors[arrErrors.length] = objInput.name
}

// ==== FUNCTIONS FOR SETTING UP AND LOOPING THROUGH REQUIRED FIELDS ====
function fn_checkAllRequired(objForm)
{
 if (arrRequired.length==0) return true;
 for (intcount=0; intcount<arrRequired.length; intcount++)
 {
  tmpThis = eval("objForm."+arrRequired[intcount]);
  if(!((tmpThis.type == 'checkbox') ? fn_isChecked(tmpThis) : fn_isEmpty(tmpThis))){fn_addToErrors(tmpThis);}
 }
}

function fn_RequiredFieldsArray()
{
 var intFields = fn_RequiredFieldsArray.arguments.length
 if (intFields!=0)
 {
  for(intcount=0;intcount<intFields;intcount++)
  {
   arrRequired[intcount]=fn_RequiredFieldsArray.arguments[intcount]
  }
 }
}

// ==== FUNCTIONS FOR MANAGING THE ERROR ARRAY AND MESSAGES ====
function fn_displayErrorMessages(intState)
{
 for (intcount=0;intcount<arrErrors.length;intcount++)
 {showHideElement('error_'+arrErrors[intcount],intState);}
}

function fn_resetErrors()
{
 if (arrErrors.length>0)
 {
  fn_displayErrorMessages(0);
 }
 arrErrors = null;
 arrErrors = new Array();
 blnSend = true;
}

// ==== MAIN FUNCTION CONTROLLING VALIDATION ON SUBMIT
function fn_validateForm(objForm)
{
 fn_resetErrors();
 fn_checkAllRequired(objForm)
 if(arrErrors.length>0)
 {
  fn_displayErrorMessages(1);
  blnSend = false;
 }
 return blnSend;
}

