var bad_domain = new Array(/@yahoo\./, /@hotmail\.com$/ , /@gmail\.com$/ , /@aussiemail.\com$/ , /@outgun\.com/ , /@boardermail\.com/ , /@orcon\.net$/ , /@bluebottle\.com/ , /@operamail\.com/ , /@canoemail\.com/ , /@marchmail\.com/ , /@myway\.com/ , /@canada\.com/ , /@linuxmail\.org/ , /@mailpanda\.com/ , /@138mail\.com/ , /@asiamail\.com/ , /@koreanmail\.com/ , /@mailasia\.com/ , /@icqmail\.com/ , /@dbzmail\.com/ , /@mail2world\.com/ );

var emails;

function bad_domain_match(email) {
  for (i = 0 ; i < bad_domain.length ; i++)
    if ( bad_domain[i].test(email) )
      return true;
  return false;
}

function sameDomain(email, alertText) {
 var domain = email.value.substr(email.value.indexOf("@")+1);
 for (var i=0; i < emails.length ; i++ ) {
  if ( emails[i][1].toLowerCase() == domain.toLowerCase() ) {
    alert (emails[i][0] + "URL must be different from " + alertText + "URL");
    email.focus();
    return true;
  }
 }
 emails.push(new Array(alertText , domain));
 return false;
}

function checkEmail(emailAddr, alertText) {
 if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,9})+$/.test(emailAddr.value)) {
   alert("Please enter a valid email address");
   emailAddr.focus();
   return (false);
 }

 if ( bad_domain_match(emailAddr.value.toLowerCase()) ) {
   alert("Emails that cannot be verified are not acceptable as Credit References");
   emailAddr.focus();
   return (false);
 }

 return !sameDomain(emailAddr, alertText);
}
