/*
# File: /javascriptlibrary/randomstr.js
# Copyright 2005-2009 by Frank Koenen, Finkle Enterprises, LLC. All Rights Reserved.
#
# Purpose:
#
# History:
# 04-Oct-04 fhk; Init
# 01-Jun-11 fhk; compressed version: function RandomStr(){}RandomStr.prototype.number=true;RandomStr.prototype.lower=true;RandomStr.prototype.upper=true;RandomStr.prototype.other=false;RandomStr.prototype._nums="0123456789";RandomStr.prototype._lows="abcdefghijklmnopqrstuvwxyz";RandomStr.prototype._uppr="ABCDEFGHIJKLMNOPQRSTUVWXYZ";RandomStr.prototype._othr="`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/? ";RandomStr.prototype.randomize=function(length,extra){var charSet='';if(typeof(extra)=='string')charSet=extra;if(typeof(length)!='number')length=8;if(this.number==true)charSet+=this._nums;if(this.lower==true)charSet+=this._lows;if(this.upper==true)charSet+=this._uppr;if(this.other==true)charSet+=this._othr;var rc="";for(var idx=1;idx<=length;++idx){rc=rc+charSet.charAt(this._getrandomnum(0,charSet.length));}return rc;};RandomStr.prototype._getrandomnum=function(lbound,ubound){return(Math.floor(Math.random()*(ubound-lbound))+lbound);};
#--------------------------------------------------

 Usage:
   var r = new RandomStr();
   r.number = false;
   alert(r.randomize(8,'-'));

 Methods:
   randomize([length],[extrachars]);

   length     :== how many characters to return in string. Default is 8.
   extrachars :== any extra characters to include in the randomness.

 Attributes:
   number  :== use numbers in the random string.
   lower   :== use lower case letters in the random string.
   upper   :== use upper case letters in the random string.
   other   :== use non-alphanumeric characters in the random string.

*/

function RandomStr() {
}

RandomStr.prototype.number = true;
RandomStr.prototype.lower = true;
RandomStr.prototype.upper = true;
RandomStr.prototype.other = true;

RandomStr.prototype._nums = "0123456789";
RandomStr.prototype._lows = "abcdefghijklmnopqrstuvwxyz";
RandomStr.prototype._uppr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
RandomStr.prototype._othr = "`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/? ";

RandomStr.prototype.randomize = function(length,extra) {
  var charSet='';

  if ( typeof(extra) == 'string' ) charSet=extra;
  if ( typeof(length) != 'number' ) length=8;

  if (this.number == true)charSet += this._nums;
  if (this.lower  == true)charSet += this._lows;
  if (this.upper  == true)charSet += this._uppr;
  if (this.other  == true)charSet += this._othr;

  var rc="";
  for (var idx = 1; idx <= length; ++idx) {
   rc = rc + charSet.charAt(this._getrandomnum(0, charSet.length));
  }
  return rc;

};

RandomStr.prototype._getrandomnum = function(lbound,ubound) {
  return (Math.floor(Math.random() * (ubound - lbound)) + lbound);
};


