// ==============================================================================
//
// Javascript utility library
//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//    Validate Email
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//   
    function isEmail(sEmail)
    { var sCheck = String(sEmail).trim;
      var p, q;
      // Check Email
      p = sCheck.indexOf("@");
      q = sCheck.indexOf(".", p);
      // Check that something has been entered
      if (sCheck=="")
        return false;
      // Check that email address has @ and . and in correct order
      if (p<0 || q<p+2 || sCheck.indexOf("@", p+1)>0 || sCheck.lastIndexOf(".")==sCheck.length-1)
        return false;
      return true;
    }
//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// doDateCheck from - to
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//

function doDateCheck(from, to) {
if (Date.parse(from.value) <= Date.parse(to.value)) {
alert("The dates are valid.");
}
else {
alert("To date must occur after the from date.");
   }
}


function doDateCheckORIG(from, to) {
if (Date.parse(from.value) <= Date.parse(to.value)) {
alert("The dates are valid.");
}
else {
if (from.value == "" || to.value == "") 
alert("Both dates must be entered.");
else 
alert("To date must occur after the from date.");
   }
}


//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// LTrim removing leading spaces
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
    function str_ltrim()
    { var i;
      var s=this;
      for (i=0; i<s.length; i++)
      { if (s.substr(i,1) != " ")
          break;
      }
      if (i < s.length)
        s=s.substr(i);
      else
        s="";
      return s;
    }
//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// RTrim removing trailing spaces
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
    function str_rtrim()
    { var i;
      var s=this;
      for (i=s.length-1; i>=0; i--)
      { if (s.substr(i,1) != " ")
          break;
      }
      if (i >=0)
        s=s.substr(0, i+1);
      else
        s="";
      return s;
    }
//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Trim a string, removing leading and trailing spaces
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
    function str_trim()
    { var i;
      var s=this;
      // Ltrim
      for (i=0; i<s.length; i++)
      { if (s.substr(i,1) != " ")
          break;
      }
      if (i < s.length)
        s=s.substr(i);
      else
        s="";
      // RTrim
      for (i=s.length-1; i>=0; i--)
      { if (s.substr(i,1) != " ")
          break;
      }
      if (i >=0)
        s=s.substr(0, i+1);
      else
        s="";
      return s;
    }
//
//  Add new methods to 'String' prototype
//
    String.prototype.ltrim=str_ltrim;
    String.prototype.rtrim=str_rtrim;
    String.prototype.trim=str_trim;
//
//  Non-object versions
//
    function ltrim(s)
    { return String(s).ltrim(); }
//
    function rtrim(s)
    { return String(s).rtrim(); }
//
    function trim(s)
    { return String(s).trim(); }
//
//   
// ==============================================================================

