var debugWindow=null;function debug(B,A){if(debugWindow==null){return }time="-";if(A){$("debug").innerHTML=time+" "+B+"<br>"+$("debug").innerHTML;debugWindow.getContent().scrollTop=0}else{$("debug").innerHTML+=time+" "+B+"<br>";debugWindow.getContent().scrollTop=10000}}function hideDebug(){if(debugWindow){debugWindow.destroy();debugWindow=null}}function showDebug(A){if(debugWindow==null){debugWindow=new Window("debug_window",{className:"dialog",width:250,height:100,right:4,bottom:42,zIndex:1000,opacity:1,showEffect:Element.show,resizable:true,title:"Debug"});debugWindow.getContent().innerHTML="<style>#debug_window .dialog_content {background:#000;}</style> <div id='debug'></div>";date=new Date;date.setMonth(date.getMonth()+3)}if(typeof A=="undefined"||A){debugWindow.show()}}function clearDebug(){if(debugWindow==null){return }$("debug").innerHTML=""}function $E(C){var B;if("string"==typeof C){B=document.createTextNode(C)}else{B=document.createElement(C.tag);delete (C.tag);if("undefined"!=typeof C.children){if("string"==typeof C.children||"undefined"==typeof C.children.length){B.appendChild($E(C.children))}else{for(var A=0,D=null;"undefined"!=typeof (D=C.children[A]);A++){B.appendChild($E(D))}}delete (C.children)}for(attr in C){B[attr]=C[attr]}}return B}var Debug={inspectOutput:function(A,B){B=B||debugWindow.getContent();if(debugWindow==null){return }B.appendChild(A)},inspect:function(B){var A=$E({tag:"div",className:"inspector"});Debug.inspectObj(B,A);debugWindow.getContent().appendChild(A)},inspectObj:function(B,A){for(prop in B){Debug.inspectOutput(Debug.inspectable(B,prop),A)}},inspectable:function(A,B){cont=$E({tag:"div",className:"inspectable",children:[B+" value: "+A[B]]});cont.toInspect=A[B];Event.observe(cont,"click",Debug.inspectClicked,false);return cont},inspectClicked:function(A){Debug.inspectContained(Event.element(A));Event.stop(A)},inspectContained:function(A){if(A.opened){A.parentNode.removeChild(A.opened);delete (A.opened)}else{sibling=A.parentNode.insertBefore($E({tag:"div",className:"child"}),A.nextSibling);if(A.toInspect){Debug.inspectObj(A.toInspect,sibling)}A.opened=sibling}}};var inspect=Debug.inspect