/*
author: Jozef Sivek ml.ad.
type: supporting javascript library
statement: noncomercial work

last edit: september 2009
*/
// core
(function(){var K="jo2";var B={add_callback:N,queue_window_load_event:L,queue_dom_load_event:H,queue_load_event:F,export_api:I,dependences:P,Type:A,Signal:Q,Accumulator:J,Level:O,Logger:C};I(K,B);function N(S,U,T){var R=S[U];if(typeof R!="function"){S[U]=T}else{S[U]=function(V){R(V);T(V)}}}function L(R){N(window,"onload",R)}function H(R){document.defaultView.addEventListener("DOMContentLoaded",R,false)}function F(R){if(document.defaultView&&document.defaultView.addEventListener){H(R)}else{L(R)}}function I(S,R){D(window,S,R)}function D(W,V,U){if(V.indexOf(".")!=-1){var T=V.indexOf("."),S=V.substring(0,T),R=V.substring(T+1,V.length);if(S.length==0){return}if(!W[S]){W[S]={}}D(W[S],R,U)}else{W[V]=U}}function P(S,T){var V=[];for(var W=0;W<S.length;W++){var U=S[W].split("."),X=true,Y=window;for(var Z=0;Z<U.length;Z++){X=X&&(Y[U[Z]]!=undefined);if(!X){var a=U[0];for(var R=1;R<=Z;R++){a+="."+U[R]}V.push(a);continue}else{Y=Y[U[Z]]}}}if(V.length!=0){throw (T?(T+" requires:\n"):("you are using "+K+" package which requires:\n"))+V.join("\n")}}function A(R){this._constructor_functon=R||function(){}}A.prototype.extend=function(R){var S=this._constructor_functon;for(var T in R.prototype){if(typeof S.prototype[T]=="undefined"){S.prototype[T]=R.prototype[T]}}return S};function Q(R){this._slots=[];this._slot_id=0;this._accumulator=R?R:new J()}var M=Q.prototype;M.connect=function(S,T){var R=this._slot_id++;if(T&&S){this._slots.push([R,S,T]);return R}else{if(!T&&S){this._slots.push([R,undefined,S]);return R}else{return null}}};M.disconnect=function(T){for(var U=0;U<this._slots.length;U++){if(this._slots[U][0]==T){var R=[];for(var S=0;S<this._slots.length;S++){if(S!=U){R.push(this._slots[S])}}this._slots=R;return}}};M.emit=function(){for(var S=0;S<this._slots.length;S++){var T=this._slots[S][2].apply(this._slots[S][1],arguments);var R=this._accumulator.accumulate(T);if(R===false){break}}return this._accumulator.value()};function J(){this._val=[]}var G=J.prototype;G.value=function(){var R=this._val;this._val=[];return R};G.accumulate=function(R){this._val.push(R);return true};function O(){}O.ALL=-1;O.MESSAGE=1;O.WARNING=2;O.ERROR=3;O.FATAL=4;O.NONE=5;function C(){this.signal_log=new Q();this._level=O.MESSAGE;this.signal_log_level_change=new Q()}var E=C.prototype;E[K]=function(){this.signal_log.emit(O.NONE,"\t . . . . . . . . p R E S T . . . . . . . .\n\tcreated by:\n\t\tJozef Sivek\n\t\tPeter Rybár\n\n\tCentaur a.s.\n")};E.message=function(R){if(this._level<=O.MESSAGE){this.signal_log.emit(O.MESSAGE,R)}};E.warning=function(R){if(this._level<=O.WARNING){this.signal_log.emit(O.WARNING,R)}};E.error=function(R){if(this._level<=O.ERROR){this.signal_log.emit(O.ERROR,R)}};E.fatal=function(R){if(this._level<=O.FATAL){this.signal_log.emit(O.FATAL,R)}};E.set_log_level=function(R){this._level=R;this.signal_log_level_change.emit(R)};E.get_log_level=function(){return this._level}})();(function(){var B="jo2",E=window[B];var A={GeneralWidget:D};E.export_api(B+".widgets",A);function D(F){if(this.get_element==undefined){E.log.fatal("You call widget construction function without new operator")}this._id=F}var C="element with id: %id can not be found, probably you forget add element into document.";D.prototype.get_element=D.prototype._ge=function(){var F=document.getElementById(this._id);if(F){return F}else{var G=C.replace("%id",""+this._id);E.log.fatal(G);throw G}}})();(function(){var T="jo2",H=window[T];var Q={clear:N,refill:B,escape_HTML_entities:K,has_class:C,remove_class:A,get_child:W,get_childs:S,get_descendant:R,get_descendants:I,_get:Z,_EL:V,_TXT:O,add_event_listener:E,remove_event_listener:M,dispatch_event:J};H.export_api(T+".dom",Q);function Z(b){if(!b){return null}else{if(b.appendChild){return b}else{try{var a=document.getElementById(b);return a}catch(c){return null}}}}var U="class",D="value",F="type",Y="for",G="style";function V(d,g){var j=document.createElement(d),c;if(g){for(var e in g){var f=g[e];if(e==U){j.className=f}else{if(e==D||e==F){j[e]=f}else{if(e==Y){j.htmlFor=f}else{if(e==G){var b=j.style;for(var a in f){b[a]=f[a]}}else{j.setAttribute(e,f)}}}}}}for(var h=2;h<arguments.length;h++){if(c=arguments[h]){if(c.appendChild){j.appendChild(c)}else{j.appendChild(document.createTextNode(c))}}}return j}function O(a){return document.createTextNode(a)}function W(a,c,b){return P(a,c,b,true)}function S(a,c,b){return P(a,c,b,false)}function P(k,b,f,h){var m=[];if(k){if(k.children){var c=k.children;if(b){for(var g=0,d=c.length;g<d;g++){if(c[g].nodeName.toLowerCase()==b){m.push(c[g])}}}else{for(var g=0,d=c.length;g<d;g++){m.push(c[g])}}}else{var j=k.childNodes,e=k.ELEMENT_NODE||1;if(b){var a;for(var g=0,d=j.length;g<d;g++){a=j[g];if(a.nodeType==e&&a.nodeName.toLowerCase()==b){m.push(a)}}}else{for(var g=0,d=j.length;g<d;g++){if(j[g].nodeType==e){m.push(j[g])}}}}if(f){j=m;m=[];for(var g=0,d=j.length;g<d;g++){if(C(j[g],f)){if(h){return j[g]}else{m.push(j[g])}}}}}if(h){return m[0]||null}else{return m}}function R(a,c,b){return L(a,c,b,true)}function I(a,c,b){return L(a,c,b,false)}function L(n,a,f,h){if(!n){if(h){return null}else{return[]}}else{if(a){var b=n.getElementsByTagName(a),p=[];if(f){for(var g=0,c=b.length;g<c;g++){if(C(b[g],f)){if(h){return b[g]}else{p.push(b[g])}}}}else{for(var g=0,c=b.length;g<c;g++){p.push(b[g])}}if(h){return p[0]||null}else{return p}}else{var m=P(n,null,null,false),p=[];for(var g=0;g<m.length;g++){if(f){if(C(m[g],f)){if(h){return m[g]}else{p.push(m[g])}}}else{if(h){return m[g]}else{p.push(m[g])}}if(h){var o=L(m[g],a,f,true);if(o){return o}}else{var b=L(m[g],a,f,false);for(var e=0,d=b.length;e<d;e++){p.push(b[e])}}}if(h){return p[0]||null}else{return p}}}}function C(b,c){var d=b.className.split(" ");for(var a=0;a<d.length;a++){if(c===d[a]){return true}}return false}function A(d,e){var f=d.className.split(" "),g=[],a;for(var b=0;b<f.length;b++){a=f[b];if(e!==a&&a){g.push(a)}}d.className=g.join(" ")}function N(a){var b=a;a=Z(a);if(a==null){var c="can not clear element "+b;H.log.error(c);throw c}else{while(a.firstChild){a.removeChild(a.firstChild)}}return a}function B(b){b=N(b);for(var a=1;a<arguments.length;a++){if(child=arguments[a]){if(child.appendChild){b.appendChild(child)}else{b.appendChild(document.createTextNode(child))}}}return b}function K(d){var b=new RegExp("<","g"),c=new RegExp(">","g"),a=new RegExp("&","g");return d.replace(a,"&amp;").replace(b,"&lt;").replace(c,"&gt;")}var X=[];function E(b,c,d,a){if(b.addEventListener){b.addEventListener(c,d,a)}else{if(b.attachEvent){var e=function(f){f=f||event;d.call(b,f)};if(b.attachEvent((/^DOM.*$/.test(c)?"":"on")+c,e)){X.push([d,e])}}else{throw"there is no way to add event listener"}}}function M(d,e,f,a){if(d.removeEventListener){d.removeEventListener(e,f,a)}else{if(d.detachEvent){var g;for(var c=0,b=X.length;c<b;c++){if(X[c][0]==f){g=X[c][1]}}if(g){d.detachEvent((/^DOM.*$/.test(e)?"":"on")+e,g)}}else{throw"there is no way to remove event listener"}}}function J(b,a){if(b.dispatchEvent){return b.dispatchEvent(a)}else{if(b.fireEvent){return b.fireEvent((/^DOM.*$/.test(a.type)?"":"on")+a.type,a)}else{throw"there is noway to dispatch event"}}}})();(function(){var B="jo2",G=window[B];var D={stop:C,stop_propagation:E,prevent_default:A,key_codes:F};G.export_api(B+".dom.event",D);function C(H){if(H.preventDefault){H.preventDefault();H.stopPropagation()}else{H.returnValue=false;H.cancelBubble=true}}function E(H){if(H.stopPropagation){H.stopPropagation()}else{H.cancelBubble=true}}function A(H){if(H.preventDefault){H.preventDefault()}else{H.returnValue=false}}function F(){var H={down:40,up:38,left:37,right:39,page_up:33,page_down:34,home:36,end:35,tab:9,esc:27,backspace:8,del:46,enter:13};return H}})();(function(){var D="jo2",E=window[D];var B={is_css_color:J,color_to_number:I,number_to_hex_color:A,number_to_rgba_color:G,get_computed_style:C};E.export_api(D+".css",B);var F="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";function J(K){return(/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(K)||/^rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)$/.test(K)||/^rgb\(\s*([-+]?[0-9]*\.?[0-9]+)%\s*,\s*([-+]?[0-9]*\.?[0-9]+)%\s*,\s*([-+]?[0-9]*\.?[0-9]+)%\s*\)$/.test(K)||(F.indexOf(K)!=-1)||/^rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([-+]?[0-9]*\.?[0-9]+)\s*\)$/.test(K)||/^rgba\(\s*([-+]?[0-9]*\.?[0-9]+)%\s*,\s*([-+]?[0-9]*\.?[0-9]+)%\s*,\s*([-+]?[0-9]*\.?[0-9]+)%\s*,\s*([-+]?[0-9]*\.?[0-9]+)\s*\)$/.test(K))}function I(K){var L={aqua:[0,255,255],black:[0,0,0],blue:[0,0,255],fuchsia:[255,0,255],gray:[128,128,128],green:[0,128,0],lime:[0,255,0],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,164,0],purple:[128,0,128],red:[255,0,0],silver:[192,192,192],teal:[0,128,128],white:[255,255,255],yellow:[255,255,0]};if(result=/^#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/.exec(K)){return[parseInt(result[1],16),parseInt(result[2],16),parseInt(result[3],16)]}else{if(result=/^#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/.exec(K)){return[parseInt(result[1]+result[1],16),parseInt(result[2]+result[2],16),parseInt(result[3]+result[3],16)]}else{K=K.replace(/\s/g,"");if(result=/^rgb\(([0-9]{1,3}),([0-9]{1,3}),([0-9]{1,3})\)$/.exec(K)){return[parseInt(result[1]),parseInt(result[2]),parseInt(result[3])]}else{if(result=/^rgb\(([-+]?[0-9]*\.?[0-9]+)%,([-+]?[0-9]*\.?[0-9]+)%,([-+]?[0-9]*\.?[0-9]+)%\)$/.exec(K)){return M(result)}else{if(L[K]){return L[K]}}}function M(Q,P){var O=[];for(var N=1;N<4;N++){O.push(Math.round(parseFloat(Q[N])*2.55))}if(P){O.push(P)}return O}if(result=/^rgba\(([0-9]{1,3}),([0-9]{1,3}),([0-9]{1,3}),([-+]?[0-9]*\.?[0-9]+)\)$/.exec(K)){return[parseInt(result[1]),parseInt(result[2]),parseInt(result[3]),parseFloat(result[4])]}else{if(result=/^rgba\(([-+]?[0-9]*\.?[0-9]+)%,([-+]?[0-9]*\.?[0-9]+)%,([-+]?[0-9]*\.?[0-9]+)%,([-+]?[0-9]*\.?[0-9]+)\)$/.exec(K)){return M(result,parseFloat(result[4]))}else{throw"invalid or unknown color representaion: "+K}}}}}function A(N){var M=N[0].toString(16),L=N[1].toString(16),K=N[2].toString(16);M=M.length==1?"0"+M:M;L=L.length==1?"0"+L:L;K=K.length==1?"0"+K:K;return"#"+M+L+K}function G(K){return K.length==3?"rgb("+K[0]+","+K[1]+","+K[2]+")":"rgba("+K[0]+","+K[1]+","+K[2]+","+K[3]+")"}function H(K){return K.replace(/-([a-z])/g,function(M,L){return L.toUpperCase()})}function C(N,M,L){var O="";if(L&&M=="cssFloat"){M="float"}if(document.defaultView&&document.defaultView.getComputedStyle){M=L?M.replace(/([A-Z])/g,"-$1").toLowerCase():M;var K=document.defaultView.getComputedStyle(N,null);O=K.getPropertyValue(M)}return O}})();(function(){var B="jo2",C=window[B];var A={number:"[-+]?[0-9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?",email:"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?",url:"(?:(?:[a-zA-Z][0-9a-zA-Z+\\-\\.]*:)?/{0,2}[0-9a-zA-Z;/?:@&=+$\\.\\-_!~*'()%]+)?(?:#[0-9a-zA-Z;/?:@&=+$\\.\\-_!~*'()%]+)?",simple_http_url:"https?:\\/\\/([a-z0-9-]+\\.)+[a-z0-9]{2,4}.*"};C.export_api(B+".regexp",A)})();(function(){var C="jo2",H=window[C];var A=new H.Signal();var B={get_inner_width:F,get_inner_height:D,get_scroll_top:G,get_scroll_left:E,signal_resize:A};H.export_api(C+".window",B);if(document.defaultView&&document.defaultView.addEventListener){H.dom.add_event_listener(document.defaultView,"resize",function(I){A.emit()},false)}else{H.add_callback(window,"onresize",function(I){A.emit()})}function F(){if(window.innerWidth){return window.innerWidth}else{if(document.documentElement&&document.documentElement.clientWidth!=0){return document.documentElement.clientWidth}else{if(document.body){return document.body.clientWidth}}}return 0}function D(){if(window.innerHeight){return window.innerHeight}else{if(document.documentElement&&document.documentElement.clientHeight!=0){return document.documentElement.clientHeight}else{if(document.body){return document.body.clientHeight}}}return 0}function G(){var J=document.documentElement,I=document.body;return(J.scrollTop||I.scrollTop||window.scrollY||0)}function E(){var J=document.documentElement,I=document.body;return(J.scrollLeft||I.scrollLeft||window.scrollX||0)}})();(function(){var X="jo2",J=window[X],V=J.dom,a=V._EL,I=new J.Logger();I.show_pane=C;I.hide_pane=b;I.pane=D;I.clear=E;var g={log_message:S};I.signal_log.connect(g,g.log_message);J.dependences([X+".window",X+".dom.event"],X+".log");J.export_api(X+".log",I);var B=[],F=X+"-logging-logpane-inner",d=X+"-logging-logpane-inner-head",O=X+"-logging-logpane-inner-body",W=X+"-logging-logpane-inner-levelcontrol",Q=undefined,P=undefined,M=undefined,U=undefined,G=undefined,f=undefined,A=false;function b(){var h=document.getElementById(F);if(!h){return}h.style.display="none"}function C(){var h=document.getElementById(F);if(!h){Z();h=document.getElementById(F);K()}h.style.display=""}function L(k,j,i,h){this.type=k;this.text=i+"";this.htmlColor=j;this.time=h.toLocaleTimeString()}function S(h,i){if(h==J.Level.MESSAGE){B.push(new L("message","green",i,new Date()))}else{if(h==J.Level.WARNING){B.push(new L("warning","darkorange",i,new Date()))}else{if(h==J.Level.ERROR){B.push(new L("error","red",i,new Date()))}else{if(h==J.Level.FATAL){B.push(new L("fatal","maroon",i,new Date()))}else{if(h==J.Level.NONE){B.push(new L("all","blue",i,new Date()))}}}}}K();H()}function D(h){if(h){C()}else{b()}}function T(j,k,i){if(j.ctrlKey){if(j.altKey){k.style.width="480px";i.style.height="200px";k.style.right="0";k.style.bottom="0";V.event.stop(j);return}if(j.shiftKey){i.style.height=Math.abs(J.window.get_inner_height()-60-parseInt(k.style.bottom.replace(/px/g,"")))+"px";V.event.stop(j);return}var h=(J.window.get_inner_width()-20)+"px";if(k.style.width==h){k.style.width="480px"}else{k.style.width=h}V.event.stop(j);return}Q=j.clientX;P=j.clientY;if(A=j.shiftKey){G=parseInt(k.style.width.replace(/px/g,""));f=parseInt(i.style.height.replace(/px/g,""))}else{M=parseInt(k.style.right.replace(/px/g,""));U=parseInt(k.style.bottom.replace(/px/g,""))}V.event.stop(j)}function R(i,j,h){Q=undefined;P=undefined}function Y(l,n,k){if(!Q){return}var h=l.clientX,m=l.clientY,j=h-Q,i=m-P;if(A){G-=j;f-=i;G=G<300?300:G;f=f<100?100:f;n.style.width=""+G+"px";k.style.height=""+f+"px"}else{M-=j;U-=i;n.style.right=""+M+"px";n.style.bottom=""+U+"px"}Q=h;P=m;V.event.stop(l)}function Z(){var k=/.*MSIE.6.*/.test(window.navigator.userAgent),t="480px",n="200px",s="14px";var o=a("div",{id:F,style:{width:t,position:k?"absolute":"fixed",zIndex:"1024",bottom:"0",right:"0",border:"solid #bbb 1px",display:"none",margin:"0",padding:"0",textAlign:"left"}});document.getElementsByTagName("body")[0].appendChild(o);var r=a("div",{id:O,style:{overflow:"auto",height:n,fontSize:s,fontFamily:"sans-serif",padding:"5px",margin:"0",border:"none",backgroundColor:"#fff"}}),u=a("div",{id:d,style:{padding:"0.2em 0.2em 0 0.2em",margin:"0",border:"none",backgroundColor:"#668bb5",textAlign:"right",fontSize:s,overflow:"hidden"}});o.appendChild(u);o.appendChild(r);var q=a("input",{type:"button",value:"x",style:{cssFloat:"right",styleFloat:"right",padding:"0 0.5em",fontFamily:"sans-serif"}}),p=a("input",{type:"button",value:"clear log",style:{cssFloat:"right",styleFloat:"right",padding:"0 0.5em",fontFamily:"sans-serif"}});q.onclick=b;p.onclick=E;u.appendChild(q);u.appendChild(p);var i=a("input",{type:"button",value:"A",style:{cssFloat:"left",styleFloat:"left",padding:"0 0.5em",fontFamily:"sans-serif"}});i.onclick=function(){var w=r.style.fontSize,x="";switch(w){case"10px":x="12px";break;case"12px":x=s;break;case s:x="16px";break;case"16px":x="18px";break;case"18px":x="18px";break;default:x=s;break}r.style.fontSize=x};var m=a("input",{type:"button",value:"a",style:{cssFloat:"left",styleFloat:"left",padding:"0 0.5em",fontFamily:"sans-serif"}});m.onclick=function(){var w=r.style.fontSize,x="";switch(w){case"10px":x="10px";break;case"12px":x="10px";break;case s:x="12px";break;case"16px":x=s;break;case"18px":x="16px";break;default:x=s;break}r.style.fontSize=x};u.appendChild(i);u.appendChild(m);var v=a("div",{style:{cssFloat:"left",styleFloat:"left"}});u.appendChild(v);var h=new c(W,{inactive_color:"#444",levels:[{color:"maroon",label:"⚫ "},{color:"red",label:"⚫ "},{color:"darkorange",label:"⚫ "},{color:"lime",label:"⚫ "}]});h.add_to_container(v);switch(I.get_log_level()){case J.Level.NONE:h.set_level(-1);break;case J.Level.FATAL:h.set_level(0);break;case J.Level.ERROR:h.set_level(1);break;case J.Level.WARNING:h.set_level(2);break;case J.Level.MESSAGE:h.set_level(3);break;case J.Level.ALL:h.set_level(3);break}h.signal_level_change.connect(function(w){switch(w){case 0:I.set_log_level(J.Level.FATAL);break;case 1:I.set_log_level(J.Level.ERROR);break;case 2:I.set_log_level(J.Level.WARNING);break;case 3:I.set_log_level(J.Level.MESSAGE);break}});I.signal_log_level_change.connect(function(w){switch(w){case J.Level.NONE:h.set_level(-1);break;case J.Level.FATAL:h.set_level(0);break;case J.Level.ERROR:h.set_level(1);break;case J.Level.WARNING:h.set_level(2);break;case J.Level.MESSAGE:h.set_level(3);break;case J.Level.ALL:h.set_level(3);break}});var l=h.get_levelcontrol_element().style;l.paddingLeft="0.5em";l.fontSize="130%";var j=a("div",{title:"click with [Ctrl] to expand horizontally, [Ctrl + Shift] to expand vertically or [Ctrl + Alt] to revert",style:{height:"1.8em",border:"solid #668bb5 1px",borderWidth:"0 0 1px 0",padding:"0",margin:"0",cursor:"move"}});u.appendChild(j);j.onmousedown=function(w){T(w||event,o,r)};J.add_callback(document,"onmouseup",function(w){R(w||event,o,r)});J.add_callback(document,"onmousemove",function(w){Y(w||event,o,r)});j.onmouseout=function(w){j.style.backgroundColor="transparent"};j.onmouseover=function(w){j.style.backgroundColor="#6f98c5"}}function K(){var j=document.getElementById(O);if(!j){return}if(B.length!=0){if(j.childNodes.length==0){for(var h=0;h<(B.length-1);h++){e(j,B[h])}}e(j,B[B.length-1]);if(j.childNodes.length>B.length){j.removeChild(j.firstChild)}if(j.offsetHeight>j.scrollHeight){j.scrollTop=0}else{j.scrollTop=j.scrollHeight}}else{while((child=j.firstChild)){j.removeChild(child)}}}function e(n,i){var k=a("div"),h=i,j='<div style="font-size: 80%; color: gray; background-position: center left; background-repeat: repeat-x; background-image: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kHBw8kG6bDbJkAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAADElEQVQI12N49+4dAAWYAsv4WALrAAAAAElFTkSuQmCC\');"><span style="float: right; text-align: right; background-color: white; padding-left: 0.5em;">'+h.time+' </span><span style="background-color: white; padding-right: 0.5em;">'+h.type+"</span></div>",l=(h.text.indexOf("\n")!=-1)?V.escape_HTML_entities(h.text).replace(/\t/g,"&#160;&#160;&#160;&#160;").replace(/ /g,"&#160;").replace(/\n/g,"<br />"):V.escape_HTML_entities(h.text);k.innerHTML=j+l;k.style.color=h.htmlColor;n.appendChild(k)}function H(){if(B.length>128){B.shift()}}function E(){B=[];K()}function c(i,h){this._id=i;this._config=h;this._levels=[];this._level=-1;this._tmp_level_visible=false;this._tmp_level=-1;this.signal_level_change=new J.Signal()}var N=c.prototype;N.add_to_container=function(n){var j=a("span",{id:this._id}),l=this._config,q=l.levels,r=this;for(var m=0;m<q.length;m++){var h=q[m],k=a("span",{style:{color:l.inactive_color,cursor:"pointer"}},h.label);k.onmouseover=o(m);k.onmouseout=function(i){r._hide_level()};k.onclick=p(m);j.appendChild(k);this._levels.push({color:h.color,element:k})}function o(i){return function(s){r._show_level(i)}}function p(i){return function(s){r.set_level(i);r.signal_level_change.emit(i)}}n.appendChild(j)};N.get_levelcontrol_element=function(){return document.getElementById(this._id)};N._show_level=function(h){if(this._tmp_level_visible&&this._tmp_level!=h){return}this._tmp_level=h;this._tmp_level_visible=true;this._show(h)};N._hide_level=function(){if(!this._tmp_level_visible){return}this._tmp_level_visible=false;this._show(this._level)};N._show=function(k){var j=this._levels,l=this._config.inactive_color;for(var h=0;h<j.length;h++){var m=j[h];if(h<=k){m.element.style.color=m.color}else{m.element.style.color=l}}};N.set_level=function(h){if(h>-2&&h<this._levels.length){this._level=h;this._show(h)}};N.get_level=function(){return this._level}})();

// calendar
(function(){var G="jo2",H=window[G];var B={get_month_start:F,get_year_start:J,transpose_month_table:A,get_month_table:E,get_alternative_month_table:C,has_29_feb:K,DayMark:I};H.dependences([],G+".calendar");H.export_api(G+".calendar",B);function K(L){if((L%400)==0){return true}if(((L%4)==0)&&((L%100)!=0)){return true}return false}function E(P,O){var M=[31,K(P)?29:28,31,30,31,30,31,31,30,31,30,31],S=M[O-1],R=F(P,O),T=[],V=Math.ceil((R-1+S)/7),L=R-1,U=0;for(var N=0;N<V;N++){T.push([null,null,null,null,null,null,null])}for(var Q=1;Q<=S;Q++){T[U][L]=Q;L++;if(L>=7){L=0;U++}}return T}function C(T,S,L){var U=E(T,S);if(L==1){return U}else{var V=[],R=[];for(var P=0;P<(U.length+1);P++){V.push([null,null,null,null,null,null,null])}var M=L-1;for(var W=0;W<U.length;W++){for(var N=0;N<7;N++){if(U[W][N]!=null){var Q=N-M,O=Q>=0?W+1:W;Q=Q>=0?Q:Q+7;V[O][Q]=U[W][N]}}}for(var W=0;W<V.length;W++){if(!(V[W][0]==null&&V[W][1]==null&&V[W][2]==null&&V[W][3]==null&&V[W][4]==null&&V[W][5]==null&&V[W][6]==null)){R.push(V[W])}}return R}}function A(M){var O=[];if(!(M[0]&&M[0].length)){return M}for(var P=0;P<M[0].length;P++){var N=[];for(var L=0;L<M.length;L++){N.push(M[L][P])}O.push(N)}return O}function J(N){var O=0;if(N==2007){return 1}if(N>2007){for(var L=0;L<(N-2007);L++){O+=K(2007+L)?366:365}return(O%7)+1}if(N<2007){for(var L=0;L<(2007-N);L++){O+=K(2007-L-1)?366:365}var M=8-(O%7);if(M>=8){return 1}return M}return 1}function F(N,O){var M=J(N),L=0;if(O==1){return M}else{L+=31}if(O==2){return((M-1+L)%7)+1}else{L+=K(N)?29:28}if(O==3){return((M-1+L)%7)+1}else{L+=31}if(O==4){return((M-1+L)%7)+1}else{L+=30}if(O==5){return((M-1+L)%7)+1}else{L+=31}if(O==6){return((M-1+L)%7)+1}else{L+=30}if(O==7){return((M-1+L)%7)+1}else{L+=31}if(O==8){return((M-1+L)%7)+1}else{L+=31}if(O==9){return((M-1+L)%7)+1}else{L+=30}if(O==10){return((M-1+L)%7)+1}else{L+=31}if(O==11){return((M-1+L)%7)+1}else{L+=30}if(O==12){return((M-1+L)%7)+1}return 1}function I(N,P,L,M,O){if(N instanceof Date){this._year=N.getFullYear();this._month=N.getMonth()+1;this._day=N.getDate();this._week_day=null;this._tooltip=P}else{this._year=N;this._month=P;this._day=L;this._week_day=M;this._tooltip=O||""}}var D=I.prototype;D.match=function(O,P,M,N){var L=true;if(this._year){L=L&&(this._year==O)}if(this._month){L=L&&(this._month==P)}if(this._day){L=L&&(this._day==M)}if(this._week_day){L=L&&(this._week_day==N)}return L};D.get_tooltip=function(){return this._tooltip};D.set_tooltip=function(L){return this._tooltip=L};I.get_weekend_day_marks=function(){return[new I(null,null,null,6,""),new I(null,null,null,7,"")]};I.get_slovak_free_day_marks=function(){var L=I.get_easter_free_day_marks();L[0].set_tooltip("Veľký piatok");L[1].set_tooltip("Veľkonočný pondelok");return[new I(null,1,1,null,"Deň vzniku Slovenskej republiky"),new I(null,1,6,null,"Zjavenie Pána (Traja králi a vianočný sviatok pravoslávnych kresťanov)"),L[0],L[1],new I(null,5,1,null,"Sviatok práce"),new I(null,5,8,null,"Deň víťazstva nad fašizmom"),new I(null,7,5,null,"sviatok svätého Cyrila a svätého Metoda"),new I(null,8,29,null,"Výročie Slovenského národného povstania"),new I(null,9,1,null,"Deň Ústavy Slovenskej republiky"),new I(null,9,15,null,"Sedembolestná Panna Mária"),new I(null,11,1,null,"sviatok Všetkých svätých"),new I(null,11,17,null,"Deň boja za slobodu a demokraciu"),new I(null,12,24,null,"Štedrý deň"),new I(null,12,25,null,"prvý sviatok vianočný"),new I(null,12,26,null,"druhý sviatok vianočný")]};I.get_easter_free_day_marks=function(){function M(W){var S=(W%19)+1,U=(W+Math.floor(W/4)-Math.floor(W/100)+Math.floor(W/400))%7;if(U<0){U+=7}var Y=Math.floor((W-1600)/100)-Math.floor((W-1600)/400),Q=Math.floor((Math.floor((W-1400)/100)*8)/25),X=(3-11*S+Y-Q)%30;if(X<0){X+=30}if((X==29)||(X==28&&S>11)){X--}var R=(4-X-U)%7;if(R<0){R+=7}var T=X+R+1;if(T<11){var V=T+21;return[[W,3,V-2],[W,T==10?4:3,T==10?1:V+1]]}else{var V=T-10,P=V-2;return[[W,P<0?3:4,P<0?P+31:P],[W,4,V+1]]}}var N={},L=new I(),O=new I();L.match=function(S,U,Q,R){var T=N[S]?N[S]:N[S]=M(S),P=true;P=P&&(T[1][1]==U);P=P&&(T[1][2]==Q);return P};O.match=function(S,U,Q,R){var T=N[S]?N[S]:N[S]=M(S),P=true;P=P&&(T[0][1]==U);P=P&&(T[0][2]==Q);return P};return[O,L]}})();

// animation
(function(){var F="jo2",K=window[F];var C={Animation:H,AnimationNode:J,CoreAnimation:A};K.dependences([F+".css"],F+".animations");K.export_api(F+".animations",C);var B={linear:function(O){return O},swing:function(O){return(-Math.cos(O*Math.PI)/2)+0.5},swirl:function(O){return Math.sin(O*4*Math.PI)*(1-Math.pow(O,0.4))+O}};function D(O){return(O&&B[O])?B[O]:(typeof O=="function")?O:B.linear}function E(S,Q,T,V,P,R,U,O){var T=D(T),W;return function(Z){if(Z==null){W=true;return}if(Z<S){return true}if(Z>(S+Q)){this._element.style[V]=""+(P+T(1)*(R-P))+U;return false}if(W){W=false;if(O){var Y=this._element.style[V]||K.css.get_computed_style(this._element,V,true);Y=parseFloat(Y);if(Y!=NaN){P=Y}}}var X=(Z-S)/Q;this._element.style[V]=""+(P+T(X)*(R-P))+U;return true}}function N(U,S,W,Z,Q,T,O){var W=D(W),b;Q=K.css.color_to_number(Q);T=K.css.color_to_number(T);var P=Q[0],V=Q[1],Y=Q[2],R=T[0],X=T[1],a=T[2];return function(h){if(h==null){b=true;return}if(h<U){return true}if(h>(U+S)){var d=W(1);this._element.style[Z]=K.css.number_to_hex_color([Math.floor(P+d*(R-P)),Math.floor(V+d*(X-V)),Math.floor(Y+d*(a-Y))]);return false}if(b){b=false;if(O){var f=this._element.style[Z]||K.css.get_computed_style(this._element,Z,true);if(f!="transparent"){try{Q=K.css.color_to_number(f)}catch(g){}}}}var c=(h-U)/S,d=W(c);this._element.style[Z]=K.css.number_to_rgba_color([Math.floor(P+d*(R-P)),Math.floor(V+d*(X-V)),Math.floor(Y+d*(a-Y))]);return true}}function G(O,Q,P){return function(R){if(R==null){return}if(R<O){return true}else{this._element.style[Q]=P;return false}}}function A(){this._timers=[];this._interval_id=null;this._callback;this._interval_timers}var M=A.prototype;M.add_timer=function(O){this._timers.push(O);if(this._interval_timers){this._interval_timers.push(O)}};M.clear_timers=function(){this._timers=[]};M._prepare_interval_timers=function(){var Q=this._timers,R=[];for(var P=0,O=Q.length;P<O;P++){R[P]=Q[P];R[P](null)}this._interval_timers=R};M.run=function(R){if(this._interval_id){this.done()}this._prepare_interval_timers();var Q=this._interval_timers,O=+new Date,P=this;this._callback=R;this._interval_id=setInterval(function(){for(var S=0;S<Q.length;S++){if(!Q[S].call(P,(+new Date)-O)){Q.splice(S--,1)}}if(Q.length==0){clearInterval(P._interval_id);P._interval_id=null;P._interval_timers=null;if(R){R.call();P._interval_callback=null}}},13)};M.done=function(){if(this._interval_id){clearInterval(this._interval_id);this._interval_id=null}else{return false}var R=+new Date,Q=this._interval_timers;for(var P=0,O=Q.length;P<O;P++){Q[P].call(this,R)}if(this._callback){this._callback.call();this._callback=null}this._interval_timers=null;return true};M.stop=function(){if(this._interval_id){clearInterval(this._interval_id);this._interval_id=null;this._interval_callers=null;return true}else{return false}};function H(O){this._who=O;this._tasks=[];this._tmp_start=0;this._core=new A()}var I=H.prototype;I.queue=function(O,P,Q){return this.plan(O,P,Q,true)};I.add=function(O,P,Q){return this.plan(O,P,Q,false)};I.plan=function(P,S,T,O){this._tasks.push([P,S]);if(S){for(var R in P){var Q=P[R];if(K.css.is_css_color(Q.start)){this._core.add_timer(N(this._tmp_start,S,T,R,Q.start,Q.end,Q.bind))}else{this._core.add_timer(E(this._tmp_start,S,T,R,Q.start,Q.end,Q.unit,Q.bind))}}if(O){this._tmp_start+=S}}else{for(var R in P){this._core.add_timer(G(this._tmp_start,R,P[R]))}}return this};I.clear=function(){this._tasks=[];this._tmp_start=0;this._core.clear_timers();return this};I.on=function(O){this._who=O;return this};I.get_element=function(){return K.dom._get(this._who)};I.run=function(P){var O=K.dom._get(this._who);if(!O){return}this._core._element=O;this._core.run(P)};I.done=function(){this._core.done();return this};I.stop=function(){this._core.stop();return this};function J(O){this._who=O;this._callback;this._sub_nodes=[];this._core=new A()}var L=J.prototype;L.add_animation=function(O,R,S){for(var Q in O){var P=O[Q];if(K.css.is_css_color(P.start)){this._core.add_timer(N(0,R,S,Q,P.start,P.end,P.bind))}else{this._core.add_timer(E(0,R,S,Q,P.start,P.end,P.unit,P.bind))}}return this};L.clear=function(){this._core.clear_timers();return this};L.append_child=function(O){this._sub_nodes.push(O);return this};L.remove_all_childs=function(){this._sub_nodes=[];return this};L.set_element=function(O){this._who=O;return this};L.get_element=function(){return K.dom._get(this._who)};L.set_callback=function(O){this._callback=O;return this};L.run=function(){var P=K.dom._get(this._who),O=this;if(!P){return}this._core._element=P;this._core.run(function(){O._node_callback()})};L._node_callback=function(){if(this._callback){this._callback()}var P=this._sub_nodes;for(var O=0;O<P.length;O++){P[O].run()}};L.done=function(){this._core.done();var P=this._sub_nodes;for(var O=0;O<P.length;O++){P[O].done()}return this};L.stop=function(){this._core.stop();var P=this._sub_nodes;for(var O=0;O<P.length;O++){P[O].stop()}return this}})();

// dev
(function(){var E="jo2",I=window[E];var A={dump_tree:F,dump_element:G,get_tree_row:J,dump:H};I.dependences([],E+".dev");I.export_api(E+".dev",A);function J(N,L){var K="";L=L||[];for(var O=0,M=L.length;O<M;O++){if(O==(M-1)){K+=L[O]?"`--- ":"|--- "}else{K+=L[O]?"     ":"|    "}}return K+N}function D(O,L){L=L||[];var K="";K+=J(O.name,L)+"\n";if(!O.child_nodes||O.child_nodes.length==0){return K}L.push(false);for(var N=0,M=O.child_nodes.length;N<M;N++){if(N==(M-1)){L[L.length-1]=true}K+=D(O.child_nodes[N],L)}L.pop();return K}function F(K){return D(K)}function G(K){return F(C(K))}function C(O,Q){var P={},M=[];P.name=O.tagName.toLowerCase()+(O.id?"#"+O.id:"")+(O.className?"."+O.className.replace(/ /g,"."):"");for(var N=0,K=O.childNodes.length;N<K;N++){var R=O.childNodes[N];if(R.tagName){M.push(C(R))}}if(M.length==0){var L=O.innerHTML.replace(/[\n\r]+/g,"");P.name+=L?("    ("+(L.length<8?L:(L.substring(0,8)+".."))+")"):""}P.child_nodes=M;return P}function H(L,K){return B(L,K)}function B(O,K,N){if(!K||K<=0){K=1}if(!N){N=0}var S="",R="";for(var M=0;M<N+1;M++){R+="\t"}if(typeof(O)=="object"){if(N==0){S+="(object):\n"}var Q=null;try{for(var T in O){try{Q=O[T]}catch(P){S+=R+'"'+T+'": (!Unable to Evaluate)\n';continue}if(typeof(Q)=="object"){S+=R+'"'+T+'" (object): \n';if(N+2>K){continue}else{S+=B(Q,K,N+1)}}else{if(typeof(Q)=="string"){S+=R+'"'+T+'" (string): "'+Q+'"\n'}else{if(typeof(Q)=="function"){var L=Q.toString();S+=R+'"'+T+'" (function): '+((L.match(/\[native code\]/g))?L.replace(/[\n\t ]+/g," ").replace(/function \(/,T+"(").replace(/function /,""):L.replace(/[\n\t ]+/g," ").replace(/function \(/,T+"(").replace(/function /,"").replace(/{.*}/,"{ [javascript code] }"))+"\n"}else{S+=R+'"'+T+'" ('+typeof(Q)+"): "+Q+"\n"}}}}}catch(P){S+=R+"(!Unable to list properties of object)\n"}}else{if(typeof(O)=="string"){S+='(string): "'+O+'"'}else{S+="("+typeof(O)+"): "+O}}return S}})();

// encoding
(function(){var N="jo2",F=window[N];var K={};F.dependences([],N+".code");F.export_api(N+".encoding",K);var H={encode_string:M,decode_string:J};F.export_api(N+".encoding.base64",H);var H={encode_string:R,decode_string:C};F.export_api(N+".encoding.url_safe_base64",H);var A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",P="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=";function M(S){return B(S,A)}function R(S){return B(S,P)}function B(V,S){var T="",c,a,Y,b,Z,X,W,U=0;V=D(V);while(U<V.length){c=V.charCodeAt(U++);a=V.charCodeAt(U++);Y=V.charCodeAt(U++);b=c>>2;Z=((c&3)<<4)|(a>>4);X=((a&15)<<2)|(Y>>6);W=Y&63;if(isNaN(a)){X=W=64}else{if(isNaN(Y)){W=64}}T=T+S.charAt(b)+S.charAt(Z)+S.charAt(X)+S.charAt(W)}return T}function J(S){return Q(S,A)}function C(S){return Q(S,P)}function Q(V,S){var T="",c,a,Y,b,Z,X,W,U=0;V=V.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(U<V.length){b=S.indexOf(V.charAt(U++));Z=S.indexOf(V.charAt(U++));X=S.indexOf(V.charAt(U++));W=S.indexOf(V.charAt(U++));c=(b<<2)|(Z>>4);a=((Z&15)<<4)|(X>>2);Y=((X&3)<<6)|W;T=T+String.fromCharCode(c);if(X!=64){T=T+String.fromCharCode(a)}if(W!=64){T=T+String.fromCharCode(Y)}}T=L(T);return T}function D(T){var S="";for(var V=0;V<T.length;V++){var U=T.charCodeAt(V);if(U<128){S+=String.fromCharCode(U)}else{if((U>127)&&(U<2048)){S+=String.fromCharCode((U>>6)|192);S+=String.fromCharCode((U&63)|128)}else{S+=String.fromCharCode((U>>12)|224);S+=String.fromCharCode(((U>>6)&63)|128);S+=String.fromCharCode((U&63)|128)}}}return S}function L(S){var T="",U=0,V=c1=c2=0;while(U<S.length){V=S.charCodeAt(U);if(V<128){T+=String.fromCharCode(V);U++}else{if((V>191)&&(V<224)){c2=S.charCodeAt(U+1);T+=String.fromCharCode(((V&31)<<6)|(c2&63));U+=2}else{c2=S.charCodeAt(U+1);c3=S.charCodeAt(U+2);T+=String.fromCharCode(((V&15)<<12)|((c2&63)<<6)|(c3&63));U+=3}}}return T}var E={ascii_95_alphabet:" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",encode_string_with_alphabet:O,decode_string_with_alphabet:I};F.export_api(N+".encoding.polyalphabetic",E);function O(S,U,T){return G(S,U,T,true)}function I(S,U,T){return G(S,U,T,false)}function G(a,W,c,V){var d="",b=W.length,T=c.length;for(var Z=0;Z<a.length;Z++){var S=a[Z],U=c[Z%T],X=W.indexOf(S),Y=W.indexOf(U);if(X==-1){d+=S}else{if(Y==-1){throw"invalid character in code word"}else{if(V){X+=Y;while(X>=b){X-=b}}else{X-=Y;while(X<0){X+=b}}d+=W[X]}}}return d}})();

//loaders
(function(){var B="jo2",E=window[B];var A={ImageLoader:C};E.dependences([B+".log",B+".dom",B+".dom.event"],B+".gadgets.loaders");E.export_api(B+".gadgets.loaders",A);function C(){this.signal_load=new E.Signal();this.signal_error=new E.Signal();this.signal_open=new E.Signal();this.signal_abort=new E.Signal();this._image=null;this._url;var F=this;this._load_fc=function(G){F.signal_load.emit(F._url,F._image.width,F._image.height);F._image=null};this._error_fc=function(G){F.signal_error.emit(F._url);F._image=null}}var D=C.prototype;D.is_loading=function(){return this._image!=null};D.abort=function(){if(this._image){E.dom.remove_event_listener(this._image,"load",this._load_fc,false);E.dom.remove_event_listener(this._image,"error",this._error_fc,false);this.signal_abort.emit(this._url);this._image=null}};D.load=function(F){if(this._image&&F==this._url){return}this.abort();this.signal_open.emit(F);this._url=F;this._image=new Image();E.dom.add_event_listener(this._image,"load",this._load_fc,false);E.dom.add_event_listener(this._image,"error",this._error_fc,false);this._image.src=F}})();

//timers
(function(){var D="jo2",E=window[D];var C={Stopwatch:B};E.dependences([D+".log"],D+".gadgets.timers");E.export_api(D+".gadgets.timers",C);function B(){this._results={};this._start=null;this._start_name=null}var A=B.prototype;A.clear=function(){this._results={};this._start=null;this._start_name=null};A.get_results=function(){return this._results};A.get_formated_result=function(){var K=this._results;var F={},M=0,P=0,R=0,L="";for(var G in K){var H=0;var Q=K[G];for(var J=0;J<Q.length;J++){H+=Q[J]}F[G]=H;M+=H;if(H>P){P=H}if(G.length>R){R=G.length}}for(var G in F){var H=F[G];var N="";for(var J=0,I=Math.round(32*H/P);J<I;J++){N+="*"}L+=G+":\n\t["+N+"] ("+H+"ms)\n"}function O(V,U){if(V.length<U){for(var T=0,S=U-V.length;T<S;T++){V+=" "}}return V}return L};A.start=function(F){if(this._start_name!=null){this._stop(this._start_name)}var G=this._results;if(!F){F="_default_"}if(!G[F]){G[F]=[]}this._start_name=F;this._start=+new Date};A.stop=function(){var H=+new Date,G=this._results,I=this._start,F=this._start_name;if(G[F]&&I&&F){G[F].push(H-I);this._start=null;this._start_name=null}}})();

// forms
(function(){var d="jo2",M=window[d];var Z={Label:Y,TextInput:D,AutoComplete:a,Checkbox:S,RadioButton:B,RadioButtonGroup:U,TextArea:c,Select:Q,Button:P,PopupCalendar:A};M.dependences([d+".log",d+".calendar",d+".dom.event"],d+".widgets.forms");M.export_api(d+".widgets.forms",Z);var b=M.dom,J=M.log,f=b._EL,W=b._TXT,I=function(i){J.error(i)};function G(j,k,l,i){return b.add_event_listener(j,k,l,i)}function V(j,k,l,i){return b.remove_event_listener(j,k,l,i)}var F="you try to adopt %wn widget from not ";function g(r,n,j,q,l){if(!n){I(F.replace("%wn",r)+"existing element: "+l);return false}var s=false,k=n.tagName.toLowerCase();for(var o=0;o<j.length;o++){s=s||(k==j[o])}if(!s){I(F.replace("%wn",r)+j.join(" or ")+" element: "+l);return false}if(q){var p=false,m=n.type.toLowerCase();for(var o=0;o<q.length;o++){p=p||(m==q[o])}if(!p){I(F.replace("%wn",r)+"type valid element (types you can use are "+q.join(" or ")+"): "+l);return false}}return true}function X(i){M.widgets.GeneralWidget.call(this,i);this._stop_click_event=true}var N=X.prototype;(new M.Type(X)).extend(M.widgets.GeneralWidget);N.set_disabled=function(i){if(i){this._ge().disabled=true}else{this._ge().disabled=false}};N.is_disabled=function(){return this._ge().disabled};N.set_name=function(i){this._ge().name=i};N.get_name=function(){return this._ge().name};N.set_tab_index=function(i){this._ge().tabIndex=i};N.get_tab_index=function(){return this._ge().tabIndex};N.set_stop_click_event=function(i){if(i){this._stop_click_event=true}else{this._stop_click_event=false}};N._handle_click_event=function(i){if(this._stop_click_event){b.event.stop_propagation(i)}};function Y(i){M.widgets.GeneralWidget.call(this,i);if(document.getElementById(i)){this.adopt_by_id(i)}}var T=Y.prototype;(new M.Type(Y)).extend(M.widgets.GeneralWidget);T.add_to_container=function(j){var k=this._get_DOM_representation();k.setAttribute("id",this._id);var i=b._get(j);if(i){i.appendChild(k)}else{I("cannot add Label with id: "+this._id+" to container with id: "+j)}};T.adopt_by_id=function(i){if(g("Label",document.getElementById(i),["label"],null,i)){this._id=i}};T._get_DOM_representation=function(){var i=f("label");return i};T.set_label_content=function(i){this._ge().innerHTML=i};T.get_label_content=function(){return this._ge().innerHTML};T.set_for=function(i){this._ge().htmlFor=i};T.get_for=function(){return this._ge().htmlFor};function D(i){X.call(this,i);this.signal_focus=new M.Signal();this.signal_blur=new M.Signal();this.signal_change=new M.Signal();this.signal_keydown=new M.Signal();this._key_codes=b.event.key_codes();this._last_value="";if(document.getElementById(i)){this.adopt_by_id(i)}}var h=D.prototype;(new M.Type(D)).extend(X);h.add_to_container=function(k){var j=this._get_DOM_representation();j.setAttribute("id",this._id);this._set_up_signals(j);var i=b._get(k);if(i){i.appendChild(j)}else{I("cannot add TextInput with id: "+this._id+" to container with id: "+k)}};h.adopt_by_id=function(i){var j=document.getElementById(i);if(g("TextInput",j,["input"],["text","hidden","password"],i)){this._last_value=j.value;this._id=i;this._set_up_signals(j)}};h._set_up_signals=function(j){var i=this;G(j,"blur",function(k){i._fire_change_event();i.signal_blur.emit()},false);G(j,"focus",function(k){i.signal_focus.emit()},false);G(j,"click",function(k){i._handle_click_event(k);i._fire_change_event()},false);G(j,"mousedown",function(k){i._fire_change_event()},false);G(j,"mouseup",function(k){i._fire_change_event()},false);G(j,"keyup",function(k){i._fire_change_event()},false);G(j,"keydown",function(k){i._fire_change_event();i.signal_keydown.emit(k)},false)};h._fire_change_event=function(){var i=this.get_value();if(this._last_value!=i){this._last_value=i;this.signal_change.emit(i)}};h._is_change_event=function(j){var i=this._key_codes;return((j.keyCode!=i.up)&&(j.keyCode!=i.down)&&(j.keyCode!=i.left)&&(j.keyCode!=i.right)&&(j.keyCode!=i.enter))};h._get_DOM_representation=function(){var i=f("input",{type:"text"});return i};h.set_default_value=function(i){this._ge().defaultValue=i};h.set_value=function(i){this._ge().value=i;this._last_value=i};h.get_value=function(){return this._ge().value};h.set_read_only=function(i){if(i){this._ge().readOnly=true}else{this._ge().readOnly=false}};h.is_read_only=function(){return this._ge().readOnly};h.set_hidden=function(i){if(i){this._ge().type="hidden"}else{this._ge().type="text"}};h.is_hidden=function(){return this._ge().type=="hidden"};h.set_password=function(j){var i=this._ge();try{if(j){i.type="password"}else{i.type="text"}}catch(k){I('your browser doesn\'t support setting "type" on input - set_password is unusable')}};h.is_password=function(){return this._ge().type=="password"};h.get_size=function(){return this._ge().size};h.set_size=function(i){if(i<1){I('"size" attribute in TextInput with id: '+this._id+" can not be smaller than 1");return}this._ge().size=i};h.set_max_length=function(i){if(i<1){I('"max length" attribute in TextInput with id: '+this._id+" can not be smaller than 1");return}this._ge().maxLength=i};function a(k,i,j){M.widgets.GeneralWidget.call(this,k);this._input=null;this._items=[];this._keydown_id=-1;this.set_text_input(i);this._pref_width;this._ext_width;j=j||{};this._colors={base_font:j.base_font||"black",comment_font:j.comment_font||"green",base_background:j.base_background||"white",selected_font:j.selected_font||"white",selected_background:j.selected_background||"#555",border:j.border||"gray"}}var e=a.prototype;(new M.Type(a)).extend(M.widgets.GeneralWidget);e.set_text_input=function(j){if(!(j&&(j instanceof D))){I("AutoComplete will not work because textInputObject you use as parameter is not usable!")}else{this._input=j;var i=M.css.get_computed_style(j._ge(),"width");this._pref_width=i?i:Math.round(j.get_size()*0.6)+".5em";this._ext_width=this._pref_width}};e.set_extended_autocomplete_width=function(i){this._ext_width=i};e.add_to_container=function(k){if(!this._input){return}var j=this;this._input.signal_blur.connect(j,j.hide_popup_menu);var l=this._get_DOM_representation();l.setAttribute("id",this._id);var i=b._get(k);if(i){i.appendChild(l)}else{I("cannot add AutoComplete with id: "+this._id+" to container with id: "+k)}};e._get_DOM_representation=function(){var j=f("div",{style:{display:"none",width:this._pref_width,backgroundColor:this._colors.base_background,color:this._colors.base_font,opacity:"0.95",border:"solid gray 1px",borderColor:this._colors.border,position:"absolute",top:"0",left:"0",zIndex:"1010",cursor:"pointer",overflow:"hidden",margin:"0",padding:"0",lineHeight:"1.2em"}});var l=f("div",{"class":"autocomplete-head",style:{margin:"0",padding:"2px",overflow:"hidden",display:"block",textAlign:"right",fontSize:"90%",display:"none"}});j.appendChild(l);var i=f("div",{"class":"autocomplete-body",style:{margin:"0",padding:"0",overflow:"hidden",display:"block"}});j.appendChild(i);var k=f("div",{"class":"autocomplete-foot",style:{margin:"0",padding:"2px",overflow:"hidden",display:"block",textAlign:"right",fontSize:"80%",display:"none"}});j.appendChild(k);return j};e._get_autocomplete_body=function(){return b.get_child(this._ge(),"div","autocomplete-body")};e._get_autocomplete_foot=function(){return b.get_child(this._ge(),"div","autocomplete-foot")};e.hide_popup_menu=function(){var i=this._ge();if(i){i.style.display="none"}if(this._keydown_id!=-1){this._input.signal_keydown.disconnect(this._keydown_id)}this._keydown_id=-1;this._autocomplete_used_flag=false};e.show_popup_menu=function(q,o){if(!(this._input)){return}var n=this._ge(),k=this,j=this._get_autocomplete_body();n.style.width=o?this._ext_width:this._pref_width;b.clear(j);this._items=[];if((!q)||(!q.length)||(q.length==0)){n.style.display="none";return}for(var l=0;l<q.length;l++){var m=this._get_menu_item_element(q[l],o?o[l]:"");j.appendChild(m);this._items.push({word:q[l],comment:o?o[l]:"",element:m,selected:false})}if((n.style.display!="block")&&(this._keydown_id==-1)){this._keydown_id=this._input.signal_keydown.connect(k,k._onkeydown)}n.style.display="block"};e._get_menu_item_element=function(l,m){var k=this;var j=f("div",{style:{color:this._colors.base_font,backgroundColor:this._colors.base_background,padding:"2px 3px",margin:"0",lineHeight:"1.2em"}});if(m){var i=f("div",{style:{color:this._colors.comment_font,padding:"2px 3px",margin:"0",lineHeight:"1.2em",cssFloat:"right",styleFloat:"right",fontSize:"90%"}},m);j.appendChild(i)}j.appendChild(W(l));G(j,"mousedown",function(n){k._input.set_value(l);k.hide_popup_menu()},false);G(j,"mouseover",function(n){k._unselect_all_menuitems();k._select_menuitem(k._get_menuitem(this))},false);G(j,"mouseout",function(n){k._unselect_menuitem(k._get_menuitem(this))},false);return j};e._get_menuitem=function(l){var j=this._items;for(var k=0;k<j.length;k++){if(j[k].element===l){return j[k]}}return null};e._select_menuitem=function(k){var i=this._colors;var j=k.element;j.style.color=i.selected_font;j.style.backgroundColor=i.selected_background;j.className+=" selected";var l=b.get_child(j,"div");if(l){l.style.color=i.selected_font}k.selected=true};e._unselect_menuitem=function(k){var i=this._colors;var j=k.element;j.style.color=i.base_font;j.style.backgroundColor=i.base_background;j.className=j.className.replace(/ ?selected/g,"");var l=b.get_child(j,"div");if(l){l.style.color=i.comment_font}k.selected=false};e._unselect_all_menuitems=function(){var j=this._items;for(var k=0;k<j.length;k++){if(j[k].selected){this._unselect_menuitem(j[k])}}};e._get_selected_menuitem=function(){var j=this._items;for(var k=0;k<j.length;k++){if(j[k].selected){return j[k]}}return null};e._select_next_menuitem=function(){var j=this._items;if(j.length<1){return}var l=0;for(var k=0;k<j.length;k++){if(j[k].selected){l=k+1;this._unselect_all_menuitems();break}}if(l>=j.length){l=j.length-1}this._select_menuitem(j[l])};e._select_previous_menuitem=function(){var j=this._items;if(j.length<1){return}var l=j.length-1;for(var k=0;k<j.length;k++){if(j[k].selected){l=k-1;this._unselect_all_menuitems();break}}if(l<0){l=0}this._select_menuitem(j[l])};e._onkeydown=function(k){var i=b.event.key_codes();if(i.up==k.keyCode){this._select_previous_menuitem();return}else{if(i.down==k.keyCode){this._select_next_menuitem();return}}var j=this._get_selected_menuitem();if(!j){}else{if((i.enter==k.keyCode)||(i.right==k.keyCode)){this._input.set_value(j.word);this.hide_popup_menu();b.event.stop(k)}else{if(b.event.key_codes().left==k.keyCode){this._unselect_all_menuitems()}}}};function S(i){X.call(this,i);this.signal_focus=new M.Signal();this.signal_blur=new M.Signal();this.signal_change=new M.Signal();if(document.getElementById(i)){this.adopt_by_id(i)}}var R=S.prototype;(new M.Type(S)).extend(X);R.add_to_container=function(k){var j=this._get_DOM_representation();j.setAttribute("id",this._id);this._set_up_signals(j);var i=b._get(k);if(i){i.appendChild(j)}else{I("cannot add Checkbox with id: "+this._id+" to container with id: "+k)}};R.adopt_by_id=function(i){var j=document.getElementById(i);if(g("Checkbox",j,["input"],["checkbox"],i)){this._id=i;this._set_up_signals(j)}};R._set_up_signals=function(j){var i=this;G(j,"blur",function(k){i.signal_blur.emit()},false);G(j,"focus",function(k){i.signal_focus.emit()},false);G(j,"click",function(k){i._handle_click_event(k);i.signal_change.emit(i.get_value())},false)};R._get_DOM_representation=function(){var i=f("input",{type:"checkbox"});return i};R.set_DOM_value=function(i){this._ge().value=i};R.get_DOM_value=function(){return this._ge().value};R.set_default_selected=function(i){if(i){this._ge().defaultChecked=true}else{this._ge().defaultChecked=false}};R.set_value=function(i){if(i){this._ge().checked=true}else{this._ge().checked=false}};R.get_value=function(){return this._ge().checked};function U(){this._rb=[];this.signal_change=new M.Signal()}var C=U.prototype;C.get_value=function(){for(var j=0;j<this._rb.length;j++){if(this._rb[j][0].get_value()){return this._rb[j][0].get_DOM_value()}}return null};C.set_value=function(k){for(var j=0;j<this._rb.length;j++){if(k==this._rb[j][0].get_DOM_value()){this._rb[j][0].set_value(true);return true}}return false};C.get_name=function(){if(this._rb.length>0){return this._rb[0][0].get_name()}else{return""}};C.add_radiobutton=function(l){if(!l){return false}if(this._rb.length>0){if(l.get_name()!=this._rb[0][0].get_name()){return false}}var i=this,j={receiver:function(){i.signal_change.emit(i.get_value())}},k=l.signal_change.connect(j,j.receiver);this._rb.push([l,k]);return true};C.remove_radiobutton=function(n){for(var m=0;m<this._rb.length;m++){if(this._rb[m][0]==n){var k=[];for(var l=0;l<this._rb.length;l++){if(l!=m){k.push(this._rb[l])}}n.signal_change.disconnect(this._rb[m][1]);this._rb=k;return true}}return false};function B(i){X.call(this,i);this.signal_focus=new M.Signal();this.signal_blur=new M.Signal();this.signal_change=new M.Signal();if(document.getElementById(i)){this.adopt_by_id(i)}}var K=B.prototype;(new M.Type(B)).extend(X);K.add_to_container=function(j){var k=this._get_DOM_representation();k.setAttribute("id",this._id);this._set_up_signals(k);var i=b._get(j);if(i){i.appendChild(k)}else{I("cannot add RadioButton with id: "+this._id+" to container with id: "+j)}};K.adopt_by_id=function(i){var j=document.getElementById(i);if(g("RadioButton",j,["input"],["radio"],i)){this._id=i;this._set_up_signals(j)}};K._set_up_signals=function(j){var i=this;G(j,"blur",function(k){i.signal_blur.emit()},false);G(j,"focus",function(k){i.signal_focus.emit()},false);G(j,"click",function(k){i._handle_click_event(k);i.signal_change.emit(i.get_value())},false)};K._get_DOM_representation=function(){var i=f("input",{type:"radio"});return i};K.set_DOM_value=function(i){this._ge().value=i};K.get_DOM_value=function(){return this._ge().value};K.set_default_selected=function(i){if(i){this._ge().defaultChecked=true}else{this._ge().defaultChecked=false}};K.set_value=function(i){if(i){this._ge().checked=true}else{this._ge().checked=false}};K.get_value=function(){return this._ge().checked};function c(i){X.call(this,i);this.signal_focus=new M.Signal();this.signal_blur=new M.Signal();this.signal_change=new M.Signal();this.signal_keydown=new M.Signal();this._key_codes=b.event.key_codes();this._last_value="";if(document.getElementById(i)){this.adopt_by_id(i)}}var L=c.prototype;(new M.Type(c)).extend(X);L.add_to_container=function(j,l,m){var k=this._get_DOM_representation(l,m);k.setAttribute("id",this._id);this._set_up_signals(k);var i=b._get(j);if(i){i.appendChild(k)}else{I("cannot add TextArea with id: "+this._id+" to container with id: "+j)}};L.adopt_by_id=function(i){var j=document.getElementById(i);if(g("TextArea",j,["textarea"],null,i)){this._last_value=j.value;this._id=i;this._set_up_signals(j)}};L._set_up_signals=function(j){var i=this;G(j,"blur",function(k){i.signal_blur.emit()},false);G(j,"focus",function(k){i.signal_focus.emit()},false);G(j,"click",function(k){i._handle_click_event(k);i._fire_change_event()},false);G(j,"mousedown",function(k){i._fire_change_event()},false);G(j,"mouseup",function(k){i._fire_change_event()},false);G(j,"keyup",function(k){i._fire_change_event()},false);G(j,"keydown",function(k){i._fire_change_event();i.signal_keydown.emit(k)},false)};L._fire_change_event=function(){var i=this.get_value();if(this._last_value!=i){this._last_value=i;this.signal_change.emit(i)}};L._is_change_event=h._is_change_event;L._get_DOM_representation=function(j,k){var i=f("textarea");i.rows=j>0?j:3;i.cols=k>0?k:10;return i};L.set_default_value=function(i){this._ge().defaultValue=i};L.set_value=function(i){this._ge().value=i;this._last_value=i};L.get_value=function(){return this._ge().value};L.set_read_only=function(i){if(i){this._ge().readOnly=true}else{this._ge().readOnly=false}};L.is_read_only=function(){return this._ge().readOnly};L.set_rows=function(i){if(i<1){I('"rows" attribute in TextArea with id: '+this._id+" can not be smaller than 1");return}this._ge().rows=i};L.get_rows=function(){return this._ge().rows};L.set_cols=function(i){if(i<1){I('"cols" attribute in TextArea with id: '+this._id+" can not be smaller than 1");return}this._ge().cols=i};L.get_cols=function(){return this._ge().cols};function Q(i){X.call(this,i);this.signal_focus=new M.Signal();this.signal_blur=new M.Signal();this.signal_change=new M.Signal();if(document.getElementById(i)){this.adopt_by_id(i)}}var O=Q.prototype;(new M.Type(Q)).extend(X);O.add_to_container=function(k){var j=this._get_DOM_representation();j.setAttribute("id",this._id);this._set_up_signals(j);var i=b._get(k);if(i){i.appendChild(j)}else{I("cannot add Select with id: "+this._id+" to container with id: "+k)}};O.adopt_by_id=function(i){var j=document.getElementById(i);if(g("Select",j,["select"],null,i)){this._id=i;this._set_up_signals(j)}};O._set_up_signals=function(j){var i=this;G(j,"blur",function(k){i.signal_blur.emit()},false);G(j,"focus",function(k){i.signal_focus.emit()},false);G(j,"change",function(k){i.signal_change.emit(i.get_value())},false);G(j,"click",function(k){i._handle_click_event(k)},false)};O._get_DOM_representation=function(){var i=f("select");return i};O.get_options=function(){return b.get_descendants(this._ge(),"option")};O.get_option=function(i){return(i<0)?null:this.get_options()[i]};O.remove_option=function(i){var j=this.get_option(i);if(j){return j.parentNode.removeChild(j)}else{return null}};O.get_index_of_option=function(n){var k=b.get_descendants(this._ge(),"option");for(var m=0,j=k.length;m<j;m++){if(k[m]===n){return m}}return -1};O.get_options_number=function(){return this.get_options().length};O.set_option=function(i,j,l){var k=this.get_option(i);if(k){k.value=j;b.clear(k);k.appendChild(W(l))}};O.set_option_selected=function(j,i){var k=this.get_option(j);if(k){k.selected=i?true:false;return true}else{return false}};O.set_option_selected_by_value=function(m,j){var k=this.get_options();for(var l=0;l<k.length;l++){if(k[l].value==m){this.set_option_selected(k[l],j);return true}}return false};O.set_value=function(j){var l=true;for(var k=0;k<j.length;k++){l=l&&this.set_option_selected_by_value(j[k],true)}return l};O.get_value=function(){var l=this.get_selected_options();if(!l){return[]}var k=[];for(var j=0;j<l.length;j++){k.push(l[j].value)}return k};O.get_selected_options=function(){var j=this.get_options(),l=[];for(var k=0;k<j.length;k++){if(j[k].selected){l.push(j[k])}}return l};O.get_selected_options_numbers=function(){var j=this.get_options(),l=[];for(var k=0;k<j.length;k++){if(j[k].selected){l.push(k)}}return l};O.insert_option=function(j,l,m){if(!this._ge()){return}if(j<-1){return}var i=f("option",{value:l},m);var k;if((j!=-1)&&(k=this.get_option(j))){k.parentNode.insertBefore(i,k);return j}else{this._ge().appendChild(i);return this.get_options_number()-1}};O.set_size=function(i){if(i<1){I('"size" attribute in Select with id: '+this._id+"can not be smaller than 1");return}this._ge().size=i};O.get_size=function(){return this._ge().size};O.set_multiple=function(i){if(i){this._ge().multiple=true}else{this._ge().multiple=false}};O.is_multiple=function(){return this._ge().multiple};function P(i){X.call(this,i);this.signal_focus=new M.Signal();this.signal_blur=new M.Signal();this.signal_click=new M.Signal();if(document.getElementById(i)){this.adopt_by_id(i)}}var H=P.prototype;(new M.Type(P)).extend(X);H.add_to_container=function(j){var k=this._get_DOM_representation();k.setAttribute("id",this._id);this._set_up_signals(k);var i=b._get(j);if(i){i.appendChild(k)}else{I("cannot add Button with id: "+this._id+" to container with id: "+j)}};H.adopt_by_id=function(i){var j=document.getElementById(i);if(g("Button",j,["button","input"],["button","submit","reset","image"],i)){this._id=i;this._set_up_signals(j)}};H._set_up_signals=function(j){var i=this;G(j,"blur",function(k){i.signal_blur.emit()},false);G(j,"focus",function(k){i.signal_focus.emit()},false);G(j,"click",function(l){i._handle_click_event(l);var m=i.signal_click.emit();for(var k=0;k<m.length;k++){if(m[k]===false){b.event.prevent_default(l)}}},false)};H._get_DOM_representation=function(){var i=f("input",{type:"button"});return i};H.set_value=function(i){this._ge().value=i};H.get_value=function(){return this._ge().value};H.set_src=function(j){var i=this._ge();if(i.tagName.toLowerCase()=="button"){I('you cannot set "src" on button element');return}i.src=j};H.get_src=function(){return this._ge().src};H.set_alt=function(j){var i=this._ge();if(i.tagName.toLowerCase()=="button"){I('you cannot set "alt" on button element');return}i.alt=j};H.get_alt=function(){return this._ge().alt};H._set_type=function(j){var i=this._ge();if(i.tagName.toLowerCase()=="button"){I('you cannot set "type" on button element with id: '+this._id+", for more information see DOM 2 HTML");return}try{i.type=j}catch(k){I('your browser doesn\'t support setting "type" on input with id: '+this._id+"\ncause: "+k)}};H._is_type=function(i){return this._ge().type==i};H.set_type_button=function(i){return i?this._set_type("button"):this._set_type("button")};H.is_type_button=function(){return this._is_type("button")};H.set_type_submit=function(i){return i?this._set_type("submit"):this._set_type("button")};H.is_type_submit=function(){return this._is_type("submit")};H.set_type_reset=function(i){return i?this._set_type("reset"):this._set_type("button")};H.is_type_reset=function(){return this._is_type("reset")};H.set_type_image=function(i){return i?this._set_type("image"):this._set_type("button")};H.is_type_image=function(){return this._is_type("image")};function A(l,k){M.widgets.GeneralWidget.call(this,l);var j=new Date(),i=this;this._lsd=[j.getFullYear(),j.getMonth()+1,j.getDate()];this._lsd_mark=[new M.calendar.DayMark(j.getFullYear(),j.getMonth()+1,j.getDate(),null),"",""];this._last_click_target=null;this._document_mousedown_handler=function(n){var m=n.target||n.srcElement;if(i._last_click_target==m){return}else{i.show(false)}};this._element_mousedown_handler=function(m){i._last_click_target=m.target||m.srcElement};this._last_visible;this._date_pattern="%y-%m-%d";this._today_date_pattern="%d. %nm %y";this._orientation="horizontal";this._day_marks=[];this._months="January|February|March|April|May|June|July|August|September|October|November|December".split("|");this._close_label="close";this._today_tooltip="today";this._first_day_of_week=1;k=k||{};this._colors={base_font:k.base_font||"black",light_font:k.light_font||"gray",background:k.background||"white",border:k.border||"gray"};this.signal_select=new M.Signal();this._s_prop_change=new M.Signal()}var E=A.prototype;(new M.Type(A)).extend(M.widgets.GeneralWidget);E.reset_date=function(){var i=new Date();this._lsd=[i.getFullYear(),i.getMonth()+1,i.getDate()];this._lsd_mark=null;this.move_to_date(i.getFullYear(),i.getMonth()+1)};E.add_to_container=function(k){var i=b._get(k);if(i){var j=this,l=this._get_DOM_representation();l.setAttribute("id",this._id);i.appendChild(l);this._s_prop_change.connect(function(){j.move_to_date(j._last_visible[0],j._last_visible[1])});this.move_to_date(this._lsd[0],this._lsd[1])}else{I("cannot add PopupCalendar with id: "+this._id+" to container with id: "+k)}};E._get_DOM_representation=function(){var i=f("div",{"class":"calendarbody",style:{display:"none",backgroundColor:this._colors.background,opacity:"0.95",border:"solid gray 1px",borderColor:this._colors.border,color:this._colors.base_font,position:"absolute",zIndex:"1000",top:"0",left:"0",width:"18em",margin:"0",padding:"3px",fontFamily:"sans-serif",fontSize:"12px",lineHeight:"1.2em"}});var k=f("div",{"class":"calendar-head",style:{textAlign:"center"}}),l=f("div",{"class":"calendar-table",style:{margin:"5px 0 "}}),j=f("div",{"class":"calendar-foot",style:{textAlign:"left",color:this._colors.light_font}});i.appendChild(k);i.appendChild(l);i.appendChild(j);return i};E._fire_date=function(j,k,i){this._lsd=[j,k,i];this._lsd_mark=[new M.calendar.DayMark(j,k,i,null),"",""];this.signal_select.emit(this.get_formated_date(),this.get_value());this.show(false)};E.set_date_format=function(i){if(i!=undefined&&i!=null){this._date_pattern=i}};E.set_today_date_format=function(i){if(i!=undefined&&i!=null){this._today_date_pattern=i;this._s_prop_change.emit()}};E.set_horizontal_orientation=function(i){if(i){this._orientation="horizontal"}else{this._orientation="vertical"}this._s_prop_change.emit()};E.set_month_names=function(i){if(i&&i.length&&(i.length==12)){this._months=i;this._s_prop_change.emit()}};E.set_close_label=function(i){if(i!=null&&i!=undefined){this._close_label=i;this._s_prop_change.emit()}};E.set_today_tooltip=function(i){if(i!=null&&i!=undefined){this._today_tooltip=i;this._s_prop_change.emit()}};E.set_first_day_of_week=function(i){if(i>0&&i<8){this._first_day_of_week=i;this._s_prop_change.emit()}};E.move_to_date=function(y,Ao){if(!(y&&Ao)){return}if(Ao<1||Ao>12){I("month parameter in PopupCalendar.move_to_date can not be: "+Ao);return}var w=this._ge(),Ab=this,Ac=this._months,Ap=Ao==12?y+1:y,Am=Ao==1?y-1:y,j=Ao==12?1:Ao+1,x=Ao==1?12:Ao-1,q=b.get_child(w,"div","calendar-head"),Ak=b.get_child(w,"div","calendar-table"),An=b.get_child(w,"div","calendar-foot");this._last_visible=[y,Ao];b.clear(q);b.clear(Ak);b.clear(An);var Af=f("div",{title:""+Ac[x-1]+" "+Am,style:{cursor:"pointer",cssFloat:"left",clear:"left",styleFloat:"left"}},"<<");G(Af,"click",function(t){Ab.move_to_date(Am,x)},false);var Ag=f("div",{title:""+Ac[j-1]+" "+Ap,style:{cursor:"pointer",cssFloat:"right",clear:"right",styleFloat:"right"}},">>");G(Ag,"click",function(t){Ab.move_to_date(Ap,j)},false);var n=f("div",{title:""+(y-1),style:{cursor:"pointer",color:this._colors.light_font,cssFloat:"left",clear:"left",styleFloat:"left",margin:"0 0 5px 0"}},""+(y-1));G(n,"click",function(t){Ab.move_to_date(y-1,Ao)},false);var Ae=f("div",{title:""+(y+1),style:{cursor:"pointer",color:this._colors.light_font,cssFloat:"right",clear:"right",styleFloat:"right",margin:"0 0 5px 0"}},""+(y+1));G(Ae,"click",function(t){Ab.move_to_date(y+1,Ao)},false);var u=f("div",{style:{fontWeight:"bold"}},Ac[Ao-1]+"");var Aj=f("div",{style:{fontWeight:"bold",margin:"0 0 5px 0"}},""+y);q.appendChild(n);q.appendChild(Ae);q.appendChild(Aj);q.appendChild(Af);q.appendChild(Ag);q.appendChild(u);var Aq=this._first_day_of_week,r=M.calendar.get_alternative_month_table(y,Ao,Aq);for(var s=r.length;s<6;s++){r.push([null,null,null,null,null,null,null])}if(this._orientation=="vertical"){r=M.calendar.transpose_month_table(r)}var z=f("table",{style:{width:"100%",cursor:"pointer",borderCollapse:"separate",margin:"0",background:"none",border:"none"}}),Ai=1,p;for(var s=0;s<r.length;s++){var k=z.insertRow(-1);k.style.background="none";k.style.border="none";for(var o=0;o<r[s].length;o++){var l=k.insertCell(-1);p=l.style;p.margin="0";p.border="none";p.background="none";p.textAlign="center";p.padding="0.1em 0";if((s==0)&&(this._orientation=="vertical")){l.setAttribute("width","16%")}Ai=(o+Aq-1)%7+1;if(this._orientation=="vertical"){Ai=(s+Aq-1)%7+1}if(!r[s][o]){l.innerHTML=".";l.style.color=this._colors.light_font}else{this._insert_day(l,y,Ao,r[s][o],Ai)}}}Ak.appendChild(z);var Al=new Date(),i=Al.getFullYear(),Ah=Al.getMonth()+1,v=Al.getDate();var Aa=f("div",{style:{cssFloat:"right",styleFloat:"right",cursor:"pointer"}}),Ad=f("span",{title:this._close_label,style:{fontWeight:"bold"}},this._close_label+" x");G(Ad,"click",function(t){Ab.show(false)},false);Aa.appendChild(Ad);An.appendChild(Aa);var m=f("div",{title:this._today_tooltip,style:{cursor:"pointer"}},this._format_date([i,Ah,v],this._today_date_pattern));G(m,"click",function(t){Ab._fire_date(i,Ah,v)},false);An.appendChild(m)};E._insert_day=function(i,n,o,k,m){var j=this,l=W(k);G(i,"click",function(q){j._fire_date(n,o,k)},false);i.style.border="solid white 1px";i.style.borderColor=this._colors.background;var p=this._find_day_mark(n,o,k,m);if(p){i.style.backgroundColor=p[1];i.style.color=p[2];i.setAttribute("title",p[0].get_tooltip())}G(i,"mouseover",function(q){i.style.borderColor=j._colors.base_font},false);G(i,"mouseout",function(q){i.style.borderColor=j._colors.background},false);i.appendChild(l)};E.add_weekend_day_marks=function(){this.add_day_marks(M.calendar.DayMark.get_weekend_day_marks(),"#d3700f","white")};E.add_today_day_mark=function(){var i=new Date();this.add_day_marks([new M.calendar.DayMark(i.getFullYear(),i.getMonth()+1,i.getDate(),null,"today")],this._colors.base_font,this._colors.background)};E.remove_day_mark=function(o){var n=this._day_marks;for(var m=0;m<n.length;m++){if(n[m][0]==o){var k=[];for(var l=0;l<n.length;l++){if(l!=m){k.push(this._day_marks[l])}}this._day_marks=k;this._s_prop_change.emit();return}}};E.remove_all_day_marks=function(){this._day_marks=[];this._s_prop_change.emit()};E.add_day_marks=function(j,m,l){for(var k=0;k<j.length;k++){this._day_marks.push([j[k],m,l]);this._s_prop_change.emit()}};E._find_day_mark=function(n,o,j,m){var l=this._day_marks;for(var k=l.length-1;k>=0;k--){if(l[k][0].match(n,o,j,m)){return l[k]}}return null};E.get_formated_date=function(){var i=this._lsd;if(i){return this._format_date(i,this._date_pattern)}else{return null}};E._format_date=function(j,i){return i.replace(/%y/g,j[0]).replace(/%m/g,j[1]).replace(/%d/g,j[2]).replace(/%fm/g,j[1]<10?"0"+j[1]:j[1]).replace(/%fd/g,j[2]<10?"0"+j[2]:j[2]).replace(/%nm/g,this._months[j[1]-1])};E.format_date=function(i,j){return this._format_date([i.getFullYear(),i.getMonth()+1,i.getDate()],j||this._date_pattern)};E.get_value=function(){var i=this._lsd;if(i){return new Date(i[0],i[1]-1,i[2])}else{return null}};E.is_visible=function(){return(this._ge().style.display!="none")};E.show=function(i){var j=this._ge();if(i){if(j.style.display=="none"){j.style.display="block";G(document,"mousedown",this._document_mousedown_handler,false);G(j,"mousedown",this._element_mousedown_handler,false);G(document,"keydown",this._document_mousedown_handler,false);G(j,"keydown",this._element_mousedown_handler,false)}}else{if(j.style.display!="none"){j.style.display="none";V(document,"mousedown",this._document_mousedown_handler,false);V(j,"mousedown",this._element_mousedown_handler,false);V(document,"keydown",this._document_mousedown_handler,false);V(j,"keydown",this._element_mousedown_handler,false)}}}})();

// panels
(function(){var G="jo2",J=window[G];var B={List:M,DefinitionList:L,Collapse:H,Tab:C};J.dependences([G+".log",G+".dom"],G+".widgets.panels");J.export_api(G+".widgets.panels",B);var N=J.dom,O=J.log,K=N._EL,F=function(P){O.error(P)};function M(S,P,Q,R){J.widgets.GeneralWidget.call(this,S);this.signal_data_request=new J.Signal();this.signal_data_paste=new J.Signal();this._data_offset=((P==undefined)||(P==null))?0:P;this._data_segment_size=((Q==undefined)||(Q==null))?10:Q;this._data_size=((R==undefined)||(R==null))?1:R;if(document.getElementById(S)){this.adopt_by_id(S)}}var I=M.prototype;(new J.Type(M)).extend(J.widgets.GeneralWidget);I.add_to_container=function(R,Q){var S=this._get_DOM_representation(Q);S.setAttribute("id",this._id);var P=N._get(R);if(P){P.appendChild(S)}else{F("cannot add List with id:"+this._id+" to container with id:"+R)}};I.adopt_by_id=function(P){var Q=document.getElementById(P);if(!Q){F("you try adopt not existing List element: "+P);return}if(!((Q.tagName.toLowerCase()=="ul")||(Q.tagName.toLowerCase()=="ol"))){F("you try adopt not valid List element (not ul or ol element): "+P);return}this._id=P};I._get_DOM_representation=function(Q){var S=K("ul"),P;for(var R=0;R<Q;R++){P=K("li");S.appendChild(P)}return S};I.get_panels_number=function(){return N.get_childs(this._ge(),"li").length};I.get_panel=function(P){if(P<0){return null}return N.get_childs(this._ge(),"li")[P]||null};I.insert_panel=function(Q){if(Q<-1){F("index for inserting new panel into List with id: "+this._id+" can not be smaller than -1");return null}var R=null,P=K("li");if((Q!=-1)&&(R=this.get_panel(Q))){R.parentNode.insertBefore(P,R)}else{this._ge().appendChild(P)}return P};I.get_index_of_panel=function(R){var P=N.get_childs(this._ge(),"li");for(var Q=0;Q<P.length;Q++){if(P[Q]===R){return Q}}return -1};I.remove_panel=function(P){var Q=this.get_panel(P);if(Q){Q.parentNode.removeChild(Q)}return Q};I.paste_data=function(P){var a=P.data,W=P.data_offset,Z=P.data_segment_size,T=P.data_size,X=P.order_column,U=P.order_direction;if((W!=undefined)&&(W>=0)){this._data_offset=W}if((Z!=undefined)&&(Z>0)){this._data_segment_size=Z}if((T!=undefined)&&(T>0)){this._data_size=T}if((a==null)||(a==undefined)||(a.length==undefined)||(a[0]==undefined)||(a[0].length==undefined)){if((a!=null)&&(a!=undefined)&&(a.length!=undefined)&&(a.length==0)){while(this.remove_panel(0)){}return}F("you try to paste corrupted data into list (not an array): "+a);return}var Q=a.length,S=this.get_panels_number();for(var b=0;b<Q;b++){if(b>=S){this.insert_panel(-1)}if(a[b][0]!=undefined){if(a[b][0].appendChild){var R=this.get_panel(b);N.clear(R);R.appendChild(a[b][0])}else{this.get_panel(b).innerHTML=a[b][0]}}else{this.get_panel(b).innerHTML=""}}if(Q<S){var Y=new Array();for(var b=Q;b<S;b++){Y.push(this.get_panel(b))}for(var V=0;V<Y.length;V++){this.remove_panel(this.get_index_of_panel(Y[V]))}}if((X!=undefined)&&(X!=null)&&(U!=undefined)&&(U!=null)){if(X==0){this._set_sortdirectionclass_of_list(U)}else{this._clear_sortdirectionclass_of_list()}}else{this._clear_sortdirectionclass_of_list()}this.signal_data_paste.emit(P)};I._clear_sortdirectionclass_of_list=function(){var P=this._ge();P.className=P.className.replace(/ ?ascending/g,"").replace(/ ?descending/g,"")};I._set_sortdirectionclass_of_list=function(P){var Q=this._ge(),R=(((!P)||(P==0))?" ascending":" descending");Q.className=Q.className.replace(/ ?ascending/g,"").replace(/ ?descending/g,"")+R};I.get_data_offset=function(){return this._data_offset};I.get_data_segment_size=function(){return this._data_segment_size};I.get_data_size=function(){return this._data_size};I._get_sortstatus_of_list=function(){var P=this._ge();if(P.className.indexOf("ascending")!=-1){return[0,0]}else{if(P.className.indexOf("descending")!=-1){return[0,1]}else{return[-1,0]}}};I._get_default_data_request_map=function(){var P=this._get_sortstatus_of_list();return{data_offset:this._data_offset,data_segment_size:this._data_segment_size,data_size:this._data_size,order_column:P[0],order_direction:P[1]}};I.set_data_offset=function(P){var Q=this._get_default_data_request_map();Q.data_offset=P;this.signal_data_request.emit(Q)};I.set_data_segment_size=function(P){var Q=this._get_default_data_request_map();Q.data_segment_size=P;this.signal_data_request.emit(Q)};I.set_order=function(Q,P){var R=this._get_default_data_request_map();R.order_column=Q;R.order_direction=P;this.signal_data_request.emit(R)};I.next_page=function(){var P=this._get_default_data_request_map();P.data_offset=this._data_offset+this._data_segment_size;this.signal_data_request.emit(P)};I.previous_page=function(){var P=this._data_offset-this._data_segment_size,Q=this._get_default_data_request_map();Q.data_offset=(P<0)?0:P;this.signal_data_request.emit(Q)};I.reload_page=function(){this.signal_data_request.emit(this._get_default_data_request_map())};function L(S,P,Q,R){J.widgets.GeneralWidget.call(this,S);this.signal_data_request=new J.Signal();this.signal_data_paste=new J.Signal();this.signal_panel_head_select=new J.Signal();this._head_listeners=[];this._data_offset=((P==undefined)||(P==null))?0:P;this._data_segment_size=((Q==undefined)||(Q==null))?10:Q;this._data_size=((R==undefined)||(R==null))?1:R;if(document.getElementById(S)){this.adopt_by_id(S)}}var A=L.prototype;(new J.Type(L)).extend(J.widgets.GeneralWidget);A.adopt_by_id=function(P){var Q=document.getElementById(P);if(!Q){F("you try adopt not existing DefinitionList element: "+P);return}if(Q.tagName.toLowerCase()!="dl"){F("you try adopt not valid DefinitionList element (not dl element): "+P);return}this._consolidate();this._id=P};A._get_DOM_representation=function(Q){var T=K("dl"),S,P;for(var R=0;R<Q;R++){S=K("dt");P=K("dd");T.appendChild(S);T.appendChild(P)}return T};A.add_to_container=function(S,R){var Q=this._get_DOM_representation(R);Q.setAttribute("id",this._id);var P=N._get(S);if(P){P.appendChild(Q);this._consolidate()}else{F("cannot add DefinitionList/Collapse with id:"+this._id+" to container with id:"+S)}};A._consolidate=function(){var V=this._head_listeners,R=this,U=this.get_panels_number();for(var T=0;T<V.length;T++){var P=V[T];N.remove_event_listener(P.element,P.type,P.listener,P.use_capture)}V=[];function Q(W){R.signal_panel_head_select.emit(R.get_index_of_panel(this),this)}for(var T=0;T<U;T++){var S=this.get_panel_head(T);if(S){var P={element:S,type:"click",listener:Q,use_capture:false};N.add_event_listener(P.element,P.type,P.listener,P.use_capture);V.push(P)}}this._head_listeners=V};A.get_panels_number=function(){return N.get_childs(this._ge(),"dt").length};A.get_panel_head=function(P){if(P<0){return null}var Q=N.get_childs(this._ge(),"dt");return Q[P]||null};A.get_panel=function(Q){if(Q<0){return null}var P=N.get_childs(this._ge(),"dd");return P[Q]||null};A.insert_panel=function(Q){if(Q<-1){F("index for inserting new panel into DefinitionList with id: "+this._id+" can not be smaller than -1");return null}var S=null,R=K("dt"),P=K("dd");if((Q!=-1)&&(S=this.get_panel_head(Q))){S.parentNode.insertBefore(R,S);S.parentNode.insertBefore(P,S)}else{this._ge().appendChild(R);this._ge().appendChild(P)}this._consolidate();return[R,P]};A.get_index_of_panel=function(Q){var P=N.get_childs(this._ge(),"dt");for(var R=0;R<P.length;R++){if(P[R]===Q){return R}}return -1};A.remove_panel=function(P){var Q=this.get_panel_head(P),R=this.get_panel(P);if(Q){Q=Q.parentNode.removeChild(Q);R=R.parentNode.removeChild(R);return[Q,R]}else{return null}};A.paste_data=function(P){var a=P.data,W=P.data_offset,Z=P.data_segment_size,T=P.data_size,X=P.order_column,U=P.order_direction;if((W!=undefined)&&(W>=0)){this._data_offset=W}if((Z!=undefined)&&(Z>0)){this._data_segment_size=Z}if((T!=undefined)&&(T>0)){this._data_size=T}if((a==null)||(a==undefined)||(a.length==undefined)||(a[0]==undefined)||(a[0].length==undefined)){if((a!=null)&&(a!=undefined)&&(a.length!=undefined)&&(a.length==0)){while(this.remove_panel(0)){}return}F("you try to paste corrupted data into definition list (not an array): "+a);return}var Q=a.length,S=this.get_panels_number();for(var b=0;b<Q;b++){if(b>=S){this.insert_panel(-1)}if(a[b][0]!=undefined){if(a[b][0].appendChild){var R=this.get_panel_head(b);N.clear(R);R.appendChild(a[b][0])}else{this.get_panel_head(b).innerHTML=a[b][0]}}else{this.get_panel_head(b).innerHTML=""}if(a[b][1]!=undefined){if(a[b][1].appendChild){var R=this.get_panel(b);N.clear(R);R.appendChild(a[b][1])}else{this.get_panel(b).innerHTML=a[b][1]}}else{this.get_panel(b).innerHTML=""}}if(Q<S){var Y=new Array();for(var b=Q;b<S;b++){Y.push(this.get_panel_head(b))}for(var V=0;V<Y.length;V++){this.remove_panel(this.get_index_of_panel(Y[V]))}}if((X!=undefined)&&(X!=null)&&(U!=undefined)&&(U!=null)){if(X==0){this._set_sortdirectionclass_of_definitionlist(U)}else{this._clear_sortdirectionclass_of_definitionlist()}}else{this._clear_sortdirectionclass_of_definitionlist()}this._consolidate();this.signal_data_paste.emit(P)};A._clear_sortdirectionclass_of_definitionlist=function(){var P=this._ge();P.className=P.className.replace(/ ?ascending/g,"").replace(/ ?descending/g,"")};A._set_sortdirectionclass_of_definitionlist=function(P){var Q=this._ge();var R=(((!P)||(P==0))?" ascending":" descending");Q.className=Q.className.replace(/ ?ascending/g,"").replace(/ ?descending/g,"")+R};A.get_data_offset=function(){return this._data_offset};A.get_data_segment_size=function(){return this._data_segment_size};A.get_data_size=function(){return this._data_size};A._get_sortstatus_of_definitionlist=function(){var P=this._ge();if(P.className.indexOf("ascending")!=-1){return[0,0]}else{if(P.className.indexOf("descending")!=-1){return[0,1]}else{return[-1,0]}}};A._get_default_data_request_map=function(){var P=this._get_sortstatus_of_definitionlist();return{data_offset:this._data_offset,data_segment_size:this._data_segment_size,data_size:this._data_size,order_column:P[0],order_direction:P[1]}};A.set_data_offset=function(P){var Q=this._get_default_data_request_map();Q.data_offset=P;this.signal_data_request.emit(Q)};A.set_data_segment_size=function(P){var Q=this._get_default_data_request_map();Q.data_segment_size=P;this.signal_data_request.emit(Q)};A.set_order=function(Q,P){var R=this._get_default_data_request_map();R.order_column=Q;R.order_direction=P;this.signal_data_request.emit(R)};A.next_page=function(){var P=this._get_default_data_request_map();P.data_offset=this._data_offset+this._data_segment_size;this.signal_data_request.emit(P)};A.previous_page=function(){var P=this._data_offset-this._data_segment_size,Q=this._get_default_data_request_map();Q.data_offset=(P<0)?0:P;this.signal_data_request.emit(Q)};A.reload_page=function(){this.signal_data_request.emit(this._get_default_data_request_map())};function H(T,Q,R,S){this.__dl_prototype=A;this.signal_before_collapse_panel=new J.Signal();this.signal_after_collapse_panel=new J.Signal();this.signal_after_expand_panel=new J.Signal();this.signal_before_expand_panel=new J.Signal();this._auto_hide_of_panels=true;L.call(this,T,Q,R,S);this._expandable=true;var P=this;this._panel_head_select=this.signal_panel_head_select.connect(function(U,V){if(P._expandable&&!(/ ?disabled/.test(V.className))){P.switch_expand(P.get_index_of_panel(V))}})}var E=H.prototype;(new J.Type(H)).extend(L);E.add_to_container=function(Q,P){this.__dl_prototype.add_to_container.call(this,Q,P);this.collapse_all()};E.adopt_by_id=function(P){var Q=document.getElementById(P);if(!Q){F("you try adopt not existing Collapse element: "+P);return}if(Q.tagName.toLowerCase()!="dl"){F("you try adopt not valid Collapse element (not dl element): "+P);return}this._id=P;this._consolidate();this.collapse_all()};E.set_autohide_of_panels=function(P){if(P){this._auto_hide_of_panels=true}else{this._auto_hide_of_panels=false}};E.insert_panel=function(Q,P){var R=this.__dl_prototype.insert_panel.call(this,Q,P);if(R&&this._expandable){this.switch_expand(this.get_index_of_panel(R[0]))}return R};E.collapse_all=function(){var Q=this.get_panels_number();for(var P=0;P<Q;P++){this.collapse_panel(P)}};E.expand_all=function(){var Q=this.get_panels_number();for(var P=0;P<Q;P++){this.expand_panel(P)}};E._set_expandable=function(P){if(P){this._expandable=true}else{this._expandable=false}};E.set_panel_disabled=function(Q,P){var R=this.get_panel_head(Q);if(!R){return}R.className=R.className.replace(/ ?disabled/g,"");if(P){R.className+=" disabled"}};E.switch_expand=function(P){var Q=this.get_panel_head(P);if(!Q){return}if(/ ?collapsed/.test(Q.className)){this.expand_panel(P)}else{this.collapse_panel(P)}};E.is_panel_expanded=function(P){var Q=this.get_panel_head(P);if(!Q){return false}if(/ ?collapsed/.test(Q.className)){return false}else{return true}};E.expand_panel=function(Q){var R=this.get_panel_head(Q),P=this.get_panel(Q);if(R&&P){if(/ ?expanded/.test(R.className)){return}this.signal_before_expand_panel.emit(Q,[R,P]);R.className=R.className.replace(/ ?collapsed/g,"");R.className+=" expanded";if(this._auto_hide_of_panels){P.style.display="block"}this.signal_after_expand_panel.emit(Q,[R,P])}};E.collapse_panel=function(Q){var R=this.get_panel_head(Q),P=this.get_panel(Q);if(R&&P){if(/ ?collapsed/.test(R.className)){return}this.signal_before_collapse_panel.emit(Q,[R,P]);R.className=R.className.replace(/ ?expanded/g,"");R.className+=" collapsed";if(this._auto_hide_of_panels){P.style.display="none"}this.signal_after_collapse_panel.emit(Q,[R,P])}};function C(P){J.widgets.GeneralWidget.call(this,P);this._tab_listeners=[];this.signal_after_show_panel=new J.Signal();this.signal_before_show_panel=new J.Signal();this.signal_after_hide_panel=new J.Signal();this.signal_before_hide_panel=new J.Signal();this._auto_hide_of_panels=true;if(document.getElementById(P)){this.adopt_by_id(P)}}var D=C.prototype;(new J.Type(C)).extend(J.widgets.GeneralWidget);D.add_to_container=function(R,Q){var S=this._get_DOM_representation(Q);S.setAttribute("id",this._id);var P=N._get(R);if(P){P.appendChild(S)}else{F("cannot add Tab with id:"+this._id+" to container with id:"+R)}this._set_showable(true);this._hide_all_panels(0);this.show_panel(0)};D.adopt_by_id=function(R){var Q=document.getElementById(R);if(!Q){F("you try adopt not existing Tab element: "+R);return}if(Q.tagName.toLowerCase()!="div"){F("you try adopt not valid Tab element (not div element): "+R);return}var S=N.get_childs(Q,"div").length,P=N.get_childs(N.get_child(Q,"ul"),"li").length;if(S!=P){F("adopting Tab element has inconsistent no. of divs ("+S+") and list elements ("+P+"): "+R);return}this._id=R;this._set_showable(true);this._hide_all_panels(0);this.show_panel(0)};D._get_DOM_representation=function(R){var U=K("div"),T=K("ul"),P,Q;for(var S=0;S<R;S++){P=K("li");T.appendChild(P)}U.appendChild(T);for(var S=0;S<R;S++){Q=K("div");U.appendChild(Q)}return U};D.set_autohide_of_panels=function(P){if(P){this._auto_hide_of_panels=true}else{this._auto_hide_of_panels=false}};D.get_panels_number=function(){return N.get_childs(this._ge(),"div").length};D.get_tab=function(P){if(P<0){return null}return N.get_childs(N.get_child(this._ge(),"ul"),"li")[P]||null};D.get_panel=function(P){if(P<0){return null}return N.get_childs(this._ge(),"div")[P]||null};D.insert_panel=function(S){if(S<-1){F("index for inserting new panel into Tab with id: "+this._id+" can not be smaller than -1");return null}var R=this.get_tab(S),T=this.get_panel(S),P=K("li"),Q=K("div");if((S!=-1)&&R&&T){R.parentNode.insertBefore(P,R);T.parentNode.insertBefore(Q,T)}else{N.get_child(this._ge(),"ul").appendChild(P);this._ge().appendChild(Q)}this._set_showable(true);if(this.get_panels_number()==1){this.show_panel(0)}else{this._hide_panel(this.get_index_of_panel(P))}return[P,Q]};D.get_index_of_panel=function(R){var P=N.get_childs(N.get_child(this._ge(),"ul"),"li");for(var Q=0;Q<P.length;Q++){if(P[Q]===R){return Q}}return -1};D.remove_panel=function(P){var Q=this.get_tab(P),S=this.get_panel(P);if(Q){var R=this.get_index_of_visible_panel();Q=Q.parentNode.removeChild(Q);S=S.parentNode.removeChild(S);if(P==R){this.show_panel(P>0?P-1:this.get_panels_number()-1)}return[Q,S]}else{return null}};D._set_showable=function(R){var U=this._tab_listeners;for(var T=0;T<U.length;T++){var P=U[T];N.remove_event_listener(P.element,P.type,P.listener,P.use_capture)}var Q=this,S=this.get_panels_number();U=[];function W(X){if(!(/ ?disabled/.test(this.className))){Q.show_panel(Q.get_index_of_panel(this))}}if(R){for(var T=0;T<S;T++){var V=this.get_tab(T);if(V){var P={element:V,type:"click",listener:W,use_capture:false};N.add_event_listener(P.element,P.type,P.listener,P.use_capture);U.push(P)}}}this._tab_listeners=U};D.set_panel_disabled=function(Q,P){var R=this.get_tab(Q);if(!R){return}R.className=R.className.replace(/ ?disabled/g,"");if(P){R.className+=" disabled"}};D.get_index_of_visible_panel=function(){var R=N.get_childs(N.get_child(this._ge(),"ul"),"li"),Q;for(var P=0;P<R.length;P++){Q=R[P];if(/ ?selected/.test(Q.className)){return P}}return -1};D.show_panel=function(Q){var R=this.get_tab(Q),P=this.get_panel(Q);if(R&&P){var S=this.get_index_of_visible_panel();if(Q==S){return}this._hide_panel(S);this.signal_before_show_panel.emit(Q,[R,P]);R.className=R.className.replace(/ ?selected/g,"");R.className+=" selected";if(this._auto_hide_of_panels){P.style.display="block"}this.signal_after_show_panel.emit(Q,[R,P])}};D._hide_all_panels=function(R){var Q=this.get_panels_number();for(var P=0;P<Q;P++){if(P!=R){this._hide_panel(P)}}};D._hide_panel=function(Q){var R=this.get_tab(Q),P=this.get_panel(Q);if(R&&P){this.signal_before_hide_panel.emit(Q,[R,P]);R.className=R.className.replace(/ ?selected/g,"");if(this._auto_hide_of_panels){P.style.display="none"}this.signal_after_hide_panel.emit(Q,[R,P])}};D.show_next_panel=function(){var R=this.get_index_of_visible_panel(),P=this.get_panels_number();if(R!=-1&&P>1){this._hide_panel(R);var Q=R+1;if(Q>=P){Q=0}this.show_panel(Q)}};D.show_previous_panel=function(){var R=this.get_index_of_visible_panel(),P=this.get_panels_number();if(R!=-1&&P>1){this._hide_panel(R);var Q=R-1;if(Q<0){Q=P-1}this.show_panel(Q)}}})();

// tables
(function(){var D="jo2",E=window[D];var A={Table:G};E.dependences([D+".log",D+".regexp"],D+".widgets.tables");E.export_api(D+".widgets.tables",A);var H=E.dom,I=E.log,F=H._EL,C=function(J){I.error(J)};function G(M,J,K,L){E.widgets.GeneralWidget.call(this,M);this.signal_data_request=new E.Signal();this.signal_data_paste=new E.Signal();this.signal_sort=new E.Signal();this.signal_rowselect=new E.Signal();this._key_local_sort=-1;this._key_remote_sort=-1;this._silent=false;this._data_offset=((J==undefined)||(J==null))?0:J;this._data_segment_size=((K==undefined)||(K==null))?10:K;this._data_size=((L==undefined)||(L==null))?1:L;this._header_listeners=[];this._row_listeners=[];if(document.getElementById(M)){this.adopt_by_id(M)}}var B=G.prototype;(new E.Type(G)).extend(E.widgets.GeneralWidget);B._set_silent=function(J){this._silent=J?true:false};B._resolve_after_silence=function(){this._consolidate()};B.add_to_container=function(K,N,L){var M=this._get_DOM_representation(N,L);M.setAttribute("id",this._id);var J=H._get(K);if(J){J.appendChild(M)}else{C("cannot add Table with id:"+this._id+" to container with id:"+K)}this._consolidate()};B.adopt_by_id=function(J){var K=document.getElementById(J);if(!K){C("you are trying adopt table from not existing element");return}if(K.tagName.toLowerCase()!="table"){C("you are trying adopt table from not table element");return}this._id=J;this._consolidate()};B._get_DOM_representation=function(T,N){var M=F("table"),K;for(var S=0;S<T;S++){K=M.insertRow(-1);for(var L=0;L<N;L++){var Q=K.insertCell(-1);Q.innerHTML=""}}var J=M.createCaption(),R=M.createTHead().insertRow(-1),O;for(var P=0;P<N;P++){O=F("th");R.appendChild(O)}return M};B._consolidate=function(){if(this._silent){return}var Q=this._ge(),R=this,O=this._header_listeners,K=this._row_listeners,S=Q.caption;if(!S){Q.createCaption()}function P(X){var W=R._get_index_of_column(this);var V=R._get_next_sortdirection_of_column(this);R.signal_sort.emit(W,V)}for(var L=0;L<O.length;L++){var J=O[L];H.remove_event_listener(J.element,J.type,J.listener,J.use_capture)}O=[];for(var L=0;L<this.get_columns_number();L++){var M=this.get_header(L);var J={element:M,type:"click",listener:P,use_capture:false};H.add_event_listener(J.element,J.type,J.listener,J.use_capture);O.push(J)}this._header_listeners=O;function N(Z){var Y=new Array();var W=R._get_index_of_row(this);var X=R.get_columns_number();for(var V=0;V<X;V++){Y.push(R.get_cell(W,V).innerHTML)}R.signal_rowselect.emit(W,Y)}for(var L=0;L<K.length;L++){var J=K[L];H.remove_event_listener(J.element,J.type,J.listener,J.use_capture)}K=[];var U=this.get_rows();for(var L=0;L<U.length;L++){var T=U[L];var J={element:T,type:"click",listener:N,use_capture:false};H.add_event_listener(J.element,J.type,J.listener,J.use_capture);K.push(J)}this._row_listeners=K;var U=Q.getElementsByTagName("tr");for(var L=1;L<U.length;L++){U[L].className=U[L].className.replace(/ ?even/g,"").replace(/ ?odd/g,"");if(((L-1)%2)==0){U[L].className+=" even"}else{U[L].className+=" odd"}}};B.get_row=function(J){return this._ge().getElementsByTagName("tr")[J+1]};B.get_header=function(K){var L=this._ge(),J=L.getElementsByTagName("tr")[0];if(!J){return null}var M=J.getElementsByTagName("th")[K];return M};B.get_cell=function(M,K){var L=this._ge(),J=L.getElementsByTagName("tr")[M+1];if(!J){return null}var N=J.getElementsByTagName("td")[K];return N};B.get_rows=function(){var K=this._ge(),M=K.getElementsByTagName("tr"),L=[];for(var J=1;J<M.length;J++){L.push(M[J])}return L};B.get_rows_number=function(){var J=this.get_rows();if(J){return J.length}else{return 0}};B.get_columns_number=function(){var K=this._ge(),J=K.getElementsByTagName("tr")[0];if(!J){return 0}return(J.getElementsByTagName("th").length)};B.set_caption=function(L){var K=this._ge(),J=K.caption;if(!J){return}J.innerHTML=L};B.remove_row_by_number=function(J){var L=this._ge(),K=L.getElementsByTagName("tr")[J+1];if(!K){return null}var M=K.parentNode.removeChild(K);this._consolidate();return M};B.remove_row=function(J){if(!J){return null}var K=J.parentNode.removeChild(J);this._consolidate();return K};B.insert_row=function(L,O){if(L<-1){return}var Q=this._ge();if(!O){if(Q.tBodies.length>0){O=Q.tBodies[0].insertRow(L==-1?-1:L+1)}else{O=Q.insertRow(L==-1?-1:L+1)}var N=this.get_columns_number();for(var K=0;K<N;K++){var M=O.insertCell(-1);M.innerHTML=""}this._consolidate();return O}var P=null;if((L!=-1)&&(P=this.get_row(L))){P.parentNode.insertBefore(O,P)}else{var J=Q.getElementsByTagName("tbody")[0];if(J){J.appendChild(O)}else{Q.appendChild(O)}}this._consolidate();return O};B.insert_column=function(N){if(N<-1){return}var Q=this._ge(),S=Q.getElementsByTagName("tr"),P=S[0],J=null,O=F("th");if((N!=-1)&&(J=P.getElementsByTagName("th")[N])){J.parentNode.insertBefore(O,J)}else{P.appendChild(O)}for(var M=1;M<S.length;M++){var R=S[M],K=null,L=F("td");if((N!=-1)&&(K=R.getElementsByTagName("td")[N])){K.parentNode.insertBefore(L,K)}else{R.appendChild(newRow)}}this._consolidate()};B.paste_data=function(J){if(!J){C("you try to paste unusable data_map ("+J+") into table with id: "+this._id);return}var X=J.data,R=J.data_offset,W=J.data_segment_size,M=J.data_size,T=J.order_column,P=J.order_direction;T=T<0?undefined:T;if((R!=undefined)&&(R>=0)){this._data_offset=R}if((W!=undefined)&&(W>0)){this._data_segment_size=W}if((M!=undefined)&&(M>0)){this._data_size=M}if((X==null)||(X==undefined)||(X.length==undefined)||(X[0]==undefined)||(X[0].length==undefined)){if((X!=null)&&(X!=undefined)&&(X.length!=undefined)&&(X.length==0)){while(this.remove_row_by_number(0)){}return}C("you try to paste corrupted data into table (not array): "+X);return}var K=X.length,O=this.get_columns_number(),U=this.get_rows_number();this._set_silent(true);for(var Y=0;Y<K;Y++){if(Y>=U){this.insert_row(-1)}for(var N=0;N<O;N++){if(X[Y][N]!=undefined){if(X[Y][N].appendChild){var L=this.get_cell(Y,N);H.clear(L);L.appendChild(X[Y][N])}else{this.get_cell(Y,N).innerHTML=X[Y][N]}}else{this.get_cell(Y,N).innerHTML=""}}}if(K<U){var V=new Array();for(var Y=K;Y<U;Y++){V.push(this.get_row(Y))}for(var Q=0;Q<V.length;Q++){this.remove_row(V[Q])}}this._set_silent(false);this._resolve_after_silence();if((T!=undefined)&&(T!=null)&&(P!=undefined)&&(P!=null)){var S=this.get_header(T);this._clear_sortdirectionclass_of_headers_but(S);if(!S){return}this._set_sortdirectionclass_of_header(S,P)}else{this._clear_sortdirectionclass_of_headers_but(null)}this.signal_data_paste.emit(J)};B.get_data_offset=function(){return this._data_offset};B.get_data_segment_size=function(){return this._data_segment_size};B.get_data_size=function(){return this._data_size};B._get_default_data_request_map=function(){var J=this._get_sortstatus_of_table();return{data_offset:this._data_offset,data_segment_size:this._data_segment_size,data_size:this._data_size,order_column:J[0],order_direction:J[1]}};B.set_data_offset=function(J){var K=this._get_default_data_request_map();K.data_offset=J;this.signal_data_request.emit(K)};B.set_data_segment_size=function(J){var K=this._get_default_data_request_map();K.data_segment_size=J;this.signal_data_request.emit(K)};B.set_order=function(K,J){var L=this._get_default_data_request_map();L.order_column=K;L.order_direction=J;this.signal_data_request.emit(L)};B.next_page=function(){var J=this._get_default_data_request_map();J.data_offset=this._data_offset+this._data_segment_size;this.signal_data_request.emit(J)};B.previous_page=function(){var J=this._data_offset-this._data_segment_size,K=this._get_default_data_request_map();K.data_offset=(J<0)?0:J;this.signal_data_request.emit(K)};B.reload_page=function(){this.signal_data_request.emit(this._get_default_data_request_map())};B.set_sortable=function(K){if(K){if(this._key_local_sort!=-1){this.sort_by_column_number(0,0);return}this.set_request_sortable(false);var J=this;this._key_local_sort=this.signal_sort.connect(J,J.sort_by_column_number);this.sort_by_column_number(0,0)}else{if(this._key_local_sort==-1){return}this.signal_sort.disconnect(this._key_local_sort);this._clear_sortdirectionclass_of_headers_but(null);this._key_local_sort=-1}};B.set_request_sortable=function(K){if(K){if(this._key_remote_sort!=-1){return}this.set_sortable(false);var J=this;this._key_remote_sort=this.signal_sort.connect(J,J.set_order)}else{if(this._key_remote_sort==-1){return}this.signal_sort.disconnect(this._key_remote_sort);this._clear_sortdirectionclass_of_headers_but(null);this._key_remote_sort=-1}};B._get_index_of_column=function(M){var J=0,L=this.get_columns_number();for(var K=0;K<L;K++){if(this.get_header(K)==M){J=K}}return J};B._get_index_of_row=function(L){var M=0,J=this.get_rows_number();for(var K=0;K<J;K++){if(this.get_row(K)==L){M=K}}return M};B._clear_sortdirectionclass_of_headers_but=function(L){var K=this.get_columns_number(),M;for(var J=0;J<K;J++){M=this.get_header(J);if(M!=L){M.className=M.className.replace(/ ?ascending/g,"").replace(/ ?descending/g,"")}}};B._set_sortdirectionclass_of_header=function(J,K){var L=(((!K)||(K==0))?" ascending":" descending");J.className=J.className.replace(/ ?ascending/g,"").replace(/ ?descending/g,"")+L};B._get_sortdirectionclass_of_header=function(J){if(J.className.indexOf("ascending")!=-1){return 0}else{if(J.className.indexOf("descending")!=-1){return 1}else{return undefined}}};B._get_next_sortdirection_of_column=function(J){var K=this._get_sortdirectionclass_of_header(J);K=((K==undefined)||(K!=0))?0:1;return K};B._get_sortstatus_of_table=function(){var K=this.get_columns_number();for(var J=0;J<K;J++){var M=this.get_header(J),L=this._get_sortdirectionclass_of_header(M);if(L!=undefined){return[J,L]}}return[-1,0]};B.sort_by_column=function(J,K){if(!J){return}this.sort_by_column_number(this._get_index_of_column(J),K);return};B.sort_by_column_number=function(O,L){var N=[];if((O<0)||(O>=this.get_columns_number())){return}if(this.get_rows_number()<1){return}var P=this.get_header(O);this._clear_sortdirectionclass_of_headers_but(P);this._set_sortdirectionclass_of_header(P,L);var J=this.get_rows_number();for(var K=0;K<J;K++){N.push([this.get_cell(K,O).innerHTML.replace(/<[^<>]>/g,""),this.get_row(K)])}function M(Y,X){var U=Y[0],Q=X[0],V=(new RegExp("^"+E.regexp.number+"$","")).test(U),T=(new RegExp("^"+E.regexp.number+"$","")).test(Q);if(V&&T){var W=parseFloat(U),R=parseFloat(Q);if(W<R){return 1}if(W>R){return -1}if(W==R){return 0}}else{var S=[U,Q];S.sort();if(S[0]==U){return 1}else{return -1}}}N.sort(M);if(L!=0){N.reverse()}this._set_silent(true);for(var K=0;K<N.length;K++){this.insert_row(0,this.remove_row(N[K][1]))}this._set_silent(false);this._resolve_after_silence()}})();

// tree widgets
(function(){var G="jo2",I=window[G];var B={create_menu:M,create_tree:K,Tree:E,APITree:H};I.dependences([],G+".widgets.trees");I.export_api(G+".widgets.trees",B);var N=I.dom,P=I.log,J=N._EL,O=N._TXT,F=function(Q){P.error(Q)};function C(R,S,T,Q){return N.add_event_listener(R,S,T,Q)}function A(Q){if(Q){return"/"+Q.join("/")}else{return""}}function M(Q,R){var S=R.vertex_anchor_class;return K(Q,R,function(V,U){var T=J("a",{href:U.href},J("span",null,U.label));if(U["class"]){T.className=U["class"]}if(U.id){T.setAttribute("id",U.id)}if(U.tooltip){T.setAttribute("title",U.tooltip)}if(U.child_nodes){T.className+=S?S:""}return T})}function K(Q,Y,X){var T=J("ul"),U=Y.subtree_class;for(var S=0;S<Q.length;S++){var R=Q[S];var W=J("li");T.appendChild(W);W.appendChild(X(W,R));if(R.child_nodes){var V=K(R.child_nodes,Y,X);V.className=U?U:"";W.appendChild(V)}}return T}function E(Q){I.widgets.GeneralWidget.call(this,Q);this.signal_before_collapse=new I.Signal();this.signal_after_collapse=new I.Signal();this.signal_after_expand=new I.Signal();this.signal_before_expand=new I.Signal();this._auto_hide_sub=true;this._model={vertex:true,root:true,child_nodes:null};this.set_node_renderer(null)}var L=E.prototype;(new I.Type(E)).extend(I.widgets.GeneralWidget);L.add_to_container=function(S){var R=N._get(S);if(R){var Q=J("ul",{id:this._id});R.appendChild(Q)}else{F("cannot add Tree with id:"+this._id+" to container with id:"+S)}};L.set_node_renderer=function(Q){if(Q){this._node_renderer_function=Q}else{this._node_renderer_function=function(R,V,U,T){var S=J("span",null,T.label);if(!(T.leaf)){C(S,"click",function(W){R.switch_expand_by_path(V)},false)}U.appendChild(S)}}};L.set_autohide_of_subtrees=function(Q){if(Q){this._auto_hide_sub=true}else{this._auto_hide_sub=false}};L._get_parent_of_node_on_path=function(T){if(T.length==0){return null}else{var S=[];for(var R=0,Q=(T.length-1);R<Q;R++){S.push(T[R])}return this._get_node_on_path(S)}};L._get_node_on_path=function(R){if(R.length==0){return this._model}else{return Q(this._model,R)}function Q(S,X){if(X.length==0){return S}var V=X[0],W=[];for(var T=1;T<X.length;T++){W.push(X[T])}if(S.vertex&&S.child_nodes){for(var T=0;T<S.child_nodes.length;T++){var U=S.child_nodes[T];if(U.name==V){return Q(U,W)}}}else{return null}}};L.remove_node=function(W){if(W.length==0){F("You are not allowed to remove root node from Tree with id: "+this._id);return}var U=this._get_node_on_path(W);if(!U){F("There is no node to remove on path: "+A(W)+" in Tree with id: "+this._id);return}var T=this.get_node(W),S=this._get_parent_of_node_on_path(W),Q=U.li_element;N.clear(Q);Q.parentNode.removeChild(Q);var V=S.child_nodes,X=[];for(var R=0;R<V.length;R++){if(V[R].name!=U.name){X.push(V[R])}}S.child_nodes=X;return T};L.get_node=function(S,Q){var R=this._get_node_on_path(S);if(Q!=undefined&&Q<1){F("max_depth parameter can not be (smaller than 1): "+Q+" in Tree with id: "+this._id);return}if(!R){F("There is no node to copy on path: "+A(S)+" in Tree with id: "+this._id);return}function T(W,U){var Y=null;if(!(U!=undefined&&U<=1)){var X=U!=undefined?U-1:U;if(W.vertex&&W.child_nodes){Y=[];for(var V=0;V<W.child_nodes.length;V++){Y.push(T(W.child_nodes[V],X))}}}if(W.root){return{child_nodes:Y,leaf:false}}else{return{name:W.name,child_nodes:Y,label:W.label,leaf:!(W.vertex),data:W.data}}}return T(R,Q)};L.append_node=function(U,Q){var X=this._get_node_on_path(U);if(!X){F("There is no parent node, to paste new node in, on path: "+A(Y)+" in Tree with id: "+this._id);return}if(!(X.vertex)){F("You can not append node to leaf node, in Tree with id: "+this._id);return}if(!(Q.name)||Q.root){F("You can not append root node or node without name in Tree with id: "+this._id);return}var T;if(X.root){T=this._ge()}else{var R=X.li_element;T=N.get_child(R,"ul")}var W=J("li");T.appendChild(W);var Y=[];for(var S=0;S<U.length;S++){Y.push(U[S])}Y.push(Q.name);this._node_renderer_function(this,Y,W,Q);if(!(X.child_nodes)){X.child_nodes=[]}X.child_nodes.push({name:Q.name,child_nodes:null,label:Q.label,vertex:!(Q.leaf),data:Q.data,li_element:W});if(!(Q.leaf)){var V=J("ul");W.appendChild(V);W.className+=" vertex";this.switch_expand_by_path(Y)}if(!(Q.leaf)&&Q.child_nodes){for(var S=0;S<Q.child_nodes.length;S++){this.append_node(Y,Q.child_nodes[S])}}};L.clear_node=function(X){var W=this._get_node_on_path(X);if(!W){F("There is no node to clear on path: "+A(X)+" in Tree with id: "+this._id);return}if(!(W.child_nodes)||!(W.vertex)){return}for(var T=0,R=W.child_nodes.length;T<R;T++){var V=W.child_nodes[T],S=[];for(var Q=0,U=X.length;Q<U;Q++){}S.push(X[Q]);S.push(V.name);this.remove_node(S)}};L.switch_expand_by_path=function(S){var R=this._get_node_on_path(S);if(!(R)){F("There is no node to switch expand on path: "+A(S)+" in Tree with id: "+this._id);return}if(R.root){return}var Q=R.li_element;if(/ ?collapsed/.test(Q.className)){this.expand_by_path(S)}else{this.collapse_by_path(S)}};L.expand_by_path=function(T){var R=this._get_node_on_path(T);if(!(R)){F("There is no node to expand on path: "+A(T)+" in Tree with id: "+this._id);return}if(R.root||!(R.vertex)){return}var Q=R.li_element,S=N.get_child(Q,"ul");if(/ ?expanded/.test(Q.className)){return}this.signal_before_expand.emit(T,Q,S);Q.className=Q.className.replace(/ ?collapsed/g,"");Q.className+=" expanded";if(this._auto_hide_sub){S.style.display="block"}this.signal_after_expand.emit(T,Q,S)};L.collapse_by_path=function(T){var R=this._get_node_on_path(T);if(!(R)){F("There is no node to collapse on path: "+A(T)+" in Tree with id: "+this._id);return}if(R.root||!(R.vertex)){return}var Q=R.li_element,S=N.get_child(Q,"ul");if(/ ?collapsed/.test(Q.className)){return}this.signal_before_collapse.emit(T,Q,S);Q.className=Q.className.replace(/ ?expanded/g,"");Q.className+=" collapsed";if(this._auto_hide_sub){S.style.display="none"}this.signal_after_collapse.emit(T,Q,S)};function H(Q){I.widgets.GeneralWidget.call(this,Q);this._tree=new E(Q);this._obj=null;this._def_doc_suf="__doc__";this._def_private_mp="^_.*$";this._def_obj_mp="^[A-Z].*$";this._doc_suffix=this._def_doc_suf;this._private_mp=this._def_private_mp;this._object_mp=this._def_obj_mp;this._show_private=false}var D=H.prototype;(new I.Type(H)).extend(I.widgets.GeneralWidget);D.set_show_private_members=function(Q){Q=Q?true:false;if(this._obj&&(Q==this._show_private)){this._show_private=Q;this._recreate()}else{this._show_private=Q}};D.set_doc_suffix=function(Q){this._doc_suffix=Q?Q:this._def_doc_suf};D.set_private_member_pattern=function(Q){this._private_mp=Q?Q:this._def_private_mp};D.set_object_member_pattern=function(Q){this._object_mp=Q?Q:this._def_obj_mp};D.set_object=function(Q){if(this._obj&&this._obj!=Q){this._obj=Q;this._recreate()}else{this._obj=Q}};D._recreate=function(){if(this._tree){this._tree.clear_node([]);this._fill([],this._obj)}};D.add_to_container=function(T){if(this._obj==null){F("You have to set object of APITree (id: "+this._id+") via set_object() before calling add_to_container()");return}var R=this._tree,Q=this._doc_suffix,S=this;R.add_to_container(T);R.set_node_renderer(function(l,k,V,W){var i=null,Z=W.data.object,j=W.data.member,U=true;try{i=Z[j]}catch(a){U=false}var h;try{h=Z[j.toString()+Q]?Z[j.toString()+Q]:i&&i[Q]?i[Q]:{}}catch(a){h={}}var c;if(h.text){c=J("div",{"class":"doc"});c.innerHTML=h.text}else{c=O("")}var g=J("span"),b;if(U&&typeof(i)=="object"){g.className="object";if(!W.leaf){b=J("a",{href:"javascript: void(0);"},j.toString());C(b,"click",function(m){l.switch_expand_by_path(k)},false);W.data.value=i}else{b=O(j.toString())}}else{if(U&&typeof(i)=="function"){g.className="function";var Y;if(i.toString().match(/\[native code\]/g)){Y=j+"()"}else{var X;if(h.params){X="("+h.params+")"}else{X=i.toString().replace(/[\n\t ]+/g," ").replace(/{.*}/,"").replace(/[^\(]*\(([^\(]*)\)[^\(]*/,"($1)")}Y=j+X}if(S._is_name_object(j.toString())){g.className="object";b=J("a",{href:"javascript: void(0);"},Y);C(b,"click",function(m){l.switch_expand_by_path(k)},false);var f=null;try{f=new i()}catch(a){}W.data.value=i;W.data.dynamic_value=f}else{b=O(Y)}}else{var d="";if(U){g.className="variable"}else{d=" (!Unable to Evaluate)"}b=O(j.toString()+d)}}g.appendChild(b);V.appendChild(g);V.appendChild(c);if(W.data.dynamic){V.className+=" dynamic"}else{V.className+=" static"}});R.signal_before_expand.connect(function(Z,Y,V){var W=R.get_node(Z,2);if(!(W.leaf||W.child_nodes)){var X=W.data.value;var U=W.data.dynamic_value;if(X){S._fill(Z,X,false)}if(U){S._fill(Z,U,true)}}});this._fill([],this._obj)};D._fill=function(X,W,V){var R=false,Q=[];try{for(var T in W){Q.push(T.toString());if(T.toString()=="prototype"){R=true}}}catch(U){Q=[]}Q.sort();for(var S=0;S<Q.length;S++){if(!this._is_name_private(Q[S])){this._tree.append_node(X,{name:Q[S],leaf:this._is_leaf(W,Q[S]),data:{object:W,member:Q[S],dynamic:V?true:false}})}}if((!R)&&(W.prototype)){this._tree.append_node(X,{name:Q[S],leaf:false,data:{object:W,member:"prototype",dynamic:V?true:false}})}};D._is_leaf=function(Q,V){var T=null;try{T=Q[V]}catch(U){return true}if(typeof(T)=="object"){var S=true;try{for(var R in T){S=false}}catch(U){}if(!S){return false}}else{if(typeof(T)=="function"){if(this._is_name_object(V.toString())){return false}}}return true};D._is_name_private=function(R){var S=new RegExp(this._doc_suffix,"");if(this._show_private){return S.test(R)}else{var Q=new RegExp(this._private_mp,"");return S.test(R)||Q.test(R)}};D._is_name_object=function(Q){return(new RegExp(this._object_mp,"")).test(Q)}})();