function Notify(Field, Message) {
   alert(Message);
   Field.focus();
   return false;
}

function NotBlank(Field, Message) {
   return (Field.value == '') ? Notify(Field, Message) : true;
}

function NumbersOnly() {
   return ((event.keyCode > 47) && (event.keyCode < 58));
}

function Numeric(Field) {
   if (isNaN(Field.value)) {
      Field.select();
      return Notify(Field, 'Please enter a numeric value.');
   }
   else return true;
}

function Escape(TextVal) {
   return TextVal.replace(/\\/g, '\\\\').replace(/\'/g, '\\\'');
}

function Round(Num, Places) {
   if ((Num.toString().length - Num.toString().lastIndexOf('.')) > (Places + 1)) {
      var Rounder = Math.pow(10, Places);
      return Math.round(Num * Rounder) / Rounder;
   }
   else return Num;
}

function ZeroPad(Num) {
   return (parseInt(Num) < 10) ? '0' + Num.toString() : Num.toString();
}

function Trim(TextVal) {
   return TextVal.substring(TextVal.search(/[^ ]/), TextVal.search(/ *$/));
}

function MinLength(Field, MinSize) {
   return (Field.value.length < MinSize) ? Notify(Field, 'This field must contain at least ' + MinSize + ' characters.') : true;
}

function MaxLength(Field, MaxSize) {
   return (Field.value.length > MaxSize) ? Notify(Field, 'Please remove ' + (Field.value.length - MaxSize) + ' characters from your input.\nThe maximum length for this field is ' + MaxSize + '.') : true;
}

function ValidEmail(Field) {
   Field.value = Field.value.replace(/;/g, ',');
   var List = Field.value.split(',');
   var Emails = List.length;
   var QuoteSearch = /"/g;
   var Status = true;
   for (var j=0;j<List.length;j++) {
      QuoteSearch.lastIndex = List[j].search(QuoteSearch) + 1;
      if ((QuoteSearch.lastIndex > 0) && (!QuoteSearch.test(List[j]))) {
         List[j + 1] = List[j] + ', ' + List[j + 1];
         Emails--;
      }
      else if (!/.@.+\.../.test(List[j])) {
         if (Emails > 1) {
            var MessageNumber = Emails - List.length + j + 1;
            var Message = 'Address #' + MessageNumber + ' (' + Trim(List[j]) + ') is not valid.';
         }
         else var Message = 'Please enter a valid email address.';
         Status = Notify(Field, Message);
         break;
      }
   }
   return Status;
}

function OneAddress(Field) {
   if (ValidEmail(Field)) {
      var AtSearch = /@/g;
      AtSearch.lastIndex = Field.value.search(AtSearch) + 1;
      return (AtSearch.test(Field.value)) ? Notify(Field, 'Please enter only one email address.') : true;
   }
   else return false;
}

function SetCookie(Name, CookieValue, Days) {
   document.cookie = Name + '=' + CookieValue.replace(/ /g, '%20') + ';';
   if (typeof Days != 'undefined') {
      var Now = new Date();
      Now.setTime(Now.getTime() + (86400000 * Days));
      document.cookie += 'expires=' + Now.toUTCString() + ';';
   }
}