var blnSend = true;
var arrErrors = new Array();
var arrRequired = new Array();

// ==== STANDARD DOM VARIABLES & FUNCTIONS ====
var structure, dispeq, closingb, showh, showv, displayB, displayN
structure = "document.getElementById('";
dispeq = "').style.display = ";
closingb = "')";
showh = "'hidden'";
showv = "'visible'";
displayB = "'block'";
displayN = "'none'";

function testLayer(id)
{
 test = eval(structure +id + closingb);
 if (!test) {return false;}
 return true;
}

function showHideLayer(lyrid,state)
{
 if (!testLayer(lyrid)) {return;}
 var strDisp = ((state == 1) ? displayB : displayN);
 eval(structure + lyrid + dispeq + strDisp)
}



// ==== 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;
}

function fn_isEmpty(objInput)
{
 if ((objInput.value==objInput.defaultValue) || (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++)
 {showHideLayer('error_'+arrErrors[intcount],intState);}
}

function fn_resetErrors()
{
 if (arrErrors.length>0)
 {
  fn_displayErrorMessages(0);
 }
 arrErrors = null;
 arrErrors = new Array();
}

// ==== MAIN FUNCTION CONTROLLING VALIDATION ON SUBMIT
function fn_validateForm(objForm)
{
 fn_resetErrors();
 fn_checkAllRequired(objForm)
 if(arrErrors.length>0)
 {
  fn_displayErrorMessages(1);
  blnSend = false;
 }
 else
 {blnSend = true;}
 return blnSend;
}

