//*****************************************************************************************
//*   objectModel.js
//*
//* This set of functions are general includes for validation
//* They are designed in pairs the validation and the event function
//* the event function will call the validation with the event src
//*
//* DATE       BY     DESCRIPTION
//* 2000-09-23 PRJDC  CREATION
//*****************************************************************************************

//*****************************************************************************************
function showmeObjectModel() {
    alert("Showing it:showmeObjectModel");
}
//*****************************************************************************************
function display_name(item) {
	var strDisplay = item.getAttribute("DisplayName");
	if (strDisplay==null || strDisplay=="")
		  strDisplay="Field";
	return strDisplay;
}
//*****************************************************************************************
function default_value(item) {
	var strDefault = item.defaultValue;
	if (strDefault==null || strDefault=="")
		  strDefault="";
	return strDefault;
}
//*****************************************************************************************
function trim_string() {
	var ichar, icount;
	var strValue = this;
	ichar = strValue.length - 1;
	icount = -1;
	while (strValue.charAt(ichar)==' ' && ichar > icount)
		--ichar;
	if (ichar!=(strValue.length-1))
		strValue = strValue.slice(0,ichar+1);
	ichar = 0;
	icount = strValue.length - 1;
	while (strValue.charAt(ichar)==' ' && ichar < icount)
		++ichar;
	if (ichar!=0)
		strValue = strValue.slice(ichar,strValue.length);
	return strValue;
}
//*****************************************************************************************
function date_toSimpleForm() {
	var toSimpleForm = new String;
	toSimpleForm = this.toLocaleString();
	toSimpleForm = toSimpleForm.substring(0,toSimpleForm.indexOf(' '));
	return toSimpleForm;
}
//*****************************************************************************************
function es_non_blank() {
	var item = event.srcElement;
	event.returnValue = vs_non_blank(item);
}
//*****************************************************************************************
function vs_non_blank(item) {
	var strErrorMsg = display_name(item) + " requires a value to be entered.";
	item.value=item.value.Trim();
	if (item.value.length==0) {
        putMessage(strErrorMsg);
		item.focus();
		return false;
	}
	return true;
}
//*****************************************************************************************
function eo_non_blank() {
	var item = event.srcElement;
	event.returnValue = vo_non_blank(item);
}
//*****************************************************************************************
function vo_non_blank(item) {
	item.value=item.value.Trim();
	if (item.value.length==0) {
		  return false;
	}
	return true;
}

//*****************************************************************************************
function gs_set_upper_case() {
	var item = event.srcElement;
	event.returnValue = ps_set_upper_case(item);
}
//*****************************************************************************************
function ps_set_upper_case(item) {
  item.value=item.value.toUpperCase();
}

//*****************************************************************************************
function gs_remove_quote() {
	var item = event.srcElement;
	event.returnValue = ps_remove_quote(item);
}
//*****************************************************************************************
function ps_remove_quote(item) {
  var strQuoteMark="'";
  var strNewItem="";
  if (item.value.length<1)
      return;
  arrItem = new Array([item.value.length])
	for (var intLoop = 0; intLoop < item.value.length; intLoop++) {
		   if (item.value.charAt(intLoop) == strQuoteMark) {
           arrItem[intLoop] = " ";
		   }
		   else {
           arrItem[intLoop] = item.value.charAt(intLoop);
       }
	}	
	for (var intLoop = 0; intLoop < item.value.length; intLoop++) {
           strNewItem=strNewItem+arrItem[intLoop];
	}
	item.value=strNewItem;	
}

//*****************************************************************************************
function es_length() {
	var item = event.srcElement;
	event.returnValue = vs_length(item);
}
//*****************************************************************************************
function vs_length(item) {
	return (item.value).length;
}

//*****************************************************************************************
function es_size_entered(size,moreless,bFocus) {
	var item = event.srcElement;
	event.returnValue = vs_size_entered(item,size);
}
//*****************************************************************************************
function vs_size_entered(item,size,moreless,bFocus) {
	var strErrorMsg = "You have entered "+(item.value).length+" characters in this input area.\nThis is "+moreless+" than the "+size+" characters allowed.\n\n Please make it smaller.";
	item.value=item.value.Trim();
	if (moreless=="more") {
      if ((item.value).length>size) {
             putMessage(strErrorMsg);
		     if (bFocus)
		         item.focus();
		     return false;
		  }
	}	  
	if (moreless=="less") {
      if ((item.value).length<size) {
         strErrorMsg = "You have entered "+(item.value).length+" characters in this input area.\nThis is "+moreless+" than the "+size+" charecters needed.\n\n Please enter more information.";
             putMessage(strErrorMsg);
		     if (bFocus)
		         item.focus();
		     return false;
		  }
  }
	return true;
}

//*****************************************************************************************
function es_valid_number() {
	var item = event.srcElement;
	event.returnValue = vs_valid_number(item);
}
//*****************************************************************************************
function vs_valid_number(item) {
	var strErrorMsg = display_name(item) + " must be a valid numeric";
	var strDefault = default_value(item);
	if (strDefault.length==0) {
		strDefault="0";
	}
	item.value=item.value.Trim();
	if (item.value.length==0)
		item.value=strDefault;
	var num = "+-.0123456789";
	for (var intLoop = 0; intLoop < item.value.length; intLoop++) {
		if (num.indexOf(item.value.charAt(intLoop)) == -1) {
            putMessage(strErrorMsg);
			item.focus();
			return false;
		}
	}
	if (item.value.indexOf(".")!=item.value.lastIndexOf(".")) {
        putMessage(strErrorMsg);
		item.focus();
		return false;
	}
	return true;
}


//*****************************************************************************************
function es_valid_alphanumeric() {
	var item = event.srcElement;
	event.returnValue = vs_valid_alphanumeric(item);
}
//*****************************************************************************************
function vs_valid_alphanumeric(item) {
	var strErrorMsg = display_name(item) + " must be a valid alphanumeric.";
	var strDefault = default_value(item);
	var num = ".0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    var strItem=item.value.toUpperCase();

	if (strDefault.length==0) {
		strDefault="0";
	}
	item.value=item.value.Trim();
	if (item.value.length==0)
		item.value=strDefault;
	for (var intLoop = 0; intLoop < item.value.length; intLoop++) {
		if (num.indexOf(strItem.charAt(intLoop)) == -1) {
            putMessage(strErrorMsg);
			item.focus();
			return false;
		}
	}
	if (item.value.indexOf(".")!=item.value.lastIndexOf(".")) {
        putMessage(strErrorMsg);
		item.focus();
		return false;
	}
	return true;
}



//*****************************************************************************************
function es_valid_hours() {
	var item = event.srcElement;
	event.returnValue = vs_valid_hours(item);
}
//*****************************************************************************************
function vs_valid_hours(item) {
	var strErrorMsg = display_name(item);
	if (!vs_valid_number(item))
		   return false;
	var itemValue = new Number(item.value);
	if ((itemValue < 0 || itemValue > 80)) {
		strErrorMsg = strErrorMsg + " must have a value from 0 to 80 hours";
        putMessage(strErrorMsg);
		item.focus();
		return false;
	}
	itemValue *= 4;
	if ((itemValue)!=Math.ceil(itemValue)) {
		strErrorMsg=strErrorMsg + " must be a valid quarterly increment";
        putMessage(strErrorMsg);
		item.focus();
		return false;
	}
	return true;
}
//*****************************************************************************************
function es_valid_percent() {
	var item = event.srcElement;
	event.returnValue = vs_valid_percent(item);
}
//*****************************************************************************************
function vs_valid_percent(item) {

	var strErrorMsg = display_name(item) + " must be in the format of 999.9 or 999";

	if ((/^\d{3}\.\d{1}$/.test(item.value))
	||  (/^\d{2}\.\d{1}$/.test(item.value))
	||  (/^\d{1}\.\d{1}$/.test(item.value))
	||  (/^\d{3}$/.test(item.value))
	||  (/^\d{2}$/.test(item.value))
	||  (/^\d{1}$/.test(item.value))) {
		   return true;
  }
	else {
           putMessage(strErrorMsg);
		   item.focus();
		   return false;
  } 
}
//*****************************************************************************************
function es_valid_date() {
	var item = event.srcElement;
	event.returnValue = vs_valid_date(item);
}
//*****************************************************************************************
function vs_valid_date(item,dateType) {

	 var strErrorMsg = display_name(item) + " must be in the format of ";

	 if (dateType == "CCYY") {	
       if (item.value < 1901 || item.value > 2200) {
	       strErrorMsg=strErrorMsg + " CCYY within the range of 1901 to 2200.";
           putMessage(strErrorMsg);
		   item.focus();
           return false;
       }
   }
	 if (dateType == "MM") {	
       if ((item.value<1)||(item.value>12)) {
            strErrorMsg=strErrorMsg + " MM within the range of 01 to 12.";
            putMessage(strErrorMsg);
			item.focus();
            return false;
       }
   }
	 if (dateType == "DD") {	
       if ((item.value<1)||(item.value>31))  {
	        strErrorMsg=strErrorMsg + " DD within the range of 01 to 31.";
			putMessage(strErrorMsg);
            item.focus();
            return false; 
        }  
   }
  return true;
} 
//*****************************************************************************************
function es_valid_date_edited() {
	var item = event.srcElement;
	event.returnValue = vs_valid_date_edited(item);
}
//*****************************************************************************************
function vs_valid_date_edited(strMonth,strDay,strYear) {

   if ((isNaN(strDay))||(isNaN(strMonth))||(isNaN(strYear)))  {
        return false; }
   else {  
      if (strYear < 1901 || strYear > 2200) {
          return false;}
      else {
         if ((strMonth<1)||(strMonth>12)) {
              return false;}
         else {
            if ((strDay<1)||(strDay>getDaysInMonth(strMonth,strYear)))  {
                 return false; }
            else {
                 return true;
            }
         }  
      }
   }
} 
//*****************************************************************************************
function getDaysInMonth(month,year)  {
 var days;
 if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)  
     days=31;
 else 
    if (month==4 || month==6 || month==9 || month==11) 
        days=30;
    else 
       if (month==2)  {
           if (isLeapYear(year)) 
               days=29;
           else 
               days=28;
       }
 return days;
}
//*****************************************************************************************
function isLeapYear (Year) {
 if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0))
       return true;
 else 
       return false;
}
//*****************************************************************************************
function es_valid_dateMCY() {
	var item = event.srcElement;
	event.returnValue = vs_valid_dateCCYYMM(item);
}
//*****************************************************************************************
function vs_valid_dateMCY(item) {

   var month=parseInt(item.value.substring(0,item.value.indexOf("-")));
   var year=parseInt(item.value.substring((item.value.lastIndexOf("-")+1),item.value.length));
   var strErrorMsg = display_name(item) + " must be in the format of MM-CCYY.";

   if ((isNaN(month))||(isNaN(year)))  {
	    strErrorMsg=strErrorMsg + " Non-Numeric values exist in MM, or CCYY.";
        putMessage(strErrorMsg);
		item.focus();
        return false; }
   else {  
      if (year < 1901 || year > 2200) {
	      strErrorMsg=strErrorMsg + " CCYY must be from 1901 to 2200.";
          putMessage(strErrorMsg);
		  item.focus();
          return false;}
      else {
         if ((month<1)||(month>12)) {
	          strErrorMsg=strErrorMsg + " MM must be 01 to 12.";
              putMessage(strErrorMsg);
			  item.focus();
              return false;}
         else {
              return true;
         }  
      }
   }
} 




//*****************************************************************************************
function es_valid_dateMMDDCCYY() {
	var item = event.srcElement;
	event.returnValue = vs_valid_dateMMDDCCYY(item);
}
//*****************************************************************************************
function vs_valid_dateMMDDCCYY(item) {

  var dash1 = item.value.indexOf("/")+1;
  var dash2 = item.value.lastIndexOf("/");
  var month = parseInt(item.value.substring(0,item.value.indexOf("/")));
  var day   = parseInt(item.value.substring(dash1,dash2));
  var year  = parseInt(item.value.substring((item.value.lastIndexOf("/")+1),item.value.length));
  var strErrorMsg = display_name(item)+" ";

  if ((isNaN(month))||(isNaN(year))||(isNaN(day)))  {
       strErrorMsg=strErrorMsg + "Non-Numeric values exist in MONTH, DAY,  or YEAR.";
       putMessage(strErrorMsg);
       item.focus();
       return false;  
  }
  if (year < 1901 || year > 2200) {
       strErrorMsg=strErrorMsg + "YEAR "+year+" must be from 1901 to 2200.";
       putMessage(strErrorMsg);
       item.focus();
       return false;  
  }
  if ((month<1)||(month>12)) {
       strErrorMsg=strErrorMsg + "MONTH "+month+" must be 01 to 12.";
       putMessage(strErrorMsg);
       item.focus();
       return false;  
  }
  if ((day<1)||(day>31)) {
       strErrorMsg=strErrorMsg + "DAY "+day+" must be 01 to 31.";
       putMessage(strErrorMsg);
       item.focus();
       return false;  
  }
  if (((month==4)||(month==6)||(month==9)||(month==11))&&(day>30)) {
       strErrorMsg=strErrorMsg + "DAY "+day+" should be less than 31";
       putMessage(strErrorMsg);
       item.focus();
       return false;  
  }
  if ((month==2)&&(day>28)) {
       strErrorMsg=strErrorMsg + "DAY "+day+" should be less than 29";
       putMessage(strErrorMsg);
       item.focus();
       return false;  
  }
  return true;
} 






//*****************************************************************************************
function es_valid_datecomparedates() {
	var item1 = event.srcElement;
	var item2 = event.srcElement;
	event.returnValue = vs_valid_datecomparedates(item1,item2);
}
//*****************************************************************************************
function vs_valid_datecomparedates(item1,item2) {

  var dash11 = item1.value.indexOf("/")+1;
  var dash12 = item1.value.lastIndexOf("/");
  var dash21 = item2.value.indexOf("/")+1;
  var dash22 = item2.value.lastIndexOf("/");

  var month1 = parseInt(item1.value.substring(0,item1.value.indexOf("/")));
  var day1   = parseInt(item1.value.substring(dash11,dash12));
  var year1  = parseInt(item1.value.substring((item1.value.lastIndexOf("/")+1),item1.value.length));

  var month2 = parseInt(item2.value.substring(0,item2.value.indexOf("/")));
  var day2   = parseInt(item2.value.substring(dash21,dash22));
  var year2  = parseInt(item2.value.substring((item2.value.lastIndexOf("/")+1),item2.value.length));

  var strErrorMsg1 = display_name(item1)+" ";
  var strErrorMsg2 = display_name(item2)+" ";
  var strErrorMsg3 = strErrorMsg1+" is after "+strErrorMsg2;

  if (year2 < year1) {
       strErrorMsg=strErrorMsg3;
       putMessage(strErrorMsg);
       item1.focus();
       return false;  
  }
  if ((year2 <= year1)&&(month2<month1)) {
       strErrorMsg=strErrorMsg3;
       putMessage(strErrorMsg);
       item1.focus();
       return false;  
  }
  if ((year2 <= year1)&&(month2 <= month1) && (day2 < day1)) {
       strErrorMsg=strErrorMsg3;
       putMessage(strErrorMsg);
       item1.focus();
       return false;  
  }
  return true;
} 




//*****************************************************************************************
function es_valid_dateCY() {
	var item = event.srcElement;
	event.returnValue = vs_valid_dateCCYYMM(item);
}
//*****************************************************************************************
function vs_valid_dateCY(item) {

   var month=parseInt(item.value.substring(0,item.value.indexOf("-")));
   var year=parseInt(item.value.substring((item.value.lastIndexOf("-")+1),item.value.length));
   var strErrorMsg = display_name(item) + " must be in the format of CCYY.";

   if (isNaN(year))  {
	    strErrorMsg=strErrorMsg + " Non-Numeric values exist in CCYY.";
        putMessage(strErrorMsg);
		item.focus();
        return false; }
   else {  
      if (year < 1901 || year > 2200) {
	      strErrorMsg=strErrorMsg + " CCYY must be from 1901 to 2200.";
          putMessage(strErrorMsg);
		  item.focus();
          return false;}
      else {
          return true;
      }
   }
} 

//*****************************************************************************************
function es_valid_string(item,strSearch) {
	var item = event.srcElement;
	event.returnValue = vs_valid_string(item,strSearch);
}
//*****************************************************************************************
function vs_valid_string(item,strArgument) {

  if (item.length=0)
      return true;

  if (item.value.indexOf(strArgument) == -1) {
	  return false;
  }
  return true;
}

//*****************************************************************************************
function es_item_selected() {
	var item = event.srcElement;
	event.returnValue = vs_item_selected(item);
}
//*****************************************************************************************
function vs_item_selected(item) {
	var strErrorMsg = "Please make a selection from the "+display_name(item) + " drop-down-list.";
	if (item.selectedIndex==0) {
        putMessage(strErrorMsg);
		item.focus();
		return false;
	}
	return true;
}
//*****************************************************************************************
function eo_item_selected() {
	var item = event.srcElement;
	event.returnValue = vo_item_selected(item);
}
//*****************************************************************************************
function vo_item_selected(item) {
    var i = item.selectedIndex;
	  if (item.options[item.selectedIndex].text == "Other" || item.options[item.selectedIndex].text == "other" ) {
	      return true;
		}
		else {
	      return false;}
}
//*****************************************************************************************
function gs_item_selected() {
	var item = event.srcElement;
	event.returnValue = ps_item_selected(item);
}
//*****************************************************************************************
function ps_item_selected(item) {
    var i = item.selectedIndex;
    return item.options[item.selectedIndex].value;
}
//*****************************************************************************************
function gs_item_selected_set(item,setItemValue) {
 	var itemx        = event.srcElement;
	event.returnValue = ps_item_selected_set(item,setItemValue);
}
//*****************************************************************************************
function ps_item_selected_set(item,setItemValue) {
    var i = item.selectedIndex;
    for (var i=0; i < item.length; i++ ) {
  	     if (item[i].value==setItemValue) {
             item.selectedIndex=i;  
			       item.options[item.selectedIndex].selected=true;
                   item.options[item.selectedIndex].selected;
                   item.options[item.selectedIndex].value==setItemValue;
			       return;
			   }
	  } 
}


//*****************************************************************************************
function gs_item_selected_setchecked(item,setItemValue) {
	var itemx         = event.srcElement;
	event.returnValue = ps_item_selected_setchecked(item,setItemValue);
}
//*****************************************************************************************
function ps_item_selected_setchecked(item,setItemValue) {
    var i = item.selectedIndex;
    item.options[item.selectedIndex].selected;
    item.options[item.selectedIndex].value==setItemValue;
    return;
}
//*****************************************************************************************
function gs_item_selected_getchecked(setItemValue) {
	var item        = event.srcElement;
	event.returnValue = ps_item_selected_getchecked(item,setItemValue);
}
//*****************************************************************************************
function ps_item_selected_getchecked(item,setItemValue) {
    var i = item.selectedIndex;
  	    if (item.options[item.selectedIndex].value==setItemValue) {
		        return true;
	      }
    return false;
}

//*****************************************************************************************
function gs_radio_setfocus() {
	var item = event.srcElement;
	event.returnValue = vs_radio_setfocus(item,iItemId);
}
//*****************************************************************************************
function ps_radio_setfocus(item,iItemId) {
	item[iItemId].focus();
	return;
}

//*****************************************************************************************
function es_radio_selectedYesNo() {
	var item = event.srcElement;
	event.returnValue = vs_radio_selectedYesNo(item);
}
//*****************************************************************************************
function vs_radio_selectedYesNo(item,txtRadio) {
	var strErrorMsg = "Must click YES or NO for "+txtRadio+ " buttons ";
  for (var i=0; i < item.length; i++ ) {
  	if (item[i].checked) {
			  return true;}
	}
    putMessage(strErrorMsg);
	item[0].focus();
	return false;
}
//*****************************************************************************************
function gs_radio_deselect() {
	var item = event.srcElement;
	event.returnValue = vs_radio_deselect(item);
}
//*****************************************************************************************
function ps_radio_deselect(item) {
  for (var i=0; i < item.length; i++ ) {
  	if (item[i].checked) {
        item[i].checked=false;
		}
	}
}
//*****************************************************************************************
function es_radio_selected() {
	var item = event.srcElement;
	event.returnValue = vs_radio_selected(item);
}
//*****************************************************************************************
function vs_radio_selected(item,txtRadio) {
	var strErrorMsg = "Must select one of the buttons for "+txtRadio+ " ";
    for (var i=0; i < item.length; i++ ) {
  	if (item[i].checked) {
		return true;}
	}
    putMessage(strErrorMsg);
	item[0].focus();
	return false;
}
//*****************************************************************************************
function gs_radio_selected() {
	var item = event.srcElement;
	event.returnValue = ps_radio_selected(item);
}
//*****************************************************************************************
function ps_radio_selected(item) {
  for (var i=0; i < item.length; i++ ) {
  	if (item[i].checked) {
	    return item[i].value;
		}
	}
}
//*****************************************************************************************
function es_checkbox_selected() {
	var item = event.srcElement;
	event.returnValue = vs_checkbox_selected(item);
}
//*****************************************************************************************
function vs_checkbox_selected(item) {
	var strErrorMsg = "Must select one of the checkboxes buttons";
 	if (item.checked) {
		  return true;
	}
    putMessage(strErrorMsg);
	item.focus();
	return false;
}
//*****************************************************************************************
function gs_checkbox_selected() {
	var item = event.srcElement;
	event.returnValue = ps_checkbox_selected(item);
}
//*****************************************************************************************
function ps_checkbox_selected(item) {
  if (item.checked) {
		  return item.checked;
	}
}
//*****************************************************************************************
function gs_checkbox_checked() {
	var item = event.srcElement;
	event.returnValue = ps_checkbox_checked(item);
}
//*****************************************************************************************
function ps_checkbox_checked(item,strCheckedTrueFalse) {
  return item.checked=strCheckedTrueFalse;
}
//*****************************************************************************************
function gv_checkbox_value() {
	var item = event.srcElement;
	event.returnValue = pv_checkbox_value(item);
}
//*****************************************************************************************
function pv_checkbox_value(item) {
  if (item.checked) {
		  return item.value;
	}
}
//*****************************************************************************************
function es_valid_zip() {
	var item = event.srcElement;
	event.returnValue = vs_valid_zip(item);
}
//*****************************************************************************************
function vs_valid_zip(item) {
	var strErrorMsg = display_name(item) + " must be in the format of 99999-9999";
	item.value=item.value.Trim();
	if (!(/^\d{5}$/.test(item.value) || /^\d{5}-\d{4}$/.test(item.value))) {
        putMessage(strErrorMsg);
		item.focus();
		return false;
	}
	return true;
}
//*****************************************************************************************
function es_valid_ssnbr() {
	var item = event.srcElement;
	event.returnValue = vs_valid_ssnbr(item);
}
//*****************************************************************************************
function vs_valid_ssnbr(item) {
	var strErrorMsg = display_name(item) + " must be in the format of 999-99-9999";
	item.value=item.value.Trim();
  if (!(/^\d{3}-\d{2}-\d{4}$/.test(item.value))) {
     putMessage(strErrorMsg);
     item.focus();
     return false;
  }
	return true;
}
//*****************************************************************************************
function es_valid_email() {
	var item = event.srcElement;
	event.returnValue = vs_valid_email(item);
}
//*****************************************************************************************
function vs_valid_email(item) {
	var strErrorMsg = display_name(item) + " must follow a valid email format.";
    if (!checkValidEmailFormat(item.value.Trim())) {    
       putMessage(strErrorMsg);
	   item.focus();
	   return false;
    }
    return true;
}


//*****************************************************************************************
function es_multipleEmailAddressCheck(item,strArgument,strDelim) {
	var item = event.srcElement;
	event.returnValue = vs_multipleEmailAddressCheck(item,strArgument,strDelim);
}
//*****************************************************************************************
function vs_multipleEmailAddressCheck(item,strType,strArgument,strDelim) {
  var bArgumentFound=true;
  var strArgumentUpper=strArgument.toUpperCase();
  var strAaddressUpper="";
  if (item.length=0) 
     return true;
  arrayOfStrings = item.value.split(strDelim);
  for (var i=0; i < arrayOfStrings.length; i++) {
       strAaddressUpper=arrayOfStrings[i].toUpperCase();
       if ((strAaddressUpper.indexOf(strArgumentUpper) == -1)  
       ||  (!checkValidEmailFormat(arrayOfStrings[i])))    {    
             bArgumentFound=false;
       }    
  }
  return bArgumentFound;
}

//*****************************************************************************************
function checkValidEmailFormat(strAddress) {

  strAddress =strAddress.Trim();
  var supported = 0;

  if (strAddress > "") {
     if (window.RegExp) {
         var tempStr = "a";
         var tempReg = new RegExp(tempStr);
         if (tempReg.test(tempStr)) 
             supported = 1;
     }
     if (!supported) 
          return (strAddress.indexOf(".") > 2) && (strAddress.indexOf("@") > 0);
     
     var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
     var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");

     if (!(!r1.test(strAddress) && r2.test(strAddress))) {
		        return false;
		 }    
  }
  return true;
}
//*****************************************************************************************
function es_replace_anychar(strArgumentChar,strReplaceWithChar) {
	var item = event.srcElement;
	event.returnValue = ps_replace_anychar(item,strType,strArgument,strDelim);
}
//*****************************************************************************************
function ps_replace_anychar(item,strArgumentChar,strReplaceWithChar) {
  var strNewItem="";
  var strPRESSENTER=chr(13);

  if (item.value.length<1)
      return;
  arrItem = new Array([item.value.length])
	for (var intLoop = 0; intLoop < item.value.length; intLoop++) {
//*	   if (item.value.charAt(intLoop) == strArgumentChar) {
		   if (item.value.charAt(intLoop) == strPRESSENTER) {
           arrItem[intLoop] = strReplaceWithChar;
		   }
		   else {
           arrItem[intLoop] = item.value.charAt(intLoop);
       }
	}	
	for (var intLoop = 0; intLoop < item.value.length; intLoop++) {
       strNewItem=strNewItem+arrItem[intLoop];
	}
	return strNewItem;	
}


//*****************************************************************************************
// build the validation object list
//*****************************************************************************************
function validation_setup() {

	this.eventValidDate          = es_valid_date;
	this.validDate               = vs_valid_date;
	this.eventValidDateCYM       = es_valid_dateMCY;
	this.validDateCYM            = vs_valid_dateMCY;
	this.eventValidDateMMDDCCYY  = es_valid_dateMMDDCCYY;
	this.validDateMMDDCCYY       = vs_valid_dateMMDDCCYY;
	this.eventValidDateCY        = es_valid_dateCY;
	this.validDateCY             = vs_valid_dateCY;
        this.eventDateEdited         = es_valid_date_edited;
        this.validDateEdited         = vs_valid_date_edited;
        this.eventDatesCompare       = es_valid_datecomparedates;
        this.validDatesCompare       = vs_valid_datecomparedates;

	this.eventValidNumber        = es_valid_number;
	this.validNumber             = vs_valid_number;
	this.eventValidAlphanumeric  = es_valid_alphanumeric;
	this.validAlphanumeric       = vs_valid_alphanumeric;

	this.eventNonBlank           = es_non_blank;
	this.validNonBlank           = vs_non_blank;
	this.eventNonBlankCheck      = eo_non_blank;
	this.validNonBlankCheck      = vo_non_blank;
	this.getSetUpperCase         = gs_set_upper_case;
	this.putSetUpperCase         = ps_set_upper_case;
	this.getRemoveQuote          = gs_remove_quote;
	this.putRemoveQuote          = ps_remove_quote;
	
	this.getReplaceAnyChar       =	es_replace_anychar;
	this.putReplaceAnyChar       =	ps_replace_anychar;
	
        this.eventMultipleEmailAddress = es_multipleEmailAddressCheck;  
        this.validMultipleEmailAddress = vs_multipleEmailAddressCheck;  
  
        this.eventStringSearch       = es_valid_string;
        this.validStringSearch       = vs_valid_string;

	this.eventValidHours         = es_valid_hours;
	this.validHours              = vs_valid_hours;

	this.eventPercent            = es_valid_percent;
	this.validPercent            = vs_valid_percent;

	this.eventItemSelected       = es_item_selected;
	this.validItemSelected       = vs_item_selected;
	this.eventItemSelectedOther  = eo_item_selected;
	this.validItemSelectedOther  = vo_item_selected;
	this.getItemSelected         = gs_item_selected;
	this.putItemSelected         = ps_item_selected;

	this.getItemSelectedSet      = gs_item_selected_set;
	this.putItemSelectedSet      = ps_item_selected_set;

	this.getItemSelectedSetChecked = gs_item_selected_setchecked;
	this.putItemSelectedSetChecked = ps_item_selected_setchecked;
	this.getItemSelectedGetChecked = gs_item_selected_getchecked;
	this.putItemSelectedGetChecked = ps_item_selected_getchecked;

	this.eventRadioSelectedYesNo = es_radio_selectedYesNo;
	this.validRadioSelectedYesNo = vs_radio_selectedYesNo;
	this.eventRadioSelected      = es_radio_selected;
	this.validRadioSelected      = vs_radio_selected;
	this.getRadioSelected        = gs_radio_selected;
	this.putRadioSelected        = ps_radio_selected;
	this.getRadioDeselected      = gs_radio_deselect;
	this.putRadioDeselected      = ps_radio_deselect;
        this.getRadioSetFocus        = gs_radio_setfocus;
	this.putRadioSetFocus        = ps_radio_setfocus;
  
        this.eventCheckboxSelected   = es_checkbox_selected;
	this.validCheckboxSelected   = vs_checkbox_selected;
	this.getCheckboxSelected     = gs_checkbox_selected;
	this.putCheckboxSelected     = ps_checkbox_selected;
	this.getCheckboxValue        = gv_checkbox_value;
	this.putCheckboxValue        = pv_checkbox_value;
	this.getCheckboxChecked      = gs_checkbox_checked;
	this.putCheckboxChecked      = ps_checkbox_checked;

	this.eventSizeTextEntered    = es_size_entered;
	this.validSizeTextEntered    = vs_size_entered;
	this.getLength               = es_length;
	this.putLength               = vs_length;
	
	this.validEmailAddress       = vs_valid_email;
	this.eventEmailAddress       = es_valid_email;
	
	return this;
}
//*****************************************************************************************
// Extend the string object to include a trim function
//*****************************************************************************************
String.prototype.Trim = trim_string;
//*****************************************************************************************
// Extend the date object to include a simple form string conversion
//*****************************************************************************************
Date.prototype.toSimpleForm = date_toSimpleForm;

//*****************************************************************************************
// Construct the validation object
//*****************************************************************************************
var validation = new Object;
validation = validation_setup();

//*****************************************************************************************
// This set of functions are for processing the key press event
// Used to restrict input on numerics and pure textual fields
//*****************************************************************************************
function kp_integer() {
	if ((event.keyCode < 48 || event.keyCode > 57))
		   event.returnValue = false;
}
//*****************************************************************************************
function kp_numeric() {
	if ((event.keyCode != 46) && (event.keyCode < 48 || event.keyCode > 57))
		   event.returnValue = false;
	if (event.keyCode == 46) {
		  if (event.srcElement.value.indexOf(".") > -1)
			    event.returnValue = false;
	}
}
//*****************************************************************************************
function kp_character() {
	if ((event.keyCode < 65 || event.keyCode > 90) && (event.keyCode < 97 || event.keyCode > 122))
		   event.returnValue = false;
}
//*****************************************************************************************
function kp_convert_upper() {
	if ((event.keyCode >= 97 && event.keyCode <= 122))
		   event.keyCode -= 32;
}
//*****************************************************************************************
function kp_convert_lower() {
	if ((event.keyCode >= 65 && event.keyCode <= 90))
		   event.keyCode += 32;
}
//*****************************************************************************************
function kp_setup() {
	this.Integer      = kp_integer;
	this.Numeric      = kp_numeric;
	this.Character    = kp_character;
	this.ConvertUpper = kp_convert_upper;
	this.ConvertLower = kp_convert_lower;
	return this;
}
//*****************************************************************************************
function setScrollStart(txtMsg)  {
   var i=0;
   msg=txtMsg
   for (i=0; i < space;i++)
	 msg=" " + msg ;
   scrollGo=true;
   timerid=window.setTimeout("setScrollMsg(0)",delay);
}
//*****************************************************************************************
function setScrollMsg(pos) {
   var out = "";
   scrollGo=false;
   if (pos < msg.length)
       self.status = msg.substring(pos, msg.length);
   else
       pos=-1;
       ++pos;
   scrollGo=true;
   timerid=window.setTimeout("setScrollMsg("+pos+")",delay);
}
//*****************************************************************************************
function setWindowDefaultMsg(txtMsg) {
	window.defaultStatus=txtMsg;
}
//*****************************************************************************************
var keyPressInput = new Object;
keyPressInput = kp_setup();
//*****************************************************************************************
function putMessage(glbMessage) {
   document.all.txtMessage.value=glbMessage;
   document.all.txtMessage.size=glbMessage.length;
   div0 = document.all.nameMessageCenter;
   div0.style.display = "";
}
//*****************************************************************************************
function putReplaceChar(itemValue,itemLength,itemSearchChar,itemReplaceChar) {
  var strReplacedItemValue="";
  if (itemLength<1)
      return itemValue;
  arrItem = new Array([itemLength])
  for (var intLoop = 0; intLoop < itemLength; intLoop++) {
      if (itemValue.charAt(intLoop) == itemSearchChar) {
          arrItem[intLoop] = itemReplaceChar;
      }
      else {
          arrItem[intLoop] = itemValue.charAt(intLoop);
      }
  }
  for (var intLoop = 0; intLoop < itemLength; intLoop++) {
       strReplacedItemValue=strReplacedItemValue+arrItem[intLoop];
  }
  return strReplacedItemValue;
}
//*****************************************************************************************
