function gbid(element){if(typeof element=="string")
return document.getElementById(element);if(CTECH.isElement(element))
return element;return;}
var CTECH={isElement:function(element){return element&&element.nodeType==1}};CTECH.LIVE={arrDeBug:["debug info<br /><hr />"],eleDeBug:null,blnDisplayDeBugInfo:false,displayDeBugInfo:function(){try{if(!CTECH.LIVE.eleDeBug){var d=document.createElement("div");d.style.cssText=";width:400px;height:100px;overflow:scroll;text-align:left;padding:5px;color:#009900;font-size:10px;background-color:#FFFFCC;border:1px solid #6600FF;";d.style.position="absolute";d.style.display="none";d.style.top="0px";d.style.left="0px";document.body.appendChild(d);CTECH.LIVE.eleDeBug=d;}
if(CTECH.LIVE.blnDisplayDeBugInfo||location.search.indexOf("?debug")>-1){CTECH.LIVE.eleDeBug.style.display="";CTECH.LIVE.blnDisplayDeBugInfo=true;}}catch(e){}},addBugInfo:function(e){try{var str="<font color='red'><b>[ "+e.name+" ]</b></font> : "+e.message;CTECH.LIVE.addDeBugLine(str);}catch(e){}},addDeBugLine:function(str){try{var line=document.createElement("div");line.innerHTML=str;if(CTECH.LIVE.eleDeBug)CTECH.LIVE.eleDeBug.appendChild(line);}catch(e){}}};CTECH.LIVE.ROOM=function(){this.numIntervalID=null;this.numDelay=10;this.numCounter=1;this.strLiveName="";this.strSliceUrl="";this.strLiveletUrl="";this.strDivNamePrefix="live_line_";this.strAdditionFlag="<!--info-->";this.blnFirstLoad=false;this.blnAutoScroll=true;this.blnLocked=false;this.eleDivContainer=null;this.eleCheckBox=null;this.registerFuncList=[];this.objZebraClassName={odd:"",even:""};this.objLittleTools={appendLine:{counter:1,previous:null},start:{counter:1}};};CTECH.LIVE.ROOM.prototype.init=function(options){if(typeof options=="object"){for(var key in options){if(typeof key=="string")
if(key.substring(0,3)=="ele"){this[key]=gbid(options[key]);}else{this[key]=options[key];}}}
this.registerFunc({position:"start",func:CTECH.LIVE.ROOM.checkBoxOnClick,times:1});this.registerFunc({position:"start",func:CTECH.LIVE.ROOM.initInterval,times:1});this.registerFunc({position:"start",func:CTECH.LIVE.displayDeBugInfo,times:1});};CTECH.LIVE.ROOM.prototype.appendLine=function(html){var container=this.eleDivContainer;var numId=this.strDivNamePrefix+this.numCounter;var div=gbid(numId);if(!div){div=document.createElement("div");div.id=numId;div.className=this.objZebraClassName[(this.objLittleTools.appendLine.counter++)%2?"odd":"even"];container.appendChild(div);}
div.innerHTML=html;this.objLittleTools.appendLine.previous=div;return div;};CTECH.LIVE.ROOM.prototype.updateLine=function(html,i){var numId=this.strDivNamePrefix+i;var div=gbid(numId);if(!div)return;if(html==""){div.style.display="none";}else{var tmp_innerHTML=div.innerHTML;var pos=tmp_innerHTML.indexOf(this.strAdditionFlag);if(pos>-1){div.innerHTML=html+tmp_innerHTML.substring(pos);}else{div.innerHTML=html;}
if(div.style.display=="none")div.style.display="";}
return div;};CTECH.LIVE.ROOM.prototype.createIframe=function(container,options,scrolling){container=gbid(container);container.innerHTML="";var iframe=document.createElement("iframe");iframe.style.cssText=";margin:0;padding:0;border:0;";iframe.frameBorder="none";iframe.width=iframe.height=0;iframe.id=container.id+"_IFRAME";iframe.scrolling=scrolling;container.appendChild(iframe);setTimeout(function(){for(var key in options){if(key.toLowerCase()=="scrolling"){}else if(key.toLowerCase()=="frameborder"){}else{iframe[key]=options[key];}}},10);return iframe;};CTECH.LIVE.ROOM.prototype.scrollToBottom=function(){var checkbox=this.eleCheckBox;var div=this.eleDivContainer;var autoScroll=this.blnAutoScroll;if(autoScroll){if(checkbox&&!checkbox.checked)return;div.scrollTop=div.scrollHeight
setTimeout(function(){div.scrollTop=div.scrollHeight},100);setTimeout(function(){div.scrollTop=div.scrollHeight},200);setTimeout(function(){div.scrollTop=div.scrollHeight},300);}};CTECH.LIVE.ROOM.prototype.stop=function(ttl){var thisObj=this;if(this.numDelay!=ttl){if(this.numIntervalID){clearInterval(this.numIntervalID);this.numIntervalID=null;}
if(!ttl)return;this.numIntervalID=setInterval(function(){thisObj.start.apply(thisObj,[]);},ttl*1000);this.numDelay=ttl;}
return;};CTECH.LIVE.ROOM.prototype.start=function(){var thisObj=this;var url="";if(this.objLittleTools.start.counter==1)
url=this.strLiveletUrl;else
url=this.strSliceUrl;$.ajaxSetup({cache:"false",ifModified:"true"});$.getJSON(url,function(data){thisObj.each.apply(thisObj,[data])});this.objLittleTools.start.counter++;this.evalFunc.apply(thisObj,["start",{}]);};CTECH.LIVE.ROOM.prototype.each=function(data){var thisObj=this;if(!this.blnLocked){try{this.blnLocked=true;if(data){if(data.head){if(data.head.name&&!this.strLiveName)this.strLiveName=data.head.name;if(data.head.data)this.evalFunc.apply(thisObj,["head",data.head.data]);}
if(data.body){while(data.body[this.numCounter]){var params=data.body[this.numCounter];this.evalFunc.apply(thisObj,["body",params]);this.numCounter++;}}
if(data.edit){var objEdit=data.edit;for(var eId in objEdit){if(objEdit[eId]){if(objEdit[eId].a){if(objEdit[eId].a.t){this.updateLine.apply(thisObj,[objEdit[eId].a.t,eId]);}else{this.updateLine.apply(thisObj,["",eId]);}}}}}
this.evalFunc.apply(thisObj,["last",{}]);if(data.head&&data.head.ttl){this.stop.apply(thisObj,[data.head.ttl]);}
this.scrollToBottom.apply(thisObj,[]);}}catch(e){CTECH.LIVE.addBugInfo(e);}finally{this.blnLocked=false;}}};CTECH.LIVE.ROOM.prototype.registerFunc=function(obj){if(typeof obj!="object")return;obj.counter=1;this.registerFuncList.push(obj);};CTECH.LIVE.ROOM.prototype.evalFunc=function(position,params){var list=this.registerFuncList;var thisObj=this;for(var key in list){if(typeof list[key]=="object"){var obj=list[key];if(obj.times&&(obj.counter>obj.times))continue;if(obj.position==position){if(obj.returnTo){if(CTECH.isElement(obj.returnTo))
this[obj.returnTo].innerHTML=obj.func.apply(thisObj,[params]);else
this[obj.returnTo]=obj.func.apply(thisObj,[params]);}else{obj.func.apply(thisObj,[params]);}
obj.counter++;}}}};CTECH.LIVE.ROOM.checkBoxOnClick=function(){if(!CTECH.isElement(this.eleCheckBox))return;var thisObj=this;this.eleCheckBox.onclick=function(){thisObj.scrollToBottom.apply(thisObj,[]);}};CTECH.LIVE.ROOM.initInterval=function(){var thisObj=this;if(!this.numIntervalID)
{this.numIntervalID=setInterval(function(){thisObj.start.apply(thisObj,[]);},this.numDelay*1000);}};