if(typeof window.logger=="undefined"){logger={LevelEnum:{ALL:0,DEBUG:1,TRACE:2,INFO:3,WARN:4,ASSERT:5,ERROR:6,NONE:7},logLevel:3,reportErrs:false,DEFAULT_LINE_LENGTH:120,splitLines:function(f,b,e){var c="";if(typeof b!="number"){b=this.DEFAULT_LINE_LENGTH}if(typeof e!="string"){e="\n"}crlfLen=e.length;var d=0;var a=b;while(a<f.length){lineChunk=f.substring(d,a);lineLen=lineChunk.indexOf(e);if(lineLen>=0){c+=lineChunk.substr(0,lineLen);d+=lineLen+crlfLen}else{c+=lineChunk;d=a}var a=d+b;c+=e}c+=f.substring(d);return c},assert:function(b,c,a){if((typeof window.console!="undefined")&&(this.logLevel<=this.LevelEnum.ASSERT)){if(typeof c=="undefined"){console.assert(b)}else{if(typeof a=="undefined"){console.assert(b,c)}else{console.assert(b,c,a)}}}},count:function(a){if((typeof window.console!="undefined")&&(this.logLevel<=this.LevelEnum.INFO)){if(typeof a=="undefined"){console.count()}else{console.count(this.splitLines(a))}}},debug:function(b,a){if((typeof window.console!="undefined")&&(this.logLevel<=this.LevelEnum.DEBUG)){if(typeof a=="undefined"){console.debug(this.splitLines(new Date().toLocaleString()+" "+b))}else{console.debug(this.splitLines(new Date().toLocaleString()+" "+b,a))}}},dir:function(a,b){if((typeof window.console!="undefined")&&(this.logLevel<=this.LevelEnum.INFO)){if(typeof b=="string"){console.info(b)}console.dir(a)}},dirxml:function(a){if((typeof window.console!="undefined")&&(this.logLevel<=this.LevelEnum.DEBUG)){console.dirxml(a)}},err:function(d,c,b){var a=this.splitLines(" An unexpected error occurred"+(typeof c!="undefined"?" in "+c:"")+": "+((typeof d.name!="undefined")?"\n    Error name: "+d.name:"")+((typeof d.description!="undefined")?"\n    Error description: "+d.description:"")+((typeof d.number!="undefined")?"\n    Error number: "+d.number:"")+((typeof d.message!="undefined")?"\n    Error message: "+d.message:"")+((typeof d.lineNumber!="undefined")?"\n    Error line number: "+d.lineNumber:""));if((typeof window.console!="undefined")&&(this.logLevel<=this.LevelEnum.ERROR)){console.error(this.splitLines(new Date().toLocaleString()+a))}if(((typeof b=="undefined")&&(this.reportErrs==true))||(b==true)){alert(this.splitLines(a))}},error:function(c,b,a){if((typeof window.console!="undefined")&&(this.logLevel<=this.LevelEnum.ERROR)){if(typeof b=="undefined"){console.error(this.splitLines(new Date().toLocaleString()+" "+c))}else{console.error(this.splitLines(new Date().toLocaleString()+" "+c,b))}}if(((typeof a=="undefined")&&(this.reportErrs==true))||(a==true)){alert(this.splitLines(c))}},group:function(b,a){if((typeof window.console!="undefined")&&(this.logLevel<this.LevelEnum.NONE)){if(typeof a=="undefined"){console.group(b)}else{console.group(b,a)}}},groupEnd:function(b,a){if((typeof window.console!="undefined")&&(this.logLevel<this.LevelEnum.NONE)){if(typeof a=="undefined"){console.groupEnd(b)}else{console.groupEnd(b,a)}}},info:function(b,a){if((typeof window.console!="undefined")&&(this.logLevel<=this.LevelEnum.INFO)){if(typeof a=="undefined"){console.info(this.splitLines(new Date().toLocaleString()+" "+b))}else{console.info(this.splitLines(new Date().toLocaleString()+" "+b,a))}}},profile:function(a){if((typeof window.console!="undefined")&&(this.logLevel<this.LevelEnum.NONE)){if(typeof a=="undefined"){console.profile()}else{console.profile(this.splitLines(a))}}},profileEnd:function(){if((typeof window.console!="undefined")&&(this.logLevel<this.LevelEnum.NONE)){console.profileEnd()}},time:function(a){if((typeof window.console!="undefined")&&(this.logLevel<=this.LevelEnum.DEBUG)){console.time(a)}},timeEnd:function(a){if((typeof window.console!="undefined")&&(this.logLevel<=this.LevelEnum.DEBUG)){console.timeEnd(a)}},trace:function(){if((typeof window.console!="undefined")&&(this.logLevel<=this.LevelEnum.TRACE)){console.trace()}},warn:function(b,a){if((typeof window.console!="undefined")&&(this.logLevel<=this.LevelEnum.WARN)){if(typeof a=="undefined"){console.warn(this.splitLines(new Date().toLocaleString()+" "+b))}else{console.warn(this.splitLines(new Date().toLocaleString()+" "+b,a))}}}}};
