// Generic Form Validation
// Jacob Hage (jacob@hage.dk)
var checkObjects = new Array();
var errors = "";
var returnVal = false;
var language = new Array();
language["header"] = "The following error(s) occured:"
language["start"] = "->";
language["field"] = " Field ";
language["require"] = " is required";
language["min"] = " and must consist of at least ";
language["max"] = " and must not contain more than ";
language["minValue"] = " and must be bigger than ";
language["maxValue"] = " and must be smaller than ";
language["minmax"] = " and no more than ";
language["chars"] = " characters";
language["num"] = " and must contain a number";
language["email"] = " must contain a valid e-mail address";
language["emaildomain"] = " -- domain is not accepted";
language["combo"] = " must select an option";
// -----------------------------------------------------------------------------
// define - Call this function in the beginning of the page. I.e. onLoad.
// n = name of the input field (Required)
// type= string, num, email (Required)
// min = the value must have at least [min] characters (Optional)
// max = the value must have maximum [max] characters (Optional)
// d = (Optional)
// -----------------------------------------------------------------------------
function define(n, type, HTMLname, min, max, minValue, maxValue, d) {
  var p;
  var i;
  var x;
  if (!d)
    d = document;
  if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
    d = parent.frames[n.substring(p + 1)].document;
    n = n.substring(0, p);
  }
  if (!(x = d[n]) && d.all) x = d.all[n];
  for (i = 0; !x && i < d.forms.length; i++) {
    x = d.forms[i][n];
  }
  for (i = 0; !x && d.layers && i < d.layers.length; i++) {
    x = define(n, type, HTMLname, min, max, d.layers[i].document);
    return x;
  }
  eval("V_" + n + " = new formResult(x, type, HTMLname, min, max, minValue, maxValue);");

  if (eval("V_" + n + ".form")) {
    checkObjects[eval(checkObjects.length)] = eval("V_" + n);
  }
  else {
  }
}

function undefine(n) {
  var i;
  for (i = 0; i < checkObjects.length; i++) {
    if (checkObjects[i]["form"]["name"] == n || checkObjects[i]["form"]["id"] == n) {
      for (j = i; j < checkObjects.length - 1; j++)
        checkObjects[j] = checkObjects[j + 1];
      checkObjects[j] = null;
      checkObjects.length--;
      return;
    }
  }
}

function formResult(form, type, HTMLname, min, max, minValue, maxValue) {
  this.form = form;
  this.type = type;
  this.HTMLname = HTMLname;
  this.min = min;
  this.max = max;
  this.minValue = minValue;
  this.maxValue = maxValue;
}

function validate() {
  if (checkObjects.length > 0) {
    errorObject = "";

    for (i = 0; i < checkObjects.length; i++) {
      validateObject = new Object();
      validateObject.form = checkObjects[i].form;
      validateObject.HTMLname = checkObjects[i].HTMLname;
      validateObject.val = trim(checkObjects[i].form.value);
      validateObject.len = trim(checkObjects[i].form.value).length;
      validateObject.min = checkObjects[i].min;
      validateObject.max = checkObjects[i].max;
      validateObject.minValue = checkObjects[i].minValue;
      validateObject.maxValue = checkObjects[i].maxValue;
      validateObject.type = checkObjects[i].type;

      UnHighlightFields(document.getElementById(checkObjects[i].form.id));

      if (validateObject.type == "num" || validateObject.type == "string") {
        if ((validateObject.type == "num" && validateObject.len <= 0) || (validateObject.type == "num" && isNaN(validateObject.val))) {
          HighlightField(document.getElementById(checkObjects[i].form.id));
          errors += language['start'] + language['field'] + validateObject.HTMLname + language['require'] + language['num'] + "\n";
        } 
        else if (validateObject.min && validateObject.max && (validateObject.len < validateObject.min || validateObject.len > validateObject.max)) {
          HighlightField(document.getElementById(checkObjects[i].form.id));
          errors += language['start'] + language['field'] + validateObject.HTMLname + language['require'] + language['min'] + validateObject.min + language['minmax'] + validateObject.max + language['chars'] + "\n";
        } else if (validateObject.min && !validateObject.max && (validateObject.len < validateObject.min)) {
          HighlightField(document.getElementById(checkObjects[i].form.id));
          errors += language['start'] + language['field'] + validateObject.HTMLname + language['require'] + language['min'] + validateObject.min + language['chars'] + "\n";
        } else if (validateObject.max && !validateObject.min && (validateObject.len > validateObject.max)) {
          HighlightField(document.getElementById(checkObjects[i].form.id));
          errors += language['start'] + language['field'] + validateObject.HTMLname + language['require'] + language['max'] + validateObject.max + language['chars'] + "\n";
        } else if (!validateObject.min && !validateObject.max && validateObject.len <= 0) {
          HighlightField(document.getElementById(checkObjects[i].form.id));
          errors += language['start'] + language['field'] + validateObject.HTMLname + language['require'] + "\n";
        }

        if (validateObject.type == "num") { // validate value range
          if (validateObject.minValue && validateObject.maxValue && (validateObject.val < validateObject.minValue || validateObject.val > validateObject.maxValue)) {
            HighlightField(document.getElementById(checkObjects[i].form.id));
            errors += language['start'] + language['field'] + validateObject.HTMLname + language['require'] + language['minValue'] + validateObject.minValue + language['maxValue'] + validateObject.maxValue + "\n";
          } else if (validateObject.minValue && !validateObject.maxValue && (validateObject.val < validateObject.minValue)) {
            HighlightField(document.getElementById(checkObjects[i].form.id));
            errors += language['start'] + language['field'] + validateObject.HTMLname + language['require'] + language['minValue'] + validateObject.minValue + "\n";
          } else if (validateObject.maxValue && !validateObject.minValue && (validateObject.val > validateObject.maxValue)) {
            HighlightField(document.getElementById(checkObjects[i].form.id));
            errors += language['start'] + language['field'] + validateObject.HTMLname + language['require'] + language['maxValue'] + validateObject.maxValue + "\n";
          }
        }
      } 
      else if (validateObject.type == "email") {
        // Checking existense of "@" and ".". 
        // Length of must >= 5 and the "." must 
        // not directly precede or follow the "@"
        if ((validateObject.val.indexOf("@") == -1) ||
		      (validateObject.val.charAt(0) == ".") ||
		      (validateObject.val.charAt(0) == "@") ||
		      (validateObject.len < 6) ||
		      (validateObject.val.indexOf(".") == -1) ||
		      (validateObject.val.charAt(validateObject.val.indexOf("@") + 1) == ".") ||
		      (validateObject.val.charAt(validateObject.val.indexOf("@") - 1) == ".")) 
        {
          HighlightField(document.getElementById(checkObjects[i].form.id));
          errors += language['start'] + language['field'] + validateObject.HTMLname + language['email'] + "\n";
        }
        else { ////////////////////////////////////////////!!!  scrub domains de email
          var emailDomain = validateObject.val.substring(validateObject.val.indexOf("@") + 1);
          if (!CheckEmailDomain(emailDomain)) {
            HighlightField(document.getElementById(checkObjects[i].form.id));
            errors += language['start'] + language['field'] + validateObject.HTMLname + language['emaildomain'] + "\n";
          }
        }
      }
      else if (validateObject.type == "combo") { 
        if ((validateObject.val == "DefaultValue") || (validateObject.len < 1)) {
          HighlightField(document.getElementById(checkObjects[i].form.id));
          errors += language['start'] + language['field'] + validateObject.HTMLname + language['combo'] + "\n";
        }
      }
      else if (validateObject.type == "password") {
        if (validateObject.val == null || validateObject.len < 4 || validateObject.len > 10 || checkValidPassword(document.getElementById(checkObjects[i].form.id)) == false) {
          HighlightField(document.getElementById(checkObjects[i].form.id));
          errors += "-> Please enter a valid password!\nIt must be between 4 and 10 characters long and may contain only letters, digits, _ and -.\n";
        }
      }
      else if (validateObject.type == "photo") {
        if (validateObject.val == null || validateObject.len <= 0 || validateObject.val == "") {
          HighlightField(document.getElementById(checkObjects[i].form.id));
          errors += "-> Please select a Photo\n";
        }
      }
    }

    if (errors) {
      alert(language["header"].concat("\n" + errors));
      errors = "";
      returnVal = false;
      return false;
    }
    else {
      returnVal = true;
      return true;
    }
  }
  else return true;
}

// Ionut 2002-12-03
// allow formats nnnn.nn,nnnnn,-nnn, -nn.nn
function isNum(param, allowPoint, allowMinus) {

  var strNum = param;
  if (strNum.length == 0)
    return false;

  if (true == allowPoint) {

    if (strNum.indexOf('.') != strNum.lastIndexOf('.')) {
      return false;
    }
  }
  if ('.' == strNum.charAt(0)) {
    return false;
  }
  if ('.' == strNum.charAt(strNum.length - 1)) {
    return false;
  }

  if (true == allowMinus) {
    if ('-' != strNum.charAt(0))
      if ((strNum.charAt(0) < '0') || (strNum.charAt(0) > '9')) {
        return false;
      }
  }
  else {
    if ((strNum.charAt(0) < '0') || (strNum.charAt(0) > '9')) {
      return false;
    }
  }

  for (j = 1; j < strNum.length; j++) {
    if (true == allowPoint) {

      if (strNum.charAt(j) != '.') {
        if ((strNum.charAt(j) < '0') || (strNum.charAt(j) > '9')) {
          return false;
        }
      }
    }
    else {
      if ((strNum.charAt(j) < '0') || (strNum.charAt(j) > '9')) {
        return false;
      }
    }
  }
  return true;
}


//Ionut 2002-12-04
//used to brands and events forms
function checkData(strFieldStringName, strFieldNumberName, strFieldStringHTMLName, strFieldNumberHTMLName) {
  if (trim(strFieldStringName).length == 0) {
    alert(strFieldStringHTMLName + ' is required!');
    return false;
  }

  if (!isNum(strFieldNumberName, false, false)) {
    alert(strFieldNumberHTMLName + ' is required and must be a number!');
    return false;
  }

  return true;
}

function trim(strText) {
  // this will get rid of leading spaces 
  while (strText.substring(0, 1) == ' ')
    strText = strText.substring(1, strText.length);

  // this will get rid of trailing spaces 
  while (strText.substring(strText.length - 1, strText.length) == ' ')
    strText = strText.substring(0, strText.length - 1);

  return strText;
}
// This function replaces all instances of findStr in oldStr with repStr.

function replaceAll(oldStr, findStr, repStr) {
  var srchNdx = 0;  // srchNdx will keep track of where in the whole line
  // of oldStr are we searching.
  var newStr = "";  // newStr will hold the altered version of oldStr.
  while (oldStr.indexOf(findStr, srchNdx) != -1)
  // As long as there are strings to replace, this loop
  // will run. 
  {
    newStr += oldStr.substring(srchNdx, oldStr.indexOf(findStr, srchNdx));
    // Put it all the unaltered text from one findStr to
    // the next findStr into newStr.
    newStr += repStr;
    // Instead of putting the old string, put in the
    // new string instead. 
    srchNdx = (oldStr.indexOf(findStr, srchNdx) + findStr.length);
    // Now jump to the next chunk of text till the next findStr.           
  }
  newStr += oldStr.substring(srchNdx, oldStr.length);
  // Put whatever's left into newStr.             
  return newStr;
}
function toHTML(strVal) {
  var strRet = strVal;
  if (strVal != null) {
    strRet = replaceAll(strRet, '&', '&amp;');
    strRet = replaceAll(strRet, '<', '&lt;');
    strRet = replaceAll(strRet, '>', '&gt;');
    strRet = replaceAll(strRet, '"', '&quot;');
    strRet = replaceAll(strRet, '\r\n', '<br>');
    strRet = replaceAll(strRet, '\n\r', '<br>');
    strRet = replaceAll(strRet, '\r', '<br>');
    strRet = replaceAll(strRet, '\n', '<br>');
    strRet = replaceAll(strRet, '<br>', '<br>\n');
  }
  return strRet;
}
function fromHTML(strVal) {
  var strRet = strVal;
  if (strVal != null) {
    strRet = replaceAll(strRet, '&amp;', '&');
    strRet = replaceAll(strRet, '&lt;', '<');
    strRet = replaceAll(strRet, '&gt;', '>');
    strRet = replaceAll(strRet, '&quot;', '"');
    strRet = replaceAll(strRet, '<br>', '\r\n');
    strRet = replaceAll(strRet, '<br>', '\n\r');
    strRet = replaceAll(strRet, '<br>', '\r');
    strRet = replaceAll(strRet, '<br>', '\n');
    strRet = replaceAll(strRet, '<br>\n', '<br>');
  }
  return strRet;
}

/*
BogdanB
*/

function checkIfContainsNumbers(strNum) {
  for (j = 1; j < strNum.length; j++) {
    if ((strNum.charAt(j) > '0') && (strNum.charAt(j) < '9')) {
      return true;
    }
  }
}

function checkABA(strNumber) {
  n = 0;
  for (i = 0; i < strNumber.length; i += 3) {
    n += parseInt(strNumber.charAt(i), 10) * 3
      + parseInt(strNumber.charAt(i + 1), 10) * 7
      + parseInt(strNumber.charAt(i + 2), 10);
  }

  // If the resulting sum is an even multiple of ten (but not zero),
  // the aba routing number is good.

  if (n != 0 && n % 10 == 0)
    return true;
  else
    return false;
}

function validDate(dateStr) {
  var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

  // To require a 4 digit year entry, use this line instead:
  // var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

  var matchArray = dateStr.match(datePat); // is the format ok?
  if (matchArray == null) {
    alert("Date is not in a valid format.")
    return false;
  }
  month = matchArray[1]; // parse date into variables
  day = matchArray[3];
  year = matchArray[4];
  if (month < 1 || month > 12) { // check month range
    alert("Month must be between 1 and 12.");
    return false;
  }
  if (day < 1 || day > 31) {
    alert("Day must be between 1 and 31.");
    return false;
  }
  if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) {
    alert("Day must be smaller than 31 for " + month + ".")
    return false
  }
  if (month == 2) { // check for february 29th
    var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
    if (day > 29 || (day == 29 && !isleap)) {
      alert("The Day for February " + year + " must be less than  " + day + ".");
      return false;
    }
  }

  return true;  // date is valid
}


function takeYear(theDate) {
  x = theDate.getYear();
  var y = x % 100;
  y += (y < 38) ? 2000 : 1900;
  return y;
}
//<!-- STEP TWO: Include the .js file in the HEAD of your main document  -->

strValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-";

function isValidChar(a) {
  if (strValidChars.indexOf(a) > -1)
    return true;
  return false;
}

function isValidPassword(strPassword) {
  if (strPassword == null) {
    return false;
  }
  if (strPassword.length < 4) {
    return false;
  }
  if (strPassword.length > 10) {
    return false;
  }

  for (i = 0; i < strPassword.length; i++) {
    if (!isValidChar(strPassword.charAt(i))) {
      return false;
    }
  }

  return true;
}

function ResetValidation() {
  checkObjects.length = new Array();
}


//Task 2893 - Scrub mobile domains 
var RejectedEmailDomains = "08-18-2008^TMAIL.COM,08-18-2008^rcsepager.com,08-18-2008^sprintpcs.com,08-18-2008^verizon.com,08-18-2008^verizonwireless.com,08-18-2008^wmg.tmomail.net,10-01-2007^comspeco.net,10-01-2007^ims.cingularme.com,10-01-2007^mms.att.net,10-01-2007^mms.myblueworks.com,10-01-2007^mobile.mycingular.com,10-01-2007^mobile.mycingular.net,10-01-2007^pics.cingularme.com,10-01-2007^sd.cingularme.com,10-01-2007^sd.mycingular.net,10-01-2007^sms.bluecell.com,10-01-2007^text.att.net,10-01-2007^txt.att.net,10-01-2007^wcmx.mycingular.net,06-18-2007^2pageme.net,06-18-2007^pageme.net,06-15-2007^1x.srtwireless.com,06-15-2007^2pagemci.com,06-15-2007^allbeep.com,06-15-2007^ccc3g.biz,06-15-2007^ccc3g.info,06-15-2007^ccc3g.net,06-15-2007^ccc3g.us,06-15-2007^cccomm.biz,06-15-2007^cellcom.quiktxt.com,06-15-2007^cellcom.us.blackberry.com,06-15-2007^evdo.srtwireless.com,06-15-2007^helio.com,06-15-2007^mms.att.com,06-15-2007^mms.srtwireless.com,06-15-2007^mobilcom.com,06-15-2007^mobile.kajeet.net,06-15-2007^mobilemessage.com,06-15-2007^myairmail.com,06-15-2007^myhelio.com,06-15-2007^mytelepage.com,06-15-2007^page.contactwireless.com,06-15-2007^page.mobilcom.com,06-15-2007^page.mobilcom.net,06-15-2007^page.selectpath.com,06-15-2007^pagemci.com,06-15-2007^pageme.teletouchpaging.com,06-15-2007^pageoneinc.com,06-15-2007^pager.ucom.com,06-15-2007^paging.nextel.com,06-15-2007^pm.sprint.com,06-15-2007^sk-earthlink.com,06-15-2007^skearthlink.com,06-15-2007^skymail.com,06-15-2007^skytel.com,06-15-2007^sms.myboostmobile.com,06-15-2007^txtpage.com,06-15-2007^union-tel.com,06-15-2007^vzwpix.com,08-08-2005^tuyomail.com,04-28-2005^message.alltel.com,04-19-2005^ipnpaging.com,04-19-2005^mycricket.com,04-19-2005^page-us.com,04-19-2005^qwtext.com,03-08-2005^awsms.com,03-08-2005^epageme.com,03-08-2005^imcingular.com,03-08-2005^myawi.com,02-18-2005^guamcell.com,02-07-2005^advmms.com,02-07-2005^agw-atl.pdg.bellsouth.net,02-07-2005^airlinkmobile.com,02-07-2005^airmessage.net,02-07-2005^airpage.net,02-07-2005^alaskadigitel.com,02-07-2005^archwireless.net,02-07-2005^atlmmg1.glr.cingular.net,02-07-2005^attmobility.com,02-07-2005^attmobility.net,02-07-2005^bellsouthtms.com,02-07-2005^bellsouthtms.net,02-07-2005^bellsouthwirelessemail.com,02-07-2005^bellsouthwirelessemail.net,02-07-2005^blswe.com,02-07-2005^blswe.net,02-07-2005^breweloquiwireless.net,02-07-2005^c1usa.com,02-07-2005^c1wi.com,02-07-2005^calnorth.net,02-07-2005^cell1net.net,02-07-2005^cell1wv.net,02-07-2005^cellcompage.com,02-07-2005^cellcomsms.com,02-07-2005^cellonemail.com,02-07-2005^cellular.ameritech.com,02-07-2005^cellular1.net,02-07-2005^cellularone.blackberry.net,02-07-2005^centennialcom.com,02-07-2005^centennialwireless.com,02-07-2005^cingularme.com,02-07-2005^cingularme.net,02-07-2005^cingularme.us,02-07-2005^clearlydigital.com,02-07-2005^clearpath.acswireless.com,02-07-2005^cookmail.com,02-07-2005^corrcomm.com,02-07-2005^corrwireless.com,02-07-2005^corrwireless.net,02-07-2005^csouth1.com,02-07-2005^csouth1.net,02-07-2005^cwemail.com,02-07-2005^cwemail.net,02-07-2005^cwmail2.glr.cingular.com,02-07-2005^cwwsms.com,02-07-2005^dcswi.com,02-07-2005^digitaledge.acswireless.com,02-07-2005^edgehiptop.com,02-07-2005^edgehiptopmail.com,02-07-2005^edgemobile.net,02-07-2005^edgesend.com,02-07-2005^edgesend.net,02-07-2005^edgewireless.com,02-07-2005^eloqui.net,02-07-2005^email.swbw.com,02-07-2005^email.uscc.net,02-07-2005^epage.lrps.com,02-07-2005^firstcellular.net,02-07-2005^glr.sbms.sbc.com,02-07-2005^gocbw.com,02-07-2005^gwteletech.com,02-07-2005^hiptop.suncom.net,02-07-2005^info2go.com,02-07-2005^ivcdata.com,02-07-2005^ivcel.net,02-07-2005^ivctext.com,02-07-2005^iwarn.com,02-07-2005^iwspcs.com,02-07-2005^iwspcs.net,02-07-2005^leaco.net,02-07-2005^leaco.org,02-07-2005^mail.data1source.com,02-07-2005^mail.pagespringfield.com,02-07-2005^mail.westlinkcom.com,02-07-2005^messaging.nextel.com,02-07-2005^messaging.sprintpcs.com,02-07-2005^mid-texcellular.com,02-07-2005^midwestwireless.net,02-07-2005^minncommpaging.com,02-07-2005^mmode.com,02-07-2005^mms.dobson.net,02-07-2005^mms.farmerswireless.com,02-07-2005^mms.suncom.net,02-07-2005^mms.uscc.net,02-07-2005^mms.westlinkcom.com,02-07-2005^mmseloquiwireless.net,02-07-2005^mobilcom.net,02-07-2005^mobile.att.net,02-07-2005^mobile.c1-slo.com,02-07-2005^mobile.celloneusa.com,02-07-2005^mobile.cellularone-slo.com,02-07-2005^mobile.cellularoneslo.com,02-07-2005^mobile.centralcoastdata.com,02-07-2005^mobile.dobson.net,02-07-2005^mobile.dobsoncellular.com,02-07-2005^mobile.fivestarwireless.com,02-07-2005^mobilecomm.net,02-07-2005^mohavewireless.com,02-07-2005^mpot.com,02-07-2005^my2way.com,02-07-2005^myblue.com,02-07-2005^myboostmobile.com,02-07-2005^myc29.net,02-07-2005^mycellone.net,02-07-2005^mycellonephone.com,02-07-2005^mycingular.com,02-07-2005^mycingular.net,02-07-2005^mydcs1.com,02-07-2005^mylyrix.net,02-07-2005^mymetropcs.com,02-07-2005^mymmode.com,02-07-2005^mymmsmail.com,02-07-2005^omnicom-paging.com,02-07-2005^onelinkpcs.com,02-07-2005^pacbellpcs.net,02-07-2005^page-all.com,02-07-2005^page.mobilfone.com,02-07-2005^page.nextel.com,02-07-2005^pageallcom.com,02-07-2005^pageme.teletouch.com,02-07-2005^pageme.teletouch.net,02-07-2005^pagenet.net,02-07-2005^pagerpeople.com,02-07-2005^paging.acswireless.com,02-07-2005^paging.mobilfone.com,02-07-2005^paging.sbc.com,02-07-2005^paging.telebeep.com,02-07-2005^pics.cellcom.com,02-07-2005^pim.infospace.com,02-07-2005^pioneerenidcellular.com,02-07-2005^pix.cellularsouth.com,02-07-2005^prestopaging.com,02-07-2005^quiktxt.com,02-07-2005^qwestmessagepack.com,02-07-2005^qwestmessagepak.com,02-07-2005^qwestmp.com,02-07-2005^racomm.com,02-07-2005^radiocommpaging.com,02-07-2005^radiocontrolit.com,02-07-2005^radiopaging.com,02-07-2005^rccpaging.com,02-07-2005^redicall.com,02-07-2005^satellink.net,02-07-2005^sbc2way.com,02-07-2005^sbcemail.com,02-07-2005^sbcpaging.com,02-07-2005^sbycomm.com,02-07-2005^sccvmail.com,02-07-2005^simmetrypcs.com,02-07-2005^simmetrypcs.net,02-07-2005^sms-bscc.bellsouth.com,02-07-2005^sms.bellsouth.com,02-07-2005^sms.cleartalk.net,02-07-2005^sms.corrwireless.com,02-07-2005^sms.cvalley.net,02-07-2005^sms.farmerswireless.com,02-07-2005^sms.petrocom.net,02-07-2005^sms.snakeriverpcs.com,02-07-2005^smseloquiwireless.net,02-07-2005^southernlinc.com,02-07-2005^srtwireless.com,02-07-2005^stenocall.com,02-07-2005^suncom.blackberry.net,02-07-2005^text.simplefreedom.net,02-07-2005^tmomail.net,02-07-2005^tms.bellsouth.com,02-07-2005^tms.suncom.com,02-07-2005^ubetwireless.com,02-07-2005^usamobility.net,02-07-2005^uscc.textmsg.com,02-07-2005^utext.com,02-07-2005^viaeromail.com,02-07-2005^viaeromms.com,02-07-2005^viaerosms.com,02-07-2005^vtext.com,02-07-2005^wireless.bellsouth.com,02-07-2005^wwtext.net,02-07-2005^zsend.com";


function CheckEmailDomain(emailDomain) {
  try {
    arrDom = RejectedEmailDomains.split(",");
    var DomainsArray = arrDom.length;
    for (CounterDomainArray = 0; CounterDomainArray < DomainsArray; CounterDomainArray++) {
      arrDom[CounterDomainArray] = arrDom[CounterDomainArray].substring(arrDom[CounterDomainArray].indexOf("^") + 1);
    }

    for (CounterDomainArray1 = 0; CounterDomainArray1 < DomainsArray; CounterDomainArray1++) {
      if (arrDom[CounterDomainArray1].toLowerCase() == emailDomain.toLowerCase()) {
        return false;
      }
    }
    return true;
  }

  catch (err) {
    return false;
  }
}

function UnHighlightFields(_input) {
  _input.style.backgroundColor = '#ffffff';
}


function HighlightField(_input) {
  _input.style.backgroundColor = '#ff9999';
}

function checkValidPassword(_input) {
  for (i = 0; i < _input.value.length; i++) {
    if (!isValidChar(_input.value.charAt(i))) {
      return false;
    }
  }
  return true;
}
