

window.ltk=window.ltk||{};(function(){if('_ltk_version'in ltk)return;var userAgent=navigator.userAgent.toLowerCase();var uniq_id=0;var logger_url='';ltk={_ltk_version:'0.1',browser:{'version':(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],'safari':(/webkit/.test(userAgent)),'opera':(/opera/.test(userAgent)),'msie':(/msie/.test(userAgent)&&!(/opera/.test(userAgent))),'msie6':false,'mozilla':(/mozilla/.test(userAgent)&&!(/(compatible|webkit)/.test(userAgent)))},closure:function(param,cb)
{return function(){var args=[param];args=args.concat([].splice.call(arguments,0));return cb.apply(window,args);};},proxy:function(cb)
{return(function(){var stored=null;return function(){if(stored===null){var args=[].splice.call(arguments,0);stored=cb.apply(window,args);}
return stored;}})();},compare:function(obj1,obj2)
{for(p in obj1){if(!(p in obj2)){return false;}else if(typeof obj1[p]!==typeof obj2[p]){return false;}
switch(typeof obj1[p]){case'object':if(!ltk.compare(obj1[p],obj2[p])){return false}
break;case'function':break;default:if(obj1[p]!=obj2[p]){return false;}}}
for(p in obj2){if(!(p in obj1)){return false;}}
return true;},backtrace:(function()
{var r=function(){};if('console'in window){if('trace'in console){r=function(){console.trace();};}else if('log'in console){r=function(){}}}
return r;})(),include:(function(){var included={};return function(url,type)
{type=(url.substr(-4)=='.css'?'css':(url.substr(-3)=='.js'?'js':(typeof type!='undefined'?type:'js')));var ref;if(!(url in included[url])){switch(type){case'js':ref=ltk.dom.create('script');ref.setAttribute('type','text/javascript');ref.setAttribute('src',filename);ltk.dom.get('head').insert(ref);break;case'css':ref=ltk.dom.create('style');ref.setAttribute('rel','stylesheet');ref.setAttribute('type','text/css');ref.setAttribute('href',filename);ltk.dom.get('head').insert(ref);break;default:throw'unknown type "'+type+'"';}}}})(),addCSS:function(css)
{var style=ltk.dom.create('STYLE',{'type':'text/css'});if(style.styleSheet){style.styleSheet.cssText=css;}else{style.setProperties({'#text':css});}
ltk.dom.one('HEAD').appendChild(style);},clone:function(obj)
{var i,cnt,o;if(typeof obj!=='object'||obj===null){return obj;}else{if(obj instanceof Array){o=[];for(i=0,cnt=obj.length;i<cnt;++i){o[i]=ltk.clone(obj[i]);}}else{o={};for(i in obj){o[i]=ltk.clone(obj[i]);}}}
return o;},isEmpty:function(obj)
{var ret=true;if(obj instanceof Array){ret=(obj.length===0);}else{for(var i in obj){if(obj.hasOwnProperty(i)){ret=false;break;}}}
return ret;},extend:function(dest,source)
{dest=(typeof dest!='object'?{}:dest);for(var i in source){dest[i]=source[i];}
return dest;},getUniqID:function(prefix)
{prefix=(typeof prefix=='undefined'?'':prefix);return prefix+(++uniq_id);},errorlog:function(enabled,url)
{if(enabled){logger_url=url||logger_url;if((logger_url=url||logger_url)){window.error=function(msg,url,line){var p='?description='+encodeURIcomponent(msg)+'&url='+encodeURIcomponent(url)+'&line='+encodeURIcomponent(line)+'&parent_url='+encodeURIcomponent(document.location.href)+'&user_agent='+encodeURIcomponent(navigator.userAgent);(new Image()).src=logger_url+p;}}}else{window.error=function(msg,url,line){};}}};})();
;(function(){if('chain'in ltk)return;ltk.chain=function()
{this.chain=[];}
ltk.chain.prototype.addCallback=function(cb,ms)
{var vec=cb;var me=this;if(typeof ms!='undefined'){cb=function(thread,step){window.setTimeout(function(){if(vec(step)){cb(thread,step);}else{thread.next();}},ms);}}else{cb=function(thread,step){vec(step);thread.next();}}
this.chain.push(cb);}
ltk.chain.prototype.execute=function()
{var me=this;var thread=(new function(){var step=0;this.next=function(){if(step<me.chain.length){++step;me.chain[step-1](this,step);}else{thread=undefined;}}});window.setTimeout(function(){thread.next();},0);}})();
;(function(){if('cookie'in ltk)return;var instance={};ltk.cookie=function(name,expires,path,domain,secure)
{if(!(name in instance)){instance[name]=this;this.name=name;expires=parseInt(expires,10);this.expires=(isNaN(expires)?0:expires);this.path=path||'';this.domain=domain||'';this.secure=secure||false;}
return instance[name];}
ltk.cookie.prototype.get=function()
{var pos=document.cookie.indexOf(this.name+'=');var len=pos+this.name.length+1;if((!pos&&this.name!=document.cookie.substring(0,this.name.length))||pos<-1){return null;}
var end=document.cookie.indexOf(';',len);if(end==-1){end=document.cookie.length;}
return unescape(document.cookie.substring(len,end));}
ltk.cookie.prototype.set=function(value)
{var date;if(isNaN(parseInt(this.expires,10))||this.expires===0){date=0;}else{date=new Date();date.setTime(date.getTime()+this.expires);date=date.toGMTString();}
var str=this.name+'='+escape(value)+
(this.expires?';expires='+date:'')+
(this.path?';path='+this.path:'')+
(this.domain?';domain='+this.domain:'')+
(this.secure?';secure':'');document.cookie=str;}
ltk.cookie.prototype.remove=function()
{document.cookie=this.name+'='+
(this.path?';path='+this.path:'')+
(this.domain?';domain='+this.domain:'')+';expires=Thu, 01-Jan-70 00:00:01 GMT';}})();
;(function(){if('dom'in ltk)return;ltk.dom={ready:(function()
{var is_bound=false;var is_ready=false;var queue=[];function _ready(){if(!is_ready){is_ready=true;for(var i=0,len=queue.length;i<len;++i){queue[i]();}
queue=[];}}
function _bind(){if(is_bound)return;is_bound=true;if(document.addEventListener&&!ltk.browser.opera){document.addEventListener("DOMContentLoaded",_ready,false);}
if(ltk.browser.msie&&window==top){(function(){if(is_ready)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}
_ready();})();}
if(ltk.browser.opera){document.addEventListener("DOMContentLoaded",function(){if(is_ready)return;for(var i=0,len=document.styleSheets.length;i<len;++i){if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}}
_ready();},false);}
if(ltk.browser.safari){var cnt_styles;(function(){if(is_ready)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}
if(cnt_styles===undefined){var links=document.getElementsByTagName("link");for(var i=0,len=links.length;i<len;++i){if(links[i].getAttribute('rel')=='stylesheet'){++cnt_styles;}}
var styles=document.getElementsByTagName("style");cnt_styles+=styles.length;}
if(document.styleSheets.length!=cnt_styles){setTimeout(arguments.callee,0);return;}
domReady();})();}
if(typeof window.onload!='function'){window.onload=_ready;}else{var vec=window.onload;window.onload=function(){vec();_ready();}}};return function(cb){_bind();if(is_ready){cb();}else{queue.push(function(){return cb();});}}})(),get:function(obj,parent)
{var r=new ltk.dom.nodelist([]);var i,len;if(!parent||!(parent instanceof ltk.dom.node)){parent=document;}else{parent=parent.node;}
if(obj instanceof Array){for(i=0,len=obj.length;i<len;++i){r.concat(this.get(obj[i],parent));}}else{if(typeof obj=='object'&&obj instanceof DOMNode){r.concat([obj]);}else if(typeof obj=='string'){r.concat(Sizzle(obj,parent));}else if(obj instanceof Array){for(i=0,len=obj.length;i<len;++i){r.concat(Sizzle(obj,parent));}}}
return r;},one:function(obj,parent)
{return this.first(obj,parent);},first:function(obj,parent)
{return this.get(obj,parent).first();},last:function(obj,parent)
{return this.get(obj,parent).last();},create:function(tag,def)
{def=def||{};function _get_tag(def){var tag='';if(typeof def=='object'){for(var i in def){tag=i;break;}}
return tag;}
function _build(tag,def){var i,len,tmp;var node=new ltk.dom.node(document.createElement(tag));node.setProperties(def);if('children'in def&&def['children']instanceof Array){for(i=0,len=def['children'].length;i<len;++i){if((tmp=_get_tag(def['children'][i]))!==''){node.appendChild(_build(tmp,def['children'][i][tmp]));}}}
return node;}
return _build(tag,def);},getScrollbarWidth:(function()
{var width=null;return function(){if(width===null){var inner;var outer=ltk.dom.one('body').appendChild(ltk.dom.create('div',{'styles':{'position':'absolute','top':'0','left':'0','visibility':'hidden','width':'200px','height':'150px','overflow':'hidden'},'children':[{'p':{'#trigger':function(node){inner=node;},'styles':{'width':'100%','height':'200px'}}}]}));var w1=inner.node.offsetWidth;outer.setStyle('overflow','scroll');var w2=inner.node.offsetWidth;if(w1==w2)w2=outer.node.clientWidth;outer.removeNode();width=(w1-w2);}
return width;};})(),getViewport:function()
{var viewport={'w':null,'h':null};if(window.innerHeight!=window.undefined){viewport.h=window.innerHeight;viewport.w=window.innerWidth;}else if(document.compatMode=='CSS1Compat'){viewport.h=document.documentElement.clientHeight;viewport.w=document.documentElement.clientWidth;}else if(document.body){viewport.h=document.body.clientHeight;viewport.w=document.body.clientWidth;}
return viewport;}}})();

(function(){if('node'in ltk.dom)return;var data_disabled={'embed':true,'object':true,'applet':true};var data_store={};function cleanup(e){var i,len,tmp=e.attributes;if(tmp){for(i=0,len=tmp.length;i<len;++i){if(typeof e[tmp[i].name]==='function'){e[tmp[i].name]=null;}}}
if((tmp=e.childNodes)){for(i=0,len=tmp.length;i<len;++i){cleanup(tmp[i]);}}}
ltk.dom.node=function(node)
{this.node=node;}
ltk.dom.node.prototype.getTextContent=function()
{var ret='';if('textContent'in this.node){ret=this.node.textContent;}else if('text'in this.node){ret=this.node.text;}else if(this.node.childNodes.length>0&&this.node.firstChild.nodeType==3){ret=this.node.firstChild.nodeValue;}
return ret;}
ltk.dom.node.prototype.getContentDocument=function()
{var docroot=null;if(this.node.contentDocument){docroot=this.node.contentDocument;}else if(obj.contentWindow){docroot=this.node.contentWindow;}else if(obj.document){docroot=this.node.document;}
return(docroot?new ltk.dom.node(docroot):null);}
ltk.dom.node.prototype.getComputedStyle=function(property)
{var value='';var style,i;if(window.getComputedStyle){style=window.getComputedStyle(this.node,null);value=style.getPropertyValue(property);}else if(this.node.currentStyle&&property.substr(0,1)!='-'){var tmp=property.split('-');property=tmp[0];for(i=1;i<tmp.length;i++){property+=tmp[i].substr(0,1).toUpperCase()+tmp[i].substr(1,tmp[i].length);}
value=this.node.currentStyle[property];}else if(document.defaultView){style=document.defaultView.getComputedStyle(this.node,null);value=style.getPropertyValue(property);}
if(typeof value==='undefined'){value='';}else if(typeof value==='number'){value=toString(value);}
if(value.indexOf('rgb')>-1&&value.indexOf('rgba')<0){value=value.split('(')[1].split(')')[0].split(',');for(i=0;i<3;i++){value[i]=('0'+parseInt(value[i],10).toString(16)).substr(-2);}
value='#'+value.join('');}
if(value.substr(0,1)=='#'&&value.length==4){value='#'+value.substr(1,1)+value.substr(1,1)+
value.substr(2,1)+value.substr(2,1)+
value.substr(3,1)+value.substr(3,1);}
return value;}
ltk.dom.node.prototype.getBackgroundColor=function(transparent)
{transparent=(typeof transparent!='undefined'?!!transparent:false);var color='#ffffff';var obj=this.node;while(obj.parentNode){obj=obj.parentNode;tmp=ltk.dom.node.prototype.getComputedStyle.apply({'node':obj},'background-color');if(tmp.substr(0,1)=='#'){color=tmp;break;}else if(tmp=='transparent'&&transparent){color=tmp;break;}}
return color;}
ltk.dom.node.prototype.getOpacity=function()
{var opacity=this.getComputedStyle('opacity');if(opacity.indexOf('%')>=0){opacity=parseInt(opacity,10);}else if(opacity.substr(0,1)=='.'||opacity.substr(0,2)=='0.'){opacity*=100;}
return opacity;}
ltk.dom.node.prototype.getPos=function()
{var curleft=0;var curtop=0;var obj=this.node;if(obj.offsetParent){while(obj.offsetParent){curleft+=obj.offsetLeft;curtop+=obj.offsetTop;obj=obj.offsetParent;}}else{if(obj.x)curleft+=obj.x;if(obj.y)curtop+=obj.y;}
return{'x':curleft,'y':curtop};}
ltk.dom.node.prototype.hasClass=function(classname)
{var pattern=new RegExp('\\b'+classname+'\\b','');return('className'in this.node&&this.node.className.match(pattern));}
ltk.dom.node.prototype.removeClass=function(classname)
{if(!('className'in this.node))return;var pattern=new RegExp('\\b'+classname+'\\b','');this.node.className=this.node.className.replace(pattern,'');}
ltk.dom.node.prototype.addClass=function(classname)
{if(!('className'in this.node)){this.node.className=classname;}else{var pattern=new RegExp('\\b'+classname+'\\b','');if(!this.node.className.match(pattern)){this.node.className=(this.node.className!==''?this.node.className+' '+classname:classname);}}}
ltk.dom.node.prototype.replaceClass=function(classname1,classname2)
{if(!('className'in this.node)){this.node.className=classname2;}else{if(classname1!=classname2){this.removeClass(classname1);}
this.addClass(classname2);}}
ltk.dom.node.prototype.setProperties=function(def)
{var me=this;var i;var trigger=null;for(var attr in def){switch(attr){case'#trigger':if(typeof def['#trigger']=='function'){trigger=def['#trigger'];}
break;case'#data':for(i in def['#data']){this.setData(i,def['#data'][i]);}
break;case'#text':this.node.appendChild(document.createTextNode(def['#text']));break;case'#html':this.node.innerHTML=def['#html'];break;case'class':this.node.className=def['class'];break;case'styles':if(typeof def['styles']=='object'){this.setStyles(def['styles']);}
break;case'disabled':this.node['disabled']=!!def['disabled'];break;case'checked':this.node['checked']=!!def['checked'];this.node['defaultChecked']=!!def['checked'];break;default:if(attr.substr(0,2)=='on'){if(typeof def[attr]=='string'){this.node[attr]=ltk.closure(def[attr],function(js){var cb=function(){eval(js);};cb.apply(me.node);});}else{this.node[attr]=def[attr];}}else if(typeof def[attr]!='object'){this.setAttribute(attr,def[attr],0);}
break;}}
if(trigger!==null){trigger(this);}}
ltk.dom.node.prototype.setStyles=function(styles)
{for(var i in styles){this.setStyle(i,styles[i]);}}
ltk.dom.node.prototype.setStyle=function(name,value)
{switch(name){case'float':this.setFloat(value);break;case'opacity':this.setOpacity(value);break;case'textShadow':this.setTextShadow();break;default:this.node.style[name]=value;break;}}
ltk.dom.node.prototype.getStyle=function(name)
{return this.getComputedStyle(name);}
ltk.dom.node.prototype.setOpacity=function(value)
{var obj=this.node;var _setOpacity=[function(){obj.filter.alpha.opacity=value;},function(){obj.style.filter='alpha(opacity:'+value+')';},function(){obj.style.filter='progid:DXImageTransform.Microsoft.Alpha(opacity='+value+');';},function(){obj.style.KHTMLOpacity=(value/100);},function(){obj.style.MozOpacity=(value/100);},function(){obj.style.opacity=(value/100);}];for(var i=0,len=_setOpacity.length;i<len;++i){try{_setOpacity[i]();}catch(e){}}},ltk.dom.node.prototype.setData=function(name,data)
{if(this.node.nodeName in data_disabled)return;var id='';if(!this.hasAttribute('_ltk_node_id')){id=ltk.getUniqID('ltknid_');this.setAttribute('_ltk_node_id',id);}else{id=this.getAttribute('_ltk_node_id');}
if(!(id in data_store))data_store[id]={};data_store[id][name]=data;}
ltk.dom.node.prototype.getData=function(name)
{var id;if(this.node.nodeName in data_disabled||(!(id=this.getAttribute('_ltk_node_id')))||!(id in data_store)||!(name in data_store[id]))return undefined;return data_store[id][name];}
ltk.dom.node.prototype.removeData=function(name)
{var id;if(this.node.nodeName in data_disabled||(!(id=this.getAttribute('_ltk_node_id')))||!(id in data_store)||!(name in data_store[id]))return;delete data_store[id][name];}
ltk.dom.node.prototype.setFloat=function(value)
{this.node.style.cssFloat=value;this.node.style.styleFloat=value;}
ltk.dom.node.prototype.setTextShadow=function()
{}
ltk.dom.node.prototype.setAttribute=function(name,value)
{try{this.node.setAttribute(name,value);}catch(e){if(ltk.browser.msie&&this.node.tagName.toUpperCase()=='INPUT'){switch(name.toLowerCase()){case'name':this.node.outerHTML=this.node.outerHTML.replace(/name=[a-zA-Z]+/,' ').replace('>',' name='+value+'>');break;case'type':this.node.outerHTML=this.node.outerHTML.replace(/type=[a-zA-Z]+/,' ').replace('>',' type='+value+'>');break;default:break;}}}}
ltk.dom.node.prototype.getAttribute=function(name)
{try{return this.node.getAttribute(name);}catch(e){return null;}}
ltk.dom.node.prototype.hasAttribute=function(name)
{return('hasAttribute'in this.node?this.node.hasAttribute(name):this.getAttribute(name)!==null);}
ltk.dom.node.prototype.removeAttribute=function(name)
{this.node.removeAttribute(name);}
ltk.dom.node.prototype.childNodes=function()
{return new ltk.dom.nodelist(('children'in this.node&&this.node.children.length>0?this.node.children:[]));}
ltk.dom.node.prototype.parentNode=function()
{return new ltk.dom.node(this.node.parentNode);}
ltk.dom.node.prototype.closestNode=function(tag)
{var parent;tag=tag.toLowerCase();do{parent=this.node.parentNode;}while(parent.tagName.toLowerCase()!=tag&&parent);return(parent?new ltk.dom.node(parent):null);}
ltk.dom.node.prototype.firstChild=function()
{return new ltk.dom.node(this.node.firstChild);}
ltk.dom.node.prototype.swap=function(node)
{var tmp=this.node.parentNode.insertBefore(document.createTextNode(''),this.node);node.node.parentNode.insertBefore(this.node,node.node);tmp.parentNode.insertBefore(node.node,tmp);tmp.parentNode.removeChild(tmp);}
ltk.dom.node.prototype.moveUp=function()
{if(this.node.previousSibling){this.node.parentNode.insertBefore(this.node,this.node.previousSibling);}}
ltk.dom.node.prototype.moveDown=function()
{var tmp=this.node.nextSibling;if(tmp&&tmp.nextSibling){this.node.parentNode.insertBefore(this.node,tmp.nextSibling);}}
ltk.dom.node.prototype.insertBefore=function(node)
{this.node.parentNode.insertBefore(node.node,this.node);return node;}
ltk.dom.node.prototype.insertAfter=function(node)
{this.node.parentNode.insertBefore(node.node,this.node.nextSibling);return node;}
ltk.dom.node.prototype.nextSibling=function()
{return new ltk.dom.node(this.node.nextSibling);}
ltk.dom.node.prototype.previousSibling=function()
{return new ltk.dom.node(this.node.previousSibling);}
ltk.dom.node.prototype.lastSibling=function()
{var tmp=this.node.parentNode.lastChild;while(tmp.nodeType!=1&&tmp.previousSibling!==null){tmp=tmp.previousSibling;}
return(tmp.nodeType==1?new ltk.dom.node(tmp):false);}
ltk.dom.node.prototype.removeNode=function()
{cleanup(this.node);this.node.parentNode.removeChild(this.node);}
ltk.dom.node.prototype.replaceNode=function(node)
{this.node.parentNode.replaceChild(node.node,this.node);return node;}
ltk.dom.node.prototype.removeChildren=function()
{while(this.node.firstChild){cleanup(this.node.firstChild);this.node.removeChild(this.node.firstChild);}}
ltk.dom.node.prototype.appendChild=function(node)
{this.node.appendChild(node.node);return node;}})();
;(function(){if('nodelist'in ltk.dom)return;ltk.dom.nodelist=function(nodes)
{this.nodes=[];if(typeof nodes!='undefined'&&'length'in nodes){if(nodes instanceof Array){this.nodes=nodes;}else{this.nodes=ltk.array.toArray(nodes);}}
this.length=this.nodes.length;}
ltk.dom.nodelist.prototype.item=function(item)
{return(this.nodes.length>item?new ltk.dom.node(this.nodes[item]):false);}
ltk.dom.nodelist.prototype.first=function()
{return(this.nodes.length>0?new ltk.dom.node(this.nodes[0]):false);}
ltk.dom.nodelist.prototype.last=function()
{return(this.nodes.length>0?new ltk.dom.node(this.nodes[this.nodes.length-1]):false);}
ltk.dom.nodelist.prototype.concat=function(nodes)
{if('length'in nodes&&!(nodes instanceof Array)){nodes=ltk.array.toArray(nodes);}
this.nodes=this.nodes.concat(nodes);this.length=this.nodes.length;return this;}
ltk.dom.nodelist.prototype.push=function(node)
{this.nodes.push((node instanceof ltk.dom.node?node.node:node));this.length=this.nodes.length;}
ltk.dom.nodelist.prototype.forEach=function(cb)
{var r=undefined;for(var i=0,len=this.nodes.length;i<len;++i){if((r=cb(new ltk.dom.node(this.nodes[i]),i))!==undefined)break;}
return r;}})();
;(function(){if('layer'in ltk.dom)return;var stack={};var min=50000;function rearrange(){var z=min;for(var s in stack){for(var i=0,len=stack[s].nodes.length;i<len;++i){stack[s].nodes[i].setStyle('zIndex',z++);}}}
ltk.dom.layer=function()
{this.id=ltk.getUniqID('ltk_layer_');}
ltk.dom.layer.prototype.push=function(nodes)
{var me=this;stack[this.id]={'id':this.id,'nodes':nodes};rearrange();this.up=function(){delete stack[me.id];stack[me.id]={'id':me.id,'nodes':nodes};;rearrange();}}
ltk.dom.layer.prototype.up=function()
{}
ltk.dom.layer.prototype.pop=function()
{delete stack[this.id];rearrange();for(var i in this)delete this[i];}})();
;(function(){if('evt'in ltk)return;var evt_cnt=0;var evt_remove={};var keycodes={'ESC':27,'TAB':9,'SPACE':32,'ENTER':13,'BACKSPACE':8,'SCROLL':145,'CAPS':20,'NUM':144,'PAUSE':19,'INSERT':45,'HOME':36,'DELETE':46,'END':35,'PAGEUP':33,'PAGEDOWN':34,'LEFT':37,'UP':38,'RIGHT':39,'DOWN':40,'COMMA':188,'PERIOD':190,'F1':112,'F2':113,'F3':114,'F4':115,'F5':116,'F6':117,'F7':118,'F8':119,'F9':120,'F10':121,'F11':122,'F12':123};var mouseX=0;var mouseY=0;var mouseDirX=0;var mouseDirY=0;ltk.evt={addEvent:function(target,type,cb,opt)
{if(!target.node)return;opt=ltk.extend({'propagate':false,'default':false},opt);if(type=='rgtclick'||type=='lftclick'||type=='midclick'||type=='click'||type=='mousedown'){var vec2=cb;cb=ltk.closure(type,function(type,e){e=e||window.event;var button='lftclick';if(!e.which){button=(e.button<2?'lftclick':(e.button==4?'midclick':'rgtclick'));}else{button=(e.which<2?'lftclick':(e.which==2?'midclick':'rgtclick'));}
if(button==type||(button=='lftclick'&&(type=='click'||type=='mousedown'))){vec2(e);}});if(type=='rgtclick'){type='mousedown';}else if(type=='lftclick'||type=='midclick'){type='click';}}
var me=this;var vec=cb;cb=function(e){var ret;vec(e);if(!opt.propagate){me.stopPropagation(e);ret=false;}
if(!opt['default']){me.preventDefault(e);ret=false;}
return ret;}
var id='ltk_evt_'+(++evt_cnt);if(target.node.addEventListener){type=(type=='mousewheel'&&window.gecko?'DOMMouseScroll':type);target.node.addEventListener(type,cb,false);evt_remove[id]=function(){target.node.removeEventListener(type,cb,false);delete(evt_remove[id]);}}else if(target.node.attachEvent){target.node.attachEvent('on'+type,cb);evt_remove[id]=function(){target.node.detachEvent('on'+type,cb);delete(evt_remove[id]);}}else{target.node['on'+type]=cb;}
return id;},removeEvent:function(id)
{if(id in evt_remove){evt_remove[id]();}},addKeyboardEvent:function(target,shortcut,cb,opt)
{opt=ltk.extend({'propagate':false,'default':false,'type':'keydown'},opt);var keys=shortcut.split('+');var me=this;return this.addEvent(target,opt.type,function(e){e=e||window.event;if(e.keyCode){code=e.keyCode;}else if(e.which){code=e.which;}else{return;}
var kchar=String.fromCharCode(code);var pressed=0;for(var i=0,len=keys.length;i<len;++i){switch(keys[i]){case'CTRL':if(e.ctrlKey){++pressed;}
break;case'SHIFT':if(e.shiftKey){++pressed;}
break;case'ALT':if(e.altKey){++pressed;}
break;default:if(keys[i].length>1){if(keycodes[keys[i]]==code){++pressed;}}else if(keys[i]==kchar){++pressed;}else{}
break;}}
if(pressed==keys.length){var ret=undefined;if(!opt.propagate){me.stopPropagation(e);ret=false;}
if(!opt['default']){me.preventDefault(e);ret=false;}
var result=cb();if(typeof result!='undefined'&&!result){if(opt.propagate){me.stopPropagation(e);ret=false;}
if(opt['default']){me.preventDefault(e);ret=false;}}
return ret;}},{'propagate':opt.propagate,'default':opt['default']});},stopPropagation:function(e)
{if(typeof e=='undefined'){return;}
if('stopPropagation'in e){e.stopPropagation();}else if('cancelBubble'in e){e.cancelBubble=true;}},preventDefault:function(e)
{if(typeof e=='undefined'){return;}
if('preventDefault'in e){e.preventDefault();}else if('returnValue'in e){e.returnValue=false;}},disableEnterKey:function(e,targets)
{var key;var ret=true;if(window.event){key=window.event.keyCode;}else{key=e.which;}
if(key==13){var id=e.target.id;if(typeof id!='undefined'&&typeof targets!='undefined'){for(var i=0,len=targets.length;i<len;++i){if(id==targets[i]){ret=false;break;}}}else{ret=false;}}
return ret;},disableTextSelect:function(target)
{target.node.onselectstart=function(){return false;}
target.node.onmousedown=function(){return false;}},fireKeyboardEvent:function(target,shortcut)
{var evt_name='keypress';var evt=document.createElement('KeyboardEvent');var keys=shortcut.split('+')
var modifiers=[];var options={'ctrl':false,'shift':false,'alt':false,'meta':false,'key':0,'char':0}
for(var i=0,cnt=keys.length;i<cnt;++i){switch(keys[i]){case'CTRL':options.ctrl=true;modifiers.push('Control');break;case'SHIFT':options.shift=true;modifiers.push('Shift');break;case'ALT':options.alt=true;modifiers.push('Alt');break;default:if(keys[i].length>1){if(keys[i]in keycodes){options.key=keycodes[keys[i]];}}else{options.char=keys[i].charCodeAt(0);}}}
try{evt.initKeyEvent(evt_name,true,true,window,options.ctrl,options.alt,options.shift,options.meta,options.key,options.char);}catch(e){var loc='0x00';var ident='U+00'+options.key.toString(16);evt.initKeyboardEvent(evt_name,true,true,window,ident,loc,modifiers.join(' '));}
target.dispatchEvent(evt);},fireEvent:function(target,type)
{var evt;if(document.createEventObject){evt=document.createEventObject();target.fireEvent('on'+type,evt);}else{evt=document.createEvent('HTMLEvents');evt.initEvent(type,true,true);target.dispatchEvent(evt);}},captureMove:function(evt)
{var x=0;var y=0;if(!evt){var evt=window.event;}
if(evt.pageX||evt.pageY){x=evt.pageX;y=evt.pageY;}else if(evt.clientX||evt.clientY){x=evt.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;y=evt.clientY+document.body.scrollTop+document.documentElement.scrollTop;}
mouseDirX=(x>mouseX?+1:x<mouseX?-1:0);mouseDirY=(y>mouseY?+1:y<mouseY?-1:0);mouseX=x;mouseY=y;this.onMouseMove(evt);},onMouseMove:function(evt)
{},getMousePos:function()
{return{'x':mouseX,'y':mouseY};},getMouseMoveDir:function()
{return{'x':mouseDirX,'y':mouseDirY};}}
ltk.dom.ready(function(){ltk.evt.addEvent(new ltk.dom.node(document),'mousemove',function(evt){ltk.evt.captureMove(evt);},{'propagation':true,'default':true});});})();
;(function(){if('draggable'in ltk.evt)return;var vec={'mmove':null,'mmup':null};var drag=false;ltk.evt.draggable=function(obj,raster,handle,direction)
{this.widget=obj;this.handle=handle||obj;this.raster=raster||1;this.range={'x1':null,'y1':null,'x2':null,'y2':null};this.direction=direction||(ltk.evt.draggable.T_DIR_Y|ltk.evt.draggable.T_DIR_X);var me=this;var startXY={'x':0,'y':0};var offsetXY={'x':0,'y':0};if((this.direction&ltk.evt.draggable.T_DIR_Y)!=ltk.evt.draggable.T_DIR_Y){this.range['y1']=false;this.range['y2']=false;}
if((this.direction&ltk.evt.draggable.T_DIR_X)!=ltk.evt.draggable.T_DIR_X){this.range['x1']=false;this.range['x2']=false;}
ltk.evt.addEvent(this.handle,'mousedown',function(e){me.onmousedown(e);},{'propagate':false,'default':false});this.setRange=function(x1,y1,x2,y2)
{this.range={'x1':(x1===null?me.range['x1']:x1),'y1':(y1===null?me.range['y1']:y1),'x2':(x2===null?me.range['x2']:x2),'y2':(y2===null?me.range['y2']:y2)};this.range.rx=this.range.x2-this.range.x1;this.range.ry=this.range.y2-this.range.y1;};this.onmousedown=function(e)
{if(drag)return;var me=this;vec.mmove=ltk.evt.onMouseMove;vec.mmup=document.mouseup;document.onmouseup=function(e){document.onmouseup=vec;me.onmouseup(e);};ltk.evt.onMouseMove=function(e){if(typeof vec.mmove=='function'){vec.mmove();}
if(drag){var pos=ltk.evt.getMousePos();var y=(offsetXY.y+pos.y-startXY.y);var x=(offsetXY.x+pos.x-startXY.x);y=Math.floor(y/me.raster)*me.raster;x=Math.floor(x/me.raster)*me.raster;if(me.range.y1!==false&&me.range.y2!==false){if(me.range.y1===null||me.range.y2===null){me.widget.node.style.top=y+'px';}else if(y>=me.range.y1&&y<=me.range.y2){me.widget.node.style.top=y+'px';}else if(y<me.range.y1){me.widget.node.style.top=me.range.y1+'px';}else if(y>me.range.y2){me.widget.node.style.top=me.range.y2+'px';}}
if(me.range.x1!==false&&me.range.x2!==false){if(me.range.x1===null||me.range.x2===null){me.widget.node.style.left=x+'px';}else if(x>=0&&x<=me.range.rx){me.widget.node.style.left=x+'px';}else if(x<0){me.widget.node.style.left='0px';}else if(x>me.range.rx){me.widget.node.style.left=me.range.rx+'px';}}}
me.onMouseMove(e);};startXY=ltk.evt.getMousePos();offsetXY={'x':this.widget.node.offsetLeft,'y':this.widget.node.offsetTop};drag=true;this.onMouseDown();};this.onmouseup=function()
{if(!drag)return;ltk.evt.onMouseMove=vec.mmove;drag=false;this.onMouseUp();}
this.onMouseDown=function(e)
{}
this.onMouseUp=function(e)
{}
this.onMouseMove=function(e)
{}}
ltk.evt.draggable.T_DIR_Y=1;ltk.evt.draggable.T_DIR_X=2;})();
;(function(){if('l10n'in ltk)return;var compiled={};var inline={'gender':true,'numf':true,'datef':true,'monf':true,'comify':true,'enum':true,'quant':true,'yesno':true};function compile(msg){var code;code=msg.replace(/\[(?:_(\d+)|([a-zA-Z0-9]+)[ ]*((?:,[ ]*_\d+)+))?\]/g,function(str,arg_no,func,arg_nos){var ret='';if(arg_no!==''){arg_no=parseInt(arg_no,10)-1;ret="' + arguments["+arg_no+"] + '";}else if(func in inline&&inline[func]){arg_nos=arg_nos.replace(/[ _]/g,'').replace(/^,/,'').split(/,/);var args=[];for(var i=0,len=arg_nos.length;i<len;++i){args.push('arguments['+(parseInt(arg_nos[i],10)-1)+']')}
ret="' + (function() {"+"return ltk.l10n."+func+"("+args.join(', ')+");"+"}).apply(null, arguments) + '";}
return ret;});code="compiled[msg] = function() { return '"+code+"'; }";eval(code);return msg;}
var dicts={};var lc='';ltk.l10n={addDict:function(lc,dict)
{if(!(lc in dicts)){dicts[lc]=dict;}else{for(var i in dict){dicts[lc][i]=dict[i];}}},setLocale:function(new_lc)
{var ret=lc;lc=new_lc;return ret;},getLocale:function()
{return lc;},getCountryCode:function()
{return lc.substr(4,2);},getLanguageCode:function()
{return lc.substr(0,2);},gettext:function()
{var msg=arguments[0];var args=[].splice.call(arguments,1);msg=(lc in dicts&&msg in dicts[lc]&&dicts[lc][msg]!=''?dicts[lc][msg]:msg);if(!(msg in compiled)){compile(msg);}
return compiled[msg].apply(null,args);},yesno:function(val,first,second)
{second=(typeof second!='undefined'?second:'');return(val?first:second);},quant:function(val,first,second,third)
{var ret=first;if(val==0&&typeof third!='undefined'){ret=third;}else if(val!=1&&typeof second!='undefined'){ret=second;}
return ltk.string.sprintf(ret,val);},gender:function(val,undef,male,female)
{var ret=undef;switch(val.toUpperString()){case'M':case'1':ret=male;break;case'F':case'W':case'2':ret=female;break;}
return ret;},comify:function(list,word,sep)
{sep=sep||', ';var ret='';if(list.length>0){last=list.pop();ret=[list.join(sep),last].join(word);}
return ret;},datef:function(){return ltk.l10n.cldr.datef.apply(null,arguments);},monf:function(){return ltk.l10n.cldr.monf.apply(null,arguments);},numf:function(){return ltk.l10n.cldr.numf.apply(null,arguments);}};window['gettext']=ltk.l10n.gettext;window['_']=ltk.l10n.gettext;})();
;(function(){if('cldr'in ltk.l10n)return;var weekdays=['sun','mon','tue','wed','thu','fri','sat'];var preprocess={'datef':{'dd':'%:1:','d+':'%:2:','EEEE':'%:3:','EEE':'%:4:','MMM+':'%:5:','MM':'%:6:','M':'%:7:','yyyy':'%:8:','yy':'%:9:','HH':'%:10:','mm':'%:11:','ss':'%:12:','h':'%:13:','a':'%:14:'}}
var rules={'datef':{'%:1:':function(d,lc){return ltk.string.lpad(d.getDate(),2,'0');},'%:2:':function(d,lc){return ltk.string.lpad(d.getDate(),2,'0');},'%:3:':function(d,lc){return ltk.l10n.cldr[lc].day.wide[weekdays[d.getDay()]];},'%:4:':function(d,lc){return ltk.l10n.cldr[lc].day.abbreviated[weekdays[d.getDay()]];},'%:5:':function(d,lc){return ltk.l10n.cldr[lc].month.abbreviated[d.getMonth()+1];},'%:6:':function(d,lc){return ltk.string.lpad(d.getMonth()+1,2,'0');},'%:7:':function(d,lc){return ltk.string.lpad(d.getMonth()+1,2,'0');},'%:8:':function(d,lc){return d.getFullYear();},'%:9:':function(d,lc){return d.getFullYear().toString().substr(2);},'%:10:':function(d,lc){return ltk.string.lpad(d.getHours(),2,'0');},'%:11:':function(d,lc){return ltk.string.lpad(d.getMinutes(),2,'0');},'%:12:':function(d,lc){return ltk.string.lpad(d.getSeconds(),2,'0');},'%:13:':function(d,lc){return ltk.string.lpad(d.getHours()%12+1,2,'0');},'%:14:':function(d,lc){return(d.getHours()<13?'AM':'PM');}}};var compiled={};function compiler(type,pattern){var key=type+':'+pattern;if(type in preprocess){for(var rexp in preprocess[type]){pattern=pattern.replace(new RegExp(rexp,'g'),preprocess[type][rexp]);}}
for(var rexp in rules[type]){pattern=pattern.replace(new RegExp(rexp,'g'),(function(){return"' + ("+rules[type][rexp].toString()+")(date, lc) + '";}));}
var code="compiled[key] = function(date, lc) { return '"+pattern+"'; }";eval(code);return pattern;}
function toFixed(n,prec){var k=Math.pow(10,prec);return''+Math.round(n*k)/k;}
ltk.l10n.cldr={T_DATE_FULL:1,T_DATE_LONG:2,T_DATE_MEDIUM:4,T_DATE_SHORT:8,T_TIME_FULL:16,T_TIME_LONG:32,T_TIME_MEDIUM:64,T_TIME_SHORT:128,T_DATETIME_FULL:17,T_DATETIME_LONG:34,T_DATETIME_MEDIUM:68,T_DATETIME_SHORT:136,T_WIDE:'wide',T_ABBREVIATED:'abbreviated',T_NARROW:'narrow',getMonth:function(format,month)
{switch(typeof month){case'number':if(month>11)month=new Date(date*1000).getMonth();break;case'string':month=Date.parse(date).getMonth();break;case'object':if(month instanceof Date){month=month.getMonth();break;}
default:month=(new Date().getMonth());}
if(format!=ltk.l10n.cldr.T_WIDE&&format!=ltk.l10n.cldr.T_ABBREVIATED&&format!=ltk.l10n.cldr.T_NARROR){format=ltk.l10n.cldr.T_ABBREVIATED;}
return ltk.l10n.cldr[ltk.l10n.getLocale()].month[format][month+1];},datef:function(date,format)
{switch(typeof date){case'number':date=new Date(date*1000);break;case'string':date=Date.parse(date);break;case'object':if(date instanceof Date){break;}
default:date=new Date();}
var pattern=[];var lc=ltk.l10n.getLocale();if(typeof format!='number'){pattern.push(ltk.l10n.cldr[lc].dateformat['full']);}else{if((format&ltk.l10n.cldr.T_DATE_FULL)==ltk.l10n.cldr.T_DATE_FULL){pattern.push(ltk.l10n.cldr[lc].dateformat['full']);}else if((format&ltk.l10n.cldr.T_DATE_LONG)==ltk.l10n.cldr.T_DATE_LONG){pattern.push(ltk.l10n.cldr[lc].dateformat['long']);}else if((format&ltk.l10n.cldr.T_DATE_MEDIUM)==ltk.l10n.cldr.T_DATE_MEDIUM){pattern.push(ltk.l10n.cldr[lc].dateformat['medium']);}else if((format&ltk.l10n.cldr.T_DATE_SHORT)==ltk.l10n.cldr.T_DATE_SHORT){pattern.push(ltk.l10n.cldr[lc].dateformat['short']);}
if((format&ltk.l10n.cldr.T_TIME_FULL)==ltk.l10n.cldr.T_TIME_FULL){pattern.push(ltk.l10n.cldr[lc].timeformat['full']);}else if((format&ltk.l10n.cldr.T_TIME_LONG)==ltk.l10n.cldr.T_TIME_LONG){pattern.push(ltk.l10n.cldr[lc].timeformat['long']);}else if((format&ltk.l10n.cldr.T_TIME_MEDIUM)==ltk.l10n.cldr.T_TIME_MEDIUM){pattern.push(ltk.l10n.cldr[lc].timeformat['medium']);}else if((format&ltk.l10n.cldr.T_TIME_SHORT)==ltk.l10n.cldr.T_TIME_SHORT){pattern.push(ltk.l10n.cldr[lc].timeformat['short']);}}
pattern=pattern.join(' ');var key='datef:'+pattern;if(!(key in compiled)){compiler('datef',pattern);}
return compiled[key](date,lc);},monf:function(value)
{var lc=ltk.l10n.getLocale();var patterns=ltk.l10n.cldr[lc].currency_format['default'].split(/;/);var pattern,prefix,suffix,ret;if(patterns.length==1)patterns.push(patterns[0]);if(value<0){pattern=patterns[0];}else{pattern=patterns[1];}
ret=ltk.l10n.cldr.numf(value,2);if(pattern.match(/^(.*?)([#0\.,]+)(.*?)$/)){prefix=RegExp.$1;pattern=RegExp.$2;suffix=RegExp.$3;ret=prefix+ret+suffix;}
return ret;},numf:function(value,prec)
{value=+value;value=(!isFinite(value)?0:value);if(typeof prec=='undefined'){prec=value.toString().replace(/^[^.]*(\.(.*)|)$/,'$2').length;}
var lc=ltk.l10n.getLocale();var sep=(typeof ltk.l10n.cldr[lc].number.group!='undefined'?ltk.l10n.cldr[lc].number.group:',');var dec=(typeof ltk.l10n.cldr[lc].number.decimal!='undefined'?ltk.l10n.cldr[lc].number.decimal:'.');var parts=(prec?toFixed(value,prec):''+Math.round(value)).split('.');if(parts[0].length>3){parts[0]=parts[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,sep);}
if((parts[1]||'').length<prec){parts[1]=parts[1]||'';parts[1]+=new Array(prec-parts[1].length+1).join('0');}
return parts.join(dec);}}})();
;(function(){if('page'in ltk)return;ltk.page={jump:function(name)
{window.location.hash=name;},getUrl:function()
{return window.location.href;}}})();
;(function(){if('registry'in ltk)return;var data={};ltk.registry={set:function(name,value,protected)
{protected=(typeof protected!='undefined'?protected:false);if(!(name in data)||!data[name].protected){data[name]={'value':ltk.clone(value),'protected':protected};}},get:function(name)
{return(name in data?ltk.clone(data[name].value):null);},pop:function(name)
{var ret=null;if(name in data){ret=ltk.clone(data[name].value);if(!data[name].protected){delete data[name];}}
return ret;},push:function(name,value,protected)
{this.set(name,value,protected);},unset:function(name)
{if(name in data&&!data[name].protected){delete data[name];}}}})();
;(function(){if('rpc'in ltk)return;ltk.rpc=function(url,method)
{var ajax=new ltk.rpc.ajax.initRequest();ltk.extend(this,ajax);this.data={};this.setHeader('Content-Type','application/x-www-form-urlencoded');this.setHeader('Accept','text/json');this.setOption('url',url||'http://');this.setOption('method',method||'POST');this.setOption('async',true);var me=this;this.loadIndicator=function(state){me.whileLoading(state);}
this.registerErrorHandler(null,this.onFailure);this.registerStateHandler(ltk.rpc.ajax.state.COMPLETE,function(data){if((data instanceof Object)&&('error'in data)){me.onFailure(200,data);}else{me.onSuccess(data);}});}
ltk.rpc.method={'T_GET':'get','T_POST':'post','T_HEAD':'head'};ltk.rpc.prototype.setValue=function(name,value)
{this.data[name]=value;}
ltk.rpc.prototype.whileLoading=function(state)
{}
ltk.rpc.prototype.onFailure=function(code,error)
{}
ltk.rpc.prototype.onSuccess=function(data)
{}})();
;(function(){if('ajax'in ltk.rpc)return;var getXMLHttpRequest=function(){var methods=[function(){return new XMLHttpRequest();},function(){return new ActiveXObject('Msxml2.XMLHTTP');},function(){return new ActiveXObject('Microsoft.XMLHTTP');},function(){return new ActiveXObject('Microsoft.XMLHTTP.4.0');},function(){throw'unable to initiate XMLHttpRequest';}];var req=false;for(var i=0,len=methods.length;i<len;++i){try{req=methods[i]();getXMLHttpRequest=methods[i];return req;}catch(e){}}};function buildQuery(obj,key){var ret=[];var k,v,o,i,cnt,tmp;o=obj;if(typeof obj!='object'){o=[obj];}
if(typeof o.length!='undefined'){for(i=0,cnt=o.length;i<cnt;++i){v=o[i];k=i;if(typeof key!='undefined'){k=key+'['+k+']';}
if(typeof v=='object'){ret.push(buildQuery(v,k));}else{ret.push(k+'='+encodeURIComponent(v));}}}else{for(k in o){v=o[k];k=encodeURIComponent(k);if(typeof key!='undefined'){k=key+'['+k+']';}
if(v===null){ret.push(k+'=');}else if(typeof v=='object'){tmp=buildQuery(v,k);ret.push(tmp);}else{ret.push(k+'='+encodeURIComponent(v));}}}
return ret.join('&');};ltk.rpc.ajax={'state':{'UNINITIALIZED':0,'LOADING':1,'LOADED':2,'INTERACTIVE':3,'COMPLETE':4,'ABORTED':1000},'response':{TEXT:function(req){return req.getRequest().responseText;},XML:function(req){var contentType=req.getRequest().getResponseHeader('Content-Type');if(contentType!='application/xml'&&contentType!='text/xml'&&typeof req.getRequest().responseBody!='undefined'){try{req.getRequest().responseXML.async=false;req.getRequest().responseXML.load(req.getRequest().responseBody);}catch(e){}}
return req.getRequest().responseXML;},JSON:function(req){var ret={};var tmp=req.getRequest().responseText;try{if(tmp!='')eval('ret = '+tmp+';');}catch(e){}
return ret;}},'request':{GET:function(data){},POST:function(data){},XML:function(data){},JSON:function(data){}},'initRequest':function()
{var req=getXMLHttpRequest();var options={'url':'http://','async':true,'method':'POST','response':ltk.rpc.ajax.response.JSON,'data':null,'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return new function(){var is_busy=false;var is_aborted=false;this.isBusy=function()
{return is_busy;}
this.loadIndicator=function(state)
{}
this.getRequest=function()
{return req;}
this.setOption=function(name,value)
{if(name in options&&name!='headers'){options[name]=value;}}
this.setHeader=function(name,value)
{options['headers'][name]=value;}
this.abortRequest=function()
{req.abort();is_busy=false;is_aborted=true;}
this.sendRequest=function(url,data,method)
{var me=this;if(req){if(this.isBusy()){this.abortRequest();}
if(typeof this['stateHandler'+ltk.rpc.ajax.state.UNINITIALIZED]!='undefined'){this['stateHandler'+ltk.rpc.ajax.state.UNINITIALIZED]();}
this.setHeader('X-Requested-With','XMLHttpRequest');options['url']=url||options['url'];options['data']=data||options['data'];options['method']=method||options['method'];data=(typeof options['data']=='object'?buildQuery(options['data']):options['data']);req.open(options['method'],options['url']+(data&&(options['method']=='GET')?'?'+data:''),options['async']);is_busy=true;if(typeof this['stateHandler'+ltk.rpc.ajax.state.LOADING]!='undefined'){this['stateHandler'+ltk.rpc.ajax.state.LOADING]();}
this.loadIndicator(true);req.onreadystatechange=function(){if(is_aborted){is_aborted=false;return;}
try{var ready=req.readyState;var data=null;if(ready==ltk.rpc.ajax.state.COMPLETE){var status=(!('status'in req)?0:req.status);if(status<=0||(status>=200&&status<300)){data=options['response'](me);}else{if(typeof me['errorHandler'+status]=='function'){me['errorHandler'+status](me);}else if(typeof me['errorHandlerDefault']=='function'){me.errorHandlerDefault(status);}}
is_busy=false;me.loadIndicator(false);}
if(typeof me['stateHandler'+ready]=='function'){me['stateHandler'+ready](data);}}catch(e){};}
if(options['method']=='POST'){}else{data=null;}
for(var i in options['headers']){req.setRequestHeader(i,options['headers'][i]);}
req.send(data);}}
this.registerStateHandler=function(state,cb)
{this['stateHandler'+state]=cb;}
this.registerErrorHandler=function(httperror,cb)
{if(httperror=='null'){this['errorHandlerDefault']=cb;}else{this['errorHandler'+httperror]=cb;}}}},'jsonrpc':function(url,data,callback)
{var me=this;data['cb']=name(callback);_load(url+'/?'+buildQuery(data));return this;function _name(callback){var id=(new Date).getTime();var name='jsonrpc_'+id;var cb=function(json){eval('delete '+name);callback(json);};eval(name+' = cb');return name;}
function _load(url){ltk.dom.one('head').appendChild(ltk.dom.create('script',{'type':'text/javascript','src':url}));}}};})();
;(function(){if('request'in ltk.rpc)return;function buildFields(obj,key){var ret=[];var k,v,o,i,cnt,tmp;o=obj;if(typeof obj!='object'){o=[obj];}
if(o instanceof Array){for(i=0,cnt=o.length;i<cnt;++i){v=o[i];k=i;if(typeof key!='undefined'){k=key+'['+k+']';}
if(typeof v=='object'){ret.push(buildFields(v,k));}else{ret.push({'field':k,'value':v});}}}else{for(k in o){v=o[k];if(typeof key!='undefined'){k=key+'['+k+']';}
if(v===null){ret.push({'field':k,'value':null});}else if(typeof v=='object'){tmp=buildFields(v,k);ret.push(tmp);}else{ret.push({'field':k,'value':v});}}}
return ret;};ltk.rpc.request={submit:function(url,method,data)
{var body=ltk.dom.one('body');var form=body.appendChild(ltk.dom.create('form',{'styles':{'display':'none'},'action':url,'method':method}));var fields=buildFields(data);for(var i=0,len=fields.length;i<len;++i){form.appendChild(ltk.dom.create('input',{'type':'hidden','name':fields[i]['field'],'value':fields[i]['value']}));}
form.node.submit();}}})();
;(function(){if('array'in ltk)return;ltk.array={toArray:function(iterable)
{try{return Array.prototype.slice.call(iterable);}catch(e){var len=('length'in iterable?iterable.length:0);var ret=new Array(len);while(len--)ret[len]=iterable[len];}
return ret;},unique:function(arr)
{var tmp={};var ret=[];for(var i=0,cnt=arr.length;i<cnt;++i){if(!arr[i]in tmp){tmp[arr[i]]=true;ret.push(arr[i]);}}
return ret;},intersectKeys:function(obj1,obj2)
{var tmp={};for(var i in obj1){if(i in obj2){tmp[i]=obj1[i];}}
return tmp;},count:function(arr)
{var len=0;if(arr instanceof Array){len=arr.length;}else{for(var i in arr)++len;}
return len;},forEach:function(arr,cb)
{var r=undefined;if(typeof arr=='object'){var i=0;if(arr instanceof Array){for(var len=arr.length;i<len;++i){if((r=cb(arr[i],i))!==undefined)return r;}}else{for(var key in arr){if((r=cb(arr[key],i++,key))!==undefined)return r;}}}
return r;},filter:function(arr,cb)
{var ret=null;if(typeof arr=='object'){var i=0;if(arr instanceof Array){ret=[];for(var len=arr.length;i<len;++i){if(!!cb(arr[i],i))ret.push(arr[i]);}}else{ret={};for(var key in arr){if(!!cb(arr[key],i++,key))ret[key]=arr[key];}}}
return ret;}};})();
;(function(){if('string'in ltk)return;var entity2char={'apos':0x0027,'quot':0x0022,'amp':0x0026,'lt':0x003C,'gt':0x003E,'nbsp':0x00A0,'iexcl':0x00A1,'cent':0x00A2,'pound':0x00A3,'curren':0x00A4,'yen':0x00A5,'brvbar':0x00A6,'sect':0x00A7,'uml':0x00A8,'copy':0x00A9,'ordf':0x00AA,'laquo':0x00AB,'not':0x00AC,'shy':0x00AD,'reg':0x00AE,'macr':0x00AF,'deg':0x00B0,'plusmn':0x00B1,'sup2':0x00B2,'sup3':0x00B3,'acute':0x00B4,'micro':0x00B5,'para':0x00B6,'middot':0x00B7,'cedil':0x00B8,'sup1':0x00B9,'ordm':0x00BA,'raquo':0x00BB,'frac14':0x00BC,'frac12':0x00BD,'frac34':0x00BE,'iquest':0x00BF,'Agrave':0x00C0,'Aacute':0x00C1,'Acirc':0x00C2,'Atilde':0x00C3,'Auml':0x00C4,'Aring':0x00C5,'AElig':0x00C6,'Ccedil':0x00C7,'Egrave':0x00C8,'Eacute':0x00C9,'Ecirc':0x00CA,'Euml':0x00CB,'Igrave':0x00CC,'Iacute':0x00CD,'Icirc':0x00CE,'Iuml':0x00CF,'ETH':0x00D0,'Ntilde':0x00D1,'Ograve':0x00D2,'Oacute':0x00D3,'Ocirc':0x00D4,'Otilde':0x00D5,'Ouml':0x00D6,'times':0x00D7,'Oslash':0x00D8,'Ugrave':0x00D9,'Uacute':0x00DA,'Ucirc':0x00DB,'Uuml':0x00DC,'Yacute':0x00DD,'THORN':0x00DE,'szlig':0x00DF,'agrave':0x00E0,'aacute':0x00E1,'acirc':0x00E2,'atilde':0x00E3,'auml':0x00E4,'aring':0x00E5,'aelig':0x00E6,'ccedil':0x00E7,'egrave':0x00E8,'eacute':0x00E9,'ecirc':0x00EA,'euml':0x00EB,'igrave':0x00EC,'iacute':0x00ED,'icirc':0x00EE,'iuml':0x00EF,'eth':0x00F0,'ntilde':0x00F1,'ograve':0x00F2,'oacute':0x00F3,'ocirc':0x00F4,'otilde':0x00F5,'ouml':0x00F6,'divide':0x00F7,'oslash':0x00F8,'ugrave':0x00F9,'uacute':0x00FA,'ucirc':0x00FB,'uuml':0x00FC,'yacute':0x00FD,'thorn':0x00FE,'yuml':0x00FF,'OElig':0x0152,'oelig':0x0153,'Scaron':0x0160,'scaron':0x0161,'Yuml':0x0178,'fnof':0x0192,'circ':0x02C6,'tilde':0x02DC,'Alpha':0x0391,'Beta':0x0392,'Gamma':0x0393,'Delta':0x0394,'Epsilon':0x0395,'Zeta':0x0396,'Eta':0x0397,'Theta':0x0398,'Iota':0x0399,'Kappa':0x039A,'Lambda':0x039B,'Mu':0x039C,'Nu':0x039D,'Xi':0x039E,'Omicron':0x039F,'Pi':0x03A0,'Rho':0x03A1,'Sigma':0x03A3,'Tau':0x03A4,'Upsilon':0x03A5,'Phi':0x03A6,'Chi':0x03A7,'Psi':0x03A8,'Omega':0x03A9,'alpha':0x03B1,'beta':0x03B2,'gamma':0x03B3,'delta':0x03B4,'epsilon':0x03B5,'zeta':0x03B6,'eta':0x03B7,'theta':0x03B8,'iota':0x03B9,'kappa':0x03BA,'lambda':0x03BB,'mu':0x03BC,'nu':0x03BD,'xi':0x03BE,'omicron':0x03BF,'pi':0x03C0,'rho':0x03C1,'sigmaf':0x03C2,'sigma':0x03C3,'tau':0x03C4,'upsilon':0x03C5,'phi':0x03C6,'chi':0x03C7,'psi':0x03C8,'omega':0x03C9,'thetasym':0x03D1,'upsih':0x03D2,'piv':0x03D6,'ensp':0x2002,'emsp':0x2003,'thinsp':0x2009,'zwnj':0x200C,'zwj':0x200D,'lrm':0x200E,'rlm':0x200F,'ndash':0x2013,'mdash':0x2014,'lsquo':0x2018,'rsquo':0x2019,'sbquo':0x201A,'ldquo':0x201C,'rdquo':0x201D,'bdquo':0x201E,'dagger':0x2020,'Dagger':0x2021,'bull':0x2022,'hellip':0x2026,'permil':0x2030,'prime':0x2032,'Prime':0x2033,'lsaquo':0x2039,'rsaquo':0x203A,'oline':0x203E,'frasl':0x2044,'euro':0x20AC,'image':0x2111,'weierp':0x2118,'real':0x211C,'trade':0x2122,'alefsym':0x2135,'larr':0x2190,'uarr':0x2191,'rarr':0x2192,'darr':0x2193,'harr':0x2194,'crarr':0x21B5,'lArr':0x21D0,'uArr':0x21D1,'rArr':0x21D2,'dArr':0x21D3,'hArr':0x21D4,'forall':0x2200,'part':0x2202,'exist':0x2203,'empty':0x2205,'nabla':0x2207,'isin':0x2208,'notin':0x2209,'ni':0x220B,'prod':0x220F,'sum':0x2211,'minus':0x2212,'lowast':0x2217,'radic':0x221A,'prop':0x221D,'infin':0x221E,'ang':0x2220,'and':0x2227,'or':0x2228,'cap':0x2229,'cup':0x222A,'int':0x222B,'there4':0x2234,'sim':0x223C,'cong':0x2245,'asymp':0x2248,'ne':0x2260,'equiv':0x2261,'le':0x2264,'ge':0x2265,'sub':0x2282,'sup':0x2283,'nsub':0x2284,'sube':0x2286,'supe':0x2287,'oplus':0x2295,'otimes':0x2297,'perp':0x22A5,'sdot':0x22C5,'lceil':0x2308,'rceil':0x2309,'lfloor':0x230A,'rfloor':0x230B,'lang':0x2329,'rang':0x232A,'loz':0x25CA,'spades':0x2660,'clubs':0x2663,'hearts':0x2665,'diams':0x2666};var char2entity={};for(var entity in entity2char){char2entity[String.fromCharCode(entity2char[entity])]=entity;}
var _sprintf={'regexp':/%%|%(\d+\$)?([-+\'0 ]*)(\d+)?(\.(\d+))?([scboxXuidfegEG])/g,'base':{'b':2,'o':8,'x':16,'X':16,'u':10},'format':function(value,width,precision,opt){if(precision){value=value.slice(0,precision);}
width=Math.max(width,value.length);return(opt.leftalign?ltk.string.rpad(value,width,opt.pad):ltk.string.lpad(value,width,opt.pad));}}
ltk.string={trim:function(str,chr)
{chr=chr||' ';return(typeof str=='string'?str.replace(new RegExp('^['+chr+']+'),'').replace(new RegExp('['+chr+']+$'),''):str);},ltrim:function(str,chr)
{chr=chr||' ';return(typeof str=='string'?str.replace(new RegExp('^['+chr+']+'),''):str);},rtrim:function(str,chr)
{chr=chr||' ';return(typeof str=='string'?str.replace(new RegExp('['+chr+']+$'),''):str);},match:function(regexp,str,m)
{m=m||'';return(typeof str=='string'?(str.match((regexp instanceof RegExp?regexp:new RegExp(regexp,m)))):str);},replace:function(regexp,str,rpl,m)
{m=m||'';return str.replace((regexp instanceof RegExp?regexp:new RegExp(regexp,m)),rpl);},reverse:function(str)
{return str.split('').reverse().join('');},stripslashes:function(str)
{return str.replace(/\\(.?)/g,function(s,n){return(n=='0'?'\u0000':n);});},lpad:function(str,len,chr)
{chr=chr||' ';tmp=(new Array(len+1)).join(chr)+str;return tmp.substr(tmp.length-len);},rpad:function(str,len,chr)
{chr=chr||' ';tmp=str+(new Array(len+1)).join(chr);return tmp.substr(0,len);},repeat:function(chr,n)
{return(new Array(n+1)).join(chr);},entitydecode:function(str)
{return str.replace(/&(.+?);/g,function(str,ent){return String.fromCharCode((ent[0]!='#'?entity2char[ent]:(ent[1]=='x'?parseInt(ent.substr(2),16):parseInt(ent.substr(1),10))));});},entityencode:function(str)
{return str.replace(/[^\x20-\x7E]/g,function(str){return(char2entity[str]?'&'+char2entity[str]+';':str);});},cut:function(str,len,chr)
{if(str.length<=len){return str;}
if(typeof chr=='undefined'||chr=='undefined'){chr=' ...';}
str=str.substring(0,len-Number(chr.length));return str+chr;},htmlspecialchars:function(str)
{return str.replace(/</g,'&lt;').replace(/>/g,'&gt;');},chunk:function(str,width,brk)
{brk=brk||'\r\n';width=parseInt(width,10)||76;return str.match(new RegExp('.{0,'+width+'}','g')).join(brk);},chunk_id:function(id,len)
{len=parseInt(len,10)||9;if(len==6){id=Math.floor(id/1000);}
return ltk.string.chunk(ltk.string.lpad(id,9,'0'),3,'/');},wordwrap:function(str,width,brk,cut)
{brk=brk||'\n';width=width||75;cut=cut||false;if(!str){return str;}
var regex='.{1,'+width+'}(\\s|$)'+(cut?'|.{'+width+'}|.+$':'|\\S+?(\\s|$)');return str.match(RegExp(regex,'g')).join(brk);},sprintf:function()
{var args=arguments,pos=0,pattern=args[pos++];return pattern.replace(_sprintf.regexp,function(str,idx,flags,width,_,precision,type){if(str=='%%')return'%';var opt={'sign':'','leftalign':false,'pad':' '}
if(flags.length>0)for(var i=0,len=flags.length;i<len;++i){switch(flags.charAt(i)){case'+':opt.sign='+';break;case'-':opt.leftalign=true;break;case"'":opt.pad=flags.charAt(i+1);break;case'0':case' ':opt.pad=flags.charAt(i);break;}}
width=(width?Math.abs(width):0);precision=(precision?Math.abs(precision):('fFeE'.indexOf(type)!==false?6:(type==d?0:undefined)));var val=(idx?args[idx.slice(0,-1)]:args[pos++]);var ret=str;switch(type){case'c':val=String.fromCharCode(val);case's':ret=_sprintf.format(val,width,precision,opt);break;case'b':case'o':case'x':case'X':case'u':val=val>>>0;val=val.toString(_sprintf.base[type]);if(type=='X'){ret=_sprintf.format(val,width,precision,opt).toUpperCase();}else{ret=_sprintf.format(val,width,precision,opt);}
break;case'i':case'd':val=parseInt(val,10);val=(isNaN(val)?0:val);ret=(val<0?'-':opt.sign)+_sprintf.format(String(Math.abs(val)),width,precision,opt);break;case'e':case'E':case'f':case'F':case'g':case'G':val=parseInt(val,10);val=(isNaN(val)?0:val);ret=(val<0?'-':opt.sign);val=Math.abs(val);switch(type.toLowerCase()){case'e':val=val.toExponential(precision);break;case'f':val=val.toFixed(precision);break;case'g':val=val.toPrecision(precision);break;}
if(type==type.toLowerCase()){ret+=_sprintf.format(val.toString(),width,0,opt);}else{ret+=_sprintf.format(val.toUpperCase(),width,0,opt);}
break;}
return ret;});}}})();

var ltk=ltk||{};(function(){if('blocking'in ltk)return;ltk.blocking=function()
{this.blocked=false;this.exec=false;this.queue=[];}
ltk.blocking.prototype._call=function(cb)
{this.queue.push(cb);if(this.exec)return;this.exec=true;var me=this;window.setTimeout(function(){while((cb=me.queue.pop())){if(me.blocked){if(wait){me.queue.push(cb);}
return;}
me.blocked=true;cb(me);me.blocked=false;}
me.exec=false;},1);}})();
;(function(){if('versions'in ltk)return;var steps=1000;ltk.versions=function()
{var buffer=[];var pointer=0;var blocking=new ltk.blocking();this.undo=function()
{blocking._call(function(){if(buffer.length==0||pointer==0)return;var item=buffer[--pointer];item.undo(item.data);});}
this.redo=function()
{blocking._call(function(){if(buffer.length==pointer+1)return;var item=buffer[++pointer];item.redo(item.data);});}
this.push=function(do_fnc,undo_fnc,data,exec)
{data=data||{};exec=(exec!==false?true:false);blocking._call(function(){buffer.slice(0,pointer+1);buffer.push({'redo':do_fnc,'undo':undo_fnc,'data':data});if(buffer.length>steps){buffer.shift();}
pointer=buffer.length-1;if(exec)do_fnc(data);});}
this.canUndo=function()
{return(pointer>0);}
this.canRedo=function()
{return(pointer+1<buffer.length);}
this.getSize=function()
{return buffer.length;}
this.getItem=function(n)
{n=(typeof n=='undefined'?pointer:n);return(n in buffer?buffer[n]:false);}
this.getPointer=function()
{return pointer;}}
ltk.versions.prototype.onChange=function()
{}})();
;(function(){if('color'in ltk)return;ltk.color=function(p,type)
{type=(typeof type=='undefined'?ltk.color.type.RGB:type);this.r=0;this.g=0;this.b=0;if(typeof p!='undefined'){this.setColor(p,type);}}
ltk.color.type={RGB:1,CMYK:2,HSV:3,BW:4,HEX:5,CH_R:10,CH_G:11,CH_B:12,CH_C:20,CH_M:21,CH_Y:22,CH_K:23,CH_H:30,CH_S:31,CH_V:32,CH_BW:40}
ltk.color.cmyk2rgb=function(p)
{c=(p[0]/100);m=(p[1]/100);y=(p[2]/100);k=(p[3]/100);var r=Math.floor((1-Math.min(1,c*(1-k)+k))*255);var g=Math.floor((1-Math.min(1,m*(1-k)+k))*255);var b=Math.floor((1-Math.min(1,y*(1-k)+k))*255);return[r,g,b];}
ltk.color.rgb2cmyk=function(p)
{var c=(1-Math.min(1,p[0]/255));var m=(1-Math.min(1,p[1]/255));var y=(1-Math.min(1,p[2]/255));var k=Math.min(c,Math.min(m,y));c=Math.floor((c-k)*100);m=Math.floor((m-k)*100);y=Math.floor((y-k)*100);k=Math.floor(k);return[c,m,y,k];}
ltk.color.hsv2rgb=function(p)
{var h=(p[0]%360);var s=p[1]/100;var v=p[2]/100;if(h<0){h+=360;}
h=h/60;var i=Math.floor(h);var f=h-i;var p=v*(1-s);var q=v*(1-s*f);var t=v*(1-s*(1-f));if(i==0){r=v;g=t;b=p;}else if(i==1){r=q;g=v;b=p;}else if(i==2){r=p;g=v;b=t;}else if(i==3){r=p;g=q;b=v;}else if(i==4){r=t;g=p;b=v;}else{r=v;g=p;b=q;}
return[Math.floor(r*255),Math.floor(g*255),Math.floor(b*255)];}
ltk.color.rgb2hsv=function(p)
{var r=p[0];var g=p[1];var b=p[2];var v=Math.max(r,Math.max(g,b));var x=Math.min(r,Math.min(g,b));if(v==0){return[0,0,0];}
var s=(v-x)/v;var rtemp=(v-r)*60/(v-x);var gtemp=(v-g)*60/(v-x);var btemp=(v-b)*60/(v-x);if(r==v){if(g==x){var h=300+btemp;}else{var h=60-gtemp;}}else if(g==v){if(b==x){var h=60+rtemp;}else{var h=180-btemp;}}else{if(r==x){var h=180+gtemp;}else{var h=300-rtemp;}}
return[h,s,v];}
ltk.color.bw2rgb=function(p)
{var rgb=Math.floor((p[0]/100)*255);return[rgb,rgb,rgb];}
ltk.color.rgb2bw=function(p)
{var bw=Math.floor((p[0]*0.31+p[1]*0.46+p[2]*0.23)/255*100);return[bw,bw,bw];}
ltk.color.rgb2hex=function(p)
{var r='0'+(p[0].toString(16));var g='0'+(p[1].toString(16));var b='0'+(p[2].toString(16));return'#'
+r.substring(r.length-2)
+g.substring(g.length-2)
+b.substring(b.length-2);}
ltk.color.hex2rgb=function(p)
{p=p.replace(/^#/,'');if(p.length==3){p=p.substr(1,1)+p.substr(1,1)+
p.substr(2,1)+p.substr(2,1)+
p.substr(3,1)+p.substr(3,1);}
return[parseInt('0x'+p.substring(0,2),16),parseInt('0x'+p.substring(2,4),16),parseInt('0x'+p.substring(4,6),16)];}
ltk.color.getBrightness=function(p)
{return Math.floor(Math.sqrt(p[0]*p[0]*.241+p[1]*p[1]*.691+p[2]*p[2]*.068));}
ltk.color.blend=function(a,b,alpha)
{return[Math.round(a[0]+(b[0]-a[0])*alpha),Math.round(a[1]+(b[1]-a[1])*alpha),Math.round(a[2]+(b[2]-a[2])*alpha)];}
ltk.color.prototype.setColor=function(p,type)
{var rgb=[];switch(parseInt(type,10)){case ltk.color.type.RGB:rgb=p;break;case ltk.color.type.CMYK:rgb=ltk.color.cmyk2rgb(p);break;case ltk.color.type.HSV:rgb=ltk.color.hsv2rgb(p);break;case ltk.color.type.BW:rgb=ltk.color.bw2rgb(p);break;case ltk.color.type.HEX:rgb=ltk.color.hex2rgb(p);break;case ltk.color.type.CH_R:rgb=[p,0,0];break;case ltk.color.type.CH_G:rgb=[0,p,0];break;case ltk.color.type.CH_B:rgb=[0,0,p];break;case ltk.color.type.CH_C:rgb=ltk.color.cmyk2rgb([p,0,0,0]);break;case ltk.color.type.CH_M:rgb=ltk.color.cmyk2rgb([0,p,0,0]);break;case ltk.color.type.CH_Y:rgb=ltk.color.cmyk2rgb([0,0,p,0]);break;case ltk.color.type.CH_K:rgb=ltk.color.cmyk2rgb([0,0,0,p]);break;case ltk.color.type.CH_H:rgb=ltk.color.hsv2rgb([p,0,0]);break;case ltk.color.type.CH_S:rgb=ltk.color.hsv2rgb([0,p,0]);break;case ltk.color.type.CH_V:rgb=ltk.color.hsv2rgb([0,0,p]);break;case ltk.color.type.CH_BW:rgb=ltk.color.bw2rgb([p]);break;default:return;}
this.r=rgb[0];this.g=rgb[1];this.b=rgb[2];}
ltk.color.prototype.getColor=function(type)
{var ret=null;var p=[this.r,this.g,this.b];switch(parseInt(type,10)){case ltk.color.type.RGB:ret=p;break;case ltk.color.type.CMYK:ret=ltk.color.rgb2cmyk(p);break;case ltk.color.type.HSV:ret=ltk.color.rgb2hsv(p);break;case ltk.color.type.BW:ret=ltk.color.rgb2bw(p);break;case ltk.color.type.HEX:ret=ltk.color.rgb2hex(p);break;case ltk.color.type.CH_R:ret=this.r;break;case ltk.color.type.CH_G:ret=this.g;break;case ltk.color.type.CH_B:ret=this.b;break;case ltk.color.type.CH_C:ret=ltk.color.rgb2cmyk(p)[0];break;case ltk.color.type.CH_M:ret=ltk.color.rgb2cmyk(p)[1];break;case ltk.color.type.CH_Y:ret=ltk.color.rgb2cmyk(p)[2];break;case ltk.color.type.CH_K:ret=ltk.color.rgb2cmyk(p)[3];break;case ltk.color.type.CH_H:ret=ltk.color.rgb2hsv(p)[0];break;case ltk.color.type.CH_S:ret=ltk.color.rgb2hsv(p)[1];break;case ltk.color.type.CH_V:ret=ltk.color.rgb2hsv(p)[2];break;case ltk.color.type.CH_BW:ret=ltk.color.rgb2bw(p)[0];break;default:break;}
return ret;}})();


if(!this.JSON){JSON=function(){function f(n){return n<10?'0'+n:n;}
Date.prototype.toJSON=function(key){return this.getUTCFullYear()+'-'+
f(this.getUTCMonth()+1)+'-'+
f(this.getUTCDate())+'T'+
f(this.getUTCHours())+':'+
f(this.getUTCMinutes())+':'+
f(this.getUTCSeconds())+'Z';};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf();};var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapeable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function quote(string){escapeable.lastIndex=0;return escapeable.test(string)?'"'+string.replace(escapeable,function(a){var c=meta[a];if(typeof c==='string'){return c;}
return'\\u'+('0000'+
(+(a.charCodeAt(0))).toString(16)).slice(-4);})+'"':'"'+string+'"';}
function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key);}
if(typeof rep==='function'){value=rep.call(holder,key,value);}
switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null';}
gap+=indent;partial=[];if(typeof value.length==='number'&&!(value.propertyIsEnumerable('length'))){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||'null';}
v=partial.length===0?'[]':gap?'[\n'+gap+
partial.join(',\n'+gap)+'\n'+
mind+']':'['+partial.join(',')+']';gap=mind;return v;}
if(rep&&typeof rep==='object'){length=rep.length;for(i=0;i<length;i+=1){k=rep[i];if(typeof k==='string'){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}else{for(k in value){if(Object.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}
v=partial.length===0?'{}':gap?'{\n'+gap+partial.join(',\n'+gap)+'\n'+
mind+'}':'{'+partial.join(',')+'}';gap=mind;return v;}}
return{stringify:function(value,replacer,space){var i;gap='';indent='';if(typeof space==='number'){for(i=0;i<space;i+=1){indent+=' ';}}else if(typeof space==='string'){indent=space;}
rep=replacer;if(replacer&&typeof replacer!=='function'&&(typeof replacer!=='object'||typeof replacer.length!=='number')){throw new Error('JSON.stringify');}
return str('',{'':value});},parse:function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==='object'){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v;}else{delete value[k];}}}}
return reviver.call(holder,key,value);}
cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+('0000'+
(+(a.charCodeAt(0))).toString(16)).slice(-4);});}
if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j;}
throw new SyntaxError('JSON.parse');}};}();}


(function(){var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,done=0,toString=Object.prototype.toString,hasDuplicate=false,baseHasDuplicate=true;[0,0].sort(function(){baseHasDuplicate=false;return 0;});var Sizzle=function(selector,context,results,seed){results=results||[];context=context||document;var origContext=context;if(context.nodeType!==1&&context.nodeType!==9){return[];}
if(!selector||typeof selector!=="string"){return results;}
var parts=[],m,set,checkSet,extra,prune=true,contextXML=Sizzle.isXML(context),soFar=selector,ret,cur,pop,i;do{chunker.exec("");m=chunker.exec(soFar);if(m){soFar=m[3];parts.push(m[1]);if(m[2]){extra=m[3];break;}}}while(m);if(parts.length>1&&origPOS.exec(selector)){if(parts.length===2&&Expr.relative[parts[0]]){set=posProcess(parts[0]+parts[1],context);}else{set=Expr.relative[parts[0]]?[context]:Sizzle(parts.shift(),context);while(parts.length){selector=parts.shift();if(Expr.relative[selector]){selector+=parts.shift();}
set=posProcess(selector,set);}}}else{if(!seed&&parts.length>1&&context.nodeType===9&&!contextXML&&Expr.match.ID.test(parts[0])&&!Expr.match.ID.test(parts[parts.length-1])){ret=Sizzle.find(parts.shift(),context,contextXML);context=ret.expr?Sizzle.filter(ret.expr,ret.set)[0]:ret.set[0];}
if(context){ret=seed?{expr:parts.pop(),set:makeArray(seed)}:Sizzle.find(parts.pop(),parts.length===1&&(parts[0]==="~"||parts[0]==="+")&&context.parentNode?context.parentNode:context,contextXML);set=ret.expr?Sizzle.filter(ret.expr,ret.set):ret.set;if(parts.length>0){checkSet=makeArray(set);}else{prune=false;}
while(parts.length){cur=parts.pop();pop=cur;if(!Expr.relative[cur]){cur="";}else{pop=parts.pop();}
if(pop==null){pop=context;}
Expr.relative[cur](checkSet,pop,contextXML);}}else{checkSet=parts=[];}}
if(!checkSet){checkSet=set;}
if(!checkSet){Sizzle.error(cur||selector);}
if(toString.call(checkSet)==="[object Array]"){if(!prune){results.push.apply(results,checkSet);}else if(context&&context.nodeType===1){for(i=0;checkSet[i]!=null;i++){if(checkSet[i]&&(checkSet[i]===true||checkSet[i].nodeType===1&&Sizzle.contains(context,checkSet[i]))){results.push(set[i]);}}}else{for(i=0;checkSet[i]!=null;i++){if(checkSet[i]&&checkSet[i].nodeType===1){results.push(set[i]);}}}}else{makeArray(checkSet,results);}
if(extra){Sizzle(extra,origContext,results,seed);Sizzle.uniqueSort(results);}
return results;};Sizzle.uniqueSort=function(results){if(sortOrder){hasDuplicate=baseHasDuplicate;results.sort(sortOrder);if(hasDuplicate){for(var i=1;i<results.length;i++){if(results[i]===results[i-1]){results.splice(i--,1);}}}}
return results;};Sizzle.matches=function(expr,set){return Sizzle(expr,null,null,set);};Sizzle.find=function(expr,context,isXML){var set;if(!expr){return[];}
for(var i=0,l=Expr.order.length;i<l;i++){var type=Expr.order[i],match;if((match=Expr.leftMatch[type].exec(expr))){var left=match[1];match.splice(1,1);if(left.substr(left.length-1)!=="\\"){match[1]=(match[1]||"").replace(/\\/g,"");set=Expr.find[type](match,context,isXML);if(set!=null){expr=expr.replace(Expr.match[type],"");break;}}}}
if(!set){set=context.getElementsByTagName("*");}
return{set:set,expr:expr};};Sizzle.filter=function(expr,set,inplace,not){var old=expr,result=[],curLoop=set,match,anyFound,isXMLFilter=set&&set[0]&&Sizzle.isXML(set[0]);while(expr&&set.length){for(var type in Expr.filter){if((match=Expr.leftMatch[type].exec(expr))!=null&&match[2]){var filter=Expr.filter[type],found,item,left=match[1];anyFound=false;match.splice(1,1);if(left.substr(left.length-1)==="\\"){continue;}
if(curLoop===result){result=[];}
if(Expr.preFilter[type]){match=Expr.preFilter[type](match,curLoop,inplace,result,not,isXMLFilter);if(!match){anyFound=found=true;}else if(match===true){continue;}}
if(match){for(var i=0;(item=curLoop[i])!=null;i++){if(item){found=filter(item,match,i,curLoop);var pass=not^!!found;if(inplace&&found!=null){if(pass){anyFound=true;}else{curLoop[i]=false;}}else if(pass){result.push(item);anyFound=true;}}}}
if(found!==undefined){if(!inplace){curLoop=result;}
expr=expr.replace(Expr.match[type],"");if(!anyFound){return[];}
break;}}}
if(expr===old){if(anyFound==null){Sizzle.error(expr);}else{break;}}
old=expr;}
return curLoop;};Sizzle.error=function(msg){throw"Syntax error, unrecognized expression: "+msg;};var Expr=Sizzle.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(elem){return elem.getAttribute("href");}},relative:{"+":function(checkSet,part){var isPartStr=typeof part==="string",isTag=isPartStr&&!/\W/.test(part),isPartStrNotTag=isPartStr&&!isTag;if(isTag){part=part.toLowerCase();}
for(var i=0,l=checkSet.length,elem;i<l;i++){if((elem=checkSet[i])){while((elem=elem.previousSibling)&&elem.nodeType!==1){}
checkSet[i]=isPartStrNotTag||elem&&elem.nodeName.toLowerCase()===part?elem||false:elem===part;}}
if(isPartStrNotTag){Sizzle.filter(part,checkSet,true);}},">":function(checkSet,part){var isPartStr=typeof part==="string",elem,i=0,l=checkSet.length;if(isPartStr&&!/\W/.test(part)){part=part.toLowerCase();for(;i<l;i++){elem=checkSet[i];if(elem){var parent=elem.parentNode;checkSet[i]=parent.nodeName.toLowerCase()===part?parent:false;}}}else{for(;i<l;i++){elem=checkSet[i];if(elem){checkSet[i]=isPartStr?elem.parentNode:elem.parentNode===part;}}
if(isPartStr){Sizzle.filter(part,checkSet,true);}}},"":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck,nodeCheck;if(typeof part==="string"&&!/\W/.test(part)){part=part.toLowerCase();nodeCheck=part;checkFn=dirNodeCheck;}
checkFn("parentNode",part,doneName,checkSet,nodeCheck,isXML);},"~":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck,nodeCheck;if(typeof part==="string"&&!/\W/.test(part)){part=part.toLowerCase();nodeCheck=part;checkFn=dirNodeCheck;}
checkFn("previousSibling",part,doneName,checkSet,nodeCheck,isXML);}},find:{ID:function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?[m]:[];}},NAME:function(match,context){if(typeof context.getElementsByName!=="undefined"){var ret=[],results=context.getElementsByName(match[1]);for(var i=0,l=results.length;i<l;i++){if(results[i].getAttribute("name")===match[1]){ret.push(results[i]);}}
return ret.length===0?null:ret;}},TAG:function(match,context){return context.getElementsByTagName(match[1]);}},preFilter:{CLASS:function(match,curLoop,inplace,result,not,isXML){match=" "+match[1].replace(/\\/g,"")+" ";if(isXML){return match;}
for(var i=0,elem;(elem=curLoop[i])!=null;i++){if(elem){if(not^(elem.className&&(" "+elem.className+" ").replace(/[\t\n]/g," ").indexOf(match)>=0)){if(!inplace){result.push(elem);}}else if(inplace){curLoop[i]=false;}}}
return false;},ID:function(match){return match[1].replace(/\\/g,"");},TAG:function(match,curLoop){return match[1].toLowerCase();},CHILD:function(match){if(match[1]==="nth"){var test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(match[2]==="even"&&"2n"||match[2]==="odd"&&"2n+1"||!/\D/.test(match[2])&&"0n+"+match[2]||match[2]);match[2]=(test[1]+(test[2]||1))-0;match[3]=test[3]-0;}
match[0]=done++;return match;},ATTR:function(match,curLoop,inplace,result,not,isXML){var name=match[1].replace(/\\/g,"");if(!isXML&&Expr.attrMap[name]){match[1]=Expr.attrMap[name];}
if(match[2]==="~="){match[4]=" "+match[4]+" ";}
return match;},PSEUDO:function(match,curLoop,inplace,result,not){if(match[1]==="not"){if((chunker.exec(match[3])||"").length>1||/^\w/.test(match[3])){match[3]=Sizzle(match[3],null,null,curLoop);}else{var ret=Sizzle.filter(match[3],curLoop,inplace,true^not);if(!inplace){result.push.apply(result,ret);}
return false;}}else if(Expr.match.POS.test(match[0])||Expr.match.CHILD.test(match[0])){return true;}
return match;},POS:function(match){match.unshift(true);return match;}},filters:{enabled:function(elem){return elem.disabled===false&&elem.type!=="hidden";},disabled:function(elem){return elem.disabled===true;},checked:function(elem){return elem.checked===true;},selected:function(elem){elem.parentNode.selectedIndex;return elem.selected===true;},parent:function(elem){return!!elem.firstChild;},empty:function(elem){return!elem.firstChild;},has:function(elem,i,match){return!!Sizzle(match[3],elem).length;},header:function(elem){return(/h\d/i).test(elem.nodeName);},text:function(elem){return"text"===elem.type;},radio:function(elem){return"radio"===elem.type;},checkbox:function(elem){return"checkbox"===elem.type;},file:function(elem){return"file"===elem.type;},password:function(elem){return"password"===elem.type;},submit:function(elem){return"submit"===elem.type;},image:function(elem){return"image"===elem.type;},reset:function(elem){return"reset"===elem.type;},button:function(elem){return"button"===elem.type||elem.nodeName.toLowerCase()==="button";},input:function(elem){return(/input|select|textarea|button/i).test(elem.nodeName);}},setFilters:{first:function(elem,i){return i===0;},last:function(elem,i,match,array){return i===array.length-1;},even:function(elem,i){return i%2===0;},odd:function(elem,i){return i%2===1;},lt:function(elem,i,match){return i<match[3]-0;},gt:function(elem,i,match){return i>match[3]-0;},nth:function(elem,i,match){return match[3]-0===i;},eq:function(elem,i,match){return match[3]-0===i;}},filter:{PSEUDO:function(elem,match,i,array){var name=match[1],filter=Expr.filters[name];if(filter){return filter(elem,i,match,array);}else if(name==="contains"){return(elem.textContent||elem.innerText||Sizzle.getText([elem])||"").indexOf(match[3])>=0;}else if(name==="not"){var not=match[3];for(var j=0,l=not.length;j<l;j++){if(not[j]===elem){return false;}}
return true;}else{Sizzle.error("Syntax error, unrecognized expression: "+name);}},CHILD:function(elem,match){var type=match[1],node=elem;switch(type){case'only':case'first':while((node=node.previousSibling)){if(node.nodeType===1){return false;}}
if(type==="first"){return true;}
node=elem;case'last':while((node=node.nextSibling)){if(node.nodeType===1){return false;}}
return true;case'nth':var first=match[2],last=match[3];if(first===1&&last===0){return true;}
var doneName=match[0],parent=elem.parentNode;if(parent&&(parent.sizcache!==doneName||!elem.nodeIndex)){var count=0;for(node=parent.firstChild;node;node=node.nextSibling){if(node.nodeType===1){node.nodeIndex=++count;}}
parent.sizcache=doneName;}
var diff=elem.nodeIndex-last;if(first===0){return diff===0;}else{return(diff%first===0&&diff/first>=0);}}},ID:function(elem,match){return elem.nodeType===1&&elem.getAttribute("id")===match;},TAG:function(elem,match){return(match==="*"&&elem.nodeType===1)||elem.nodeName.toLowerCase()===match;},CLASS:function(elem,match){return(" "+(elem.className||elem.getAttribute("class"))+" ").indexOf(match)>-1;},ATTR:function(elem,match){var name=match[1],result=Expr.attrHandle[name]?Expr.attrHandle[name](elem):elem[name]!=null?elem[name]:elem.getAttribute(name),value=result+"",type=match[2],check=match[4];return result==null?type==="!=":type==="="?value===check:type==="*="?value.indexOf(check)>=0:type==="~="?(" "+value+" ").indexOf(check)>=0:!check?value&&result!==false:type==="!="?value!==check:type==="^="?value.indexOf(check)===0:type==="$="?value.substr(value.length-check.length)===check:type==="|="?value===check||value.substr(0,check.length+1)===check+"-":false;},POS:function(elem,match,i,array){var name=match[2],filter=Expr.setFilters[name];if(filter){return filter(elem,i,match,array);}}}};var origPOS=Expr.match.POS,fescape=function(all,num){return"\\"+(num-0+1);};for(var type in Expr.match){Expr.match[type]=new RegExp(Expr.match[type].source+(/(?![^\[]*\])(?![^\(]*\))/.source));Expr.leftMatch[type]=new RegExp(/(^(?:.|\r|\n)*?)/.source+Expr.match[type].source.replace(/\\(\d+)/g,fescape));}
var makeArray=function(array,results){array=Array.prototype.slice.call(array,0);if(results){results.push.apply(results,array);return results;}
return array;};try{Array.prototype.slice.call(document.documentElement.childNodes,0)[0].nodeType;}catch(e){makeArray=function(array,results){var ret=results||[],i=0;if(toString.call(array)==="[object Array]"){Array.prototype.push.apply(ret,array);}else{if(typeof array.length==="number"){for(var l=array.length;i<l;i++){ret.push(array[i]);}}else{for(;array[i];i++){ret.push(array[i]);}}}
return ret;};}
var sortOrder;if(document.documentElement.compareDocumentPosition){sortOrder=function(a,b){if(!a.compareDocumentPosition||!b.compareDocumentPosition){if(a==b){hasDuplicate=true;}
return a.compareDocumentPosition?-1:1;}
var ret=a.compareDocumentPosition(b)&4?-1:a===b?0:1;if(ret===0){hasDuplicate=true;}
return ret;};}else if("sourceIndex"in document.documentElement){sortOrder=function(a,b){if(!a.sourceIndex||!b.sourceIndex){if(a==b){hasDuplicate=true;}
return a.sourceIndex?-1:1;}
var ret=a.sourceIndex-b.sourceIndex;if(ret===0){hasDuplicate=true;}
return ret;};}else if(document.createRange){sortOrder=function(a,b){if(!a.ownerDocument||!b.ownerDocument){if(a==b){hasDuplicate=true;}
return a.ownerDocument?-1:1;}
var aRange=a.ownerDocument.createRange(),bRange=b.ownerDocument.createRange();aRange.setStart(a,0);aRange.setEnd(a,0);bRange.setStart(b,0);bRange.setEnd(b,0);var ret=aRange.compareBoundaryPoints(Range.START_TO_END,bRange);if(ret===0){hasDuplicate=true;}
return ret;};}
Sizzle.getText=function(elems){var ret="",elem;for(var i=0;elems[i];i++){elem=elems[i];if(elem.nodeType===3||elem.nodeType===4){ret+=elem.nodeValue;}else if(elem.nodeType!==8){ret+=Sizzle.getText(elem.childNodes);}}
return ret;};(function(){var form=document.createElement("div"),id="script"+(new Date()).getTime();form.innerHTML="<a name='"+id+"'/>";var root=document.documentElement;root.insertBefore(form,root.firstChild);if(document.getElementById(id)){Expr.find.ID=function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);return m?m.id===match[1]||typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id").nodeValue===match[1]?[m]:undefined:[];}};Expr.filter.ID=function(elem,match){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return elem.nodeType===1&&node&&node.nodeValue===match;};}
root.removeChild(form);root=form=null;})();(function(){var div=document.createElement("div");div.appendChild(document.createComment(""));if(div.getElementsByTagName("*").length>0){Expr.find.TAG=function(match,context){var results=context.getElementsByTagName(match[1]);if(match[1]==="*"){var tmp=[];for(var i=0;results[i];i++){if(results[i].nodeType===1){tmp.push(results[i]);}}
results=tmp;}
return results;};}
div.innerHTML="<a href='#'></a>";if(div.firstChild&&typeof div.firstChild.getAttribute!=="undefined"&&div.firstChild.getAttribute("href")!=="#"){Expr.attrHandle.href=function(elem){return elem.getAttribute("href",2);};}
div=null;})();if(document.querySelectorAll){(function(){var oldSizzle=Sizzle,div=document.createElement("div");div.innerHTML="<p class='TEST'></p>";if(div.querySelectorAll&&div.querySelectorAll(".TEST").length===0){return;}
Sizzle=function(query,context,extra,seed){context=context||document;if(!seed&&context.nodeType===9&&!Sizzle.isXML(context)){try{return makeArray(context.querySelectorAll(query),extra);}catch(e){}}
return oldSizzle(query,context,extra,seed);};for(var prop in oldSizzle){Sizzle[prop]=oldSizzle[prop];}
div=null;})();}
(function(){var div=document.createElement("div");div.innerHTML="<div class='test e'></div><div class='test'></div>";if(!div.getElementsByClassName||div.getElementsByClassName("e").length===0){return;}
div.lastChild.className="e";if(div.getElementsByClassName("e").length===1){return;}
Expr.order.splice(1,0,"CLASS");Expr.find.CLASS=function(match,context,isXML){if(typeof context.getElementsByClassName!=="undefined"&&!isXML){return context.getElementsByClassName(match[1]);}};div=null;})();function dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){elem=elem[dir];var match=false;while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break;}
if(elem.nodeType===1&&!isXML){elem.sizcache=doneName;elem.sizset=i;}
if(elem.nodeName.toLowerCase()===cur){match=elem;break;}
elem=elem[dir];}
checkSet[i]=match;}}}
function dirCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){for(var i=0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){elem=elem[dir];var match=false;while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break;}
if(elem.nodeType===1){if(!isXML){elem.sizcache=doneName;elem.sizset=i;}
if(typeof cur!=="string"){if(elem===cur){match=true;break;}}else if(Sizzle.filter(cur,[elem]).length>0){match=elem;break;}}
elem=elem[dir];}
checkSet[i]=match;}}}
Sizzle.contains=document.compareDocumentPosition?function(a,b){return!!(a.compareDocumentPosition(b)&16);}:function(a,b){return a!==b&&(a.contains?a.contains(b):true);};Sizzle.isXML=function(elem){var documentElement=(elem?elem.ownerDocument||elem:0).documentElement;return documentElement?documentElement.nodeName!=="HTML":false;};var posProcess=function(selector,context){var tmpSet=[],later="",match,root=context.nodeType?[context]:context;while((match=Expr.match.PSEUDO.exec(selector))){later+=match[0];selector=selector.replace(Expr.match.PSEUDO,"");}
selector=Expr.relative[selector]?selector+"*":selector;for(var i=0,l=root.length;i<l;i++){Sizzle(selector,root[i],tmpSet);}
return Sizzle.filter(later,tmpSet);};window.Sizzle=Sizzle;})();


function Animator(options){this.setOptions(options);var _this=this;this.timerDelegate=function(){_this.onTimerEvent()};this.subjects=[];this.target=0;this.state=0;this.lastTime=null;};Animator.prototype={setOptions:function(options){this.options=Animator.applyDefaults({interval:20,duration:400,onComplete:function(){},onStep:function(){},transition:Animator.tx.easeInOut},options);},seekTo:function(to){this.seekFromTo(this.state,to);},seekFromTo:function(from,to){this.target=Math.max(0,Math.min(1,to));this.state=Math.max(0,Math.min(1,from));this.lastTime=new Date().getTime();if(!this.intervalId){this.intervalId=window.setInterval(this.timerDelegate,this.options.interval);}},jumpTo:function(to){this.target=this.state=Math.max(0,Math.min(1,to));this.propagate();},toggle:function(){this.seekTo(1-this.target);},addSubject:function(subject){this.subjects[this.subjects.length]=subject;return this;},clearSubjects:function(){this.subjects=[];},propagate:function(){var value=this.options.transition(this.state);for(var i=0;i<this.subjects.length;i++){if(this.subjects[i].setState){this.subjects[i].setState(value);}else{this.subjects[i](value);}}},onTimerEvent:function(){var now=new Date().getTime();var timePassed=now-this.lastTime;this.lastTime=now;var movement=(timePassed/this.options.duration)*(this.state<this.target?1:-1);if(Math.abs(movement)>=Math.abs(this.state-this.target)){this.state=this.target;}else{this.state+=movement;}
try{this.propagate();}finally{this.options.onStep.call(this);if(this.target==this.state){window.clearInterval(this.intervalId);this.intervalId=null;this.options.onComplete.call(this);}}},play:function(){this.seekFromTo(0,1)},reverse:function(){this.seekFromTo(1,0)},inspect:function(){var str="#<Animator:\n";for(var i=0;i<this.subjects.length;i++){str+=this.subjects[i].inspect();}
str+=">";return str;}}
Animator.applyDefaults=function(defaults,prefs){prefs=prefs||{};var prop,result={};for(prop in defaults)result[prop]=prefs[prop]!==undefined?prefs[prop]:defaults[prop];return result;}
Animator.makeArray=function(o){if(o==null)return[];if(!o.length)return[o];var result=[];for(var i=0;i<o.length;i++)result[i]=o[i];return result;}
Animator.camelize=function(string){var oStringList=string.split('-');if(oStringList.length==1)return oStringList[0];var camelizedString=string.indexOf('-')==0?oStringList[0].charAt(0).toUpperCase()+oStringList[0].substring(1):oStringList[0];for(var i=1,len=oStringList.length;i<len;i++){var s=oStringList[i];camelizedString+=s.charAt(0).toUpperCase()+s.substring(1);}
return camelizedString;}
Animator.apply=function(el,style,options){if(style instanceof Array){return new Animator(options).addSubject(new CSSStyleSubject(el,style[0],style[1]));}
return new Animator(options).addSubject(new CSSStyleSubject(el,style));}
Animator.makeEaseIn=function(a){return function(state){return Math.pow(state,a*2);}}
Animator.makeEaseOut=function(a){return function(state){return 1-Math.pow(1-state,a*2);}}
Animator.makeElastic=function(bounces){return function(state){state=Animator.tx.easeInOut(state);return((1-Math.cos(state*Math.PI*bounces))*(1-state))+state;}}
Animator.makeADSR=function(attackEnd,decayEnd,sustainEnd,sustainLevel){if(sustainLevel==null)sustainLevel=0.5;return function(state){if(state<attackEnd){return state/attackEnd;}
if(state<decayEnd){return 1-((state-attackEnd)/(decayEnd-attackEnd)*(1-sustainLevel));}
if(state<sustainEnd){return sustainLevel;}
return sustainLevel*(1-((state-sustainEnd)/(1-sustainEnd)));}}
Animator.makeBounce=function(bounces){var fn=Animator.makeElastic(bounces);return function(state){state=fn(state);return state<=1?state:2-state;}}
Animator.tx={easeInOut:function(pos){return((-Math.cos(pos*Math.PI)/2)+0.5);},linear:function(x){return x;},easeIn:Animator.makeEaseIn(1.5),easeOut:Animator.makeEaseOut(1.5),strongEaseIn:Animator.makeEaseIn(2.5),strongEaseOut:Animator.makeEaseOut(2.5),elastic:Animator.makeElastic(1),veryElastic:Animator.makeElastic(3),bouncy:Animator.makeBounce(1),veryBouncy:Animator.makeBounce(3)}
function NumericalStyleSubject(els,property,from,to,units){this.els=Animator.makeArray(els);if(property=='opacity'&&window.ActiveXObject){this.property='filter';}else{this.property=Animator.camelize(property);}
this.from=parseFloat(from);this.to=parseFloat(to);this.units=units!=null?units:'px';}
NumericalStyleSubject.prototype={setState:function(state){var style=this.getStyle(state);var visibility=(this.property=='opacity'&&state==0)?'hidden':'';var j=0;for(var i=0;i<this.els.length;i++){try{this.els[i].style[this.property]=style;}catch(e){if(this.property!='fontWeight')throw e;}
if(j++>20)return;}},getStyle:function(state){state=this.from+((this.to-this.from)*state);if(this.property=='filter')return"alpha(opacity="+Math.round(state*100)+")";if(this.property=='opacity')return state;return Math.round(state)+this.units;},inspect:function(){return"\t"+this.property+"("+this.from+this.units+" to "+this.to+this.units+")\n";}}
function ColorStyleSubject(els,property,from,to){this.els=Animator.makeArray(els);this.property=Animator.camelize(property);this.to=this.expandColor(to);this.from=this.expandColor(from);this.origFrom=from;this.origTo=to;}
ColorStyleSubject.prototype={expandColor:function(color){var hexColor,red,green,blue;hexColor=ColorStyleSubject.parseColor(color);if(hexColor){red=parseInt(hexColor.slice(1,3),16);green=parseInt(hexColor.slice(3,5),16);blue=parseInt(hexColor.slice(5,7),16);return[red,green,blue]}
if(window.DEBUG){alert("Invalid colour: '"+color+"'");}},getValueForState:function(color,state){return Math.round(this.from[color]+((this.to[color]-this.from[color])*state));},setState:function(state){var color='#'
+ColorStyleSubject.toColorPart(this.getValueForState(0,state))
+ColorStyleSubject.toColorPart(this.getValueForState(1,state))
+ColorStyleSubject.toColorPart(this.getValueForState(2,state));for(var i=0;i<this.els.length;i++){this.els[i].style[this.property]=color;}},inspect:function(){return"\t"+this.property+"("+this.origFrom+" to "+this.origTo+")\n";}}
ColorStyleSubject.parseColor=function(string){var color='#',match;if(match=ColorStyleSubject.parseColor.rgbRe.exec(string)){var part;for(var i=1;i<=3;i++){part=Math.max(0,Math.min(255,parseInt(match[i])));color+=ColorStyleSubject.toColorPart(part);}
return color;}
if(match=ColorStyleSubject.parseColor.hexRe.exec(string)){if(match[1].length==3){for(var i=0;i<3;i++){color+=match[1].charAt(i)+match[1].charAt(i);}
return color;}
return'#'+match[1];}
return false;}
ColorStyleSubject.toColorPart=function(number){if(number>255)number=255;var digits=number.toString(16);if(number<16)return'0'+digits;return digits;}
ColorStyleSubject.parseColor.rgbRe=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i;ColorStyleSubject.parseColor.hexRe=/^\#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;function DiscreteStyleSubject(els,property,from,to,threshold){this.els=Animator.makeArray(els);this.property=Animator.camelize(property);this.from=from;this.to=to;this.threshold=threshold||0.5;}
DiscreteStyleSubject.prototype={setState:function(state){var j=0;for(var i=0;i<this.els.length;i++){this.els[i].style[this.property]=state<=this.threshold?this.from:this.to;}},inspect:function(){return"\t"+this.property+"("+this.from+" to "+this.to+" @ "+this.threshold+")\n";}}
function CSSStyleSubject(els,style1,style2){els=Animator.makeArray(els);this.subjects=[];if(els.length==0)return;var prop,toStyle,fromStyle;if(style2){fromStyle=this.parseStyle(style1,els[0]);toStyle=this.parseStyle(style2,els[0]);}else{toStyle=this.parseStyle(style1,els[0]);fromStyle={};for(prop in toStyle){fromStyle[prop]=CSSStyleSubject.getStyle(els[0],prop);}}
var prop;for(prop in fromStyle){if(fromStyle[prop]==toStyle[prop]){delete fromStyle[prop];delete toStyle[prop];}}
var prop,units,match,type,from,to;for(prop in fromStyle){var fromProp=String(fromStyle[prop]);var toProp=String(toStyle[prop]);if(toStyle[prop]==null){if(window.DEBUG)alert("No to style provided for '"+prop+'"');continue;}
if(from=ColorStyleSubject.parseColor(fromProp)){to=ColorStyleSubject.parseColor(toProp);type=ColorStyleSubject;}else if(fromProp.match(CSSStyleSubject.numericalRe)&&toProp.match(CSSStyleSubject.numericalRe)){from=parseFloat(fromProp);to=parseFloat(toProp);type=NumericalStyleSubject;match=CSSStyleSubject.numericalRe.exec(fromProp);var reResult=CSSStyleSubject.numericalRe.exec(toProp);if(match[1]!=null){units=match[1];}else if(reResult[1]!=null){units=reResult[1];}else{units=reResult;}}else if(fromProp.match(CSSStyleSubject.discreteRe)&&toProp.match(CSSStyleSubject.discreteRe)){from=fromProp;to=toProp;type=DiscreteStyleSubject;units=0;}else{if(window.DEBUG){alert("Unrecognised format for value of "
+prop+": '"+fromStyle[prop]+"'");}
continue;}
this.subjects[this.subjects.length]=new type(els,prop,from,to,units);}}
CSSStyleSubject.prototype={parseStyle:function(style,el){var rtn={};if(style.indexOf(":")!=-1){var styles=style.split(";");for(var i=0;i<styles.length;i++){var parts=CSSStyleSubject.ruleRe.exec(styles[i]);if(parts){rtn[parts[1]]=parts[2];}}}
else{var prop,value,oldClass;oldClass=el.className;el.className=style;for(var i=0;i<CSSStyleSubject.cssProperties.length;i++){prop=CSSStyleSubject.cssProperties[i];value=CSSStyleSubject.getStyle(el,prop);if(value!=null){rtn[prop]=value;}}
el.className=oldClass;}
return rtn;},setState:function(state){for(var i=0;i<this.subjects.length;i++){this.subjects[i].setState(state);}},inspect:function(){var str="";for(var i=0;i<this.subjects.length;i++){str+=this.subjects[i].inspect();}
return str;}}
CSSStyleSubject.getStyle=function(el,property){var style;if(document.defaultView&&document.defaultView.getComputedStyle){style=document.defaultView.getComputedStyle(el,"").getPropertyValue(property);if(style){return style;}}
property=Animator.camelize(property);if(el.currentStyle){style=el.currentStyle[property];}
return style||el.style[property]}
CSSStyleSubject.ruleRe=/^\s*([a-zA-Z\-]+)\s*:\s*(\S(.+\S)?)\s*$/;CSSStyleSubject.numericalRe=/^-?\d+(?:\.\d+)?(%|[a-zA-Z]{2})?$/;CSSStyleSubject.discreteRe=/^\w+$/;CSSStyleSubject.cssProperties=['azimuth','background','background-attachment','background-color','background-image','background-position','background-repeat','border-collapse','border-color','border-spacing','border-style','border-top','border-top-color','border-right-color','border-bottom-color','border-left-color','border-top-style','border-right-style','border-bottom-style','border-left-style','border-top-width','border-right-width','border-bottom-width','border-left-width','border-width','bottom','clear','clip','color','content','cursor','direction','display','elevation','empty-cells','css-float','font','font-family','font-size','font-size-adjust','font-stretch','font-style','font-variant','font-weight','height','left','letter-spacing','line-height','list-style','list-style-image','list-style-position','list-style-type','margin','margin-top','margin-right','margin-bottom','margin-left','max-height','max-width','min-height','min-width','orphans','outline','outline-color','outline-style','outline-width','overflow','padding','padding-top','padding-right','padding-bottom','padding-left','pause','position','right','size','table-layout','text-align','text-decoration','text-indent','text-shadow','text-transform','top','vertical-align','visibility','white-space','width','word-spacing','z-index','opacity','outline-offset','overflow-x','overflow-y'];function AnimatorChain(animators,options){this.animators=animators;this.setOptions(options);for(var i=0;i<this.animators.length;i++){this.listenTo(this.animators[i]);}
this.forwards=false;this.current=0;}
AnimatorChain.prototype={setOptions:function(options){this.options=Animator.applyDefaults({resetOnPlay:true},options);},play:function(){this.forwards=true;this.current=-1;if(this.options.resetOnPlay){for(var i=0;i<this.animators.length;i++){this.animators[i].jumpTo(0);}}
this.advance();},reverse:function(){this.forwards=false;this.current=this.animators.length;if(this.options.resetOnPlay){for(var i=0;i<this.animators.length;i++){this.animators[i].jumpTo(1);}}
this.advance();},toggle:function(){if(this.forwards){this.seekTo(0);}else{this.seekTo(1);}},listenTo:function(animator){var oldOnComplete=animator.options.onComplete;var _this=this;animator.options.onComplete=function(){if(oldOnComplete)oldOnComplete.call(animator);_this.advance();}},advance:function(){if(this.forwards){if(this.animators[this.current+1]==null)return;this.current++;this.animators[this.current].play();}else{if(this.animators[this.current-1]==null)return;this.current--;this.animators[this.current].reverse();}},seekTo:function(target){if(target<=0){this.forwards=false;this.animators[this.current].seekTo(0);}else{this.forwards=true;this.animators[this.current].seekTo(1);}}}
function Accordion(options){this.setOptions(options);var selected=this.options.initialSection,current;if(this.options.rememberance){current=document.location.hash.substring(1);}
this.rememberanceTexts=[];this.ans=[];var _this=this;for(var i=0;i<this.options.sections.length;i++){var el=this.options.sections[i];var an=new Animator(this.options.animatorOptions);var from=this.options.from+(this.options.shift*i);var to=this.options.to+(this.options.shift*i);an.addSubject(new NumericalStyleSubject(el,this.options.property,from,to,this.options.units));an.jumpTo(0);var activator=this.options.getActivator(el);activator.index=i;activator.onclick=function(){_this.show(this.index)};this.ans[this.ans.length]=an;this.rememberanceTexts[i]=activator.innerHTML.replace(/\s/g,"");if(this.rememberanceTexts[i]===current){selected=i;}}
this.show(selected);}
Accordion.prototype={setOptions:function(options){this.options=Object.extend({sections:null,getActivator:function(el){return document.getElementById(el.getAttribute("activator"))},shift:0,initialSection:0,rememberance:true,animatorOptions:{}},options||{});},show:function(section){for(var i=0;i<this.ans.length;i++){this.ans[i].seekTo(i>section?1:0);}
if(this.options.rememberance){document.location.hash=this.rememberanceTexts[section];}}}

;(function(){if('widget'in ltk)return;ltk.widget=function()
{this.disabled=false;this.bgcolor=null;this.children=[];this.options={};}
ltk.widget.registry={};ltk.widget.register=function(classname,obj)
{var dissected=ltk.widget.dissectTag(classname);var ns=dissected.ns;var type=dissected.type;if(!(ns in ltk.widget.registry)){ltk.widget.registry[ns]={};}
if(!(type in ltk.widget.registry[ns])){ltk.widget.registry[ns][type]=obj;}else{throw'widget was registered before!';}}
ltk.widget.isRegistered=function(classname)
{var dissected=ltk.widget.dissectTag(classname);var ns=dissected.ns;var type=dissected.type;return(ns in ltk.widget.registry&&type in ltk.widget.registry[ns]?ltk.widget.registry[ns][type]:false);}
ltk.widget.dissectTag=function(tag)
{var dissected={'ns':'ltk','type':tag};var pos;if((pos=tag.indexOf(':'))>=0){dissected.ns=tag.substr(0,pos);dissected.type=tag.substr(pos+1);}
return dissected;}
ltk.widget.prototype.container='DIV';ltk.widget.prototype.cssclass='ltk_widget'
ltk.widget.prototype.widget=null;ltk.widget.prototype.name='';ltk.widget.prototype.destruct=function()
{}
ltk.widget.prototype.getDialog=function()
{return false;}
ltk.widget.prototype.getNode=function()
{return this.widget;}
ltk.widget.prototype.referenceable=function()
{return(this.widget.getAttribute('name')||this.widget.getAttribute('id'));}
ltk.widget.prototype.addEvent=function(type,cb)
{if(typeof this['on'+type]!='undefined'){var vec=this['on'+type];var me=this;this['on'+type]=function(){var args=[].splice.call(arguments,0);cb.apply(me,args);vec.apply(me,args);}}else{ltk.evt.addEvent(this.widget,type,cb);}}
ltk.widget.prototype.removeEvent=function()
{}
ltk.widget.prototype.getValue=function()
{return null;}
ltk.widget.prototype.getSpinner=function()
{var spinner=null;var me=this;this.getSpinner=(function(){spinner=new ltk.spinner();spinner.attach(me.widget,{});return function(){return spinner;}})();return spinner;}
ltk.widget.prototype.processChildren=function(def,processor,parent)
{var me=this;var _process=function(parent,def){if(!('children'in def))return;var j,child,widget,instance,dissected,tag;for(var i=0,cnt=def['children'].length;i<cnt;++i){child=null;for(j in def['children'][i]){child=def['children'][i][j];break;}
if(child==null){continue;}
dissected=ltk.widget.dissectTag(j);if(dissected.ns=='html'){tag=new ltk.widget();tag.widget=ltk.dom.create(dissected.type);tag.attach=function(parent,def){parent.appendChild(this.widget);this.widget.setProperties(def);if('name'in def){me.getDialog().addReference(def['name'],this.widget);}
this.processChildren(def,function(parent,instance,def){instance.attach(parent,def);});}
processor(parent,tag,child);continue;}
if(!(dissected.ns in ltk.widget.registry)){throw'unknwon namespace "'+dissected.ns+'"';}else if(!(dissected.type in ltk.widget.registry[dissected.ns])){throw'unknown widget type "'+dissected.type+'" in namespace "'+dissected.ns+'"';}
widget=ltk.widget.registry[dissected.ns][dissected.type];instance=me.addChild(new widget());if('name'in child){instance.setName(child['name']);}
processor(parent,instance,child);}}
if(typeof parent=='undefined'){parent=this.widget;}
_process(parent,def);}
ltk.widget.prototype.appendChild=function(parent,tag,def)
{var e=ltk.dom.create(tag);var c=this.cssclass;for(var p in def){switch(p){case'class':c=c+(c!=''?' ':'')+def[p];break;case'styles':if(typeof def[p]=='object'){e.setStyles(def[p]);}
break;case'id':e.setAttribute('id',def[p]);break;case'type':e.setAttribute('type',def[p]);break;default:if(p.substr(0,2)=='on'){if(p in this){this[p]=def[p];}else{e.node[p]=def[p];}}}}
e.node.className=c;parent.appendChild(e);return e;}
ltk.widget.prototype.assimilate=function(node)
{var me=this;(function _assimilate(node){node.childNodes().forEach(function(node){var attr,name,widget;if((attr=ltk.string.trim(node.getAttribute('ltk:data')))!=''){var data=eval('('+attr+')');for(var i in data)node.setData(i,data[i]);}
if((attr=node.getAttribute('ltk'))&&(widget=ltk.widget.isRegistered(attr))){var instance=me.addChild(new widget());instance.widget=node;instance.assimilate(node);if((name=node.getAttribute('name'))){instance.setName(name);}}else{_assimilate(node);}});})(node);}
ltk.widget.prototype.attach=function(parent,def)
{this.widget=this.appendChild(parent,this.container,def);var me=this;this.processChildren(def,function(parent,instance,def){instance.attach(parent,def);});}
ltk.widget.prototype.addChild=function(instance)
{this.children.push(instance);var me=this;instance.getDialog=function(){return me.getDialog();}
return instance;}
ltk.widget.prototype.setOptions=function(options)
{options=(typeof options=='undefined'?{}:options);this.options=ltk.extend(this.options,options);}
ltk.widget.prototype.setName=function(name)
{var dia=this.getDialog();if(dia==false){return;}
if(this.name!=''){dia.removeReference(this.name);}
this.name=name;dia.addReference(name,this);}
ltk.widget.prototype.setDisabled=function(disabled)
{disabled=!!disabled;if(this.disabled==disabled){return;}
this.disabled=disabled;for(var i=0,cnt=this.children.length;i<cnt;++i){this.children[i].setDisabled(disabled);}}
ltk.widget.prototype.destroy=function()
{for(var i=0,cnt=this.children.length;i<cnt;++i){this.children[i].destroy();}
this.destruct();}})();

;(function(){if('spinner'in ltk)return;var tab_tags=['A','BUTTON','TEXTAREA','INPUT','IFRAME'];function toggleFormElements(show){ltk.dom.get('SELECT').forEach(function(obj){obj.node.style.visibility=(show?'visible':'hidden');});}
function toggleTabIndexes(enable,tab_indexes){if(!document.all)return;if(enable){if(tab_indexes.length==0)return;for(var i=0,len=tab_indexes.length;i<len;++i){tab_indexes[i].ref.tabIndex=tab_indexes[i].idx;}}else{var me=this;tab_indexes=[];ltk.dom.get(tab_tags).forEach(function(obj){tab_indexes[idx++]={'ref':obj[i],'idx':obj[i].tabIndex}
obj.tabIndex='-1';});}
return tab_indexes;}
ltk.spinner=function()
{this.overlay=null;this.parent=null;this.layer=new ltk.dom.layer();}
ltk.widget.register('ltk:spinner',ltk.spinner);ltk.spinner.prototype=new ltk.widget();ltk.spinner.prototype.container='DIV';ltk.spinner.prototype.cssclass='ltk_spinner'
ltk.spinner.prototype.show=function()
{var width=this.parent.node.offsetWidth;var height=this.parent.node.offsetHeight;this.overlay.setStyles({'top':'0','left':'0','width':width+'px','height':height+'px','visibility':'visible'});this.widget.setStyles({'top':'0','left':'0','width':width+'px','height':height+'px','visibility':'visible'});this.layer.up();}
ltk.spinner.prototype.hide=function()
{this.overlay.setStyle('visibility','hidden');this.widget.setStyle('visibility','hidden');}
ltk.spinner.prototype.toggle=function(state)
{if(state){this.show();}else{this.hide();}}
ltk.spinner.prototype.attach=function(parent,options)
{parent.setStyle('position','relative');this.parent=parent;this.widget=this.appendChild(parent,this.container,{});this.overlay=parent.appendChild(ltk.dom.create('DIV',{'class':'ltk_spinner_overlay'}));this.layer.push([this.overlay,this.widget]);}})();
;(function(){if('selectbox'in ltk)return;ltk.selectbox=function()
{this.choosebtn={};this.opt={};this.id=ltk.getUniqID('ltk_selectbox_');}
ltk.widget.register('ltk:selectbox',ltk.selectbox);ltk.selectbox.prototype=new ltk.widget();ltk.selectbox.prototype.container='select';ltk.selectbox.prototype.cssclass='ltk_selectbox';ltk.selectbox.prototype.setDisabled=function(disabled)
{disabled=!!disabled
if(this.disabled==disabled){return;}
this.widget.node.disabled=this.disabled=disabled;}
ltk.selectbox.prototype.mouseDown=function()
{var me=this;var contentWidth=(this.widget.node.offsetWidth<200?200:this.widget.node.offsetWidth)+'px';window.setTimeout(function(){me.widget.setStyle('display','none');},1);if(!ltk.dom.one('#'+this.id)){var toogle='odd';var li=[];var data={};data.item=[];var itemLength=this.widget.node.options.length;var lineHeight=15;var contentHeight=(itemLength*lineHeight>100?200:60);for(var i=0;i<itemLength;++i){data.item[i]={'text':this.widget.node.options[i].text,'value':this.widget.node.options[i].value,'index':this.widget.node.options[i].index};}
ltk.array.forEach(data.item,function(item){if(toogle=='odd'){toogle='even';}else{toogle='odd';}
if(item.index!=0){if(!('type'in me.opt)&&(me.opt.type!='multi')){li.push({'li':{'id':item.index,'class':toogle,'value':item.value,'#html':item.text,'styles':{'lineHeight':lineHeight+'px'},'#trigger':function(node){ltk.evt.addEvent(node,'click',function(){me.selectedItem=node.node;ltk.dom.one('#'+me.id).setStyle('display','none');me.widget.node.options[me.selectedItem.id].selected='selected';me.widget.setStyle('display','block');});}}});}else{li.push({'li':{'class':toogle,'styles':{'lineHeight':lineHeight+'px'},'children':[{'input':{'type':'checkbox','value':item.value,'id':item.index,'name':item.text}},{'label':{'#html':item.text}}]}});me.choosebtn={'button':{'#html':_('W&auml;hlen'),'#trigger':function(node){ltk.evt.addEvent(node,'click',function(){setTimeout(function(){updateWidget();},200);me.widget.setStyle('display','block');ltk.dom.one('#'+me.id).setStyle('display','none');});}}};}}});this.widget.insertAfter(ltk.dom.create('div',{'id':this.id,'class':'ltk_selectbox_outbox clear','styles':{'width':contentWidth},'children':[{'div':{'class':'ltk_selectbox_content','styles':{'height':contentHeight+'px'},'children':[{'ul':{'class':'ltk_selectbox_list','children':li}}]}},{'div':{'class':'ltk_selectbox_buttonbar','children':[{'span':{'class':'ltk_selectbox_selectAll','#html':_('beliebig'),'#trigger':function(node){ltk.evt.addEvent(node,'click',function(){ltk.dom.one('#'+me.id).setStyle('display','none');me.widget.node.options[0].selected='selected';me.widget.setStyle('display','block');});}}},me.choosebtn]}}]}));}else{ltk.dom.one('#'+this.id).setStyle('display','block');}
var updateWidget=function(){var selectedItems=getInputFields();var names='';var texts='';if(selectedItems.length>0){selectedItems.forEach(function(item){texts+=item.name+', ';names+=item.value+', ';});}else{names=data.item[0].text;}
me.widget.node.options[0].text=ltk.string.rtrim(texts,', ');me.widget.node.options[0].value=ltk.string.rtrim(names,', ');me.widget.node.options[0].setAttribute('selected','selected');}
var getInputFields=function(){var list=ltk.dom.one('.ltk_selectbox_list').childNodes();var selectedItems=[];list.forEach(function(item){if(item.childNodes().nodes[0].checked){selectedItems.push(item.childNodes().nodes[0]);}});return selectedItems;}}
ltk.selectbox.prototype.assimilate=function(node)
{if(node.hasAttribute('ltk:selectbox')&&(tmp=ltk.string.trim(node.getAttribute('ltk:selectbox')))!=''){this.opt=eval('('+tmp+')');}
var me=this;ltk.evt.addEvent(this.widget,'mousedown',function(e){me.mouseDown();});}
ltk.selectbox.prototype.attach=function(parent,def)
{}})();
;(function(){if('overlay'in ltk)return;var tab_tags=['A','BUTTON','TEXTAREA','INPUT','IFRAME'];function toggleFormElements(show){ltk.dom.get('SELECT').forEach(function(obj){obj.node.style.visibility=(show?'visible':'hidden');});}
function toggleTabIndexes(enable,tab_indexes){if(!document.all)return;if(enable){if(tab_indexes.length==0)return;for(var i=0,len=tab_indexes.length;i<len;++i){tab_indexes[i].ref.tabIndex=tab_indexes[i].idx;}}else{var me=this;tab_indexes=[];ltk.dom.get(tab_tags).forEach(function(obj){tab_indexes[idx++]={'ref':obj[i],'idx':obj[i].tabIndex}
obj.tabIndex='-1';});}
return tab_indexes;}
ltk.overlay=function()
{this.tab_indexes=[];}
ltk.widget.register('ltk:overlay',ltk.overlay);ltk.overlay.prototype=new ltk.widget();ltk.overlay.prototype.cssclass='ltk_overlay'
ltk.overlay.prototype.container='DIV';ltk.overlay.prototype.hide=function()
{this.widget.node.style.visibility='hidden';}
ltk.overlay.prototype.show=function()
{this.widget.node.style.visibility='visible';this.resize();}
ltk.overlay.prototype.resize=function()
{var body=ltk.dom.one('BODY');var vp=ltk.dom.getViewport();var h=(vp.h>body.node.scrollHeight?vp.h:body.node.scrollHeight);var w=(vp.w>body.node.scrollWidth?vp.w:body.node.scrollWidth);this.widget.node.style.height=h+'px';this.widget.node.style.width=w+'px';}
ltk.overlay.prototype.attach=function(parent,def)
{var me=this;this.widget=this.appendChild(ltk.dom.one('BODY'),this.container,def);if(ltk.browser.msie6&&'setExpression'in this.widget.node.style){with(this.widget.node){style.position='absolute';style.height='0';style.width='0';style.setExpression('width',function(){return document.documentElement.clientWidth+'px';});style.setExpression('height',function(){return document.documentElement.clientHeight+'px';});}}
ltk.evt.addEvent(new ltk.dom.node(window),'resize',function(){me.resize();});}})();
;(function(){if('image'in ltk)return;ltk.image=function()
{}
ltk.widget.register('ltk:image',ltk.image);ltk.image.prototype=new ltk.widget();ltk.image.prototype.cssclass='ltk_image'
ltk.image.prototype.container='IMG';ltk.image.prototype.getValue=function()
{return this.widget.src;}
ltk.image.prototype.populate=function(data)
{this.widget.src=data;}
ltk.image.prototype.attach=function(parent,def)
{this.widget=this.appendChild(parent,this.container,def);if(typeof def['src']=='string'){this.widget.setAttribute('src',def['src']);}}})();
;(function(){if('label'in ltk)return;ltk.label=function()
{}
ltk.widget.register('ltk:label',ltk.label);ltk.label.prototype=new ltk.widget();ltk.label.prototype.cssclass='ltk_label'
ltk.label.prototype.container='LABEL';ltk.label.prototype.populate=function(label)
{this.widget.node.innerHTML=label;}
ltk.label.prototype.setDisabled=function(disabled)
{if(this.disabled==disabled){return;}
if(disabled){this.widget.addClass('ltk_disabled');}else{this.widget.removeClass('ltk_disabled');}
this.disabled=disabled;}
ltk.label.prototype.attach=function(parent,def)
{this.widget=this.appendChild(parent,this.container,def);this.widget.node.innerHTML=('label'in def?def['label']:'');}})();
;(function(){if('select'in ltk)return;ltk.select=function()
{this.items={};this.value=null;}
ltk.widget.register('ltk:select',ltk.select);ltk.select.prototype=new ltk.widget();ltk.select.prototype.cssclass='ltk_select'
ltk.select.prototype.container='SELECT';ltk.select.prototype.onChange=function(value)
{}
ltk.select.prototype.setItems=function(items)
{var e=this.widget;var v=null;this.widget.removeChildren();for(var i=0,cnt=items.length;i<cnt;++i){type=(typeof items[i]);value=items[i];value=(type=='string'||type=='number'||type=='boolean'?value:('value'in value?value['value']:('text'in items[i]?items[i]['text']:'')));text=('text'in items[i]?items[i]['text']:value);e=ltk.dom.create('option');e.setAttribute('value',value);if(i==0){v=value;}
if('selected'in items[i]){e.setAttribute('selected','selected');v=value;}
e.node.appendChild(document.createTextNode(text));this.widget.appendChild(e);}
this.value=v;}
ltk.select.prototype.populate=function(value)
{}
ltk.select.prototype.getValue=function()
{return this.value;}
ltk.select.prototype.setDisabled=function(disabled)
{disabled=!!disabled
if(this.disabled==disabled){return;}
this.widget.node.disabled=this.disabled=disabled;}
ltk.select.prototype.attach=function(parent,def)
{this.widget=this.appendChild(parent,this.container,def);var e,value,text,type;if('items'in def&&def['items']instanceof Array){this.setItems(def['items']);}
var me=this;ltk.evt.addEvent(this.widget,'change',function(){me.value=me.widget.node.value;me.onChange(me.widget.node.value);});}})();
;(function(){if('slider'in ltk)return;ltk.slider=function()
{this.slider=null;this.range={'min':0,'max':1};this.step=0;this.prec=0;this.value=0;}
ltk.widget.register('ltk:slider',ltk.slider);ltk.slider.prototype=new ltk.widget();ltk.slider.prototype.cssclass='ltk_slider'
ltk.slider.prototype.container='DIV';ltk.slider.T_HORIZONTAL=1;ltk.slider.T_VERTICAL=2;ltk.slider.prototype.getValue=function()
{return this.value;}
ltk.slider.prototype.onChange=function(value)
{}
ltk.slider.prototype.getRange=function()
{return this.range;}
ltk.slider.prototype.setRange=function(min,max)
{var w=this.widget.node.offsetWidth-this.slider.node.offsetWidth;this.range.min=min;this.range.max=max;this.step=(this.range.max-this.range.min)/w;}
ltk.slider.prototype.populate=function(value)
{value=parseInt(value,10);if(isNaN(value)||value<this.range.min){value=this.range.min;}else if(value>this.range.max){value=this.range.max;}
if(value!=this.value){this.value=value;this.slider.node.style.left=(this.value/this.step)+'px';value=this.value.toFixed(this.prec);this.onChange(value);}}
ltk.slider.prototype.attach=function(parent,def)
{this.widget=this.appendChild(parent,this.container,def);if('precision'in def){this.prec=def['precision'];}
var track=ltk.dom.create('div');track.node.className='ltk_slider_track';this.widget.appendChild(track);var bg=ltk.dom.create('div');bg.node.className='ltk_slider_track_background';bg.node.innerHTML='&nbsp;';track.appendChild(bg);this.slider=ltk.dom.create('img');this.slider.node.src='/resources_ltk/images/shim.gif';this.widget.appendChild(this.slider);this.slider.node.className='ltk_draggable';ltk.evt.disableTextSelect(this.slider);var drag=new ltk.evt.draggable(this.slider,1);var me=this;if('min'in def){this.range.min=def['min'];}
if('max'in def){this.range.max=def['max'];}
var x1,x2,w;function init(){x1=me.widget.getPos().x;w=me.widget.node.offsetWidth-me.slider.node.offsetWidth;x2=x1+w;drag.setRange(x1,false,x2,false);me.step=(me.range.max-me.range.min)/w;}
ltk.evt.addEvent(this.slider,'mousedown',function(){init();});drag.onMouseMove=function(){me.value=((me.slider.getPos().x-x1)*me.step);var value=me.value.toFixed(me.prec);me.onChange(value);}
ltk.dom.ready(init);}})();
;(function(){if('textline'in ltk)return;ltk.textline=function()
{}
ltk.widget.register('ltk:textline',ltk.textline);ltk.textline.prototype=new ltk.widget();ltk.textline.prototype.cssclass='ltk_textline'
ltk.textline.prototype.container='INPUT';ltk.textline.prototype.getValue=function()
{return this.widget.node.value;}
ltk.textline.prototype.populate=function(data)
{this.widget.node.value=data;}
ltk.textline.prototype.onChange=function(value)
{}
ltk.textline.prototype.attach=function(parent,def)
{if(!('type'in def)){def['type']='text';}else if(def['type']!='text'&&def['type']!='hidden'&&def['type']!='password'){def['type']='text';}
this.widget=this.appendChild(parent,this.container,def);if(!('value'in def)){def['value']='';}
this.widget.node.setAttribute('value',def['value']);var me=this;ltk.evt.addEvent(this.widget,'change',function(){me.onChange(me.widget.node.value);});}})();

;(function(){if('dialog'in ltk)return;ltk.dialog=function()
{this.refs={};this.children=[];this.label=null;this.options={'label':false};}
ltk.widget.register('ltk:dialog',ltk.dialog);ltk.dialog.prototype=new ltk.widget();ltk.dialog.prototype.cssclass='ltk_dialog'
ltk.dialog.prototype.destroy=function()
{ltk.widget.prototype.destroy.call(this);this.widget.removeChild();}
ltk.dialog.prototype.getDialog=function()
{return this;}
ltk.dialog.prototype.addReference=function(name,widget)
{this.refs[name]=widget;}
ltk.dialog.prototype.removeReference=function(name)
{if(name in this.refs){delete this.refs[name];}}
ltk.dialog.prototype.getWidget=function(name)
{var ret=null;if(name in this.refs){ret=this.refs[name];}else{ltk.backtrace();throw'unable to reference widget identified by name "'+name+'"!';}
return ret;}
ltk.dialog.prototype.getValue=function()
{var ret={};var tmp;for(var i in this.refs){if(this.refs[i]==this){continue;}
tmp=this.refs[i].getValue();if(tmp!=null){ret[i]=tmp;}}
return ret;}
ltk.dialog.prototype.setVisible=function(visible)
{this.widget.node.style.display=(!!visible?'block':'none');}
ltk.dialog.prototype.isVisible=function()
{var display=this.widget.node.style.display;return!(display=='none');}
ltk.dialog.prototype.setLabel=function(label)
{var r='';if(this.options.label){r=this.label.node.innerHTML;this.label.node.innerHTML=label;}
return r;}
ltk.dialog.prototype.populate=function(data)
{for(var i in data){if(i in this.refs&&this.refs[i]!=this){if('innerHTML'in this.refs[i]){this.refs[i].innerHTML=data[i];}else if('populate'in this.refs[i]){this.refs[i].populate(data[i]);}}}}
ltk.dialog.prototype.reset=function()
{for(var i in this.refs){if('innerHTML'in this.refs[i]){this.refs[i].innerHTML='';}else{this.refs[i].populate('');}}}
ltk.dialog.prototype.onLoad=function()
{}
ltk.dialog.prototype.assimilate=function(node)
{this.widget=node;ltk.widget.prototype.assimilate.call(this,node);}
ltk.dialog.prototype.attach=function(parent,def)
{this.widget=this.appendChild(parent,this.container,def);if('rounded'in def&&def['rounded']){this.widget.addClass('ltk_dialog_rounded');}
if('visible'in def&&!def['visible']){this.widget.setStyle('display','none');}
if('shadow'in def&&def['shadow']){this.widget.addClass('ltk_dialog_shadow');}
if((this.options.label&&'label'in def)){this.label=this.widget.appendChild(ltk.dom.create('label',{'class':'ltk_dialog_label','#html':'label'}));}
var div=ltk.dom.create('div');div.node.className='ltk_dialog_container';this.widget.appendChild(div);this.processChildren(def,function(parent,instance,def){instance.attach(parent,def);},div);this.onLoad();}})();
;(function(){if('window'in ltk)return;ltk.window=function()
{this.refs={};this.children=[];this.id=ltk.getUniqID('ltk_window_');this.posXY=null;this.layer=new ltk.dom.layer();}
ltk.window.prototype=new ltk.dialog();ltk.window.prototype.cssclass='ltk_window'
ltk.window.prototype.setPosXY=function(x,y)
{this.widget.node.style.top=y+'px';this.widget.node.style.left=x+'px';this.posXY={'x':x,'y':y};}
ltk.dialog.prototype.toggleWidgets=function(visible)
{for(var i in this.refs){if(this.refs[i]==this||!('container'in this.refs[i])){continue;}
if(this.refs[i].container=='SELECT'){this.refs[i].widget.node.style.display=(!!visible?'block':'none');}}}
ltk.window.prototype.setVisible=function(visible)
{if(visible&&this.posXY==null){var view=ltk.dom.getViewport();var w=this.widget.node.offsetWidth;var h=this.widget.node.offsetHeight;var x=Math.floor((view.w-w)/2);var y=Math.floor((view.h-h)/2);this.setPosXY(x,y);}
this.toggleWidgets(visible);this.widget.node.style.visibility=(!!visible?'visible':'hidden');}
ltk.window.prototype.isVisible=function()
{var visibility=this.widget.node.style.visibility;return!(visibility=='hidden');}
ltk.window.prototype.selectWindow=function()
{this.layer.up();}
ltk.window.prototype.attach=function(parent,def)
{var raster=1;var me=this;this.widget=this.appendChild(parent,this.container,def);this.layer.push([this.widget]);this.widget.addClass('ltk_dialog');if('rounded'in def&&def['rounded']){this.widget.addClass('ltk_dialog_rounded');}
if('shadow'in def&&def['shadow']){this.widget.addClass('ltk_dialog_shadow');}
var label=ltk.dom.create('label');label.node.className='ltk_dialog_label';label.node.innerHTML=def['label'];this.widget.appendChild(label);var div=ltk.dom.create('div');div.node.className='ltk_dialog_container';div.node.style.position='relative';this.widget.node.style.visibility='hidden';this.widget.appendChild(div);if('draggable'in def&&def['draggable']){ltk.evt.disableTextSelect(label);label.addClass('ltk_draggable');var evt1=new ltk.evt.draggable(this.widget,raster,label);var vec1=evt1.onmousedown;evt1.onmousedown=function(e){vec1.apply(evt1,[e]);me.selectWindow();}}
if('resizable'in def&&def['resizable']){var resizer=ltk.dom.create('div');resizer.node.className='ltk_resizable';this.widget.appendChild(resizer);var img=ltk.dom.create('img');img.node.src='/resources_ltk/images/resize.gif';resizer.appendChild(img);ltk.evt.disableTextSelect(img);var evt2=new ltk.evt.resizable(this.widget,raster,img);var vec2=evt2.onmousedown;evt2.onmousedown=function(e){vec2.apply(evt2,[e]);me.selectWindow();}}
this.processChildren(def,function(parent,instance,def){instance.attach(parent,def);},div);if('visible'in def&&def['visible']){this.setVisible(true);}
this.onLoad();}})();
;(function(){if('modal'in ltk)return;function calcWindowPos(div){var body=ltk.dom.one('BODY');var vp=ltk.dom.getViewport();var h=vp.h;var w=vp.w;var left=(window.XMLHttpRequest==null?((e=document.documentElement.scrollLeft)?e:document.body.scrollLeft):0);var top=(window.XMLHttpRequest==null?((e=document.documentElement.scrollTop)?e:document.body.scrollTop):0);return{'x':Math.max((left+(w-div.node.offsetWidth)/2),0),'y':Math.max((top+(h-div.node.offsetHeight)/2),0)};}
function setWindowPos(div,xy){div.node.style.left=xy.x+'px';div.node.style.top=xy.y+'px';}
ltk.modal=function()
{this.layer=new ltk.dom.layer();this.overlay=null;this._container=null;}
ltk.modal.prototype=new ltk.window();ltk.modal.prototype.cssclass='ltk_modal'
ltk.modal.prototype.hide=function()
{this.setVisible(false);this.overlay.hide();}
ltk.modal.prototype.show=function()
{this.overlay.show();this.setVisible(true);this.layer.up();}
ltk.modal.prototype.getSpinner=function()
{var spinner=null;var me=this;this.getSpinner=(function(){spinner=new ltk.spinner();spinner.attach(me._container,{});return function(){return spinner;}})();return spinner;}
ltk.modal.prototype.attach=function(parent,def)
{var me=this;this.widget=this.appendChild(parent,this.container,def);this.widget.addClass('ltk_dialog');if('rounded'in def&&def['rounded']){this.widget.addClass('ltk_modal_rounded');}
if('shadow'in def&&def['shadow']){this.widget.addClass('ltk_dialog_shadow');}
var label=ltk.dom.create('label');label.node.className='ltk_dialog_label';label.node.innerHTML=def['label'];this.widget.appendChild(label);var div=ltk.dom.create('div');div.node.className='ltk_dialog_container';this._container=this.widget.appendChild(div);if(ltk.browser.msie6&&'setExpression'in this.widget.node.style){this.widget.node.style.position='absolute';this.widget.node.style.setExpression('left',function(){return calcWindowPos(me.widget).x+'px';});this.widget.node.style.setExpression('top',function(){return calcWindowPos(me.widget).y+'px';});}
this.processChildren(def,function(parent,instance,def){instance.attach(parent,def);},div);this.overlay=new ltk.overlay();this.overlay.attach(null,{});this.overlay.resize=function(){ltk.overlay.prototype.resize.call(me.overlay);setWindowPos(me.widget,calcWindowPos(me.widget));}
this.layer.push([this.overlay.widget,this.widget]);this.onLoad();}})();

;(function(){if('animation'in ltk)return;ltk.animation=function()
{this.choosebtn={};this.opt={};this.flag=false;this.id=ltk.getUniqID('ltk_animation_');this.params={};}
ltk.animation.prototype.attach=function(parent,def)
{this.widget=parent;}
ltk.animation.prototype.fade=function(speed)
{var that=this;var currentOpacity=ltk.dom.first('div',that.widget).getOpacity()*100;var target=currentOpacity>0?0:100;var speed=(typeof speed=='undefined')?10:speed;function f(){if(target==currentOpacity){that.flag=true;return true;}
if(target<currentOpacity){currentOpacity=currentOpacity-speed<0?0:currentOpacity-speed;ltk.dom.first('div',that.widget).setOpacity(currentOpacity);setTimeout(f,1);}else if(target>=currentOpacity){currentOpacity=currentOpacity+speed>100?100:currentOpacity+speed;ltk.dom.first('div',that.widget).setOpacity(currentOpacity);setTimeout(f,1);}};f(speed);return true;}
ltk.animation.prototype.moveHeight=function(speed)
{var that=this;var currentBoxHeight=parseInt(this.widget.node.offsetHeight,10);if(!('box'in this.params)){this.params.box={'height':parseInt(ltk.dom.first('div',this.widget).node.offsetHeight,10)};}
var target=currentBoxHeight!=0?0:this.params.box.height;var speed=(typeof speed==='undefined')?10:speed;speed=speed*3;function m(){if(target==currentBoxHeight){return;}
if(currentBoxHeight>=target){currentBoxHeight=(currentBoxHeight-speed)<0?0:currentBoxHeight-speed;if(currentBoxHeight==0)ltk.dom.first('div',that.widget).setStyle('display','none');ltk.dom.first('div',that.widget).setStyle('height',currentBoxHeight+'px');setTimeout(m,1);}else if(currentBoxHeight<=target){ltk.dom.first('div',that.widget).setStyle('display','block');currentBoxHeight=(currentBoxHeight+speed)>target?target:currentBoxHeight+speed;ltk.dom.first('div',that.widget).setStyle('height',currentBoxHeight+'px');setTimeout(m,1);}}
m();return true;}
ltk.animation.prototype.toggle=function(speed)
{if(!this.widget.node)return;this.moveHeight(speed);this.fade(speed);}
var box;var i=0;var n;ltk.animation.prototype.clop=function(btnNode,toggle,speed){var content=this.widget.childNodes().nodes[0];var boxHeight=content.offsetHeight;var me;switch(toggle){case'close':this.flag=false;this.moveVerticalSize(20);this.fade(1);break;case'open':this.widget.setStyle('display','block');this.moveVerticalSize(20);this.fade(5);return;if(typeof this.box=='undefined'){this.box=content.offsetHeight;boxHeight=0;content.style.height=boxHeight;content.style.visibility='visible';content.style.position='';var me=this;var n=0;var drawBox=function(){if(boxHeight<me.box){boxHeight+=20;n+=0.050;content.style.opacity=n;content.style.height=boxHeight+'px';setTimeout(function(){drawBox();},35);}}
drawBox();}else{if(boxHeight<this.box){var me=this;var n=0;content.style.visibility='visible';content.style.position='';console.log(speed);var drawBox=function(){boxHeight+=20;n+=0.025;content.style.height=boxHeight+'px';content.style.opacity=n;if(boxHeight<me.box){setTimeout(function(){drawBox();},20);}}
drawBox();}else{n=1.0;content.style.opacity=n;}}
break;}}
ltk.animation.prototype.open=function(btnNode){clop(btnNode,this.widget.childNodes().nodes[0],'open');}})();

;(function(){if('tooltip'in ltk)return;var container=(function(){var _container=null;return function(){if(_container==null){_container=ltk.dom.one('BODY').appendChild(ltk.dom.create('DIV',{'class':'ltk_tooltip'}));}
return _container;}})();var tt=null;ltk.tooltip={show:function(obj,node){if(!(node instanceof ltk.dom.node)){node=new ltk.dom.node(node);}
var id=ltk.evt.addEvent(node,'mouseout',function(){ltk.evt.removeEvent(id);tt.remove();});tt=new tooltip(obj,node);tt.render();}}
function tooltip(obj,node){this.widget=null;this.obj=obj;var pos=ltk.evt.getMousePos();this.x=pos.x;this.y=pos.y;this.speed=5;}
tooltip.prototype.render=function(){var that=this;container().appendChild(ltk.dom.create('div',{'#trigger':function(node){that.widget=node;that.opacity=node.getOpacity();},'class':'tt','styles':{'visibility':'visible','display':'block','position':'absolute','top':that.y+'px','left':that.x+'px','opacity':'0'},'children':[{'div':{'class':'tt-content','children':[that.obj]}}]}));that.fadeIn(that.opacity);}
tooltip.prototype.remove=function(){this.fadeOut(this.widget.getOpacity());}
tooltip.prototype.fadeIn=function(value){var that=this;window.setTimeout(function(){that.widget.setStyle('opacity',value);if(value!=100+Number(that.speed)){value=(Number(value)+Number(that.speed));that.fadeIn(value);}},10);}
tooltip.prototype.fadeOut=function(value){if(value<=1){value=value*100;}
var that=this;window.setTimeout(function(){that.widget.setStyle('opacity',value);if(value>1){value=Number(value)-Number(that.speed);that.fadeOut(--value);}else{that.widget.removeNode();}},10);}})();
;(function(){if('colorpicker'in ltk)return;var names={};names[ltk.color.type.RGB]=_('RGB');names[ltk.color.type.CMYK]=_('CMYK');names[ltk.color.type.HSV]=_('HSV');names[ltk.color.type.BW]=_('Grayscale');var palettes={};palettes[ltk.color.type.RGB]=[{'label':_('Red'),'min':0,'max':255,'channel':ltk.color.type.CH_R},{'label':_('Green'),'min':0,'max':255,'channel':ltk.color.type.CH_G},{'label':_('Blue'),'min':0,'max':255,'channel':ltk.color.type.CH_B}];palettes[ltk.color.type.CMYK]=[{'label':_('Cyan'),'min':0,'max':100,'channel':ltk.color.type.CH_C},{'label':_('Magenta'),'min':0,'max':100,'channel':ltk.color.type.CH_M},{'label':_('Yellow'),'min':0,'max':100,'channel':ltk.color.type.CH_Y},{'label':_('Kobalt'),'min':0,'max':100,'channel':ltk.color.type.CH_K}];palettes[ltk.color.type.HSV]=[{'label':_('Hue'),'min':0,'max':360,'channel':ltk.color.type.CH_H},{'label':_('Saturation'),'min':0,'max':100,'channel':ltk.color.type.CH_S},{'label':_('Value'),'min':0,'max':100,'channel':ltk.color.type.CH_V}];palettes[ltk.color.type.BW]=[{'label':_('Black'),'min':0,'max':100,'channel':ltk.color.type.CH_BW}];function showRgbGauge(type){dat=getChannels.call(this,type);col=(new ltk.color(dat,type)).getColor(ltk.color.type.RGB);this.w_refs.g_rgb.populate(col);}
function getValue(ch){var num=parseInt(this.w_refs['v_'+ch].getValue(),10);return(isNaN(num)?0:num);}
function getChannels(type){var data=[];var num;for(var i=0,cnt=palettes[type].length;i<cnt;++i){data.push(getValue.call(this,i));}
return data;}
function setPalette(type,channels){var pal=palettes[type];var dat,col;var filter=false;var me=this;if(typeof channels!='undefined'){col=channels;}else if(this.palette!=null){dat=getChannels.call(this,this.palette);col=(new ltk.color(dat,this.palette)).getColor(type);}else{col=[0,0,0,0];}
if(type==ltk.color.type.HSV){filter=function(type,data){var ret;if(type==ltk.color.type.CH_H){ret=[ltk.color.type.HSV,[data,100,100]];me.w_refs.g_1.populate(getValue.call(me,1));me.w_refs.g_2.populate(getValue.call(me,2));}else if(type==ltk.color.type.CH_S){ret=[ltk.color.type.HSV,[getValue.call(me,0),data,100]];}else if(type==ltk.color.type.CH_V){ret=[ltk.color.type.HSV,[getValue.call(me,0),100,data]];}else{ret=[type,data];}
return ret;}}
for(var i=0;i<4;++i){if(typeof pal[i]=='undefined'){this.rows[i].setStyle('display','none');}else{this.rows[i].setStyle('display',this.tr_display);this.w_refs['s_'+i].setRange(pal[i]['min'],pal[i]['max']);this.w_refs['g_'+i].setType(pal[i]['channel'],filter);this.w_refs['l_'+i].populate(pal[i]['label']);this.w_refs['v_'+i].populate(col[i]);this.w_refs['s_'+i].populate(col[i]);this.w_refs['g_'+i].populate(col[i]);}}
showRgbGauge.call(this,type);this.palette=type;}
ltk.colorpicker=function()
{this.sub_dialog=null;this.tolerance=false;this.palettes=[ltk.color.type.RGB,ltk.color.type.CMYK,ltk.color.type.HSV,ltk.color.type.BW];this.palette=null;this.tr_display='block';this.rows=[];this.w_refs={};}
ltk.widget.register('colorpicker',ltk.colorpicker);ltk.colorpicker.prototype=new ltk.widget();ltk.colorpicker.prototype.cssclass='ltk_colorpicker'
ltk.colorpicker.prototype.populate=function(data)
{if('type'in data){this.palette=data['type']}
this.tolerance=('tolerance'in data&&data['tolerance']>=0);if('rgb'in data){setPalette.call(this,this.palette,(new ltk.color(data['rgb'],ltk.color.type.RGB)).getColor(this.palette));}}
ltk.colorpicker.prototype.getValue=function()
{var dat=getChannels.call(this,this.palette);var rgb=(new ltk.color(dat,this.palette)).getColor(ltk.color.type.RGB);return{'type':this.palette,'tolerance':(this.tolerance?0:-1),'channels':dat,'rgb':rgb};}
ltk.colorpicker.prototype.attach=function(parent,def)
{this.widget=this.appendChild(parent,this.container,def);if('palettes'in def){this.palettes=[];for(var i=0,cnt=def['palettes'].length;i<cnt;++i){if(def['palettes'][i]in palettes){this.palettes.push(def['palettes'][i]);}}}
this.tolerance=def['tolerance']||false;var me=this;var i;var dia=new ltk.dialog();dia.container=this.container;var children=[{'label':{'label':_('Color')}},{'html:span':{'#html':'&nbsp;'}},{'html:span':{'#html':'&nbsp;'}},{'colorpicker:gauge':{'name':'rgb_gauge','type':ltk.color.type.RGB}}];for(i=0;i<4;++i){children.push({'label':{'label':'&nbsp;','name':'label_'+i}});children.push({'slider':{'name':'slider_'+i,'min':0,'max':100,'precision':0,'value':0,'onChange':(function(name){return function(value){dia.getWidget('value_'+name).populate(value);dia.getWidget('gauge_'+name).populate(value);showRgbGauge.call(me,me.palette);}})(i)}});children.push({'textline':{'name':'value_'+i,'styles':{'width':'50px'},'value':0,'onChange':(function(name){return function(value){dia.getWidget('slider_'+name).populate(value);dia.getWidget('gauge_'+name).populate(value);showRgbGauge.call(me,me.palette);}})(i)}});children.push({'colorpicker:gauge':{'name':'gauge_'+i,'type':0}});}
if(this.tolerance){children.push({'label':{'label':_('Tolerance')}});children.push({'slider':{'name':'t_slider','min':0,'max':100,'precision':0,'onChange':function(value){dia.getWidget('t_value').populate(value);}}});children.push({'textline':{'name':'t_value','styles':{'width':'50px'},'onChange':function(value){dia.getWidget('t_slider').populate(value);}}});children.push({'html:span':{'#html':'&nbsp;'}});}
var items=[];var value='';var cnt;for(i=0,cnt=this.palettes.length;i<cnt;++i){if(i==0)value=this.palettes[i];items.push({'value':this.palettes[i],'text':names[this.palettes[i]]});}
dia.attach(this.widget,{'children':[{'select':{'value':value,'items':items,'onChange':function(value){setPalette.call(me,value);}}},{'grid':{'columns':4,'width':[30,40,25,5],'onRenderRow':function(row_no,row_obj){if(row_no>=2&&row_no<=5){me.rows.push(row_obj);}},'children':children}}]});this.w_refs['g_rgb']=dia.getWidget('rgb_gauge');for(i=0;i<4;++i){this.w_refs['l_'+i]=dia.getWidget('label_'+i);this.w_refs['s_'+i]=dia.getWidget('slider_'+i);this.w_refs['v_'+i]=dia.getWidget('value_'+i);this.w_refs['g_'+i]=dia.getWidget('gauge_'+i);}
me.tr_display=ltk.dom.first('TR',dia.getNode()).getStyle('display');ltk.dom.ready(function(){setPalette.call(me,ltk.color.type.RGB);});}
ltk.colorpicker.gauge=function()
{this.type=ltk.color.type.RGB;this.color=null;this.filter=function(type,data){return[type,data];}}
ltk.widget.register('colorpicker:gauge',ltk.colorpicker.gauge);ltk.colorpicker.gauge.prototype=new ltk.image();ltk.colorpicker.gauge.prototype.setType=function(type,filter)
{this.type=type;this.filter=(typeof filter!='function'?function(type,data){return[type,data];}:filter);}
ltk.colorpicker.gauge.prototype.getValue=function()
{return this.color.getColor(this.type);}
ltk.colorpicker.gauge.prototype.populate=function(data)
{var tmp=this.filter(this.type,data);this.color.setColor(tmp[1],tmp[0]);var rgb=this.color.getColor(ltk.color.type.RGB);this.widget.node.style.backgroundColor='rgb('+rgb.join(', ')+')';}
ltk.colorpicker.gauge.prototype.attach=function(parent,def)
{this.type=def['type'];this.color=new ltk.color([100,100,100]);def['styles']={'border':'1px solid #000','background-color':'#fff'}
this.widget=this.appendChild(parent,this.container,def);this.widget.setAttribute('src','/resources/images/shim.gif');this.widget.setAttribute('width',15);this.widget.setAttribute('height',15);}})();

;(function(){if('grid'in ltk)return;ltk.grid=function()
{this.children=[];}
ltk.widget.register('ltk:grid',ltk.grid);ltk.grid.prototype=new ltk.widget();ltk.grid.prototype.cssclass='ltk_grid';ltk.grid.prototype.container='TABLE';ltk.grid.prototype.onRenderRow=function(row_no,row_obj)
{}
ltk.grid.prototype.onRenderCell=function(row_no,col_no,cell_obj)
{}
ltk.grid.prototype.attach=function(parent,def)
{var width=('width'in def&&def['width']instanceof Array?def['width']:[]);var cols=('columns'in def?def['columns']:1);this.widget=this.appendChild(parent,this.container,def);var part=ltk.dom.create('TBODY');var rows=Math.ceil(def['children'].length/cols);var row=0;var i=0;var me=this;var tr;this.widget.appendChild(part);this.processChildren(def,function(parent,instance,def){var cell=(i%cols);var td;if(cell==0){++row;tr=ltk.dom.create('tr');me.onRenderRow(row,tr);}
td=ltk.dom.create('td');td.setAttribute('valign','top');if(cell in width){td.setAttribute('width',width[cell]+'%');}
me.onRenderCell(row,(cell+1),td);tr.appendChild(td);parent.appendChild(tr);instance.attach(td,def);++i;},part);}})();

