var js = {
  notice: function(msg) {
  	alert(msg);
  },
  
  id: function(id) {
  	var obj = document.getElementById(id);
  	if(typeof obj == "undefined") notice('js.id: object id='+id+' undefined');
  	return obj;
  },
  
  randomString: function(length,prefix,charset) {
    if(length == null) length = 6;
    if(prefix == null) prefix = "x";
    if(charset == null) charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
  	var result = "";
  	for(i=0; i<length; i++) {
  		var rnum = Math.floor(Math.random() * charset.length);
  		result+= charset.substring(rnum,rnum+1);
  	}
  	return prefix+result;
  }

}


String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g, '');
}

String.prototype.sprintf = function() {
  if(!(arguments && arguments.length)) return null;
  var p,r;
  var result = this.valueOf();
  for(i=0; i<arguments.length; i++) {
    r = arguments[i];
    p = result.match(/%[sdf]/);
    if(p=="%s") { result = result.replace("%s",r); continue; }
    if((p=="%d" || p=="%f") && isNaN(r)) r = 0;
    if(p=="%d") result = result.replace("%d",parseInt(r));
    else if(p=="%f") result = result.replace("%f",parseFloat(r));
  }
  return(result);
}

