 function setFocus(fName, iElement) {
  fName.elements[iElement].focus();
 }

//------------------------------------------------------------------------------

 function lengthValue(fName, iElement) {
  var sString = fName.elements[iElement].value;

  return sString.length;
 }

//------------------------------------------------------------------------------

 function hasValue(fName, iElement) {
  if (fName.elements[iElement].value == "") return false;
  return true;
 }

//------------------------------------------------------------------------------

 function hasSelection(fName, iElement) {
  if (fName.elements[iElement].selectedIndex == 0) return false;
  return true;
 }

//------------------------------------------------------------------------------

 function isChecked(fName, iElement) {
  return fName.elements[iElement].checked;
 }

//------------------------------------------------------------------------------

 function anyChecked(fName, iElement, iNumberOfElements) {
  var iCount;
  var bTruth = false;

  for (iCount = iElement; iCount <= iElement + (iNumberOfElements - 1); iCount++) {
   if (isChecked(fName, iCount) == true) bTruth = true;
  }

  return bTruth;
 }

//-------------------------------------------------------------------------------

 function howManySelected(fName, iElement) {
  var iCount;
  var iSelected = 0;
  var iLength = fName.elements[iElement].length - 1;

  for (iCount = 0; iCount <= iLength; iCount++) {
   fName.elements[iElement].index = iCount;
   if (fName.elements[iElement].options[fName.elements[iElement].index].selected == true) iSelected ++;
  }

  return iSelected;
 }

//-------------------------------------------------------------------------------

 function getSelectionText(fName, iElement) {
  return (fName.elements[iElement].options[fName.elements[iElement].selectedIndex].text);
 }

//-------------------------------------------------------------------------------

 function getSelectionIndex(fName, iElement) {
  return (fName.elements[iElement].selectedIndex);
 }

//-------------------------------------------------------------------------------

 function getValue(fName, iElement) {
  return fName.elements[iElement].value;
 }

//-------------------------------------------------------------------------------

 function makeSelectionByIndex(fName, iElement, iNumber) {
  fName.elements[iElement].selectedIndex = iNumber;
 }

//-------------------------------------------------------------------------------

 function makeSelectionByValue(fName, iElement, sValue) {
  var iLength = fName.elements[iElement].length;    // get number of options in selection string

  for (iCount = 1; iCount <= iLength; iCount++) {
   fName.elements[iElement].index = (iCount - 1);
   if ((fName.elements[iElement].options[fName.elements[iElement].index].value) == sValue) {
    makeSelectionByIndex (fName, iElement, fName.elements[iElement].index);
   } // end if
  } // end for
 }

//-------------------------------------------------------------------------------

 function makeSelectionByText(fName, iElement, sText) {
  var iLength = fName.elements[iElement].length;    // get number of options in selection string

  for (iCount = 1; iCount <= iLength; iCount++) {
   fName.elements[iElement].index = (iCount - 1);
   if ((fName.elements[iElement].options[fName.elements[iElement].index].text) == sText) {
    makeSelectionByIndex (fName, iElement, fName.elements[iElement].index);
   } // end if
  } // end for
 }

//-------------------------------------------------------------------------------

 function returnIndexByValue(fName, iElement, sValue) {
  var iLength = fName.elements[iElement].length;    // get number of options in selection string

  for (iCount = 1; iCount <= iLength; iCount++) {
   fName.elements[iElement].index = (iCount - 1);
   if ((fName.elements[iElement].options[fName.elements[iElement].index].value) == sValue) {
    return (fName.elements[iElement].index);
   } // end if
  } // end for
 }

//-------------------------------------------------------------------------------

 function returnIndexByText(fName, iElement, sText) {
  var iLength = fName.elements[iElement].length;    // get number of options in selection string

  for (iCount = 1; iCount <= iLength; iCount++) {
   fName.elements[iElement].index = (iCount - 1);
   if ((fName.elements[iElement].options[fName.elements[iElement].index].text) == sText) {
    return (fName.elements[iElement].index);
   } // end if
  } // end for
 }

//-------------------------------------------------------------------------------

 function hasDates(fName, iElement, iNumberOfDateBoxes) {
  var iCount;
  var bTruth = true;

  for (iCount = iElement; iCount <= iElement + (iNumberOfDateBoxes - 1); iCount ++) {
   if (hasSelection(fName, iCount) == false) bTruth = false;
  }

  return bTruth;
 }

//-------------------------------------------------------------------------------

 function checkDayMonth(fName, iMonthElement) {
  var iMonth = parseInt(getSelectionText(fName, iMonthElement));
  var iDay = getSelectionText(fName, iMonthElement - 1);

  switch (iMonth) {
   case 2:                                                              // February
    if (testDayMonth(fName, iDay, 29, iMonthElement - 1) == false) {
     alert('Your chosen day for February exceeded 29\nThe day has been changed to 29.');
    }
    break;

   case 4:                                                                 // April
    if (testDayMonth(fName, iDay, 30, iMonthElement - 1) == false) {
     alert('Your chosen day for April exceeded 30\nThe day has been changed to 30.');
    }
    break;

   case 6:                                                                  // June
    if (testDayMonth(fName, iDay, 30, iMonthElement - 1) == false) {
     alert('Your chosen day for June exceeded 30\nThe day has been changed to 30.');
    }
    break;

   case 9:                                                              //September
    if (testDayMonth(fName, iDay, 30, iMonthElement - 1) == false) {
     alert('Your chosen day for September exceeded 30\nThe day has been changed to 30.');
    }
    break;

   case 11:                                                             // November
    if (testDayMonth(fName, iDay, 30, iMonthElement - 1) == false) {
     alert('Your chosen day for November exceeded 30\nThe day has been changed to 30.');
    }
    break;
  }
 }

//-------------------------------------------------------------------------------

 function testDayMonth(fName, iActualDay, iMaxDays, iDayElement) {
  if (iActualDay > iMaxDays) {
   fName.elements[iDayElement].selectedIndex = iMaxDays;
   return false
  }

  return true;
 }



// -----------------------------------------------------------------------------------
function isEmail(str) {

	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
	    return false
	}

	 if (str.indexOf(at,(lat+1))!=-1){
	    return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	    return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
	    return false
	 }
		
	 if (str.indexOf(" ")!=-1){
	    return false
	 }

	 return true					
}