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 validRequired(formField,fieldLabel){
 var result = true;	
 if(formField.value == ""){
  alert('Please enter a value for the "' + fieldLabel +'" field.');
  formField.focus();
  result = false;
 }
 return result;
}

function allDigits(str){
 return inValidCharSet(str,"0123456789");
}

function inValidCharSet(str,charset){
 var result = true;
 //doesn't use regular expressions to avoid early Mac browser bugs	
 for (var i=0;i<str.length;i++)
  if(charset.indexOf(str.substr(i,1))<0){
   result = false;
   break;
 }	
 return result;
}

function validEmail(formField,fieldLabel,required){
 var result = true;
 if(required && !validRequired(formField,fieldLabel))
  result = false;

 if(result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) ){
  alert("Please enter a complete email address in the form: yourname@yourdomain.com");
  formField.focus();
  result = false;
 }
 return result;
}

function validNum(formField,fieldLabel,required){
 var result = true;
 if(required && !validRequired(formField,fieldLabel))
  result = false;
 
 if(result){
  if(!allDigits(formField.value)){
   alert('Please enter a number for the "' + fieldLabel +'" field.');
   formField.focus();
   result = false;
  }
 }
 return result;
}

function validInt(formField,fieldLabel,required){
 var result = true;
 if(required && !validRequired(formField,fieldLabel))
  result = false;

 if(result){
  var num = parseInt(formField.value,10);
  if(isNaN(num)){
   alert('Please enter a number for the "' + fieldLabel +'" field.');
   formField.focus();		
   result = false;
  }
 }
 return result;
}

function validDate(formField,fieldLabel,required){
 var result = true;
 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],10);
   var year = parseInt(elems[2],10);
   result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
    allDigits(elems[1]) && (day > 0) && (day < 32) &&
	allDigits(elems[2]) && ((elems[2].length == 2) || (elems[2].length == 4));
  }

  if(!result){
   alert('Please enter a date in the format MM/DD/YYYY for the "' + fieldLabel +'" field.');
   formField.focus();
  }
 }
 return result;
}

function validateFormAd(theForm){
 if(!validRequired(theForm.NAME,"Name"))
  return false;

 if(!validRequired(theForm.ORGANIZATION,"Organization"))
  return false;

 if(!validRequired(theForm.ADDRESS,"Street Address"))
  return false;

 if(!validRequired(theForm.CITY,"City"))
  return false;

 if(!validRequired(theForm.STATE,"State"))
  return false;

 if(!validRequired(theForm.ZIPCODE,"Zip/Postal"))
  return false;

 if(!validRequired(theForm.COUNTRY,"Country"))
  return false;

 if(!validEmail(theForm.EMAIL,"Email Address",true))
  return false;

 if(!validRequired(theForm.ADVERTISINGCOMMENTS,"Description of the products or services you wish to advertise",true))
  return false;

 if(!validRequired(theForm.FOUND,"How did you hear about us?",true))
  return false;
}

function validateFormBus(theForm){
 if(!validRequired(theForm.NAME,"Name"))
  return false;

 if(!validRequired(theForm.ORGANIZATION,"Organization"))
  return false;

	if(!validRequired(theForm.ADDRESS,"Street Address"))
		return false;

	if(!validRequired(theForm.CITY,"City"))
		return false;

	if(!validRequired(theForm.STATE,"State"))
		return false;

	if(!validRequired(theForm.ZIPCODE,"Zip/Postal"))
		return false;

	if(!validRequired(theForm.COUNTRY,"Country"))
		return false;

	if(!validEmail(theForm.EMAIL,"Email Address",true))
		return false;

	if(!validRequired(theForm.BUSINESSCOMMENTS,"Description of the business opportunity you wish to discuss",true))
		return false;

	if(!validRequired(theForm.FOUND,"How did you hear about us?",true))
		return false;
}

function validateFormCust(theForm){
	if(!validRequired(theForm.NAME,"Name"))
		return false;

	if(!validEmail(theForm.EMAIL,"Email Address",true))
		return false;

	if(!validRequired(theForm.COMMENTS,"Please enter your question or comment",true))
		return false;

	if(!validRequired(theForm.FOUND,"How did you hear about us?",true))
		return false;
}

function validateFormNews(theForm){
	if(!validRequired(theForm.NAME,"Name"))
		return false;

	if(!validEmail(theForm.EMAIL,"Email Address",true))
		return false;

	if(!validRequired(theForm.FOUND,"How did you hear about us?",true))
		return false;
}

function validateFormPublish(theForm){
	if(!validRequired(theForm.NAME,"Name"))
		return false;

	if(!validRequired(theForm.ORGANIZATION,"Organization"))
		return false;

	if(!validRequired(theForm.ADDRESS,"Street Address"))
		return false;

	if(!validRequired(theForm.CITY,"City"))
		return false;

	if(!validRequired(theForm.STATE,"State"))
		return false;

	if(!validRequired(theForm.ZIPCODE,"Zip/Postal"))
		return false;

	if(!validRequired(theForm.COUNTRY,"Country"))
		return false;

	if(!validEmail(theForm.EMAIL,"Email Address",true))
		return false;

	if(!validRequired(theForm.FOUND,"How did you hear about us?",true))
		return false;
}

function validateFormPublic(theForm){
 if(!validRequired(theForm.NAME,"Name"))
  return false;

 if(!validRequired(theForm.ORGANIZATION,"Organization"))
  return false;

 if(!validRequired(theForm.ADDRESS,"Street Address"))
  return false;

 if(!validRequired(theForm.CITY,"City"))
  return false;

 if(!validRequired(theForm.STATE,"State"))
  return false;

 if(!validRequired(theForm.ZIPCODE,"Zip/Postal"))
  return false;

 if(!validRequired(theForm.COUNTRY,"Country"))
  return false;

 if(!validEmail(theForm.EMAIL,"Email Address",true))
  return false;

 if(!validRequired(theForm.PUBLICCOMMENTS,"Description of your public relations inquiry",true))
  return false;

 if(!validRequired(theForm.FOUND,"How did you hear about us?",true))
  return false;
}

function regular(string) {
 if(!string) return false;
 var Chars = "0123456789-";

 for (var i = 0; i < string.length; i++) {
  if(Chars.indexOf(string.charAt(i)) == -1)
   return false;
  }
  return true;
} 

function regular(string){
 if(string.search(/^[0-9][0-9][0-9]\-[0-9][0-9][0-9]\-[0-9][0-9][0-9][0-9]$/) != -1)
  return true;
 else
  return false;
}

function jm_phonemask(t){
 var patt1 = /(\d{3}).*(\d{3}).*(\d{4})/;
 var patt2 = /^\((\d{3})\).(\d{3})-(\d{4})$/;
 var str = t.value;
 var result;
 if(!str.match(patt2)){
  result = str.match(patt1);
  if(result!= null){
  t.value = t.value.replace(/[^\d]/gi,'');
  str = '(' + result[1] + ') ' + result[2] + '-' + result[3];
  t.value = str;
 }else{
  if(t.value.match(/[^\d]/gi))
   t.value = t.value.replace(/[^\d]/gi,'');
  }
 }
}

function jm_currencymask(t){
 var patt = /(\d*)\.{1}(\d{0,2})/;
 var donepatt = /^(\d*)\.{1}(\d{2})$/;
 var str = t.value;
 var result;
 if(!str.match(donepatt)){
  result = str.match(patt);
  if(result!= null){
   t.value = t.value.replace(/[^\d]/gi,'');
   str = result[1] + '.' + result[2] ;
   t.value = str;
  }else{
   if(t.value.match(/[^\d]/gi))
   t.value = t.value.replace(/[^\d]/gi,'');
  }
 }
}
