
function Log(){this.objLogWindow;this.objLogTextArea;var objLogTextArea;var isEnable=false;var isMeasure=false;var logList=new Array();this.setEnable=function(bool){isEnable=bool;}
this.getEnable=function(){return isEnable;}
this.setStopWatchMode=function(bool){if(!bool&&logList.length>0){this.write("Log#setStopWatchMode()","stop watch end");writeLogListData();}else{this.write("Log#setStopWatchMode()","stop watch start");}
isMeasure=bool;}
this.on=function(){isEnable=true;if(this.objLogWindow==undefined){this.objLogWindow=window.open("about:blank","logWindow","menubar=no,location=no,toolbar=no,resizable=yes,width=500,height=50,top=0,left=0");var html="";html=html+"<html>";html=html+"<head>";html=html+"<title>LogWindow</title>";html=html+"</head>";html=html+"<body>";html=html+"<textarea wrap='off' tabindex='-1' id='logTextArea' style='width:100%;height:100%'></textarea>";html=html+"</body>";html=html+"</html>";this.objLogWindow.document.open();this.objLogWindow.document.write(html);this.objLogWindow.document.close();this.objLogTextArea=this.objLogWindow.document.getElementById("logTextArea");objLogTextArea=this.objLogTextArea;this.write("Log#init()","log start");}else{alert("Log : Already Open Log Window.");}}
this.off=function(bool){isEnable=false;this.closeLogWindow();}
this.write=function(kind,msg){if(isEnable){var objLogData=new Object();var objDate=new Date();objLogData.date=objDate;objLogData.kind=kind;objLogData.msg=msg;if(isMeasure){logList.push(objLogData);}else{writeLogToTextArea(objLogData);}}}
function writeLogToTextArea(objLogData,swLogData){var objDate=objLogData.date;var kind=objLogData.kind;var msg=objLogData.msg;var nowHours=objDate.getHours();var nowMinutes=objDate.getMinutes();var nowSeconds=objDate.getSeconds();var nowMilliseconds=objDate.getMilliseconds();if(swLogData){var lapTime=objDate.getTime()-swLogData.date.getTime();msg="["+nowHours+":"+nowMinutes+":"+nowSeconds+":"+nowMilliseconds+"|lap:"+lapTime+"|"+kind+"]"+msg;}else{msg="["+nowHours+":"+nowMinutes+":"+nowSeconds+":"+nowMilliseconds+"|"+kind+"]"+msg;}
try{objLogTextArea.value=msg+unescape("%0D%0A")+objLogTextArea.value;if(objLogTextArea.value.length>200000){objLogTextArea.value=objLogTextArea.value.substr(0,20000)+"\n\n\n["+nowHours+":"+nowMinutes+":"+nowSeconds+":"+nowMilliseconds+"] log cleanup.. \n\n\n";}}catch(e){isEnable=false;}}
function writeLogListData(){for(var i=0;i<logList.length;i++){writeLogToTextArea(logList[i],logList[0]);}
logList=new Array();}
this.closeLogWindow=function(){if(this.objLogWindow!=undefined){this.objLogWindow.close();}}
this.init=function(){}
this.init();}
