//#####################################################
function DeleteMyError(tblID,row_name,formField) {
  var result = true;
  var oRow, oCell;
  oRow = tblID.rows;

for(var i=0;i<oRow.length;i++) {
  if (oRow[i].name == row_name) {
     tblID.deleteRow(parseInt(oRow[i].index));
     result = true;
     return result;
  }
  else {
     result = false;
  }
}

return result;
}

//#####################################################
function PrintMyError(tblID,row_num,msgID,custom_format)
{
  var result = true;
  var oRow, oCell;

  if (!row_num) {
    row_num = 0;
  }

  oRow = tblID.insertRow(row_num);
  oRow.name = "Error - ";	// + msgID;
  oRow.index = parseInt(row_num);
  oCell = oRow.insertCell(0);
  oCell.colSpan = "2";

  if (custom_format == "")
  {
	oCell.innerHTML = "<font class='error'>\t\t\t\tERROR! <u>" + msgID + "</u> was not entered.</font>";
  }
  else
  {
	oCell.innerHTML = "<font class='error'>\t\t\t\tERROR! Value entered for <u>" + msgID + "</u> was not entered in the proper format. Format as follows: <b>" + custom_format + "</b> .</font>";
  }

  tblID.focus();

  return result;
}

//#####################################################
function doClear(theText)
{
  theText.value = "";
}

//#####################################################
function validRequired(formField)
{
  var result = true;
  var deletion;
  var fieldLabel = formField.id;
  var error_row_name = "Error - ";	// + fieldLabel;
  var type = new String(formField.type);

  if (type.search("text") != -1) {
	  if (formField.value == "")
	  {
	    if (!isIE3Mac && (is.ie5up || is.nav6up)) {
		deletion = DeleteMyError(document.getElementById("formTbl"),error_row_name,formField);
		PrintMyError(document.getElementById("formTbl"),formField.index,fieldLabel,"");
	    }
	    else {
		alert("ERROR! " + fieldLabel + " was not entered.");
	    }
	    formField.focus();
	    result = false;
	  }
  }
  else if (type.search("select") != -1) {
	if ((parseInt(formField.selectedIndex) == -1) || (parseInt(formField.selectedIndex) == 0)) {
	    if (!isIE3Mac && (is.ie5up || is.nav6up)) {
		deletion = DeleteMyError(document.getElementById("formTbl"),error_row_name,formField);
		PrintMyError(document.getElementById("formTbl"),parseInt(formField.index),fieldLabel,"");
	    }
	    else {
		alert("ERROR! " + fieldLabel + " was not entered.");
	    }
	    formField.focus();
	    result = false;
	}
  }
  else if ((type.search("checkbox") != -1) || (type.search("radio") != -1)) {
	for(var i=0;i<formField.length;i++) {
	   if (eval(formField[i].checked)) {
	      result = true;
	   }
	   else {
	      if (!isIE3Mac && (is.ie5up || is.nav6up)) {
		deletion = DeleteMyError(document.getElementById("formTbl"),error_row_name,formField);
		PrintMyError(document.getElementById("formTbl"),parseInt(formField.index),fieldLabel,"");
	      }
	      else {
		alert("ERROR! " + fieldLabel + " was not entered.");
	      }
	      result = false;
	   }
	}
	if (!result) {
	    if (!isIE3Mac && (is.ie5up || is.nav6up)) {
		deletion = DeleteMyError(document.getElementById("formTbl"),error_row_name,formField);
		PrintMyError(document.getElementById("formTbl"),parseInt(formField.index),fieldLabel,"");
	    }
	    else {
		alert("ERROR! " + fieldLabel + " was not entered.");
	    }
	    formField.focus();
	    return result;
	}
	else {
	    return result;
	}
  }
  else {
	return result;
  }
return result;
}

//#####################################################
function validPasswordCmp(formField_A,formField_B,required)
{
  var result = true;
  var fieldLabel = formField_B.id;

  var error_row_name = "Error - ";	// + fieldLabel;

  if (required && !validRequired(formField_Bl))
    result = false;

   if (result)
   {
	if (formField_A.value != formField_B.value)
	  {
	    if (!isIE3Mac && (is.ie5up || is.nav6up)) {
		    deletion = DeleteMyError(document.getElementById("formTbl"),error_row_name,formField);
		    PrintMyError(document.getElementById("formTbl"),parseInt(formField.index),"");
	    }
	    else {
		alert("ERROR! No " + fieldLabel + " was entered.");
	    }
	    formField_B.focus();
	    result = false;
	  }
   }
  
  return result;
}

// ######################################################
function validDomain(formField,required) {
	var regexp1 = /^[Ww][Ww][Ww]\./;
	var regexp2 = /^[a-zA-Z0-9]+$/;
	var regexp3 = /\-/;
	var maxLen = 128;
	var minLen = 5;
	var domainAry = new Array();
	var result = true;
	var fieldLabel = formField.id;
	var error_row_name = "Error - ";	// + fieldLabel;

	domainAry = formField.value.split(".");

	if (regexp1.test(formField.value)) {
	     formField.value = formField.value.replace(regexp1,'');
	}

	if (formField.value.indexOf( "." ) == -1) {
	     alert ('Please enter a domain extension in the "' + fieldLabel + '" field (example: yourdomain.com)');
	     formField.focus();
	     return false;
	}

	if (!(parseInt(formField.value.length) >= minLen) && !(parseInt(formField.value) <= maxLen)) {
	     alert ('The "' + fieldLabel + '" field must be 5-128 characters long.');
	     formField.focus();
	     return false;
	}

	for (var i=0; i< domainAry.length;i++) {
	   if (!regexp2.test(domainAry[i])) {
	      if (!regexp3.test(domainAry[i])) {
		alert ('The "' + fieldLabel + '" field may only contain letters, numbers and dashes.');
		formField.focus();
		return false;
	      }
	   }
	}
return result;
}

//#####################################################
function validNum(formField,required)
{
  var result = true;
  var fieldLabel = formField.id;
  var error_row_name = "Error - ";	// + fieldLabel;

  if (required && !validRequired(formField,fieldLabel))
    result = false;
  
   if (result)
   {
     var num = parseInt(formField.value);
     if (isNaN(num))
     {
        if (!isIE3Mac && (is.ie5up || is.nav6up)) {
	deletion = DeleteMyError(document.getElementById("formTbl"),error_row_name,formField);
	PrintMyError(document.getElementById("formTbl"),parseInt(formField.index),fieldLabel,"0123456789");
        }
        else {
	alert("ERROR! Value entered for '" + fieldLabel + "' was not entered in the proper format.\nFormat is numeric as follows: 0123456789.");
        }
        formField.focus();    
        result = false;
     }
   } 
  
  return result;
}

//#####################################################
function validPhoneNum(formField,required)
{
  var result = true;
  var fieldLabel = formField.id;
  var error_row_name = "Error - ";	// + fieldLabel;

  if (required && !validRequired(formField,fieldLabel))
    result = false;
  
   if (result)
   {
     var num = parseInt(formField.value);
     if (isNaN(num))
     {
        if (!isIE3Mac && (is.ie5up || is.nav6up)) {
	deletion = DeleteMyError(document.getElementById("formTbl"),error_row_name,formField);
	PrintMyError(document.getElementById("formTbl"),parseInt(formField.index),fieldLabel,"(555) 5555555");
        }
        else {
	alert("ERROR! Value entered for '" + fieldLabel + "' was not entered in the proper format.\nFormat as follows: (555) 5555555.");
        }
        formField.focus();
        result = false;
     }
   }
  
  return result;
}

//#####################################################
function validDate(formField,required)
{
  var result = true;
  var fieldLabel = formField.id;

  if (required && !validRequired(formField,fieldLabel))
    result = false;
  
   if (result)
   {
     var elems = formField.value.split("/");
     
     result = (elems.length == 3); // should be three components
     
     if (result)
     {
       var month = parseInt(elems[0],10);
       var day = parseInt(elems[1]);
       var year = parseInt(elems[2],10);
       result = !isNaN(month) && (month > 0) && (month < 13) &&
            !isNaN(day) && (day > 0) && (day < 32) &&
            !isNaN(year) && (elems[2].length == 4);
     }

     if (!result)
     {
        if (!isIE3Mac && (is.ie5up || is.nav6up)) {
	deletion = DeleteMyError(document.getElementById("formTbl"),error_row_name,formField);
	PrintMyError(document.getElementById("formTbl"),parseInt(formField.index),fieldLabel,"MM/DD/YYYY");
        }
        else {
	alert("ERROR! Value entered for '" + fieldLabel + "' was not entered in the proper format.\nFormat as follows: MM/DD/YYYY.");
        }
        formField.focus();
        result = false;
     }

  } 
  
  return result;
}

//#####################################################
function validEmail(formField,required)
{
  var result = true;
  var fieldLabel = formField.id;
  var error_row_name = "Error - ";	// + fieldLabel;

  if (required && !validRequired(formField,fieldLabel))
    result = false;
  
   if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
   {
        if (!isIE3Mac && (is.ie5up || is.nav6up)) {
	deletion = DeleteMyError(document.getElementById("formTbl"),error_row_name,formField);
	PrintMyError(document.getElementById("formTbl"),parseInt(formField.index),fieldLabel,"username@emailcompany.com");
        }
        else {
	alert("ERROR! Value entered for '" + fieldLabel + "' was not entered in the proper format.\nFormat as follows: username@emailcompany.com.");
        }
        formField.focus();
        result = false;
   }

  return result;
}

//#####################################################
function isEmailAddr(email)
{
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");

  if (index > 0)
   {
	var pindex = theStr.indexOf(".",index);
	if ((pindex > index+1) && (theStr.length > pindex+1))
		result = true;
   }

  return result;
}

// ######################################################
function confirmed(formField) {
  var result = true;
  var fieldLabel = formField.id;
  var error_row_name = "Error - ";	// + fieldLabel;
  var type = new String(formField.type);

  if (type.search("text") != -1) {
	  if (formField.value == "")
	  {
	    result = confirm('Is there anything that you would like to enter for the "' + fieldLabel +'" field?\nYes = OK and No = CANCEL');
	    formField.focus();
	    return !result;
	  }
  }
  else if (type.search("select-one") != -1) {
	if ((parseInt(formField.selectedIndex) == -1) || (parseInt(formField.selectedIndex) == 0)) {
	    result = confirm('Is there anything that you would like to enter for the "' + fieldLabel +'" field?\nYes = OK and No = CANCEL');
	    formField.focus();
	    return !result;
	}
  }
  else if ((type.search("checkbox") != -1) || (type.search("radio") != -1)) {
	for(var i=0;i<formField.length;i++) {
	   if (eval(formField[i].checked)) {
	      result = true;
	   }
	   else {
	      result = false;
	   }
	}
	if (!result) {
	    result = confirm('Is there anything that you would like to enter for the "' + fieldLabel +'" field?\nYes = OK and No = CANCEL');
	    formField.focus();
	    return !result;
	}
	else {
	    return result;
	}
  }
  else {
	return result;
  }
return result;
}

//#####################################################
function validateForm(theForm)
{

/*
  var fieldType = new Array();
  fieldType[0] = "text";
  fieldType[1] = "textarea";
  fieldType[2] = "select-one";
  fieldType[3] = "checkbox";
  fieldType[4] = "radio";
  fieldType[5] = "hidden";
  fieldType[6] = "reset";
  fieldType[7] = "submit";


else {
  no_update = true;
}

*/

  var error_on = "";
  var temp = "";
  var update = false;
  var error_row_name = "Error - ";	// + fieldLabel;

  // Customize these calls for your form
  // Start ------->
  
  if (!validRequired(theForm.fieldId_502))
    {
	return false;
    }

  if (!validRequired(theForm.fieldId_503))
    {
	return false;
    }

  if (!validEmail(theForm.fieldId_504,true))
    {
	return false;
    }

  if (!validRequired(theForm.fieldId_505))
    {
	return false;
    }

  if (!validRequired(theForm.fieldId_506))
    {
	return false;
    }

  if (!validRequired(theForm.fieldId_5081))
    {
	return false;
    }

  // <--------- End

  return true;
}
