
GUI={windows:[],items:[],fullScreen:false,activeWindow:-1,lastZIndex:100,minCoordX:0,minCoordY:0,maxCoordX:parseInt(document.documentElement.clientWidth)-10,maxCoordY:parseInt(document.documentElement.clientHeight)-10,cssPrefix:'GUI-',icoPath:'http://www.jwing.ru/resources/ico16/',themePath:'http://www.jwing.ru/resources/i/window/',theme:'standart',onload:function(action,fullScreen){if(document.addEventListener){document.addEventListener('DOMContentLoaded',function(){document.removeEventListener('DOMContentLoaded',arguments.callee,false);document.body.style.width=document.documentElement.clientWidth+'px';document.body.style.height=document.documentElement.clientHeight+'px';if(fullScreen==true)GUI.addFullScreen();action();if(fullScreen==true)GUI._resize();},false);}else if(document.attachEvent){document.attachEvent('onreadystatechange',function(){if(document.readyState==='complete'){document.detachEvent('onreadystatechange',arguments.callee);document.body.style.width=document.documentElement.clientWidth+'px';document.body.style.height=document.documentElement.clientHeight+'px';if(fullScreen==true)GUI.addFullScreen();action();if(fullScreen==true)GUI._resize();}});}},changeTheme:function(name){T.each(document.getElementsByTagName('div'),function(e,i){if(T.hasClass(e,'theme-'+GUI.theme)){T.swapClass(e,'theme-'+GUI.theme,'theme-'+name);}
if(T.hasClass(e,'theme-'+GUI.theme+'-fill')){T.swapClass(e,'theme-'+GUI.theme,'theme-'+name+'-fill');}});GUI.theme=name;},dc:function(className,useSkin){var e=document.createElement('div');useSkin?e.className=GUI.cssPrefix+'theme-'+GUI.theme+' '+GUI.cssPrefix+className:e.className=GUI.cssPrefix+className;return e;},addItem:function(item){this.items.push(item);if(this.fullScreen){this.dom.appendChild(item.dom);}},addFullScreen:function(){this.fullScreen=true;document.body.style.overflow='hidden';this.dom=this.dc('theme-'+GUI.theme+'-fill');this.dom.style.width=parseInt(document.documentElement.clientWidth)+'px';this.dom.style.height=parseInt(document.documentElement.clientHeight)+'px';document.body.appendChild(this.dom);this.dom.appendChild(this.coreBar=this.dc('core-bar'));this.windowsList=new GUI.toolbar({});this.coreBar.appendChild(this.windowsList.dom);this.minimizeWindow=function(wnd){this.windowsList.addItem(new GUI.toolbarButton({title:wnd.title,ico:wnd.ico,onClick:function(){wnd.show();this.parentNode.removeChild(this);}}));}
window.onresize=function(){GUI._resize();};},_resize:function(){GUI.dom.width=parseInt(document.documentElement.clientWidth);GUI.dom.height=parseInt(document.documentElement.clientHeight);GUI.dom.style.width=GUI.dom.width+'px';GUI.dom.style.height=GUI.dom.height+'px';GUI.dom.contentSize={width:GUI.dom.width,height:GUI.dom.height}
for(var i=0;i<GUI.items.length;i++){if(GUI.items[i].height){GUI.dom.contentSize.height-=GUI.items[i].height;}
if(GUI.items[i].width){GUI.dom.contentSize.width-=GUI.items[i].width;}
GUI.items[i]._resize({width:GUI.dom.contentSize.width,height:GUI.dom.contentSize.height});}}};GUI.tools={bindDrag:function(element,dragProcess,dragBegin,dragEnd){element.onmousedown=function(e){e=e?e:window.event;T.mouseX=e.clientX;T.mouseY=e.clientY;var obj=element;if(dragBegin)dragBegin(obj);document.onmousemove=function(e){e=e?e:window.event;T.deltaX=e.clientX-T.mouseX;T.deltaY=e.clientY-T.mouseY;T.mouseX=e.clientX;T.mouseY=e.clientY;if(dragProcess)dragProcess(obj);}
document.onmouseup=function(){document.onmousemove=null;document.onmouseup=null;if(dragEnd)dragEnd(obj);}}},generateId:function(){var d=new Date();return'guid'+d.getFullYear()+d.getMonth()+d.getDay()+d.getHours()+d.getMinutes()+d.getSeconds()+d.getMilliseconds();},addTheme:function(elem){if(elem&&elem.nodeType==1&&!T.hasClass(elem,'theme-'+GUI.theme)){elem.className+=' '+GUI.cssPrefix+'theme-'+GUI.theme;}},fill:function(elem){if(elem&&elem.nodeType==1&&!T.hasClass(elem,'theme-'+GUI.theme+'-fill')){T.addClass(elem,'theme-'+GUI.theme+'-fill');}},hover:function(elem,className){elem.onmouseover=function(){T.addClass(this,className);}
elem.onmouseout=function(){T.removeClass(this,className);}},removeClass:function(elem,className){if(elem&&elem.nodeType==1){var result=[],classes=elem.className;classes=classes.split(/\s+/);for(var i=0;i<classes.length;i++){if(classes[i]!=GUI.cssPrefix+className){result.push(classes[i]);}}
elem.className=result.join(' ');}},addClass:function(elem,className){if(elem&&elem.nodeType==1&&!T.hasClass(elem,className)){elem.className+=' '+GUI.cssPrefix+className;}},swapClass:function(elem,className,className2){elem.className=elem.className.replace(GUI.cssPrefix+className,GUI.cssPrefix+className2);},hasClass:function(elem,className){if(elem.className.search(GUI.cssPrefix+className)<0){return false;}else{return true;}},tremor:function(elem){if(typeof elem!='object')
elem=document.getElementById(elem);var left=parseInt(T.getStyle(elem,'left'));T.animate(elem,20,{x:left-5},function(){T.animate(elem,20,{x:left+10},function(){T.animate(elem,20,{x:left-10},function(){T.animate(elem,20,{x:left});});});});},startSec:function(){T.secStart=new Date();},stopSec:function(){T.secStop=new Date();},getSec:function(){return T.secStop-T.secStart;},getImageSize:function(url){var container=document.createElement('div');container.className='sizer';document.body.appendChild(container);var img=new Image();container.appendChild(img);img.onload=function(){T.imgWidth=container.offsetWidth;T.imgHeight=container.offsetHeight;document.body.removeChild(container);}
img.src=url;},getStyle:function(elem,prop){if(typeof elem!='object')
elem=document.getElementById(elem);if(!elem)return'';var res='';if(document.defaultView&&document.defaultView.getComputedStyle){if(prop.match(/[A-Z]/))
prop=prop.replace(/([A-Z])/g,'-$1').toLowerCase();res=document.defaultView.getComputedStyle(elem,'').getPropertyValue(prop);}
if(elem.currentStyle){var i;while((i=prop.indexOf('-'))!=-1)
prop=prop.substr(0,i)+prop.substr(i+1,1).toUpperCase()+prop.substr(i+2);res=elem.currentStyle[prop];}
if(!res)res='';if(elem.style[prop]!='')
res=elem.style[prop];return res;},animate:function(elem,time,params,callback){if(typeof elem!='object')
elem=document.getElementById(elem);var p=params||{};var stepTime=5;var step=1;var steps=parseInt(time/stepTime);var width,ww,height,hh,x,xx,y,yy,alpha,aa;if(typeof p.width=='number'){ww=parseInt(T.getStyle(elem,'width'));width=(p.width-ww)/steps;}
if(typeof p.height=='number'){hh=parseInt(T.getStyle(elem,'height'));height=(p.height-hh)/steps;}
if(typeof p.x=='number'){xx=parseInt(T.getStyle(elem,'left'));x=(p.x-xx)/steps;}
if(typeof p.y=='number'){yy=parseInt(T.getStyle(elem,'top'));y=(p.y-yy)/steps;}
if(typeof p.alpha=='number'){if(T.getStyle(elem,'opacity')!=''){aa=parseInt(parseFloat(T.getStyle(elem,'opacity'))*100);}else if(T.getStyle(elem,'MozOpacity')!=''){aa=parseInt(parseFloat(T.getStyle(elem,'MozOpacity'))*100);}else if(T.getStyle(elem,'KhtmlOpacity')!=''){aa=parseInt(parseFloat(T.getStyle(elem,'KhtmlOpacity'))*100);}else if(T.getStyle(elem,'filter').search('opacity')>0){var f=T.getStyle(elem,'filter');aa=parseInt(f.split('opacity=')[1].split(')')[0]);}else{aa=100;}
alpha=(p.alpha-aa)/steps;}
var process=function(){if(step==steps){if(typeof p.width=='number')elem.style.width=p.width+'px';if(typeof p.height=='number')elem.style.height=p.height+'px';if(typeof p.y=='number')elem.style.top=p.y+'px';if(typeof p.x=='number')elem.style.left=p.x+'px';if(typeof p.alpha=='number')T.setOpacity(elem,p.alpha);setTimeout(callback,0);}
if(step<steps){ww+=width;hh+=height;xx+=x;yy+=y;aa+=alpha;if(typeof p.x=='number')elem.style.left=parseInt(xx)+'px';if(typeof p.y=='number')elem.style.top=parseInt(yy)+'px';if(p.width>=0)elem.style.width=parseInt(ww)+'px';if(p.height>=0)elem.style.height=parseInt(hh)+'px';if(typeof p.alpha=='number')
T.setOpacity(elem,parseInt(aa));step++;setTimeout(process,stepTime);}}
process();},setOpacity:function(elem,opacity){if(typeof elem!='object')
elem=document.getElementById(elem);elem.style.opacity=(parseInt(opacity)/100);elem.style.MozOpacity=(parseInt(opacity)/100);elem.style.KhtmlOpacity=(parseInt(opacity)/100);elem.style.filter='alpha(opacity='+parseInt(opacity)+')';},setStyle:function(elem,param,value){if(typeof elem!='object')
elem=document.getElementById(elem);elem.style[param]=value;},each:function(arr,onEach){if(!onEach||!arr)return;for(var i=0,length=arr.length;i<length;i++){onEach(arr[i],i);}},odd:function(list,className,first){if(list.length==0)return;var odd=first==true?true:false;T.each(list,function(e,i){odd?T.addClass(e,className):T.removeClass(e,className);odd=!odd;});},userInfo:{browser:{khtml:/Konqueror|KHTML/.test(navigator.userAgent)&&!/Apple/.test(navigator.userAgent),safari:/KHTML/.test(navigator.userAgent)&&/Apple/.test(navigator.userAgent),opera:!!window.opera,ie:!!(window.attachEvent&&!window.opera),gecko:/Gecko/.test(navigator.userAgent)&&!/Konqueror|KHTML/.test(navigator.userAgent)},os:{windows:navigator.platform.indexOf("Win")>-1,mac:navigator.platform.indexOf("Mac")>-1,linux:navigator.platform.indexOf("Linux")>-1}},getObjInfo:function(obj){var t='';for(var e in obj){t+=e+': '+obj[e]+';\n';}
alert(t);}};var T=GUI.tools;GUI.toolbar=function(params){var p=(params||{});this.etype='toolbar';this.size=p.size?'small':'standart';this.align='top';if(this.size=='small'){this.height=26;}else{this.height=30;}
this.items=[];this.dom=GUI.dc('toolbar-'+this.size,true);this._resize=function(size){this.dom.style.width=size.width+'px';}
this.addItem=function(item){if(item.etype==undefined){return;}else{switch(item.etype){case'toolbarButton':T.addClass(item.dom,'toolbar-button-'+this.size);break;case'toolbarSplit':T.addClass(item.dom,'toolbar-button-split-'+this.size);break;case'toolbarCombobox':T.addClass(item.dom,'combobox-'+this.size);break;case'toolbarLabel':T.addClass(item.dom,'label-'+this.size);break;}}
this.items.push(item);this.dom.appendChild(item.dom);}
this.addItems=function(items){if(items&&items.length){this.dom.innerHTML='';this.items=[];for(var i=0,length=items.length;i<length;i++){this.addItem(items[i]);}}}
if(p.items&&p.items.length){this.addItems(p.items);}};GUI.toolbarButton=function(p){var size=!p.size?'standart':p.size;this.dom=GUI.dc('toolbar-button-'+size);this.etype='toolbarButton';this.dom.style['float']=(p.align||'left');this.dom.title=(p.descr||p.title);this.dom.appendChild(GUI.dc('toolbar-button-left',true));this.dom.appendChild(this.dom.body=GUI.dc('toolbar-button-body',true));this.dom.appendChild(GUI.dc('toolbar-button-right',true));this.dom.body.appendChild(this.dom.ico=GUI.dc('toolbar-button-ico'));this.dom.ico.style.backgroundImage='url('+GUI.icoPath+(p.ico||'none')+'.png)';if(p.title){this.dom.body.appendChild(this.dom.name=GUI.dc('toolbar-button-title'));this.dom.name.innerHTML=p.title;}
var thisObj=this;this.trigger=p.trigger==true?true:false;this.enabled=p.enabled==true?true:false;this.enabled?T.addClass(this.dom,'toolbar-button-click'):T.removeClass(this.dom,'toolbar-button-click');this.dom.onmouseover=function(){T.addClass(this,'toolbar-button-hover');}
this.dom.onmouseout=function(){T.removeClass(this,'toolbar-button-hover');if(!thisObj.trigger)T.removeClass(this,'toolbar-button-click');}
this.dom.onmousedown=function(){if(!thisObj.trigger){T.addClass(this,'toolbar-button-click');}else{thisObj.enabled=!thisObj.enabled;thisObj.enabled?T.addClass(this,'toolbar-button-click'):T.removeClass(this,'toolbar-button-click');}
if(p.onMouseDown)p.onMouseDown();}
this.dom.onmouseup=function(){if(!thisObj.trigger)T.removeClass(this,'toolbar-button-click');}
p.onClick?this.dom.onclick=p.onClick:this.dom.onclick=null;this.enable=function(){this.enabled=true;T.addClass(this.dom,'toolbar-button-click')}
this.disable=function(){this.enabled=false;T.removeClass(this.dom,'toolbar-button-click')}
this.show=function(){this.dom.style.display='block';}
this.hide=function(){this.dom.style.display='none';}};GUI.toolbarSplit=function(p){this.etype='toolbarSplit';var size=!p||!p.size?'standart':p.size;this.dom=GUI.dc('toolbar-button-split-'+size,true);this.show=function(){this.dom.style.display='block';}
this.hide=function(){this.dom.style.display='none';}};GUI.toolbarCombobox=function(p){var cb=new GUI.combobox(p);this.etype='toolbarCombobox';this.dom=cb.dom;!p.size||p.size!='small'?T.addClass(this.dom,'combobox-standart'):T.addClass(this.dom,'combobox-small');};GUI.toolbarLabel=function(p){var l=new GUI.label(p);this.etype='toolbarLabel';this.dom=l.dom;};GUI.afield=function(params){GUI.ext(this,(params||{}));this.etype='afield';this.items=params.items||[];this.dom=GUI.dc('field');this.dom.appendChild(this.dom.input=GUI.dc('field-input',true));this.dom.input.appendChild(this.dom.inputText=GUI.dc('field-input-text'));this.dom.inputText.appendChild(this.dom.inputTextEditor=document.createElement('input'));this.dom.appendChild(this.dom.items=GUI.dc('combobox-options'));this.onKeyDown=params.onKeyDown||null;if(params.type=='password'){this.dom.inputTextEditor.type='password';}
this.value=function(val){return(typeof val=='string'||typeof val=='number')?this.dom.inputTextEditor.value=val:this.dom.inputTextEditor.value;}
var thisObj=this;this.dom.inputTextEditor.onblur=function(){if(thisObj.onChange)thisObj.onChange(thisObj);thisObj.resultHide();}
this.dom.inputTextEditor.onkeydown=function(e){if(thisObj.onKeyDown){e=e?e:window.event;thisObj.onKeyDown(e.keyCode);}}
this.dom.inputTextEditor.onkeyup=function(e){e=e?e:window.event;switch(e.keyCode){case 38:if(thisObj.resultItemsPos>0){T.removeClass(thisObj.dom.items.childNodes[thisObj.resultItemsPos],'combobox-option-select');thisObj.resultItemsPos--;T.addClass(thisObj.dom.items.childNodes[thisObj.resultItemsPos],'combobox-option-select');thisObj.dom.inputTextEditor.value=thisObj.dom.items.childNodes[thisObj.resultItemsPos].innerHTML;}
break;case 40:if(thisObj.resultItemsPos<thisObj.dom.items.childNodes.length-1){if(thisObj.resultItemsPos>=0){T.removeClass(thisObj.dom.items.childNodes[thisObj.resultItemsPos],'combobox-option-select');}
thisObj.resultItemsPos++;T.addClass(thisObj.dom.items.childNodes[thisObj.resultItemsPos],'combobox-option-select');thisObj.dom.inputTextEditor.value=thisObj.dom.items.childNodes[thisObj.resultItemsPos].innerHTML;}
break;case 13:if(thisObj.resultItemsPos>=0){thisObj.dom.inputTextEditor.value=thisObj.dom.items.childNodes[thisObj.resultItemsPos].innerHTML;thisObj.resultHide();}
break;default:if(thisObj.dom.inputTextEditor.value!=''){thisObj.resultQuery(thisObj.dom.inputTextEditor.value);}else{thisObj.resultHide();}
break;}}
this.resultShow=function(){if(this.dom.items.childNodes.length<(params.countRow||5)){this.dom.items.style.height=this.dom.items.childNodes.length*22+'px';}else{this.dom.items.style.height=110+'px';}
thisObj.dom.items.style.display='none';thisObj.dom.items.style.display='block';document.onmousedown=function(){thisObj.dom.items.style.display='none';document.onmousedown=null;};}
this.resultHide=function(){thisObj.dom.items.style.display='none';}
this.resultQuery=function(q){q=q.replace('(','');q=q.replace(')','');try{var regExp=new RegExp(q,'gi');}catch(err){return false;}
this.dom.items.innerHTML='';this.resultItemsPos=-1;var option;for(var i=0;i<this.items.length;i++){if(this.items[i].name.search(regExp)!=-1){option=GUI.dc('combobox-option');option.pid=(this.items[i].id||0);option.innerHTML=this.items[i].name;T.hover(option,'combobox-option-hover');option.onmousedown=function(){if(thisObj.selected){T.removeClass(thisObj.selected,'combobox-option-select');}
T.addClass(this,'combobox-option-select');thisObj.selected=this;thisObj.selected.id=this.pid;thisObj.selected.name=this.innerHTML;thisObj.dom.inputTextEditor.value=thisObj.selected.name;}
this.dom.items.appendChild(option);}}
if(this.dom.items.childNodes.length){this.resultShow();}else{this.resultHide();}}
this.focus=function(){this.dom.inputTextEditor.focus();}
this.setWidth=function(width){this.width=width;this.dom.style.width=this.width+'px';this.dom.inputText.style.width=this.width-2+'px';this.dom.inputTextEditor.style.width=this.dom.inputText.style.width;this.dom.items.style.width=this.width-2+'px';}
this.setWidth(this.width||200);this.disable=function(){this.disabled=true;this.dom.inputTextEditor.setAttribute('disabled','disabled');T.addClass(this.dom,'field-disabled');}
this.enable=function(){this.disabled=false;this.dom.inputTextEditor.removeAttribute('disabled');T.removeClass(this.dom,'field-disabled');}}
GUI.listbox=function(params){GUI.ext(this,(params||{}));this.setPanel();this.etype='listbox';this.itemCount=0;this.dom.content.style.overflow='auto';this.addItem=function(item){var it=GUI.dc('listbox-item');var iClicker=GUI.dc('listbox-item-clicker');var iName=GUI.dc('listbox-item-name');var iIcons=GUI.dc('listbox-item-icons');it.appendChild(iClicker);it.appendChild(iName);it.appendChild(iIcons);if(this.itemCount==this.selectedId){T.addClass(it,'listbox-item-select');}
this.itemCount++;iName.innerHTML=item.name;if(item.buttons&&item.buttons.length){var button;for(var i=0,length=item.buttons.length;i<length;i++){button=GUI.dc('listbox-item-button');button.style.backgroundImage='url('+GUI.icoPath+item.buttons[i].ico+'.png)';button.title=(item.buttons[i].title||'');button.onclick=(item.buttons[i].onClick||null);iIcons.appendChild(button);}}
T.hover(it,'listbox-item-hover');var thisObj=this;iClicker.onclick=iName.onclick=function(){if(thisObj.selected){T.removeClass(thisObj.selected,'listbox-item-select');}
T.addClass(this.parentNode,'listbox-item-select');thisObj.selected=this.parentNode;thisObj.selected.id='';thisObj.selected.name=this.nextSibling.innerHTML;if(item.onClick){item.onClick();}};this.dom.content.appendChild(it);T.odd(this.dom.content.childNodes,'odd');}
this.deleteItem=function(item){item.parentNode.parentNode.parentNode.removeChild(item.parentNode.parentNode);this.itemCount--;T.odd(this.dom.content.childNodes,'odd');}
this.addItems=function(items){if(items&&items.length){this.dom.content.innerHTML='';for(var i=0,length=items.length;i<length;i++){this.addItem(items[i]);}}}
if(params.items&&params.items.length){this.addItems(params.items);}};GUI.slider=function(params){GUI.ext(this,(params||{}));this.etype='slider';this.orient=typeof params.orient=='string'?params.orient.substr(0,1):'h'||'h';if(this.orient!='h'&&this.orient!='v')this.orient='h';this.position=params.position||0;this.dom=GUI.dc('slider-'+this.orient);this.dom.appendChild(this.line=GUI.dc('slider-line-'+this.orient,true));this.dom.appendChild(this.picker=GUI.dc('slider-picker-'+this.orient,true));this.setWidth=function(width){if(this.orient=='v')return;this.width=width;this.dom.style.width=this.width+'px';this.line.style.width=this.width+'px';this.one=(this.width-9)/100;this.setPosition(this.position);}
this.setHeight=function(height){if(this.orient=='h')return;this.height=height;this.dom.style.height=this.height+'px';this.line.style.height=this.height+'px';this.one=(this.height-9)/100;this.setPosition(this.position);}
this.setPosition=function(position){this.position=position;if(this.orient=='h'){this.picker.style.marginLeft=this.one*position+'px';}else{this.picker.style.marginTop=this.one*position+'px';}}
var thisObj=this;T.bindDrag(this.picker,function(){if(thisObj.orient=='h'){if(parseInt(thisObj.picker.style.marginLeft)+T.deltaX<0||parseInt(thisObj.picker.style.marginLeft)+T.deltaX>thisObj.width-9)
return;thisObj.picker.style.marginLeft=parseInt(thisObj.picker.style.marginLeft)+T.deltaX+'px';}else{if(parseInt(thisObj.picker.style.marginTop)+T.deltaY<0||parseInt(thisObj.picker.style.marginTop)+T.deltaY>thisObj.height-9)
return;thisObj.picker.style.marginTop=parseInt(thisObj.picker.style.marginTop)+T.deltaY+'px';}},function(){},function(){if(thisObj.orient=='h'){thisObj.setPosition(Math.ceil(parseInt(thisObj.picker.style.marginLeft)/thisObj.one));}else{thisObj.setPosition(Math.ceil(parseInt(thisObj.picker.style.marginTop)/thisObj.one));}
if(thisObj.onChange){thisObj.onChange(thisObj);}});if(this.orient=='h'){this.setWidth(this.width||200);}else{this.setHeight(this.height||200);}};GUI.panel=function(params){GUI.ext(this,(params||{}));this.setPanel();};var baseClass=function(){this.getType=function(){alert(this.etype);}}
GUI.combobox=function(params){GUI.ext(this,(params||{}));this.etype='combobox';this.dom=GUI.dc('combobox');if(this.extraCSS)this.dom.setAttribute('style',this.extraCSS);this.dom.appendChild(this.dom.input=GUI.dc('combobox-input',true));this.dom.input.appendChild(this.dom.inputText=GUI.dc('combobox-input-text'));this.dom.input.appendChild(this.dom.button=GUI.dc('combobox-button',true));this.dom.appendChild(this.dom.items=GUI.dc('combobox-options'));this.setWidth=function(width){this.width=width;this.dom.style.width=this.width+'px';this.dom.inputText.style.width=this.width-19+'px';this.dom.items.style.width=this.width-2+'px';}
this.setWidth(this.width||200);T.hover(this.dom.button,'combobox-button-hover');var thisObj=this;this.dom.input.onclick=function(){if(thisObj.disabled)return;thisObj.dom.items.style.display='none';thisObj.dom.items.style.display='block';document.onmousedown=function(){thisObj.dom.items.style.display='none';document.onmousedown=null;};}
this.clearItems=function(){this.dom.items.innerHTML='';}
this.addItems=function(items){if(items&&items.length>0){var option;for(var i=0,length=items.length;i<length;i++){option=GUI.dc('combobox-option');option.pid=(items[i].id||0);option.innerHTML=items[i].name;T.hover(option,'combobox-option-hover');if(this.selectedId&&this.selectedId==option.pid){T.addClass(option,'combobox-option-select');this.dom.inputText.innerHTML=option.innerHTML;this.selected=option;this.selected.id=option.pid;this.selected.name=option.innerHTML;}
var thisObj=this;option.onmousedown=function(){thisObj.dom.inputText.innerHTML=this.innerHTML;if(thisObj.selected){T.removeClass(thisObj.selected,'combobox-option-select');}
T.addClass(this,'combobox-option-select');thisObj.selected=this;thisObj.selected.id=this.pid;thisObj.selected.name=this.innerHTML;if(thisObj.onChange){thisObj.onChange(thisObj);}}
this.dom.items.appendChild(option);}}
if(items.length<(params.countRow||5)){this.dom.items.style.height=items.length*22+'px';}else{this.dom.items.style.height=110+'px';}}
this.value=function(){if(this.selected){return this.selected.id;}else{return-1;}}
this.disable=function(){this.disabled=true;T.addClass(this.dom,'combobox-disabled');}
this.enable=function(){this.disabled=false;T.removeClass(this.dom,'combobox-disabled');}
if(params.items&&params.items.length){this.clearItems();this.addItems(params.items);}};GUI.data={GET:function(url,params,onSuccess,onError){var t=GUI.data.getXmlHTTP();t.open('GET',url+'?'+GUI.data.urlEncodeData(params),true);t.onreadystatechange=function(){if(t.readyState==4){if(t.status==200){if(onSuccess){if(t.responseText.substr(0,1)!='{'){onSuccess({});return;}
var data={};try{data=eval('('+t.responseText+')');}catch(e){}
onSuccess(data);}}else{if(onError){onError(t.statusText);}}}}
t.send(null);},POST:function(url,params,onSuccess,onError){var t=GUI.data.getXmlHTTP();t.open('POST',url,true);t.setRequestHeader('Content-type','application/x-www-form-urlencoded');t.onreadystatechange=function(){if(t.readyState==4){if(t.status==200){if(onSuccess){if(t.responseText.substr(0,1)!='{'){onSuccess({});return;}
var data={};try{data=eval('('+t.responseText+')');}catch(e){}
onSuccess(data);}}else{if(onError){onError(t.statusText);}}}}
t.send(GUI.data.urlEncodeData(params));},getXmlHTTP:function(){var xmlhttp;try{xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){try{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
catch(E){xmlhttp=false;}}
if(!xmlhttp&&typeof XMLHttpRequest!='undefined'){xmlhttp=new XMLHttpRequest();}
return xmlhttp;},urlEncodeData:function(data){var query=[];if(data instanceof Object){for(var k in data){query.push(encodeURIComponent(k)+"="+
encodeURIComponent(data[k]));}
return query.join('&');}
else{return encodeURIComponent(data);}}};GUI.field=function(params){GUI.ext(this,(params||{}));this.etype='field';this.dom=GUI.dc('field');this.dom.appendChild(this.dom.input=GUI.dc('field-input',true));this.dom.input.appendChild(this.dom.inputText=GUI.dc('field-input-text'));this.dom.inputText.appendChild(this.dom.inputTextEditor=document.createElement('input'));this.onKeyDown=params.onKeyDown||null;if(params.type=='password'){if(!T.userInfo.browser.ie){this.dom.inputTextEditor.type='password';}}
this.value=function(val){return(typeof val=='string'||typeof val=='number')?this.dom.inputTextEditor.value=val:this.dom.inputTextEditor.value;}
var thisObj=this;this.dom.inputTextEditor.onblur=function(){if(thisObj.onChange)thisObj.onChange(thisObj);}
this.dom.inputTextEditor.onkeydown=function(e){if(thisObj.onKeyDown){e=e?e:window.event;thisObj.onKeyDown(e.keyCode);}}
this.focus=function(){this.dom.inputTextEditor.focus();}
this.setWidth=function(width){this.width=width;this.dom.style.width=this.width+'px';this.dom.inputText.style.width=this.width-2+'px';this.dom.inputTextEditor.style.width=this.dom.inputText.style.width;}
this.setWidth(this.width||200);this.disable=function(){this.disabled=true;this.dom.inputTextEditor.setAttribute('disabled','disabled');T.addClass(this.dom,'field-disabled');}
this.enable=function(){this.disabled=false;this.dom.inputTextEditor.removeAttribute('disabled');T.removeClass(this.dom,'field-disabled');}
if(this.defValue)this.value(this.defValue);};GUI.doubleslider=function(params){this.parentClass=GUI.slider;this.parentClass(params);this.position2=params.position2||0;if(this.position2<this.position)this.position2=this.position;this.dom.appendChild(this.picker2=GUI.dc('slider-picker2-'+this.orient,true));if(this.orient=='h'){this.picker.style.width='5px';this.picker2.style.width='5px';}else{this.picker.style.height='5px';this.picker2.style.height='5px';}
this.setWidth=function(width){if(this.orient=='v')return;this.width=width;this.dom.style.width=this.width+'px';this.line.style.width=this.width+'px';this.one=(this.width-10)/100;this.setPosition([this.position,this.position2]);}
this.setHeight=function(height){if(this.orient=='h')return;this.height=height;this.dom.style.height=this.height+'px';this.line.style.height=this.height+'px';this.one=(this.height-10)/100;this.setPosition([this.position,this.position2]);}
this.setPosition=function(position){this.position=position[0];this.position2=position[1];if(this.orient=='h'){this.picker.style.marginLeft=this.one*this.position+'px';this.picker2.style.marginLeft=this.one*(this.position2-this.position)+'px';}else{this.picker.style.marginTop=this.one*this.position+'px';this.picker2.style.marginTop=this.one*(this.position2-this.position)+'px';}}
var thisObj=this;T.bindDrag(this.picker,function(){if(thisObj.orient=='h'){if(parseInt(thisObj.picker.style.marginLeft)+T.deltaX<0||parseInt(thisObj.picker.style.marginLeft)+T.deltaX>parseInt(thisObj.picker.style.marginLeft)+parseInt(thisObj.picker2.style.marginLeft))
return;thisObj.picker.style.marginLeft=parseInt(thisObj.picker.style.marginLeft)+T.deltaX+'px';thisObj.picker2.style.marginLeft=parseInt(thisObj.picker2.style.marginLeft)-T.deltaX+'px';}else{if(parseInt(thisObj.picker.style.marginTop)+T.deltaY<0||parseInt(thisObj.picker.style.marginTop)+T.deltaY>parseInt(thisObj.picker.style.marginTop)+parseInt(thisObj.picker2.style.marginTop))
return;thisObj.picker.style.marginTop=parseInt(thisObj.picker.style.marginTop)+T.deltaY+'px';thisObj.picker2.style.marginTop=parseInt(thisObj.picker2.style.marginTop)-T.deltaY+'px';}},function(){},function(){if(thisObj.orient=='h'){thisObj.setPosition([Math.ceil(parseInt(thisObj.picker.style.marginLeft)/thisObj.one),thisObj.position2]);}else{thisObj.setPosition([Math.ceil(parseInt(thisObj.picker.style.marginTop)/thisObj.one),thisObj.position2]);}
if(thisObj.onChange){thisObj.onChange(thisObj);}});T.bindDrag(this.picker2,function(){if(thisObj.orient=='h'){if(parseInt(thisObj.picker2.style.marginLeft)+T.deltaX<0||parseInt(thisObj.picker2.style.marginLeft)+parseInt(thisObj.picker.style.marginLeft)+T.deltaX>thisObj.width-10)
return;thisObj.picker2.style.marginLeft=parseInt(thisObj.picker2.style.marginLeft)+T.deltaX+'px';}else{if(parseInt(thisObj.picker2.style.marginTop)+T.deltaY<0||parseInt(thisObj.picker2.style.marginTop)+parseInt(thisObj.picker.style.marginTop)+T.deltaY>thisObj.height-10)
return;thisObj.picker2.style.marginTop=parseInt(thisObj.picker2.style.marginTop)+T.deltaY+'px';}},function(){},function(){if(thisObj.orient=='h'){thisObj.setPosition([thisObj.position,Math.ceil((parseInt(thisObj.picker.style.marginLeft)+parseInt(thisObj.picker2.style.marginLeft))/thisObj.one)]);}else{thisObj.setPosition([thisObj.position,Math.ceil((parseInt(thisObj.picker.style.marginTop)+parseInt(thisObj.picker2.style.marginTop))/thisObj.one)]);}
if(thisObj.onChange){thisObj.onChange(thisObj);}});if(this.orient=='h'){this.setWidth(this.width||200);}else{this.setHeight(this.height||200);}};GUI.tabs=function(params){GUI.ext(this,(params||{}));this.setPanel();this.etype='tabs';this.items=[];this.itemCounter=2;this.activeId=(params.activeId||1);this.dom.content.appendChild(this.tabPanel=GUI.dc('tabs-button-panel',true));this.dom.content.appendChild(this.tabContent=GUI.dc('tabs-content-panel'));this.resizeExt=function(size){if(size.width<this.minWidth||size.height<this.minHeight)return;this.dom.content.style.height=size.height-this.notContentHeight+'px';this.tabContent.style.height=size.height-this.notContentHeight-28+'px';this.dom.content.style.width=size.width+'px';this.tabContent.style.width=size.width+'px';for(var i=0;i<this.tabContent.childNodes.length;i++){this.tabContent.childNodes[i].style.height=this.tabContent.style.height;this.tabContent.childNodes[i].style.width=this.tabContent.style.width;}
if(this.items&&this.items.length){for(var i=0;i<this.items.length;i++){if(this.items[i]._resize)
this.items[i]._resize({width:size.width,height:size.height-this.notContentHeight-28});}}}
this.addItem=function(p){var button=GUI.dc('tabs-button');button.data=this.itemCounter-1;this.itemCounter++;button.title=(p.descr||p.title||'');button.appendChild(button.left=GUI.dc('tabs-button-left',true));button.appendChild(button.body=GUI.dc('tabs-button-body',true));button.appendChild(button.right=GUI.dc('tabs-button-right',true));button.body.appendChild(button.ico=GUI.dc('tabs-button-ico'));button.ico.style.backgroundImage='url('+GUI.icoPath+(p.ico||'none')+'.png)';if(p.title){button.body.appendChild(button.name=GUI.dc('tabs-button-title'));button.name.innerHTML=p.title;}
button.onmouseover=function(){T.addClass(this,'tabs-button-hover');}
button.onmouseout=function(){T.removeClass(this,'tabs-button-hover');}
var thisObj=this;button.onclick=function(){thisObj.activeTab(this.data);}
this.tabPanel.appendChild(button);var content=GUI.dc('tabs-content');if(p.items&&p.items.length){for(var i=0,length=p.items.length;i<length;i++){this.items.push(p.items[i]);content.appendChild(p.items[i].dom);}}
this.tabContent.appendChild(content);}
this.activeTab=function(id){this.activeId=(id||-1);for(var i=0;i<this.tabPanel.childNodes.length;i++){if(i==this.activeId-1){T.addClass(this.tabPanel.childNodes[i],'tabs-button-select');T.addClass(this.tabContent.childNodes[i],'tabs-content-select');}else{T.removeClass(this.tabPanel.childNodes[i],'tabs-button-select');T.removeClass(this.tabContent.childNodes[i],'tabs-content-select');}}
return this.activeId;}
this.addItems=function(items){if(items&&items.length){for(var i=0,length=items.length;i<length;i++){this.addItem(items[i]);}}}
if(params.items&&params.items.length){this.addItems(params.items);}
this.activeTab(this.activeId);};GUI.ext=function(obj,params){var p=(params||{});obj.title=p.title||'';obj.descr=p.descr||obj.title||'';obj.minWidth=p.minWidth||0;obj.minHeight=p.minHeight||0;obj.width=p.width||obj.minWidth||0;obj.height=p.height||obj.minHeight||0;obj.cssFloat=p.cssFloat||null;obj.ico=p.ico||false;obj.align=p.align||'center';obj.border=p.border==false?false:true;obj.borderMove=p.borderMove==false?false:true;obj.checked=p.checked==true?true:false;obj.disabled=p.disabled==true?true:false;obj.selectedId=p.selectedId||-1;obj.value=p.value||false;obj.defValue=p.defValue||false;obj.html=(p.html||'');obj.toolBar=(p.toolBar||false);obj.onClick=(p.onClick||null);obj.onChange=(p.onChange||null);obj.notContentHeight=0;obj._resize=function(size){if(size&&size.width){obj.dom.style.width=size.width+'px';}
if(size&&size.height){obj.dom.style.height=size.height+'px';}
if(obj.resizeExt)obj.resizeExt(size);}
obj.applyTo=function(elem){if(typeof elem!='object')
elem=document.getElementById(elem);elem.style.width=obj.width+'px';elem.style.height=obj.height+'px';elem.appendChild(obj.dom);}
obj.setPanel=function(){GUI.ext2panel(obj);}};GUI.ext2panel=function(obj){obj.etype='panel';obj.dom=GUI.dc('panel');obj.dom.style.width=obj.width+'px';obj.dom.style.height=obj.height+'px';if(obj.cssFloat)obj.dom.style['float']=obj.cssFloat;if(obj.title){obj.dom.appendChild(obj.dom.top=GUI.dc('panel-title',true));obj.dom.top.appendChild(obj.dom.top.txt=GUI.dc('panel-title-text'));if(obj.ico){obj.dom.top.txt.style.backgroundImage='url('+GUI.icoPath+obj.ico+'.png)';}else{T.addClass(obj.dom.top.txt,'panel-title-text-noico');}
obj.dom.top.txt.innerHTML=obj.title;obj.notContentHeight+=21;}
if(obj.toolBar){obj.dom.appendChild(obj.toolBar.dom);obj.notContentHeight+=obj.toolBar.height;}
obj.resizeExt=function(size){if(size&&size.height){obj.dom.content.style.height=size.height-obj.notContentHeight+'px';}
if(size&&size.width){obj.dom.content.style.width=size.width+'px';}}
obj.dom.appendChild(obj.dom.content=GUI.dc('panel-content'));if(obj.html!='')obj.dom.content.innerHTML=obj.html;if(obj.onClick){obj.dom.onclick=function(){obj.onClick(obj);}}
obj.append=function(elem){if(elem&&elem.dom)
obj.dom.content.appendChild(elem.dom);}
obj.clear=function(){obj.dom.content.innerHTML='';}
obj.setTitle=function(title){this.title=title;this.dom.top.txt.innerHTML=title;}
obj.getSize=function(){return{width:(parseInt(obj.dom.style.width)||0),height:(parseInt(obj.dom.style.height)||0)}}
obj.flashTitleStart=function(){obj.flasher=setInterval(function(){obj.dom.top.txt.innerHTML!=''?obj.dom.top.txt.innerHTML='':obj.dom.top.txt.innerHTML=obj.title;},500);}
obj.flashTitleStop=function(){clearInterval(obj.flasher);obj.dom.top.txt.innerHTML=obj.title;}
obj.resizeExt({height:obj.height});};GUI.dialog=function(params){var p=params||{};this.panel=new GUI.panel({});this.wnd=new GUI.window({title:p.title||'dialog',ico:p.ico||'comment',width:p.width||500,height:p.height||200,closable:true,removable:true,minimisable:false,maximizable:false,fill:true,modal:true,align:'center',animation:p.animation||0,items:[this.panel]});this.panel.dom.content.innerHTML=p.html||'';this.close=function(){this.wnd.close();}
this.wnd.show();};GUI.radio=function(params){GUI.ext(this,(params||{}));this.etype='radio';this.height=this.height||20;this.height=this.height*(params.items.length||1);this.items=2;this.dom=GUI.dc('radio-group');this.dom.style.height=this.height+'px';var thisObj=this;this.setWidth=function(width){this.width=width;this.dom.style.width=this.width+'px';}
this.setWidth(this.width||200);this.addItem=function(item){var r=GUI.dc('checkbox');r.appendChild(r.ico=GUI.dc('radio-ico',true));r.appendChild(r.inputText=GUI.dc('radio-text'));r.inputText.innerHTML=(item.title||'');r.data=this.items-1;this.items++;if(this.selectedId==r.data){T.addClass(r.ico,'radio-ico-checked');}
r.onmouseover=function(){if(!thisObj.disabled)
thisObj.checkedId==this.data?T.addClass(this.ico,'radio-ico-checked-hover'):T.addClass(this.ico,'checkbox-ico-hover');}
r.onmouseout=function(){if(!thisObj.disabled)
thisObj.checkedId==this.data?T.removeClass(this.ico,'radio-ico-checked-hover'):T.removeClass(this.ico,'checkbox-ico-hover');}
r.onclick=function(){if(!thisObj.disabled)
thisObj.value(this.data);}
this.dom.appendChild(r);}
this.value=function(id){this.selectedId=(id||-1);for(var i=0;i<this.dom.childNodes.length;i++){if(i==this.selectedId-1){T.removeClass(this.dom.childNodes[i].ico,'radio-ico-hover');T.addClass(this.dom.childNodes[i].ico,'radio-ico-checked');T.addClass(this.dom.childNodes[i].ico,'radio-ico-checked-hover');}else{T.removeClass(this.dom.childNodes[i].ico,'radio-ico-checked');T.removeClass(this.dom.childNodes[i].ico,'radio-ico-checked-hover');}}
return this.selectedId;}
this.addItems=function(items){if(items&&items.length){this.dom.innerHTML='';for(var i=0,length=items.length;i<length;i++){this.addItem(items[i]);}}}
this.disable=function(){this.disabled=true;T.addClass(this.dom,'radio-group-disabled');}
this.enable=function(){this.disabled=false;T.removeClass(this.dom,'radio-group-disabled');}
if(params.items&&params.items.length){this.addItems(params.items);}};GUI.button=function(params){GUI.ext(this,(params||{}));this.etype='button';this.dom=GUI.dc('button',true);this.dom.appendChild(this.dom.inner=GUI.dc('button-inner',true));this.dom.inner.innerHTML=this.title;this.dom.inner.onmouseover=function(){if(!thisObj.disabled)T.addClass(this,'button-inner-hover');}
this.dom.inner.onmouseout=function(){if(!thisObj.disabled)T.removeClass(this,'button-inner-hover');if(!thisObj.disabled)T.removeClass(this,'button-inner-click');}
this.dom.inner.onmousedown=function(){if(!thisObj.disabled)T.addClass(this,'button-inner-click');}
this.dom.inner.onmouseup=function(){if(!thisObj.disabled)T.removeClass(this,'button-inner-click');}
var thisObj=this;this.setWidth=function(width){this.width=width;this.dom.style.width=this.width+'px';this.dom.inner.style.width=this.width-2+'px';}
this.setWidth(this.width||200);this.value=function(val){return val?this.dom.inner.innerHTML=val:this.dom.inner.innerHTML;}
this.disable=function(){this.disabled=true;T.addClass(this.dom,'button-disabled');}
this.enable=function(){this.disabled=false;T.removeClass(this.dom,'button-disabled');}
if(this.onClick){this.dom.onclick=function(){if(!thisObj.disabled)thisObj.onClick(thisObj);}}};GUI.layout=function(params){var p=(params||{});this.etype='layout';this.align=(p.align||'center');this.border=p.border==false?false:true;this.dom=GUI.dc('layout');this.dom.appendChild(this.dom.top=GUI.dc('layout-top'));this.dom.appendChild(this.dom.left=GUI.dc('layout-left'));this.dom.appendChild(this.dom.center=GUI.dc('layout-center'));this.dom.appendChild(this.dom.right=GUI.dc('layout-right'));this.dom.appendChild(this.dom.bottom=GUI.dc('layout-bottom'));if(p.items&&p.items.length){this.content={};this.dom.left.width=0;this.dom.right.width=0;this.dom.top.height=0;this.dom.bottom.height=0;for(var i=0;i<p.items.length;i++){if(!this.content[p.items[i].align]){this.dom[p.items[i].align].appendChild(p.items[i].dom);if(p.items[i].height>0){this.dom[p.items[i].align].height+=p.items[i].height;}
if(p.items[i].width>0){this.dom[p.items[i].align].width+=p.items[i].width;}
this.content[p.items[i].align]=p.items[i];}}
if(this.border){var obj=this;if(this.content.top&&this.content.top.border){this.dom.top.appendChild(this.dom.top.border=GUI.dc('layout-border-h',true));this.dom.top.height+=3;this.content.top.borderMove?T.bindDrag(this.dom.top.border,function(){if(obj.dom.top.height+T.deltaY<obj.content.top.minHeight+3)return;if(obj.dom.center.height-T.deltaY<obj.content.center.minHeight+3)return;obj.dom.top.height+=T.deltaY;obj.dom.top.style.height=obj.dom.top.height+'px';obj.content.top._resize({height:obj.dom.top.height-3});obj.dom.center.height-=T.deltaY;obj.dom.center.style.height=obj.dom.center.height+'px';obj.content.center._resize({height:obj.dom.center.height});obj.dom.left.height=obj.dom.center.height;obj.dom.left.style.height=obj.dom.left.height+'px';obj.content.left._resize({height:obj.dom.left.height});obj.dom.right.height=obj.dom.center.height;obj.dom.right.style.height=obj.dom.right.height+'px';obj.content.right._resize({height:obj.dom.right.height});if(obj.dom.left.border){obj.dom.left.border.style.height=obj.dom.center.style.height;}
if(obj.dom.right.border){obj.dom.right.border.style.height=obj.dom.center.style.height;}}):this.dom.top.border.style.cursor='auto';}
if(this.content.left&&this.content.left.border){this.dom.left.appendChild(this.dom.left.border=GUI.dc('layout-border-v',true));this.dom.left.width+=3;this.content.left.borderMove?T.bindDrag(this.dom.left.border,function(){if(obj.dom.left.width+T.deltaX<obj.content.left.minWidth+3)return;if(obj.dom.center.width-T.deltaX<obj.content.center.minWidth+3)return;obj.dom.left.width+=T.deltaX;obj.dom.left.style.width=obj.dom.left.width+'px';obj.content.left._resize({width:obj.dom.left.width-3});obj.dom.center.width-=T.deltaX;obj.dom.center.style.width=obj.dom.center.width+'px';obj.content.center._resize({width:obj.dom.center.width});}):this.dom.left.border.style.cursor='auto';}
if(this.content.right&&this.content.right.border){this.dom.right.insertBefore(this.dom.right.border=GUI.dc('layout-border-v',true),this.dom.right.firstChild)
this.dom.right.width+=3;this.content.right.borderMove?T.bindDrag(this.dom.right.border,function(){if(obj.dom.right.width-T.deltaX<obj.content.right.minWidth+3)return;if(obj.dom.center.width+T.deltaX<obj.content.center.minWidth+3)return;obj.dom.right.width-=T.deltaX;obj.dom.right.style.width=obj.dom.right.width+'px';obj.content.right._resize({width:obj.dom.right.width-3});obj.dom.center.width+=T.deltaX;obj.dom.center.style.width=obj.dom.center.width+'px';obj.content.center._resize({width:obj.dom.center.width});}):this.dom.right.border.style.cursor='auto';}
if(this.content.bottom&&this.content.bottom.border){this.dom.bottom.insertBefore(this.dom.bottom.border=GUI.dc('layout-border-h',true),this.dom.bottom.firstChild)
this.dom.bottom.height+=3;this.content.bottom.borderMove?T.bindDrag(this.dom.bottom.border,function(){if(obj.dom.bottom.height-T.deltaY<obj.content.bottom.minHeight+3)return;if(obj.dom.center.height+T.deltaY<obj.content.center.minHeight+3)return;obj.dom.bottom.height-=T.deltaY;obj.dom.bottom.style.height=obj.dom.bottom.height+'px';obj.content.bottom._resize({height:obj.dom.bottom.height-3});obj.dom.center.height+=T.deltaY;obj.dom.center.style.height=obj.dom.center.height+'px';obj.content.center._resize({height:obj.dom.center.height});obj.dom.left.height=obj.dom.center.height;obj.dom.left.style.height=obj.dom.left.height+'px';obj.content.left._resize({height:obj.dom.left.height});obj.dom.right.height=obj.dom.center.height;obj.dom.right.style.height=obj.dom.right.height+'px';obj.content.right._resize({height:obj.dom.right.height});if(obj.dom.left.border){obj.dom.left.border.style.height=obj.dom.center.style.height;}
if(obj.dom.right.border){obj.dom.right.border.style.height=obj.dom.center.style.height;}}):this.dom.bottom.border.style.cursor='auto';}}
this.dom.top.style.height=this.dom.top.height+'px';this.dom.bottom.style.height=this.dom.bottom.height+'px';this.dom.left.style.width=this.dom.left.width+'px';this.dom.right.style.width=this.dom.right.width+'px';}
this._resize=function(size){this.dom.style.width=size.width+'px';this.dom.style.height=size.height+'px';this.dom.top.style.width=size.width+'px';this.dom.bottom.style.width=size.width+'px';if(this.dom.top.border){this.dom.top.border.style.width=this.dom.top.style.width;}
if(this.dom.bottom.border){this.dom.bottom.border.style.width=this.dom.bottom.style.width;}
this.dom.left.style.height=size.height-this.dom.top.height-this.dom.bottom.height+'px';this.dom.right.style.height=size.height-this.dom.top.height-this.dom.bottom.height+'px';this.dom.center.width=size.width-this.dom.left.width-this.dom.right.width;this.dom.center.height=size.height-this.dom.top.height-this.dom.bottom.height;this.dom.center.style.width=this.dom.center.width+'px';this.dom.center.style.height=this.dom.center.height+'px';if(this.dom.left.border){this.dom.left.border.style.height=this.dom.left.style.height;}
if(this.dom.right.border){this.dom.right.border.style.height=this.dom.right.style.height;}
if(this.content.top){this.content.top._resize({width:size.width,height:0});}
if(this.content.left){this.content.left._resize({width:0,height:size.height-this.dom.top.height-this.dom.bottom.height});}
if(this.content.center){this.content.center._resize({width:size.width-this.dom.left.width-this.dom.right.width,height:size.height-this.dom.top.height-this.dom.bottom.height});}
if(this.content.right){this.content.right._resize({width:0,height:size.height-this.dom.top.height-this.dom.bottom.height});}
if(this.content.bottom){this.content.bottom._resize({width:size.width,height:0});}}};GUI.form=function(params){GUI.ext(this,(params||{}));this.setPanel();this.etype='form';this.dom.content.style.width=this.width+'px';this.colCount=params.colCount||1;this.colWidth=parseInt(this.width/this.colCount);this.method=params.method||'POST';this.url=params.url||false;this.data=params.data;this.fields=[];this.addItem=function(params){var fieldDiv=GUI.dc('form-field');this.dom.content.appendChild(fieldDiv);fieldDiv.height=0;fieldDiv.style.width=(params.colSpan||1)*this.colWidth-5+'px';if(params.title){var t=new GUI.label({title:params.title});fieldDiv.appendChild(t.dom);t.setWidth(parseInt(fieldDiv.style.width));fieldDiv.height+=parseInt(T.getStyle(t.dom,'height'));}
if(params.field){if(typeof params.field!=='object'){}else{if(params.name){params.field.name=params.name;this.fields.push(params.field);}
fieldDiv.appendChild(params.field.dom);params.field.setWidth(parseInt(fieldDiv.style.width));fieldDiv.height+=parseInt(T.getStyle(params.field.dom,'height'));}}
if(fieldDiv.height)
fieldDiv.style.height=fieldDiv.height+'px';}
this.addItems=function(items){var thisObj=this;T.each(items,function(e,i){thisObj.addItem(e);});}
this.value=function(name,value){for(var i=0,length=this.fields.length;i<length;i++){if(this.fields[i].name==name){if(value!==undefined){this.fields[i].value(value);return true;}else{return this.fields[i].value();}}}}
this.enable=function(){for(var i=0,length=this.fields.length;i<length;i++){this.fields[i].enable();}}
this.disable=function(){for(var i=0,length=this.fields.length;i<length;i++){this.fields[i].disable();}}
this.send=function(onSuccess){if(!this.url)return;if(this.fields.length){for(var i=0,length=this.fields.length;i<length;i++){var value=this.fields[i].value();if(value){value=value.replace(/'/gi,"\\'");}
this.data[this.fields[i].name]=value;}}
var thisObj=this;var onLoad=function(data){if(onSuccess)onSuccess(data);}
if(this.method=='POST'){GUI.data.POST(this.url,this.data,onLoad);}else{GUI.data.GET(this.url,this.data,onLoad);}}
if(params.items&&params.items.length){this.addItems(params.items);}};GUI.label=function(params){GUI.ext(this,(params||{}));this.etype='label';this.dom=GUI.dc('label');this.dom.innerHTML=this.title;this.setWidth=function(width){this.width=width;this.dom.style.width=this.width+'px';}
this.setWidth(this.width||200);};GUI.accordion=function(params){GUI.ext(this,(params||{}));this.setPanel();T.fill(this.dom.content);this.etype='accordion';this.items=[];this.selected=params.selected||0;this.resizeExt=function(size){if(size&&size.height){this.dom.content.style.height=size.height-this.notContentHeight+'px';}
this.recalcSize();}
this.addItem=function(i){if(!i.etype){i=new GUI.accordionPanel(i);}
i.dom.top.lid=this.items.length;this.dom.content.appendChild(i.dom);thisObj=this;i.dom.top.onclick=function(){thisObj.show(this.lid);}
this.items.push(i);}
this.recalcSize=function(){for(var i=0,length=this.items.length;i<length;i++){this.items[i].dom.content.style.height=parseInt(this.dom.content.style.height)-this.items.length*21+'px';this.items[i].dom.content.style.width=this.dom.style.width;this.items[i]._resize({width:parseInt(this.items[i].dom.content.style.width),height:parseInt(this.items[i].dom.content.style.height)})
i==this.selected?this.items[i].expand(0):this.items[i].colapse(0);}}
this.show=function(id){this.selected=id;for(var i=0,length=this.items.length;i<length;i++){i==this.selected?this.items[i].expand():this.items[i].colapse();}}
this.clearItems=function(){this.dom.content.innerHTML='';this.selected=0;this.items=[];}
this.addItems=function(items){if(items&&items.length){this.clearItems();for(var i=0,length=items.length;i<length;i++){this.addItem(items[i]);}}
this.show(this.selected);}
this.addItems(params.items);};GUI.accordionPanel=function(params){GUI.ext(this,(params||{}));this.etype='accordionPanel';this.dom=GUI.dc('');this.dom.appendChild(this.dom.top=GUI.dc('panel-title-acc',true));this.dom.appendChild(this.dom.content=GUI.dc('panel-content'));this.dom.top.appendChild(this.dom.top.txt=GUI.dc('panel-title-text'));if(this.ico){this.dom.top.txt.style.backgroundImage='url('+GUI.icoPath+this.ico+'.png)';}else{T.addClass(this.dom.top.txt,'panel-title-text-noico');}
this.dom.top.txt.innerHTML=this.title;this.notContentHeight+=21;this.dom.content.style.backgroundColor='#ffffff';this.items=[];this._resize=function(size){this.height=size.height;this.width=size.width;this.dom.content.style.width=size.width+'px';this.dom.content.style.height=size.height+'px';for(var i=0,length=this.items.length;i<length;i++){this.items[i]._resize(size);}}
this.hide=function(){this.dom.content.style.display='none';}
this.show=function(){this.dom.content.style.display='block';}
this.colapse=function(time){if(time==0){this.dom.content.style.height='0px';}else{T.animate(this.dom.content,time||100,{height:0});}}
this.expand=function(time){if(time==0){this.dom.content.style.height=this.height+'px';}else{T.animate(this.dom.content,time||100,{height:this.height});}}
this.addItem=function(i){this.dom.content.appendChild(i.dom);this.items.push(i);}
this.clearItems=function(){this.dom.content.innerHTML='';this.items=[];}
this.addItems=function(items){if(items&&items.length){this.clearItems();for(var i=0,length=items.length;i<length;i++){this.addItem(items[i]);}}}
this.addItems(params.items);};GUI.checkbox=function(params){GUI.ext(this,(params||{}));this.etype='checkbox';this.dom=GUI.dc('checkbox');this.dom.appendChild(this.dom.ico=GUI.dc('checkbox-ico',true));this.dom.appendChild(this.dom.inputText=GUI.dc('checkbox-text'));this.dom.inputText.innerHTML=this.title;this.setWidth=function(width){this.width=width;this.dom.style.width=this.width+'px';this.dom.inputText.style.width=this.width-20+'px';}
this.setWidth(this.width||200);var thisObj=this;this.dom.onmouseover=function(){if(!thisObj.disabled)
thisObj.checked?T.addClass(thisObj.dom.ico,'checkbox-ico-checked-hover'):T.addClass(thisObj.dom.ico,'checkbox-ico-hover');}
this.dom.onmouseout=function(){if(!thisObj.disabled)
thisObj.checked?T.removeClass(thisObj.dom.ico,'checkbox-ico-checked-hover'):T.removeClass(thisObj.dom.ico,'checkbox-ico-hover');}
this.dom.onclick=function(){if(!thisObj.disabled)thisObj.value(!thisObj.checked);}
this.value=function(val){if(val==true){this.checked=true;T.removeClass(this.dom.ico,'checkbox-ico-hover');T.addClass(this.dom.ico,'checkbox-ico-checked');T.addClass(this.dom.ico,'checkbox-ico-checked-hover');}else{this.checked=false;T.removeClass(this.dom.ico,'checkbox-ico-checked');T.removeClass(this.dom.ico,'checkbox-ico-checked-hover');T.addClass(this.dom.ico,'checkbox-ico-hover');}
if(this.onChange){this.onChange(this);}
return this.checked;}
this.disable=function(){this.disabled=true;T.addClass(this.dom,'checkbox-disabled');}
this.enable=function(){this.disabled=false;T.removeClass(this.dom,'checkbox-disabled');}
this.value(this.checked);};GUI.htmlarea=function(params){GUI.ext(this,(params||{}));this.setPanel();this.etype='htmlarea';this.sourceEdit=false;this.defValue=params.value||'';this.baseDir=params.baseDir||'';this.disabled=params.disabled||false;var thisObj=this;this.toolBar=new GUI.toolbar({size:'small',items:[new GUI.toolbarButton({ico:'text_bold',descr:'bold',onMouseDown:function(){thisObj.formatText('bold');}}),new GUI.toolbarButton({ico:'text_italic',descr:'italic',onMouseDown:function(){thisObj.formatText('italic');}}),new GUI.toolbarButton({ico:'text_underline',descr:'underline',onMouseDown:function(){thisObj.formatText('underline');}}),new GUI.toolbarSplit({}),new GUI.toolbarButton({ico:'text_align_left',descr:'left',onMouseDown:function(){thisObj.formatText('justifyleft');}}),new GUI.toolbarButton({ico:'text_align_center',descr:'center',onMouseDown:function(){thisObj.formatText('justifycenter');}}),new GUI.toolbarButton({ico:'text_align_right',descr:'right',onMouseDown:function(){thisObj.formatText('justifyright');}}),new GUI.toolbarButton({ico:'text_align_justify',descr:'justify',onMouseDown:function(){thisObj.formatText('justifyfull');}}),new GUI.toolbarSplit({}),new GUI.toolbarButton({ico:'text_list_bullets',descr:'unordered list',onMouseDown:function(){thisObj.formatText('insertunorderedlist');}}),new GUI.toolbarButton({ico:'text_list_numbers',descr:'ordered list',onMouseDown:function(){thisObj.formatText('insertorderedlist');}}),new GUI.toolbarSplit({}),new GUI.toolbarButton({ico:'css_delete',descr:'remove format',onMouseDown:function(){thisObj.formatText('removeformat');}}),new GUI.toolbarSplit({}),new GUI.toolbarButton({ico:'link',descr:'link',onMouseDown:function(){var link=prompt('Link:','http://');if(link&&link!=''&&link!='http://')
thisObj.execCmd('createlink',link);}}),new GUI.toolbarButton({ico:'link_delete',descr:'unlink',onMouseDown:function(){thisObj.formatText('unlink');}}),new GUI.toolbarButton({ico:'html',descr:'edit html',trigger:true,onMouseDown:function(){if(thisObj.sourceEdit){thisObj.area.style.display='block';thisObj.value(thisObj.source.txt.value);thisObj.source.style.display='none';}else{thisObj.area.style.display='none';thisObj.source.txt.value=thisObj.value();thisObj.source.style.display='block';}
thisObj.sourceEdit=!thisObj.sourceEdit;}})]});this.append(this.toolBar);this.dom.content.appendChild(this.area=GUI.dc('htmlarea'));this.area.appendChild(this.frame=document.createElement('iframe'));this.frame.src='javascript: false';this.frame.frameBorder='0';this.frame.name=T.generateId();this.frame.style.width='100%';this.dom.content.appendChild(this.source=GUI.dc('htmlarea-source'));this.source.appendChild(this.source.txt=document.createElement('textarea'));this.resizeExt=function(size){if(size&&size.height){thisObj.dom.content.style.height=size.height-thisObj.notContentHeight+'px';thisObj.area.style.height=size.height-thisObj.notContentHeight-30+'px';thisObj.frame.style.height=thisObj.area.style.height;thisObj.source.style.height=size.height-thisObj.notContentHeight-30+'px';}}
this.setWidth=function(width){this._resize({width:width,height:this.height});}
this.setWidth(this.width);this.cleanFrame=function(){var code='<html><head><base href="'+this.baseDir+'"><style type="text/css">body{font-family:Arial,Helvetica,sans-serif;font-size:10pt;border:0;margin:0;padding:3px;height:98%;cursor:text;} img{margin: 10px;}</style>';code+='</head>';code+='<body>'+this.defValue+'</body>';code+='</html>';return code;}
this.getEditorWin=function(){return T.userInfo.browser.ie?this.frame.contentWindow:window.frames[this.frame.name];}
this.getEditor=function(){return T.userInfo.browser.ie?this.getEditorWin().document:(this.frame.contentDocument||this.getEditorWin().document);}
this.getEditorBody=function(){return this.editor.documentElement.body||this.editor.body;}
this.initArea=function(){this.editor=this.getEditor();this.editorWin=this.getEditorWin();this.editor.open();this.editor.write(this.cleanFrame());this.editor.close();var thisObj=this;this.initTimer=setInterval(function(){if(thisObj.editor.readyState=='complete'||thisObj.editor.body){thisObj.editorBody=thisObj.getEditorBody();thisObj.editor.designMode="on";clearInterval(thisObj.initTimer);}},10);}
this.focus=function(){if(this.editorWin)
this.editorWin.focus();}
this.formatText=function(cmd){if(this.disabled)return;this.focus();this.editor.execCommand(cmd);this.focus();}
this.execCmd=function(cmd,value){if(this.disabled)return;this.focus();this.editor.execCommand(cmd,false,value===undefined?null:value);this.focus();}
this.value=function(val){if(typeof val=='string'){if(T.userInfo.browser.ie){this.editor.body.innerHTML=val;}else{this.editorBody.innerHTML=val;}}else{if(T.userInfo.browser.ie){return this.editor.body.innerHTML;}else{return this.editorBody.innerHTML;}}}
this.insertHTML=function(html){if(T.userInfo.browser.ie){this.focus();var r=this.editor.selection.createRange();r.pasteHTML(html);r.collapse(false);r.select();}else{this.editor.execCommand('insertHTML',false,html);}}
this.disable=function(){this.disabled=true;this.area.style.display='none';}
this.enable=function(){this.disabled=false;this.area.style.display='block';}
this.wait=setInterval(function(){if(thisObj.frame.contentWindow||window.frames[thisObj.frame.name]){thisObj.initArea();clearInterval(thisObj.wait);}},100);};GUI.grid=function(params){GUI.ext(this,(params||{}));this.setPanel();this.etype='grid';this.columns=[];this.rows=[];this.gridWidth=0;this.dom.content.appendChild(this.grid=GUI.dc('grid'));this.grid.appendChild(this.header=GUI.dc('grid-header'));this.grid.appendChild(this.data=GUI.dc('grid-data'));this.resizeExt=function(size){this.data.style.height=size.height-this.notContentHeight-24+'px';}
this.addData=function(data){if(data&&data.length){this.rows=data;if(this.data.firstChild){this.data.removeChild(this.data.firstChild);}
var grid=document.createElement('table');this.data.appendChild(grid);T.addClass(grid,'grid-data-table');grid.setAttribute('cellspacing','0');grid.setAttribute('cellpadding','0');grid.appendChild(document.createElement('tbody'));var tr,td,column,odd=false;for(var i=0,length=data.length;i<length;i++){tr=document.createElement('tr');if(odd){T.addClass(tr,'odd');}
odd=!odd;for(var j=0,length2=data[i].length;j<length2;j++){td=document.createElement('td');td.appendChild(column=GUI.dc('grid-data-column'));column.innerHTML=data[i][j];if(i==0){td.style.width=this.columns[j].width+'px';column.style.width=this.columns[j].width+'px';}
tr.appendChild(td);}
td=document.createElement('td');td.style.width='100%';tr.appendChild(td);grid.firstChild.appendChild(tr);T.hover(tr,'grid-data-column-hover');var thisObj=this;tr.onclick=function(){if(thisObj.selectedRow){T.removeClass(thisObj.selectedRow,'grid-data-column-select');}
T.addClass(this,'grid-data-column-select');thisObj.selectedRow=this;}}}}
this.reorder=function(col){T.startSec();var columns=this.header.firstChild.firstChild.firstChild;for(var i=0;i<columns.childNodes.length;i++){T.removeClass(columns.childNodes[i].firstChild.childNodes[1],'grid-header-column-order-desc');T.removeClass(columns.childNodes[i].firstChild.childNodes[1],'grid-header-column-order-asc');}
var colNum=col.getAttribute('data');for(var i=0,length=this.columns.length;i<length;i++){if(i!=colNum){this.columns[i].order=null;}}
if(!this.columns[colNum].order||this.columns[colNum].order==0){if(this.columns[colNum].ctype!='string'){this.rows.sort(function(a,b){if(Number(a[colNum])>Number(b[colNum]))
return 1;if(Number(a[colNum])<Number(b[colNum]))
return-1;return 0;});}
else{this.rows.sort(function(a,b){if((a[colNum])>(b[colNum]))
return 1;if((a[colNum])<(b[colNum]))
return-1;return 0;});}
this.columns[colNum].order=1;T.addClass(columns.childNodes[colNum].firstChild.childNodes[1],'grid-header-column-order-asc');}
else{if(this.columns[colNum].ctype!='string'){this.rows.sort(function(a,b){if(Number(a[colNum])>Number(b[colNum]))
return-1;if(Number(a[colNum])<Number(b[colNum]))
return 1;return 0;});}
else{this.rows.sort(function(a,b){if((a[colNum])>(b[colNum]))
return-1;if((a[colNum])<(b[colNum]))
return 1;return 0;});}
this.columns[colNum].order=0;T.addClass(columns.childNodes[colNum].firstChild.childNodes[1],'grid-header-column-order-desc');}
var grid=this.data.firstChild.firstChild;for(var i=0;i<this.rows.length;i++){for(var j=0,length=this.rows[0].length;j<length;j++){grid.childNodes[i].childNodes[j].firstChild.firstChild.nodeValue=this.rows[i][j];}}
T.stopSec();this.setTitle('grid - '+this.rows.length+' rows ordered '+T.getSec()+'ms');}
if(params.columns&&params.columns.length){var header=document.createElement('table');T.addClass(header,'grid-header-table');header.setAttribute('cellspacing','0');header.setAttribute('cellpadding','0');header.appendChild(document.createElement('tbody'));header.firstChild.appendChild(document.createElement('tr'));var column,columnData,columnResize,width;for(var i=0,length=params.columns.length;i<length;i++){column=document.createElement('td');column.appendChild(columnData=GUI.dc('grid-header-column',true));columnData.appendChild(columnResize=GUI.dc('grid-header-column-resizer',true));columnData.appendChild(GUI.dc('grid-header-column-order',true));columnData.appendChild(columnName=GUI.dc('grid-header-column-name'));columnData.setAttribute('data',i);columnName.innerHTML=(params.columns[i].title||'column '+(i+1));width=(parseInt(params.columns[i].width)||100);column.style.width=width+'px';columnData.style.width=width-2+'px';columnName.style.width=width-28+'px';this.gridWidth+=width;this.columns.push({title:(params.columns[i].title||'column'),ctype:(params.columns[i].ctype||'string'),width:width,order:null});var thisObj=this;columnName.onclick=function(){thisObj.reorder(this.parentNode);}
T.bindDrag(columnResize,function(obj){var width=parseInt(obj.parentNode.style.width)+T.deltaX;if(width<30)return;obj.parentNode.style.width=width+'px';obj.parentNode.childNodes[2].style.width=width-28+'px';},null,function(obj){var id=obj.parentNode.getAttribute('data');thisObj.data.firstChild.firstChild.firstChild.childNodes[id].firstChild.style.width=obj.parentNode.style.width;});header.firstChild.firstChild.appendChild(column);}
column=document.createElement('td');column.appendChild(columnData=GUI.dc('grid-header-column',true));column.style.width='100%';header.firstChild.firstChild.appendChild(column);this.header.appendChild(header);}};GUI.tree=function(params){GUI.ext(this,(params||{}));this.setPanel();this.etype='tree';this.dom.content.style.overflow='auto';var thisObj=this;this.onNodeClick=(params.onNodeClick||null);this.maxNodeId=0;this.dom.id=T.generateId();this.editable=params.editable==true?true:false;this.allowTags=params.allowTags||[];this.onEdit=params.onEdit||null;this.onSelect=params.onSelect||null;this.buildTree=function(tree,pid){var result=[];for(var i=0,length=tree.length;i<length;i++){if(tree[i].pid==pid){if(tree[i].id>0)
tree[i].childNodes=this.buildTree(tree,tree[i].id);result.push(tree[i]);}}
return result;}
this.generateTree=function(tree){for(var i=0,length=tree.length;i<length;i++){this.addItem(tree[i]);if(tree[i].childNodes){this.generateTree(tree[i].childNodes);}}}
this.addItems=function(items,sortCol){if(items&&items.length){this.dom.content.innerHTML='';T.each(items,function(e,i){e.id=parseInt(e.id);e.pid=parseInt(e.pid);});if(!sortCol||sortCol=='id'){items.sort(function(a,b){if(Number(a.id)>Number(b.id))return 1;if(Number(a.id)<Number(b.id))return-1;return 0;});}else{items.sort(function(a,b){if(String(a[sortCol])>String(b[sortCol]))return 1;if(String(a[sortCol])<String(b[sortCol]))return-1;return 0;});}
var tree=this.buildTree(items,0);this.generateTree(tree);}}
this.getNodeById=function(id){var nodes=this.dom.content.getElementsByTagName('div');for(var i=0,length=nodes.length;i<length;i++){if(nodes[i].id=='treeNode'+this.dom.id+id){return nodes[i];}}}
this.getNodeContentById=function(id){var divs=this.dom.content.getElementsByTagName('div');for(var i=0,length=divs.length;i<length;i++){if(divs[i].id==id){return divs[i];}}}
this.addItem=function(node){var treeNode=GUI.dc('tree-node');var treeNodeExpand=GUI.dc('tree-node-expand',true);var treeNodeContent=GUI.dc('tree-node-content');var treeNodeText=GUI.dc('tree-node-text');treeNodeContent.id='treeNodeContent'+this.dom.id+node.id;treeNodeContent.style.display='none';treeNodeText.innerHTML=node.name;treeNode.title=node.name;treeNode.data=node.data||'';if(this.maxNodeId<node.id)this.maxNodeId=node.id;treeNode.id='treeNode'+this.dom.id+node.id;treeNode.nid=node.id;treeNode.npid=node.pid;treeNode.style.backgroundImage='url('+GUI.icoPath+(node.ico||'page_white')+'.png)';treeNode.appendChild(treeNodeExpand);treeNode.appendChild(treeNodeText);var pNode=this.getNodeContentById('treeNodeContent'+this.dom.id+node.pid);if(pNode){pNode.previousSibling.childNodes[0].style.backgroundPosition='-26px -118px';treeNode.style.backgroundPosition=parseInt(pNode.previousSibling.childNodes[0].style.marginLeft)+40+'px 2px';treeNodeExpand.style.marginLeft=parseInt(pNode.previousSibling.childNodes[0].style.marginLeft)+20+'px';pNode.appendChild(treeNode);pNode.appendChild(treeNodeContent);pNode.previousSibling.childNodes[0].onclick=function(){if(pNode.style.display=='none'){pNode.previousSibling.childNodes[0].style.backgroundPosition='-42px -118px';pNode.style.display='block';}else{pNode.previousSibling.childNodes[0].style.backgroundPosition='-26px -118px';pNode.style.display='none';}}
if(pNode.previousSibling.style.backgroundImage.search('page_white')>-1){pNode.previousSibling.style.backgroundImage='url('+GUI.icoPath+'folder.png)';}}else{treeNodeExpand.style.marginLeft='0px';this.dom.content.appendChild(treeNode);this.dom.content.appendChild(treeNodeContent);}
var thisObj=this;treeNodeText.onclick=function(){if(thisObj.selected){T.removeClass(thisObj.selected,'tree-node-select');}
T.addClass(this.parentNode,'tree-node-select');thisObj.selected=this.parentNode;thisObj.selected.nid=this.parentNode.nid;thisObj.selected.npid=this.parentNode.npid;thisObj.selected.nname=this.innerHTML;thisObj.selected.ndata=this.parentNode.data;if(thisObj.onSelect)thisObj.onSelect(thisObj);}
treeNode.onclick=function(){thisObj.nodeClick(thisObj,treeNode);}
treeNode.ondblclick=function(){if(thisObj.editable){thisObj.nodeEditor(thisObj,treeNode);}}
T.hover(treeNode,'tree-node-hover');}
this.deleteNode=function(node){var n=node;if(n){var p=n.parentNode;p.removeChild(n);p.removeChild(document.getElementById('treeNodeContent'+this.dom.id+node.nid));if(!p.hasChildNodes()){p.previousSibling.childNodes[0].style.backgroundPosition='-0px -1300px';p.previousSibling.childNodes[0].onclick=null;if(p.previousSibling.childNodes[1].style.backgroundImage=='url('+GUI.icoPath+'folder.png)'){p.previousSibling.childNodes[1].style.backgroundImage='url('+GUI.icoPath+'page_white.png)';}}
this.selected=null;}}
this.nodeClick=function(obj,node){if(obj.onNodeClick)obj.onNodeClick(obj.selectedNode);if(node.onClick)node.onClick(obj.selectedNode);}
this.nodeEditor=function(obj,node){node.onclick=null;node.ondblclick=null;node.childNodes[1].innerHTML='<input type="text" style="width: auto;" value="'+node.childNodes[1].innerHTML+'" />';var editor=node.childNodes[1].getElementsByTagName('input')[0];var text=node.childNodes[1].innerHTML;editor.focus();editor.onkeyup=function(e){var keynum=0;if(window.event){if(e&&e.keyCode)keynum=e.keyCode;}else if(e.which){keynum=e.which;}
if(keynum==13){editor.onblur=null;node.childNodes[1].innerHTML=editor.value;obj.selected.nname=editor.value;if(obj.onEdit)obj.onEdit(obj);node.onclick=function(){obj.nodeClick(obj,this);}
node.ondblclick=function(){obj.nodeEditor(obj,this);}}}
editor.onblur=function(){node.childNodes[1].innerHTML=editor.value;obj.selected.nname=editor.value;if(obj.onEdit)obj.onEdit(obj);node.onclick=function(){obj.nodeClick(obj,this);}
node.ondblclick=function(){obj.nodeEditor(obj,this);}}}
this.collapseAll=function(){var divs=this.dom.content.getElementsByTagName('div');for(var i=0,length=divs.length;i<length;i++){if(T.hasClass(divs[i],'tree-node-content')&&divs[i].hasChildNodes()){divs[i].previousSibling.childNodes[0].style.backgroundPosition='-26px -118px';divs[i].style.display='none';}}}
this.expandAll=function(){var divs=this.dom.content.getElementsByTagName('div');for(var i=0,length=divs.length;i<length;i++){if(T.hasClass(divs[i],'tree-node-content')&&divs[i].hasChildNodes()){divs[i].previousSibling.childNodes[0].style.backgroundPosition='-42px -118px';divs[i].style.display='block';}}}
this.collapse=function(node){node.childNodes[0].style.backgroundPosition='-26px -118px';node.nextSibling.style.display='none';}
this.expand=function(node){node.childNodes[0].style.backgroundPosition='-42px -118px';node.nextSibling.style.display='block';}
this.addItems(params.items);};GUI.treeNode=function(node){this.etype='treeNode';this.dom=GUI.dc('tree-node');this.dom.appendChild(this.dom.expand=GUI.dc('tree-node-expand',true));this.dom.appendChild(this.dom.txt=GUI.dc('tree-node-text'));this.dom.content=GUI.dc('tree-node-content');this.dom.content.id='treeNodeContent'+this.dom.id+node.id;this.dom.content.style.display='none';this.dom.txt.innerHTML=node.name;this.dom.title=node.name;this.dom.data=node.data||'';this.dom.id='treeNode'+this.dom.id+node.id;this.dom.nid=node.id;this.dom.npid=node.pid;this.dom.ndata=node.data||'';this.dom.style.backgroundImage='url('+GUI.icoPath+(node.ico||'page_white')+'.png)';T.hover(this.dom,'tree-node-hover');};GUI.textarea=function(params){var p=(params||{});this.etype='textarea';this.onChange=(p.onChange||null);this.disabled=p.disabled||false;this.dom=GUI.dc('textarea');this.dom.appendChild(this.dom.left=GUI.dc('textarea-left',true));this.dom.appendChild(this.dom.center=GUI.dc('textarea-center'));this.dom.appendChild(this.dom.right=GUI.dc('textarea-right',true));this.dom.center.appendChild(GUI.dc('textarea-top',true));this.dom.center.appendChild(this.dom.input=GUI.dc('textarea-input'));this.dom.center.appendChild(GUI.dc('textarea-bottom',true));this.height=(p.height||100);this.dom.style.height=this.height+'px';this.dom.center.style.height=this.dom.input.style.height=this.height-2+'px';this.dom.left.style.height=this.dom.right.style.height=this.dom.style.height;this.dom.input.appendChild(this.dom.inputEditor=document.createElement('textarea'));this.dom.inputEditor.style.height=this.height-2+'px';this.setWidth=function(width){this.width=width;this.dom.style.width=this.width+'px';this.dom.center.style.width=this.width-2+'px';this.dom.inputEditor.style.width=this.width-2+'px';}
this.setWidth(p.width||200);this.value=function(val){return val&&typeof val=='string'?this.dom.inputEditor.value=val:this.dom.inputEditor.value;}
this.disable=function(){this.disabled=true;this.dom.inputEditor.setAttribute('disabled','disabled');}
this.enable=function(){this.disabled=false;this.dom.inputEditor.removeAttribute('disabled');}
var thisObj=this;this.dom.inputEditor.onblur=function(){if(thisObj.onChange)thisObj.onChange(thisObj);}
if(p.value)this.value(p.value);};GUI.window=function(params){var p=(params||{});this.etype='window';this.title=p.title||'Window title';this.ico=p.ico||'application_xp';this.minWidth=p.minWidth||500;this.minHeight=p.minHeight||300;this.width=p.width||this.minWidth;this.height=p.height||this.minHeight;this.x=p.x||50;this.y=p.y||50;this.closable=p.closable==false?false:true;this.removable=p.removable==true?true:false;this.resizable=p.resizable==false?false:true;this.maximizable=p.maximizable==false?false:true;this.movable=p.movable==false?false:true;this.maximized=p.maximized==true?true:false;this.minimized=p.minimized==true?true:false;this.modal=p.modal==true?true:false;this.fill=p.fill==true?true:false;this.items=p.items||[];this.animation=p.animation||0;if(p.align=='center'){this.x=parseInt(parseInt(document.documentElement.clientWidth/2)-parseInt(this.width)/2);this.y=parseInt(parseInt(document.documentElement.clientHeight/2)-parseInt(this.height)/2-50);if(this.y<0){this.y=0;}}
if(T.userInfo.browser.ie){this.animation=0;}
if(this.animation){document.body.appendChild(this.domMR=GUI.dc('window-mr'));T.fill(this.domMR);}
this.dom=GUI.dc('window');this.dom.id=p.id||'wnd'+GUI.lastZIndex;this.dom.style.zIndex=GUI.lastZIndex;var thisObj=this;if(this.modal){document.body.appendChild(this.domModal=GUI.dc('window-modal'));this.domModal.style.zIndex=GUI.lastZIndex;T.fill(this.domModal);this.domModal.onclick=function(){T.tremor(thisObj.dom);}}
GUI.lastZIndex++;this.dom.windowLeft=GUI.dc('window-left');this.dom.windowLeft.appendChild(this.dom.windowLeftTop=GUI.dc('window-left-top',true));this.dom.windowLeft.appendChild(this.dom.windowLeftCenter=GUI.dc('window-left-center',true));this.dom.windowLeft.appendChild(this.dom.windowLeftBottom=GUI.dc('window-left-bottom',true));this.dom.appendChild(this.dom.windowLeft);this.dom.windowCenter=GUI.dc('window-center');this.dom.windowCenterTop=GUI.dc('window-center-top',true);this.dom.windowCenterTop.appendChild(this.dom.windowCenterTopR=GUI.dc('window-center-topR'));this.dom.windowCenterTopM=GUI.dc('window-center-topM');this.dom.windowIco=GUI.dc('window-ico');this.dom.windowIco.style.backgroundImage='url('+GUI.icoPath+this.ico+'.png)';this.dom.windowCenterTopM.appendChild(this.dom.windowIco);this.dom.windowTitle=GUI.dc('window-title');this.dom.windowTitle.innerHTML=this.title;this.dom.windowCenterTopM.appendChild(this.dom.windowTitle);this.dom.windowControlMin=GUI.dc('window-control-min',true);T.hover(this.dom.windowControlMin,'window-control-min-hover');this.dom.windowControlMax=GUI.dc('window-control-max',true);T.hover(this.dom.windowControlMax,'window-control-max-hover');this.dom.windowControlClose=GUI.dc('window-control-close',true);T.hover(this.dom.windowControlClose,'window-control-close-hover');this.dom.windowControl=GUI.dc('window-control');this.dom.windowControl.appendChild(this.dom.windowControlMin);this.dom.windowControl.appendChild(this.dom.windowControlMax);this.dom.windowControl.appendChild(this.dom.windowControlClose);this.dom.windowCenterTop.appendChild(this.dom.windowControl);this.dom.windowCenterTop.appendChild(this.dom.windowCenterTopM);this.dom.windowCenter.appendChild(this.dom.windowCenterTop);this.dom.windowCenter.appendChild(this.dom.windowCenterCenter=GUI.dc('window-center-center'));this.dom.windowCenter.appendChild(this.dom.windowCenterBottom=GUI.dc('window-center-bottom',true));this.dom.appendChild(this.dom.windowCenter);this.dom.windowRight=GUI.dc('window-right');this.dom.windowRight.appendChild(this.dom.windowRightTop=GUI.dc('window-right-top',true));this.dom.windowRight.appendChild(this.dom.windowRightCenter=GUI.dc('window-right-center',true));this.dom.windowRight.appendChild(this.dom.windowRightBottom=GUI.dc('window-right-bottom',true));this.dom.appendChild(this.dom.windowRight);if(this.fill){T.fill(this.dom.windowCenterCenter);}
this.show=function(){if(this.modal){T.setOpacity(this.domModal,30);this.domModal.style.zIndex=GUI.lastZIndex;this.domModal.style.display='block';}
if(this.animation){this.domMR.style.zIndex=GUI.lastZIndex+1;this.domMR.style.width=this.width+400+'px';this.domMR.style.height=this.height+400+'px';this.domMR.style.left=this.x-200+'px';this.domMR.style.top=this.y-200+'px';T.setOpacity(this.domMR,0);this.domMR.style.display='block';var thisObj=this;T.animate(this.domMR,parseInt(this.animation/6),{x:this.x,y:this.y,width:this.width,height:this.height,alpha:30},function(){thisObj.domMR.style.display='none';thisObj.dom.style.display='block';thisObj.setActive();});}else{this.dom.style.display='block';this.setActive();}}
this.minimize=function(){if(this.modal){T.tremor(this.dom);return;}
this.hide();GUI.minimizeWindow(this);}
this.maximize=function(){if(!this.maximizable){T.tremor(this.dom);return;}
if(this.maximized){this.x=(this._x||200);this.y=(this._y||200);this.width=(this._width||this.minWidth);this.height=(this._height||this.minHeight);}else{this._x=this.x;this._y=this.y;this._width=this.width;this._height=this.height;this.x=GUI.minCoordX;this.y=GUI.minCoordY;this.width=GUI.maxCoordX+10;this.height=GUI.maxCoordY+10;}
this._move({x:this.x,y:this.y});this._resize({width:this.width,height:this.height});this.maximized=!this.maximized;}
this.hide=function(){if(this.modal)return;this.dom.style.display='none';}
this.close=function(){if(!this.closable){T.tremor(this.dom);return;}
if(this.modal)this.domModal.style.display='none';this.dom.style.display='none';if(this.animation){this.domMR.style.top=this.dom.style.top;this.domMR.style.left=this.dom.style.left;this.domMR.style.width=this.dom.style.width;this.domMR.style.height=this.dom.style.height;T.setOpacity(this.domMR,50);this.domMR.style.display='block';var thisObj=this;T.animate(this.domMR,parseInt(this.animation/2),{x:this.x-200,y:this.y-200,width:this.width+400,height:this.height+400,alpha:0},function(){if(thisObj.removable){thisObj.domMR.parentNode.removeChild(thisObj.domMR);if(thisObj.modal)thisObj.domModal.parentNode.removeChild(thisObj.domModal);thisObj.dom.parentNode.removeChild(thisObj.dom);}else{thisObj.domMR.style.display='none';}});}else{if(this.removable){if(this.modal)this.domModal.parentNode.removeChild(this.domModal);this.dom.parentNode.removeChild(this.dom);}}}
this._resize=function(size){this.dom.style.width=size.width+'px';this.dom.style.height=size.height+'px';this.dom.windowLeftCenter.style.height=size.height-48+'px';this.dom.windowRightCenter.style.height=size.height-48+'px';this.dom.windowCenter.style.width=size.width-26+'px';this.dom.windowCenterTop.style.width=size.width-26+'px';this.dom.windowCenterTopR.style.width=size.width-26-105+'px';this.dom.windowCenterTopM.style.width=size.width-26-105+'px';this.dom.windowCenterCenter.style.width=size.width-26+'px';this.dom.windowCenterCenter.style.height=size.height-48+'px';this.dom.windowCenterBottom.style.width=size.width-26+'px';this.contentSize={width:size.width-26,height:size.height-48}
if(this.items.length){for(var i=0;i<this.items.length;i++){if(this.items[i].height){this.contentSize.height-=this.items[i].height;}
this.items[i]._resize({width:this.contentSize.width,height:this.contentSize.height});}}};this._move=function(pos){this.dom.style.left=pos.x+'px';this.dom.style.top=pos.y+'px';if(this.onMove){this.onMove(this);}};this.setActive=function(){if(GUI.activeWindow==this.id){return;}
var zIndex=this.dom.style.zIndex;for(var i=0;i<GUI.windows.length;i++){if(GUI.windows[i].dom.style.zIndex>zIndex){GUI.windows[i].dom.style.zIndex=GUI.windows[i].dom.style.zIndex-1;}
GUI.windows[i].dom.windowTitle.className=GUI.cssPrefix+'window-title';}
this.dom.style.zIndex=GUI.lastZIndex;this.dom.windowTitle.className=GUI.cssPrefix+'window-title-active';this.activeWindow=this.id;};this._dragBegin=function(e){e=e?e:window.event;this.mouseX=e.clientX;this.mouseY=e.clientY;var obj=this;document.onmousemove=function(e){obj._drag(e);}
document.onmouseup=function(){obj._dragEnd();}};this._drag=function(e){e=e?e:window.event;if(this.x+(e.clientX-this.mouseX)>GUI.minCoordX&&(this.x+(e.clientX-this.mouseX)+this.width)<GUI.maxCoordX){this.x=this.x+(e.clientX-this.mouseX);}
if(this.y+(e.clientY-this.mouseY)>GUI.minCoordY&&(this.y+(e.clientY-this.mouseY)+this.height)<GUI.maxCoordY){this.y=this.y+(e.clientY-this.mouseY);}
if(e.clientY<this.mouseY){if((this.y-15)<GUI.minCoordY){this.y=(GUI.minCoordY+1);}
if((this.y+this.height+15)>GUI.maxCoordY){this.y=this.y-(this.mouseY-e.clientY);}}
if(e.clientX<this.mouseX){if((this.x-15)<GUI.minCoordX+15){this.x=(GUI.minCoordX+1);}
if((this.x+this.width+15)>GUI.maxCoordX){this.x=this.x-(this.mouseX-e.clientX);}}
if(e.clientY>this.mouseY){if((this.y+this.height+15)>GUI.maxCoordY){this.y=(GUI.maxCoordY-this.height+8);}}
if(e.clientX>this.mouseX){if((this.x+this.width+15)>GUI.maxCoordX){this.x=(GUI.maxCoordX-this.width+8);}}
this._move({x:this.x,y:this.y});this.mouseX=e.clientX;this.mouseY=e.clientY;};this._dragEnd=function(){this._move({x:this.x,y:this.y});document.onmousemove=null;document.onmouseup=null;};this._resizeBegin=function(e){e=e?e:window.event;this.mouseX=e.clientX;this.mouseY=e.clientY;var obj=this;document.onmousemove=function(e){obj._resizeProcess(e);};document.onmouseup=function(){obj._resizeEnd();};};this._resizeProcess=function(e){e=e?e:window.event;if(e.clientX<(GUI.minCoordX+10)||e.clientX>(GUI.maxCoordX-10)||e.clientY<(GUI.minCoordY+10)||e.clientY>(GUI.maxCoordY-10)){return;}
switch(this.resizeType){case'lt':if(this.width+(this.mouseX-e.clientX)>this.minWidth){this.width=this.width+(this.mouseX-e.clientX);this.x-=this.mouseX-e.clientX;}
if(this.height+(this.mouseY-e.clientY)>this.minHeight){this.height=this.height+(this.mouseY-e.clientY);this.y-=this.mouseY-e.clientY;}
break;case'lc':if(this.width+(this.mouseX-e.clientX)>this.minWidth){this.width=this.width+(this.mouseX-e.clientX);this.x-=this.mouseX-e.clientX;}
break;case'lb':if(this.width+(this.mouseX-e.clientX)>this.minWidth){this.width=this.width+(this.mouseX-e.clientX);this.x-=this.mouseX-e.clientX;}
if(this.height+(e.clientY-this.mouseY)>this.minHeight){this.height=this.height+(e.clientY-this.mouseY);}
break;case'rt':if(this.width+(e.clientX-this.mouseX)>this.minWidth){this.width=this.width+(e.clientX-this.mouseX);}
if(this.height+(this.mouseY-e.clientY)>this.minHeight){this.height=this.height+(this.mouseY-e.clientY);this.y-=this.mouseY-e.clientY;}
break;case'rb':if(this.width+(e.clientX-this.mouseX)>this.minWidth){this.width=this.width+(e.clientX-this.mouseX);}
if(this.height+(e.clientY-this.mouseY)>this.minHeight){this.height=this.height+(e.clientY-this.mouseY);}
break;case'rc':if(this.width+(e.clientX-this.mouseX)>this.minWidth){this.width=this.width+(e.clientX-this.mouseX);}
break;case'cb':if(this.height+(e.clientY-this.mouseY)>this.minHeight){this.height=this.height+(e.clientY-this.mouseY);}
break;case'ct':if(this.height+(this.mouseY-e.clientY)>this.minHeight){this.height=this.height+(this.mouseY-e.clientY);this.y-=this.mouseY-e.clientY;}
break;}
this.mouseX=e.clientX;this.mouseY=e.clientY;this._move({x:this.x,y:this.y});this._resize({width:this.width,height:this.height});};this._resizeEnd=function(){this._move({x:this.x,y:this.y});this._resize({width:this.width,height:this.height});document.onmousemove=null;document.onmouseup=null;};var thisObj=this;this.dom.onmousedown=function(e){thisObj.setActive();};this.dom.windowControlMin.onclick=function(){thisObj.minimize();}
this.dom.windowControlMax.onclick=function(){thisObj.maximize();}
this.dom.windowControlClose.onclick=function(){thisObj.close();}
if(this.movable){this.dom.windowCenterTopM.onmousedown=function(e){thisObj._dragBegin(e);};};if(this.resizable){this.dom.windowCenterTopR.onmousedown=function(e){thisObj.resizeType='ct';thisObj._resizeBegin(e);};this.dom.windowCenterBottom.onmousedown=function(e){thisObj.resizeType='cb';thisObj._resizeBegin(e);};this.dom.windowLeftTop.onmousedown=function(e){thisObj.resizeType='lt';thisObj._resizeBegin(e);};this.dom.windowLeftCenter.onmousedown=function(e){thisObj.resizeType='lc';thisObj._resizeBegin(e);};this.dom.windowLeftBottom.onmousedown=function(e){thisObj.resizeType='lb';thisObj._resizeBegin(e);};this.dom.windowRightTop.onmousedown=function(e){thisObj.resizeType='rt';thisObj._resizeBegin(e);};this.dom.windowRightCenter.onmousedown=function(e){thisObj.resizeType='rc';thisObj._resizeBegin(e);};this.dom.windowRightBottom.onmousedown=function(e){thisObj.resizeType='rb';thisObj._resizeBegin(e);};};if(this.items&&this.items.length){for(var i=0;i<this.items.length;i++){this.dom.windowCenterCenter.appendChild(this.items[i].dom);}}
this._resize({width:this.width,height:this.height});this._move({x:this.x,y:this.y});GUI.windows.push(this);document.body.appendChild(this.dom);};GUI.listview=function(params){GUI.ext(this,(params||{}));this.etype='listview';this.size=params.size||'standart';this.onSelect=params.onSelect||null;var thisObj=this;this.toolBar=new GUI.toolbar({size:'small',items:[new GUI.toolbarButton({size:'small',ico:'application_view_columns',descr:'small',trigger:true,enabled:thisObj.size=='small'?true:false,onClick:function(){thisObj.changeSize('small');}}),new GUI.toolbarButton({size:'small',ico:'application_view_icons',descr:'standart',trigger:true,enabled:thisObj.size=='standart'?true:false,onClick:function(){thisObj.changeSize('standart');}}),new GUI.toolbarButton({size:'small',ico:'application_view_tile',descr:'large',trigger:true,enabled:thisObj.size=='large'?true:false,onClick:function(){thisObj.changeSize('large');}}),new GUI.toolbarButton({size:'small',ico:'application_view_list',descr:'extra',trigger:true,enabled:thisObj.size=='extra'?true:false,onClick:function(){thisObj.changeSize('extra');}})]});this.setPanel();this.dom.content.style.overflow='auto';this.changeSize=function(size){var thisObj=this;T.each(this.dom.content.childNodes,function(e,i){T.swapClass(e,'listview-item-'+thisObj.size,'listview-item-'+size);});this.size=size;T.each(this.toolBar.items,function(e,i){e.disable();});switch(this.size){case'small':this.toolBar.items[0].enable();break;case'standart':this.toolBar.items[1].enable();break;case'large':this.toolBar.items[2].enable();break;case'extra':this.toolBar.items[3].enable();break;}}
this.addItem=function(i){var item=GUI.dc('listview-item-'+this.size);if(i.ico){item.appendChild(item.ico=document.createElement('img'));if(i.ico=='none'){item.ico.src=GUI.icoPath+'none.png';}else{item.ico.src=i.ico;}
T.addClass(item.ico,'listview-item-ico');}
item.appendChild(item.txt=GUI.dc('listview-item-title'));item.appendChild(item.extraTxt=GUI.dc('listview-item-text'));item.txt.innerHTML=i.title||'title';item.extraTxt.innerHTML=i.text||'no description';item.title=i.title;item.nid=i.id||0;item.ntext=item.extraTxt.innerHTML;item.ntitle=item.title;item.ndata=i.data;T.hover(item,'listview-item-hover');var thisObj=this;item.onclick=function(){if(thisObj.selected){T.removeClass(thisObj.selected,'listview-item-select');}
thisObj.selected=this;T.addClass(this,'listview-item-select');if(thisObj.onSelect)thisObj.onSelect(thisObj);}
this.dom.content.appendChild(item);}
this.deleteItem=function(item){if(item){item.parentNode.removeChild(item);this.selected=null;}}
this.updateItem=function(item,p){item.txt.innerHTML=p.title||'title';item.extraTxt.innerHTML=p.text||'no description';item.title=p.title;item.nid=p.id||0;item.ntext=item.extraTxt.innerHTML;item.ntitle=item.title;}
this.clearItems=function(){this.dom.content.innerHTML='';this.selected=null;}
this.addItems=function(items){if(items&&items.length){this.clearItems();for(var i=0,length=items.length;i<length;i++){this.addItem(items[i]);}}}
this.addItems(params.items);};