function URLEncode (clearString)
{
  var output = '';
  var x = 0;
  clearString = clearString.toString();
  var regex = /(^[a-zA-Z0-9_.]*)/;
  while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '')
    {
      output += match[1];
      x += match[1].length;
    }
    else
    {
      if (clearString[x] == ' ')
        output += '+';
      else
      {
        var charCode = clearString.charCodeAt(x);
        var hexVal = charCode.toString(16);
        output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
      }
      x++;
    }
  }
  return output;
}


function countChecks(f, maxc)
{
  var fm = f.form; var chk = 0;
  for (i=0; i<fm.length;i++) if(fm[i].name == f.name) if(fm[i].checked) chk++;
  if (chk>maxc) f.checked = false;
}


function validEmail(email)
{
  if (!email.match("[^@]{1,64}@[^@]{1,255}"))
    return false;
  else
  {
    var email_array = email.split("@");
    var local_array = email_array[0].split(".");
    for (var i = 0;i < local_array.length;i++)
      if (!local_array[i].match("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$"))
        return false;
    if (!email_array[1].match("^\[?[0-9\.]+\]?$"))
    {
      domain_array = email_array[1].split(".");
      if (domain_array.length < 2)
        return false;
    }
    for (var i = 0;i < domain_array.length;i++)
      if (!domain_array[i].match("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$"))
        return false;
    return true;
  }
}

function validPassword(password)
{
  if (password.length < 6) return false;
  return true;
}

function isNumberKey(evt)
{
  if (evt==null) return(false);
  var charCode = (evt.which) ? evt.which : evt.keyCode;
  if (charCode < 32) return true ;
  if (charCode >= 48 && charCode <= 57) return true ;
  return false;
}

function isNumberKeyOrSpace(evt)
{
  if (evt==null) return(false);
  var charCode = (evt.which) ? evt.which : evt.keyCode;
  if (charCode == 32) return true;
  else if (charCode == 43) return true;
  else if (charCode > 31 && (charCode < 48 || charCode > 57)) return false;
  return true;
}

function noEnter(evt)
{
  var k=evt.keyCode||evt.which;
  return k!=13;
}

function limitTextLength(f, maxc)
{
  if (f.value.length > maxc) f.value = f.value.substring(0, maxc);
}


function formatAsMoney(mnt){
  mnt -= 0;
  mnt = (Math.round(mnt*100))/100;
  return (mnt == Math.floor(mnt)) ? mnt + '.00' : ( (mnt*10 == Math.floor(mnt*10)) ?  mnt + '0' : mnt);
}


function isSet( variable )
{
  return( typeof( variable ) != 'undefined' );
}

