/*
 * Free Range Development Ltd
 */


FRD={};
(function(){var _1=[" bytes"," KB"," MB"," GB"," TB"];var _2=(function(){var _3=[];for(var i=0;i<_1.length;i++){_3.push(Math.pow(1024,i));}
return _3;})();FRD.Utils={units:_1,formatSize:function(_5){var _6=0;while(_6+1<_1.length&&_5>_2[_6+1]){_6++;}
return(Math.round((_5/_2[_6])*10)/10)+_1[_6];}};})();
FRD.logging={};(function(){if(!window.console||!console.firebug){window.console={};var _1=["log","debug","info","warn","error","trace"];for(var i=0;i<_1.length;++i){window.console[_1[i]]=function(){};}}})();FRD.logging.Level={DEBUG:1,INFO:2,WARN:3,ERROR:4,MUTE:5};FRD.logging.systemLevel=FRD.logging.Level.DEBUG;(function(){FRD.logging.Log=function(_3){this.name=_3||"Unknown";this.level=FRD.logging.systemLevel;};FRD.logging.Log.prototype={isDebugEnabled:function(){return this.level<=FRD.logging.Level.DEBUG;},isInfoEnabled:function(){return this.level<=FRD.logging.Level.INFO;},isWarnEnabled:function(){return this.level<=FRD.logging.Level.WARN;},log:function(_4,_5){if(_4>=this.level){_5=this.name+": "+_5;if(_4==FRD.logging.Level.ERROR){console.error(_5);}
if(_4==FRD.logging.Level.WARN){console.warn(_5);}
if(_4==FRD.logging.Level.INFO){console.info(_5);}
if(_4==FRD.logging.Level.DEBUG){console.debug(_5);}}},debug:function(_6){this.log(FRD.logging.Level.INFO,_6);},info:function(_7){this.log(FRD.logging.Level.INFO,_7);},warn:function(_8){this.log(FRD.logging.Level.INFO,_8);},error:function(_9){this.log(FRD.logging.Level.ERROR,_9);},objectToString:function(_a){var _b="{";var _c="";for(i in _a){_b+=i+": "+_a[i]+_c;if(_c==""){_c=", ";}}
return _b+"}";}};})();